[4600] | 1 | Supplemental information for JOSM -- the Java OpenStreetMap Editor
|
---|
[14] | 2 |
|
---|
[5341] | 3 | =============================================================================
|
---|
| 4 | I. Install & Launch
|
---|
| 5 | =============================================================================
|
---|
[5545] | 6 |
|
---|
[4600] | 7 | Installation notes
|
---|
| 8 | ------------------
|
---|
[14] | 9 | To run JOSM, you need:
|
---|
| 10 |
|
---|
[4600] | 11 | * The JOSM .jar file, e.g., josm-tested.jar or josm-latest.jar
|
---|
[19073] | 12 | * Java Runtime Environment (JRE) 11, or later.
|
---|
[14] | 13 |
|
---|
| 14 |
|
---|
[4600] | 15 | How to get Java Runtime Environment
|
---|
| 16 | -----------------------------------
|
---|
[19073] | 17 | You need JRE Version 11, or later.
|
---|
[14] | 18 |
|
---|
[18166] | 19 | Microsoft Windows and Apple macOS users should visit one of:
|
---|
| 20 | - https://www.azul.com/downloads/?package=jdk#download-openjdk
|
---|
| 21 | - https://bell-sw.com/pages/downloads/#mn
|
---|
[6216] | 22 | and download the latest Java executable for their system.
|
---|
[14] | 23 |
|
---|
[4600] | 24 | Linux users should visit http://www.oracle.com/technetwork/java/index.html
|
---|
[5545] | 25 | There is a Linux binary installer, which you must execute from a console, or
|
---|
[4600] | 26 | use the mechanism of your distribution's packaging system.
|
---|
[14] | 27 |
|
---|
| 28 |
|
---|
| 29 | How to launch
|
---|
| 30 | -------------
|
---|
[4600] | 31 | Microsoft Windows users launch by double-clicking on the .jar file.
|
---|
| 32 | If this does not work, open a command shell and type
|
---|
| 33 | "java -jar josm-latest.jar" in the directory that holds the file. (Please
|
---|
| 34 | replace josm-latest.jar with the name of your .jar file, if you aren't using
|
---|
| 35 | the latest version.)
|
---|
[14] | 36 |
|
---|
[4600] | 37 | Under Linux, open a shell, go to the file directory and type
|
---|
| 38 | "java -jar josm-latest.jar" to launch. If this does not work, try to set
|
---|
[5545] | 39 | your JAVA_HOME variable to the java executable location (the root location,
|
---|
[4600] | 40 | not the bin).
|
---|
[14] | 41 |
|
---|
[13395] | 42 | macOS users just click on the .jar file icon.
|
---|
[14] | 43 |
|
---|
[5341] | 44 | =============================================================================
|
---|
| 45 | II. Development
|
---|
| 46 | =============================================================================
|
---|
[14] | 47 |
|
---|
[4600] | 48 | How to get the source code
|
---|
| 49 | --------------------------
|
---|
[5545] | 50 | Download it directly from the subversion at
|
---|
| 51 | https://josm.openstreetmap.de/svn/trunk. To use the command line subversion
|
---|
[4600] | 52 | client, type
|
---|
[14] | 53 |
|
---|
[5341] | 54 | svn co https://josm.openstreetmap.de/svn/trunk josm
|
---|
| 55 |
|
---|
| 56 |
|
---|
| 57 | Files & directories
|
---|
| 58 | -------------------
|
---|
| 59 | This is an overview of the files and directories in the JOSM code repository:
|
---|
| 60 | - build.xml ant build file (standard way to create a JOSM binary)
|
---|
| 61 | - CONTRIBUTION list of major code contributors
|
---|
[16006] | 62 | - gpl-2.0.txt, gpl-3.0.txt full text of the GNU General Public License
|
---|
| 63 | - LICENSE the JOSM license terms
|
---|
| 64 | - native/ OS-specific files
|
---|
| 65 | - linux/ files useful for Linux distributions, including Appdata files, .desktop
|
---|
| 66 | files, Debian/Ubuntu scripts, man pages, icons, etc.
|
---|
[17884] | 67 | - macosx/ files needed to create the MacOS package
|
---|
[16006] | 68 | - windows/ files needed to create the Windows installer
|
---|
[17976] | 69 | - josm.jnlp Java Web Start launcher file (used on the website for the tested version)
|
---|
| 70 | - josm-latest.jnlp Java Web Start launcher file (used on the website for the latest version)
|
---|
[16006] | 71 | - nodist/ files not included in JOSM binary
|
---|
| 72 | - data/ data files that are useful for development, but not distributed
|
---|
[5545] | 73 | - exif-direction-example.jpg
|
---|
[5341] | 74 | sample image, that contains direction information in the EXIF header
|
---|
| 75 | (keys: Exif.GPSInfo.GPSImgDirectionRef, Exif.GPSInfo.GPSImgDirection)
|
---|
| 76 | - filterTests.osm used for unit testing of the filter feature
|
---|
| 77 | (see test/unit/org/openstreetmap/josm/data/osm/FilterTest.java)
|
---|
| 78 | - Join_Areas_Tests.osm some examples to test the 'join areas' feature
|
---|
[13323] | 79 | - *.* various other data files used for unit testing and as reference file
|
---|
[11660] | 80 | - projection/ projection files
|
---|
[13323] | 81 | - *.gsb NTv2 grid files for projection support, downloaded by the
|
---|
| 82 | client on demand (see CONTRIBUTION)
|
---|
| 83 | - CHENyx06-Distribution.pdf
|
---|
| 84 | archive of terms of use for the CHENyx06.gsb file
|
---|
| 85 | - epsg EPSG data file, taken from the proj.4 project
|
---|
| 86 | (see https://github.com/OSGeo/proj.4/blob/master/nad/epsg)
|
---|
[13395] | 87 | - esri ESRI data file, taken from the proj.4 project
|
---|
| 88 | (see https://github.com/OSGeo/proj.4/blob/master/nad/esri)
|
---|
[13323] | 89 | - josm-epsg customizations to the epsg file, used together with the epsg file
|
---|
| 90 | to generate data/projection/custom-epsg
|
---|
| 91 |
|
---|
| 92 | - projection-reference-data.csv
|
---|
[5341] | 93 | reference data for projection tests
|
---|
| 94 | (see test/unit/org/openstreetmap/josm/data/projection/ProjectionRefTest.java)
|
---|
[13323] | 95 | - projection-regression-test-data.csv
|
---|
[5341] | 96 | regression data for projection tests
|
---|
| 97 | (see test/unit/org/openstreetmap/josm/data/projection/ProjectionRegressionTest.java)
|
---|
[13323] | 98 | - trans/*.lang translation data for files that are not distributed, but used
|
---|
| 99 | by the server for localization of the services;
|
---|
| 100 | currently contains plugin descriptions in order to include translations
|
---|
| 101 | in the downloaded plugin list
|
---|
[16006] | 102 | - images/ images, which are not for distribution, but may be useful later (e.g. high
|
---|
[5341] | 103 | resolution and vector versions)
|
---|
[16006] | 104 | - styles/ files needed for map style maintenance
|
---|
[5341] | 105 | - README this file
|
---|
[7867] | 106 | - resources/ resource files that will be included in the JOSM jar file
|
---|
[16006] | 107 | - data/ data files that will be included in the JOSM jar file
|
---|
| 108 | - fonts/ font files used for map rendering
|
---|
| 109 | - gpx/ different color gradients for gpx drawing
|
---|
| 110 | - projection/ projection files
|
---|
| 111 | - custom-epsg list of projection definitions, auto-generated file created by ant task 'epsg'
|
---|
| 112 | - security/*.pem certificates that we like to accept for TLS connections, but are missing in the
|
---|
| 113 | default Java certificate store
|
---|
| 114 | - validator/ data files used by the JOSM validator
|
---|
| 115 | - *.cfg files designed for the old tagchecker, still in use
|
---|
| 116 | - *.mapcss default validation rules for the MapCSS-based tagchecker
|
---|
| 117 | - boundaries.osm OSM file containing boundary data for the states of the earth, including
|
---|
| 118 | data for right and left-hand traffic
|
---|
| 119 | - defaultpresets.xml data file for the core tagging presets
|
---|
| 120 | - help-browser.css CSS file for the help sites (HTML content is downloaded from the website
|
---|
| 121 | on demand, but displayed inside the programm in a Java web browser component.)
|
---|
| 122 | - *.lang translation data
|
---|
| 123 | - *.xsd xml schema files for validation of configuration files
|
---|
| 124 | - images/ images distributed with the JOSM binary
|
---|
| 125 | - icons images for the Potlatch 2 style
|
---|
| 126 | - presets images for the main mappaint style and the internal presets
|
---|
| 127 | - styles/ map styles included in JOSM
|
---|
[7867] | 128 | - scripts/ various scripts used by JOSM developers
|
---|
[13323] | 129 | - BuildProjectionDefinitions.java
|
---|
| 130 | called from the ant build file to combine the files epsg and josm-epsg
|
---|
| 131 | to create the custom-epsg file for distribution
|
---|
[13282] | 132 | - geticons.pl tool to find all used icons and allows deleting unused icons
|
---|
| 133 | searches also for images with incompatible svg code
|
---|
[13283] | 134 | - optimize-images short script to decrease size of PNG images
|
---|
[13323] | 135 | - since_xxx.py developer tool to replace "@since xxx" in Javadoc by the upcoming revision number
|
---|
[15033] | 136 | - SyncEditorLayerIndex.java
|
---|
[13323] | 137 | script to compare and analyse the differences of the editor layer index and the
|
---|
| 138 | JOSM imagery list (see https://josm.openstreetmap.de/wiki/ImageryCompare)
|
---|
[14639] | 139 | - TagInfoExtract.java extracts tag information for the taginfo project
|
---|
[13323] | 140 | - src/ the source code of the application
|
---|
[5341] | 141 | - start.html HTML page to run the applet version of JOSM
|
---|
| 142 | - test/ automated software tests
|
---|
[6216] | 143 | - data/ resources used for some tests
|
---|
[5341] | 144 | - functional/ functional tests (source code)
|
---|
[8825] | 145 | - lib/ libraries needed for (some of) the tests, including JUnit
|
---|
[6216] | 146 | - performance/ performance tests (source code)
|
---|
[5341] | 147 | - unit/ unit tests (source code)
|
---|
[18054] | 148 | - tools/ libraries, tools and configuration files that help in the development process
|
---|
[8508] | 149 | - checkstyle/ libs and config files for checkstyle (automatically detects code style
|
---|
| 150 | problems in source code); can be launched as an ant target in build.xml
|
---|
[18054] | 151 | - eclipse/ preconfigured Eclipse configuration files
|
---|
[16006] | 152 | - ivy/ Apache Ivy binary, configuration file, and downloaded dependencies
|
---|
[10845] | 153 | - jacocoant.jar used to include coverage data into JUnit test reports
|
---|
| 154 | - japicc/ used to generate a compatibility report between optimized jar and normal one
|
---|
[18054] | 155 | - netbeans/ preconfigured Netbeans project
|
---|
| 156 | - pmd/ config files for PMD (source code analyzer, finds common programming flaws)
|
---|
[16006] | 157 | - spotbugs/ libs and config files for spotbugs (automatically detects common bugs and potential
|
---|
| 158 | problems in source code); can be launched as an ant target in build.xml
|
---|
[5341] | 159 |
|
---|
[5545] | 160 | Third party libraries
|
---|
| 161 | ---------------------
|
---|
[7867] | 162 | There are some third party libraries which are directly included in the source code tree, in particular:
|
---|
[5341] | 163 |
|
---|
[5545] | 164 | * jmapviewer: Java component to browse a TMS map
|
---|
| 165 | src/org/openstreetmap/gui (svn external)
|
---|
[17794] | 166 | -> https://josm.openstreetmap.de/osmsvn/applications/viewer/jmapviewer/
|
---|
[7867] | 167 | * Apache commons compress: Support for bzip2 compression when opening files
|
---|
[10864] | 168 | -> https://github.com/apache/commons-compress
|
---|
[7489] | 169 | * Apache commons validator: Improved validator routines
|
---|
| 170 | src/org/openstreetmap/josm/data/validation/routines
|
---|
| 171 | -> http://commons.apache.org/proper/commons-validator
|
---|
[5545] | 172 | * SVG Salamander: Support for SVG image format
|
---|
[10864] | 173 | -> https://github.com/blackears/svgSalamander
|
---|
[5545] | 174 | * Metadata Extractor: Read EXIF Metadata of photos
|
---|
[10864] | 175 | -> https://github.com/drewnoakes/metadata-extractor
|
---|
[5545] | 176 | * Signpost: OAuth library
|
---|
[10864] | 177 | -> https://github.com/mttkay/signpost
|
---|
[5545] | 178 | * MultiSplitPane: Small lib for GUI layout management
|
---|
| 179 | src/org/openstreetmap/josm/gui/MultiSplitLayout.java, MultiSplitPane.java
|
---|
[12626] | 180 | -> https://github.com/floscher/multi-split
|
---|
[10864] | 181 | -> https://community.oracle.com/docs/DOC-983539
|
---|
[16050] | 182 | * swinghelper: Class CheckThreadViolationRepaintManager to find EDT violations
|
---|
| 183 | src/org/openstreetmap/josm/gui/util/CheckThreadViolationRepaintManager.java
|
---|
[12626] | 184 | -> https://github.com/floscher/swinghelper
|
---|
[13350] | 185 | * xz extractor
|
---|
| 186 | -> https://tukaani.org/xz/java.html
|
---|
[15978] | 187 | * OpeningHoursParser (MIT license)
|
---|
| 188 | -> https://github.com/simonpoole/OpeningHoursParser
|
---|