JOSM scripting plugin
The scripting plugin executes scripts in JOSM.
Scripts can be defined in any scripting language, for which a JSR-223 compatible scripting engine is available.
LICENSE
Published under GPL Version 3 and higher. See included LICENSE file.
CREDIT
This plugin uses:
- jsyntaxpane by Ayman Al-Sairafi. See README.jsyntaxpane and LICENSE.jsyntaxpane
- Rhino scripting engine by Mozilla Foundation. See README.rhino and LICENSE.rhino
BUILD
copy 'build.properties.distrib' to 'build.properties' and adjust the build configuration settings
run ant in the root directory % ant dist
DEPLOY
The latest build for the 'scripting' plugin should always be built on the branch 'deploy' and then pushed to GitHub.
The following steps mimic the deployment infrastructure JOSM uses for plugins maintained on the OSM SVN site, see http://josm.openstreetmap.de/wiki/DevelopersGuide/DevelopingPlugins for more info. JOSM reads meta-data about available plugins from http://josm.openstreetmap.de/plugin and the following steps ensure that the 'scripting' plugin is properly listed in this plugin directory.
There is a special branch 'deploy' for deploying.
% git checkout deploy
% git merge master # merge the development work from the branch 'master'
% ant dist # this creates dist/scripting.jar which is part
# of the Git tree under this branch
% git push origin deploy # Pushes the latest build to git hub
If the build requires a minimal JOSM version, i.e. JOSM 1234, then run the following steps:
Remember the current plugin version and the JOSM version it is compatible with by adding a configuration entry to build.properties, i.e. plugin.1111.requires=8888
Increase the plugin version in build.properties by setting the property 'plugin.version', i.e. plugin.version=2222
Set the lowest JOSM version the plugin is compatible. Use property 'josm.required.version' in 'build.properties', i.e. josm.required.version=9999
The plugin Manifest will then include version information used by JOSMs plugin update system, for instance:
1111-Plugin-Url: 1111;https://raw.github.com/Gubaer/josm-scripting-plugin/for-josm-8888/dist/scripting.jar
Finally, switch to branch deploy, merge and upload % git checkout -f deploy % git merge master % git push origin
Build the jar and push it too
% ant dist # creates the scripting.jar, dependency specifications
# become part of the Manifest in the plugin
% git push origin deploy # push the jar to Git Hub
Tag the latest build and push the new tag
% git tag for-josm-9999 HEAD # tag the latest commit
% git push origin for-josm-999 # makes sure the latest build is tagged with 'for-josm-1234'
This ensures, that the latest scripting plugin is available from https://raw.github.com/Gubaer/josm-scripting-plugin/deploy/dist/scripting.jar
The scripting plugin requiring JOSM 8888 is available from https://raw.github.com/Gubaer/josm-scripting-plugin/for-josm-8888/dist/scripting.jar
AUTHOR
Karl Guggisberg karl.guggisberg@guggis.ch