• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

META-INF/H03-May-2022-43,06230,656

ch/poole/openinghoursparser/H01-Nov-2021-493476

com/H01-Nov-2021-

data/H03-May-2022-88,89288,083

images/H03-May-2022-

javax/H01-Nov-2021-

oauth/signpost/H01-Nov-2021-

org/H01-Nov-2021-113101

styles/standard/H01-Nov-2021-6,1665,976

CONTRIBUTIONH A D01-Nov-20214.6 KiB13394

LICENSEH A D01-Nov-2021621 2113

READMEH A D01-Nov-202111 KiB190170

REVISIONH A D01-Nov-2021338 119

README

1Supplemental information for JOSM -- the Java OpenStreetMap Editor
2
3=============================================================================
4            I. Install & Launch
5=============================================================================
6
7Installation notes
8------------------
9To run JOSM, you need:
10
11* The JOSM .jar file, e.g., josm-tested.jar or josm-latest.jar
12* Java Runtime Environment (JRE) 8, or later.
13
14
15How to get Java Runtime Environment
16-----------------------------------
17You need JRE Version 8, or later.
18
19Microsoft 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
22and download the latest Java executable for their system.
23
24Linux users should visit http://www.oracle.com/technetwork/java/index.html
25There is a Linux binary installer, which you must execute from a console, or
26use the mechanism of your distribution's packaging system.
27
28
29How to launch
30-------------
31Microsoft Windows users launch by double-clicking on the .jar file.
32If this does not work, open a command shell and type
33"java -jar josm-latest.jar"  in the directory that holds the file. (Please
34replace josm-latest.jar with the name of your .jar file, if you aren't using
35the latest version.)
36
37Under 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
39your JAVA_HOME variable to the java executable location (the root location,
40not the bin).
41
42macOS users just click on the .jar file icon.
43
44=============================================================================
45            II. Development
46=============================================================================
47
48How to get the source code
49--------------------------
50Download it directly from the subversion at
51https://josm.openstreetmap.de/svn/trunk. To use the command line subversion
52client, type
53
54svn co https://josm.openstreetmap.de/svn/trunk josm
55
56
57Files & directories
58-------------------
59This 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
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.
67  - macosx/                 files needed to create the MacOS package
68  - windows/                files needed to create the Windows installer
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)
71- nodist/                   files not included in JOSM binary
72  - data/                   data files that are useful for development, but not distributed
73    - exif-direction-example.jpg
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
79    - *.*                   various other data files used for unit testing and as reference file
80    - projection/           projection files
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)
87      - esri                ESRI data file, taken from the proj.4 project
88                            (see https://github.com/OSGeo/proj.4/blob/master/nad/esri)
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
93                            reference data for projection tests
94                            (see test/unit/org/openstreetmap/josm/data/projection/ProjectionRefTest.java)
95      - projection-regression-test-data.csv
96                            regression data for projection tests
97                            (see test/unit/org/openstreetmap/josm/data/projection/ProjectionRegressionTest.java)
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
102  - images/                 images, which are not for distribution, but may be useful later (e.g. high
103                            resolution and vector versions)
104  - styles/                 files needed for map style maintenance
105    - potlatch2/README      infos on how to update the Potlatch 2 style from upstream sources
106- README                    this file
107- resources/                resource files that will be included in the JOSM jar file
108  - data/                   data files that will be included in the JOSM jar file
109    - fonts/                font files used for map rendering
110    - gpx/                  different color gradients for gpx drawing
111    - projection/           projection files
112      - custom-epsg         list of projection definitions, auto-generated file created by ant task 'epsg'
113    - security/*.pem        certificates that we like to accept for TLS connections, but are missing in the
114                            default Java certificate store
115    - validator/            data files used by the JOSM validator
116      - *.cfg               files designed for the old tagchecker, still in use
117      - *.mapcss            default validation rules for the MapCSS-based tagchecker
118    - boundaries.osm        OSM file containing boundary data for the states of the earth, including
119                            data for right and left-hand traffic
120    - defaultpresets.xml    data file for the core tagging presets
121    - help-browser.css      CSS file for the help sites (HTML content is downloaded from the website
122                            on demand, but displayed inside the programm in a Java web browser component.)
123    - *.lang                translation data
124    - *.xsd                 xml schema files for validation of configuration files
125  - images/                 images distributed with the JOSM binary
126    - icons                 images for the Potlatch 2 style
127    - presets               images for the main mappaint style and the internal presets
128  - styles/                 map styles included in JOSM
129- scripts/                  various scripts used by JOSM developers
130  - BuildProjectionDefinitions.java
131                            called from the ant build file to combine the files epsg and josm-epsg
132                            to create the custom-epsg file for distribution
133  - geticons.pl             tool to find all used icons and allows deleting unused icons
134                            searches also for images with incompatible svg code
135  - optimize-images         short script to decrease size of PNG images
136  - since_xxx.py            developer tool to replace "@since xxx" in Javadoc by the upcoming revision number
137  - SyncEditorLayerIndex.java
138                            script to compare and analyse the differences of the editor layer index and the
139                            JOSM imagery list (see https://josm.openstreetmap.de/wiki/ImageryCompare)
140  - TagInfoExtract.java     extracts tag information for the taginfo project
141- src/                      the source code of the application
142- start.html                HTML page to run the applet version of JOSM
143- test/                     automated software tests
144    - data/                 resources used for some tests
145    - functional/           functional tests (source code)
146    - lib/                  libraries needed for (some of) the tests, including JUnit
147    - performance/          performance tests (source code)
148    - unit/                 unit tests (source code)
149- tools/                    libraries, tools and configuration files that help in the development process
150    - checkstyle/           libs and config files for checkstyle (automatically detects code style
151                            problems in source code); can be launched as an ant target in build.xml
152    - eclipse/              preconfigured Eclipse configuration files
153    - ivy/                  Apache Ivy binary, configuration file, and downloaded dependencies
154    - jacocoant.jar         used to include coverage data into JUnit test reports
155    - japicc/               used to generate a compatibility report between optimized jar and normal one
156    - netbeans/             preconfigured Netbeans project
157    - pmd/                  config files for PMD (source code analyzer, finds common programming flaws)
158    - spotbugs/             libs and config files for spotbugs (automatically detects common bugs and potential
159                            problems in source code); can be launched as an ant target in build.xml
160
161Third party libraries
162---------------------
163There are some third party libraries which are directly included in the source code tree, in particular:
164
165* jmapviewer: Java component to browse a TMS map
166    src/org/openstreetmap/gui (svn external)
167    -> https://josm.openstreetmap.de/osmsvn/applications/viewer/jmapviewer/
168* Apache commons compress: Support for bzip2 compression when opening files
169    -> https://github.com/apache/commons-compress
170* Apache commons validator: Improved validator routines
171    src/org/openstreetmap/josm/data/validation/routines
172    -> http://commons.apache.org/proper/commons-validator
173* SVG Salamander: Support for SVG image format
174    -> https://github.com/blackears/svgSalamander
175* Metadata Extractor: Read EXIF Metadata of photos
176    -> https://github.com/drewnoakes/metadata-extractor
177* Signpost: OAuth library
178    -> https://github.com/mttkay/signpost
179* MultiSplitPane: Small lib for GUI layout management
180    src/org/openstreetmap/josm/gui/MultiSplitLayout.java, MultiSplitPane.java
181    -> https://github.com/floscher/multi-split
182    -> https://community.oracle.com/docs/DOC-983539
183* swinghelper: Class CheckThreadViolationRepaintManager to find EDT violations
184    src/org/openstreetmap/josm/gui/util/CheckThreadViolationRepaintManager.java
185    -> https://github.com/floscher/swinghelper
186* xz extractor
187    -> https://tukaani.org/xz/java.html
188* OpeningHoursParser (MIT license)
189    -> https://github.com/simonpoole/OpeningHoursParser
190