mirror of
https://abf.rosa.ru/djam/josm.git
synced 2025-02-24 15:32:52 +00:00
182 lines
9.9 KiB
Text
182 lines
9.9 KiB
Text
Supplemental information for JOSM -- the Java OpenStreetMap Editor
|
|
|
|
=============================================================================
|
|
I. Install & Launch
|
|
=============================================================================
|
|
|
|
Installation notes
|
|
------------------
|
|
To run JOSM, you need:
|
|
|
|
* The JOSM .jar file, e.g., josm-tested.jar or josm-latest.jar
|
|
* Java Runtime Environment (JRE) 8, or later.
|
|
|
|
|
|
How to get Java Runtime Environment
|
|
-----------------------------------
|
|
You need JRE Version 8, or later.
|
|
|
|
Microsoft Windows and Apple Mac OS X users should visit https://www.java.com
|
|
and download the latest Java executable for their system.
|
|
|
|
Linux users should visit http://www.oracle.com/technetwork/java/index.html
|
|
There is a Linux binary installer, which you must execute from a console, or
|
|
use the mechanism of your distribution's packaging system.
|
|
|
|
|
|
How to launch
|
|
-------------
|
|
Microsoft Windows users launch by double-clicking on the .jar file.
|
|
If this does not work, open a command shell and type
|
|
"java -jar josm-latest.jar" in the directory that holds the file. (Please
|
|
replace josm-latest.jar with the name of your .jar file, if you aren't using
|
|
the latest version.)
|
|
|
|
Under Linux, open a shell, go to the file directory and type
|
|
"java -jar josm-latest.jar" to launch. If this does not work, try to set
|
|
your JAVA_HOME variable to the java executable location (the root location,
|
|
not the bin).
|
|
|
|
MacOS X users just click on the .jar file icon.
|
|
|
|
=============================================================================
|
|
II. Development
|
|
=============================================================================
|
|
|
|
How to get the source code
|
|
--------------------------
|
|
Download it directly from the subversion at
|
|
https://josm.openstreetmap.de/svn/trunk. To use the command line subversion
|
|
client, type
|
|
|
|
svn co https://josm.openstreetmap.de/svn/trunk josm
|
|
|
|
|
|
Files & directories
|
|
-------------------
|
|
This is an overview of the files and directories in the JOSM code repository:
|
|
- build.xml ant build file (standard way to create a JOSM binary)
|
|
- CONTRIBUTION list of major code contributors
|
|
- data/ data files that will be included in the JOSM jar file
|
|
- fonts/ font files used for map rendering
|
|
- projection/ projection files
|
|
- epsg list of projection definitions
|
|
- *.lang translation data
|
|
- *.xsd xml schema files for validation of configuration files
|
|
- help-browser.css CSS file for the help sites (HTML content is downloaded from the website
|
|
on demand, but displayed inside the programm in a Java web browser component.)
|
|
- validator/ data files used by the JOSM validator feature
|
|
- *.cfg files designed for the old tagchecker, still used
|
|
- *.mapcss default validation rules for the new mapcss-based tagchecker
|
|
- data_nodist/ data files that are useful for development, but not distributed
|
|
- exif-direction-example.jpg
|
|
sample image, that contains direction information in the EXIF header
|
|
(keys: Exif.GPSInfo.GPSImgDirectionRef, Exif.GPSInfo.GPSImgDirection)
|
|
- filterTests.osm used for unit testing of the filter feature
|
|
(see test/unit/org/openstreetmap/josm/data/osm/FilterTest.java)
|
|
- Join_Areas_Tests.osm some examples to test the 'join areas' feature
|
|
- mapcss/ sample map styles and corresponding data files for regression testing
|
|
- projection/ projection files
|
|
- *.gsb NTv2 grid files for projection support (see CONTRIBUTION)
|
|
- projection-reference-data.csv
|
|
reference data for projection tests
|
|
(see test/unit/org/openstreetmap/josm/data/projection/ProjectionRefTest.java)
|
|
- projection-regression-test-data.csv
|
|
regression data for projection tests
|
|
(see test/unit/org/openstreetmap/josm/data/projection/ProjectionRegressionTest.java)
|
|
- geticons.pl tool to find all used icons and allows deleting unused icons
|
|
searches also for images with incompatible svg code
|
|
- gpl-2.0.txt, gpl-3.0.txt full text of the GNU General Public License
|
|
- images/ images distributed with the JOSM binary
|
|
- icons images for the Potlatch 2 style
|
|
- presets images for the main mappaint style and the internal presets
|
|
- images_nodist/ images, which are not for distribution, but may be useful later (e.g. high
|
|
resolution and vector versions)
|
|
- josm.jnlp Java Web Start launcher file (used on the website for the tested version)
|
|
- josm-latest.jnlp Java Web Start launcher file (used on the website for the latest version)
|
|
- LICENSE the JOSM license terms
|
|
- linux/ files useful for Linux distributions, including Appdata files, .desktop
|
|
files, Debian/Ubuntu scripts, man pages, icons, etc.
|
|
- macosx/ files needed to create the MacOS X package
|
|
- netbeans/ preconfigured Netbeans project
|
|
- optimize-images short script to decrease size of PNG images
|
|
- patches/ patches for external libraries used in JOSM (see below)
|
|
- README this file
|
|
- resources/ resource files that will be included in the JOSM jar file
|
|
- scripts/ various scripts used by JOSM developers
|
|
- src/ the source code of the program
|
|
- start.html HTML page to run the applet version of JOSM
|
|
- styles/ map styles included in JOSM
|
|
- sytles_nodist/ files needed for map style maintenance
|
|
- potlatch2/README infos on how to update the Potlatch 2 style from upstream sources
|
|
- test/ automated software tests
|
|
- data/ resources used for some tests
|
|
- functional/ functional tests (source code)
|
|
- lib/ libraries needed for (some of) the tests, including JUnit
|
|
- performance/ performance tests (source code)
|
|
- unit/ unit tests (source code)
|
|
- tools/ libraries and tools that help in the development process
|
|
- animal-sniffer-ant-tasks.jar
|
|
used to build and check code signatures to ensure plugins binary compatibility
|
|
- appbundler-1.0ea.jar used to build Mac OS X package
|
|
- checkstyle/ libs and config files for checkstyle (automatically detects code style
|
|
problems in source code); can be launched as an ant target in build.xml
|
|
- commons-cli-1.3.1.jar dependency of Groovy Ant task
|
|
- error_prone_ant.jar used to detect code errors during compilation
|
|
- spotbugs/ libs and config files for spotbugs (automatically detects common bugs and potential
|
|
problems in source code); can be launched as an ant target in build.xml
|
|
- groovy-all.jar used for some unit tests and various scripts
|
|
- jacocoant.jar used to include coverage data into JUnit test reports
|
|
- japicc/ used to generate a compatibility report between optimized jar and normal one
|
|
- javacc.jar used in the build process to generate some .java files from a javacc source file
|
|
(src/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSParser.jj)
|
|
- proguard.jar optimize final binary jar - see build.xml (not used in production so far)
|
|
- xmltask.jar used to edit XML files from Ant for the OSX package
|
|
- windows/ files needed to create the Windows installer
|
|
|
|
The 'patches' directory
|
|
-----------------------
|
|
Some libraries that JOSM depends on, are patched for various reasons. The
|
|
files in the patches directory can be used to roll back these customizations.
|
|
This is useful in order to
|
|
* inspect the changes
|
|
* update to a newer version of the library but keep the modifications
|
|
|
|
You can use 'quilt' to manage the patches. E.g. the following command applies all of them:
|
|
|
|
$ quilt push -a
|
|
|
|
Of course, it is also possible to apply the patch files manually one by one.
|
|
|
|
Third party libraries
|
|
---------------------
|
|
There are some third party libraries which are directly included in the source code tree, in particular:
|
|
|
|
* jmapviewer: Java component to browse a TMS map
|
|
src/org/openstreetmap/gui (svn external)
|
|
-> http://svn.openstreetmap.org/applications/viewer/jmapviewer/
|
|
* Apache commons compress: Support for bzip2 compression when opening files
|
|
src/org/apache/commons/compress/compressors (svn external)
|
|
-> https://github.com/apache/commons-compress
|
|
* Apache commons validator: Improved validator routines
|
|
src/org/openstreetmap/josm/data/validation/routines
|
|
-> http://commons.apache.org/proper/commons-validator
|
|
* SVG Salamander: Support for SVG image format
|
|
src/com/kitfox/svg
|
|
-> https://github.com/blackears/svgSalamander
|
|
* Metadata Extractor: Read EXIF Metadata of photos
|
|
src/com/drew
|
|
-> https://github.com/drewnoakes/metadata-extractor
|
|
* Signpost: OAuth library
|
|
src/oauth, src/com/google
|
|
-> https://github.com/mttkay/signpost
|
|
* GNU getopt Java port: Command line argument processing library
|
|
src/gnu/getopt
|
|
-> https://github.com/arenn/java-getopt
|
|
* MultiSplitPane: Small lib for GUI layout management
|
|
src/org/openstreetmap/josm/gui/MultiSplitLayout.java, MultiSplitPane.java
|
|
-> https://github.com/floscher/multi-split
|
|
-> https://community.oracle.com/docs/DOC-983539
|
|
* swinghelper: Class CheckThreadViolationRepaintManager to find classpath violations
|
|
src/org/jdesktop/swinghelper/debug/CheckThreadViolationRepaintManager.java
|
|
-> https://github.com/floscher/swinghelper
|