
josmeditor's Diary
Recent diary entries
Planned removal of JavaScript API of JOSM configuration XML files
Posted by josmeditor on 5 March 2020 in English (English).Hi all,
Due to the planned removal of the JavaScript engine Nashorn from Java, we have to take action. Nashorn was in use for three features of JOSM core:
- opening_hours validator based on opening_hours.js
- overpass-wizard (in download dialog)
- JavaScript API of JOSM configuration XML files
Item 1 has been resolved by migrating to OpeningHoursParser written by Simon Poole for Vespucci.
For item 2, we plan to use a hosted service (likely on the JOSM server) for turning user input into Overpass Queries.
For item 3, we don’t see a viable alternative. We plan to remove this feature with the next JOSM release unless someone steps up with a killer-user-case and migration plan.
Please share your feedback, if any, on the josm-dev mailing list.
Thanks for reading and happy mapping,
Simon (simon04) and Vincent (Don-vip) for the JOSM team
don-vip speaking, originally from JOSM Twitter account:
I read many incorrect statements about the new Java license from Oracle on the German OSM forum mentioned in weeklyOSM 458. Let’s see in detail what all is this about.
First of all, a little bit of history/terminology. Java was created in 1995 by Sun. We call “Java” both the programming language and the platform that runs JOSM (JRE = Java Runtime Environment). Several platforms, from multiple vendors, exist.
The JDK (Java Development Kit) contains the JRE but also developer tools (mainly, the java compiler). In 2006, around the release of Java 6, Sun announced its intention to open-source Java in a new project: OpenJDK.
OpenJDK is badly named, like OpenStreetMap. We don’t only map streets… Well OpenJDK project does not only concern the JDK but the whole Java platform (language, spec, tools, APIs, etc.). @speakjava explains it nicely.
Sun open sourced many things from Java into the OpenJDK project, but not all things. In particular, Windows/Mac installers and deployment technologies like WebStart were not open sourced (we don’t know why).
It means OpenJDK is only a “source code” project. Building it is very complex, and nobody took the pain to distribute free binaries for Windows & Mac. Only Red Hat did it for Linux in the IcedTea project. If you have 100% free Java on Linux, it’s thank to them.
In 2009 Oracle bought Sun. They didn’t change things radically until recently. So even today most of Windows and Mac users are still using proprietary JRE binaries from Oracle, that are built upon open source project OpenJDK.
Oracle made a very good job in releasing Java 8 in 2014, then Java 9 in 2017. We even collaborated with them in mutual good faith. Then, all hell broke loose.
They changed the Java release cycle to to a fixed 6 months schedule (2 versions per year). We are now at Java 12 (which is by the way the most unimpressive version of Java: nothing new in it).
They changed the licence of the Oracle JDK: basically if you are an enterprise and want to use Oracle binaries, you have to pay. They introduced the notion of Long Term Support versions (LTS). Java 8 is an LTS, Java 11 too. For more details about “release train” and licencing, see the excellent blog post by @hendrikEbbers.
And concerning the Java 8 binaries that almost everyone uses on Windows and Mac, they changed the licence to a free for personal desktop use, through at least the end of 2020.
These changes came from nowhere and the Java community was not prepared for it. So it required some time until we can get to a free replacement to the Oracle binaries on Windows and Mac, and that’s why we didn’t advise anyone to switch to something else yet.
But we’re almost there thanks to @adoptopenjdk! This community-based project offers free downloads of OpenJDK on all platforms!
We’re just waiting for the availability of a few enhancements of the AdoptOpenJDK installer before advising everyone to switch.
1) The inclusion of JavaFX (another technology abandoned by Oracle and now maintained by @GluonHQ), which is used by JOSM to play MP3 files, and by some plugins like Microsoft StreetSide.
2) The inclusion of IcedTea-Web (the free implementation of Java WebStart which has also been abandoned by Oracle). We can thank Red Hat (again) for this project, plus also @karakun and AdoptOpenJDK for their work.
3) An auto-update feature to make sure everyone can automatically get security updates.
Once all these issues are resolved (hopefully long before end of 2020) we’ll ask everyone to switch to AdoptOpenJDK. Until now, even if we despise Oracle for all of this, we still advise to keep the current Oracle JRE, at least for the automatic security updates.
This is also why we still target Java 8 as a minimum. Once everyone is able to run JOSM using AdopOpenJDK binaries, we’ll likely switch to Java 11! Which is by the way now maintained by Red Hat and not by Oracle :)
The 18.06 version (13996) is out!
Notable changes in this release:
-
To address a growing performance issue while dragging the map when street labels are displayed, we now disable label rendering during this operation:
-
It is now possible to quickly switch from one imagery layer to another using the tilde key (~ on QWERTY keyboard layout) or the square key (² on AZERTY layout):
-
If you’re running Java 8 (which is still the recommended version), you won’t be prompted to switch to latest version of Java (currently 10.0.1), because Oracle is messing up by removing a lot of features used by JOSM.
For more details about the other changes and bugfixes, see the summarized changelog.
Happy mapping!
We recently added Korean translation thanks to the precious work of Korean contributors, making JOSM available in 36 languages! But does it mean JOSM supports all major languages of the world? Clearly not:
For large regions (Middle-East, North Africa, Balkans…), JOSM has not been translated yet in any official language.
If we check the top 20 languages by the number of native speakers, only 11 are supported:
This makes Hindi, Arabic and Bengali the most important languages to add.
We need help for this! You can contribute to translations on Launchpad, or share the news!
JOSM reaches version 10000 in its 10th year
Posted by josmeditor on 16 March 2016 in English (English).Today we reached the 10,000th commit in JOSM source code repository, suddenly adding a 5th digit to our version number!
This symbolic milestone occurs a few weeks after the 10th birthday of JOSM 1.0, which was released on January 22nd, 2006 (yep, back in time, JOSM used real version numbers. The current versioning scheme was introduced in early 2008 for practical reasons). If you’re curious about how many versions of JOSM have been released since, check out the release log.
To celebrate these two events, we have “rebuilt” JOSM development history by using a nice open source tool (SonarQube). You can check the results here.
This allows to see how JOSM evolved over time. For example, how the source code increased:
Lines of code
Each dot represents a tested version.
It does not only compute code volumetry, we use it mainly to measure code quality. Here are some interesting charts showing how JOSM evolves behind the scene, as we constantly improve code quality and unit test coverage:
Duplicated lines (%)
Code coverage (%)
Public documented API (%)
Technical Debt (days), as computed by SonarQube
Number of unit tests
As you can see, we’re putting a lot of effort to increase unit tests coverage lately. JOSM is tested automatically after each modification by our continuous integration system (powered by another great open source software: Jenkins). We’re testing several Java versions (JDK 7, 8, and early access snapshots of JDK 9).
Remember we will soon drop support for Java 7 and begin to use new features of Java 8, that will be the next big step in JOSM development!
The February release is delayed a few days until we clarify a certificate problem with OpenStreetMap Foundation.
What could help us: if you are a StartSSL customer (or know one), please ask them when they intend to be included in Java list of Root Certificate Authorities.
The goal is to be able to keep HTTPS access to the OSM API and website, for old and new versions of JOSM.
The January version of JOSM is now available as version 7995 :)
This version is mainly a bugfix release, here are the release notes for visible enhancements:
Notable changes
major enhancements
- Show photo direction arrow for thumbnail
minor enhancements
- Presets/Map styles/Validator:
- complete review across the whole preset menu, to make icons and supported geometries of preset/mappaint/validator/wiki more consistent
- add to preset
note
,fixme
anddescription
,construction
,bicycle_repair_station
,highway=escape
,brand=Eni,Socar
- fix validator for
motorcycle_parking
,sport
withbuilding
,aeroway=terminal
,conifer
,natural=peak
+sport=climbing
,place_of_worship
withoutreligion
,noname=yes
, multipolygons and boundaries,levels
, unnamedroundabout
- fix
aerialway
,route
,facilities
,place
,natural
, associated street relations,shop
,man_made
,historic
andbridge
,power
,highway=traffic_signal
+crossing=no
,farm_auxiliary
,barn
andfarm
,protect_class
,water
,transport
,pharmacy
- Size check for source comments
- Proper selection state in selection dialog
- Usability for history dialog
Happy mapping,
The JOSM team
The December version of JOSM is now available as version 7906 :)
This version contains a lot of bugfixes, here are the release notes for visible enhancements:
Notable changes
major enhancements
- Two new languages: Asturian and Khmer
- Experimental new TMS tile cache structure, to enable with advanced property
tms.newcache=true
- JOSM directories:
- Java system properties
josm.pref
,josm.cache
andjosm.userdata
to set preferences, cache, and user data (including plugins) directories - Windows: change cache folder to
%LOCALAPPDATA%/JOSM
on Windows Vista and later - OS X: change cache folder to
~/Library/Caches/JOSM
, preferences to~/Library/Preferences/JOSM
, user data to~/Library/JOSM
- Java system properties
minor enhancements
- Presets/Map styles:
- Changed color of
highway=track
from green to brown for better visibility on aerial imagery background (in forests) and distinction from paths and steps - Added
advertising=column/billboard
,highway=traffic_mirror
,leisure=picnic_table
- Updated
shop=bicycle
- Refined icons for combinations of
highway=traffic_signals
andcrossing=*
- Drop mappaint support of
building=entrance
,amenity=emergency_phone
,highway=unsurfaced
- Icon and geometry consistency between default presets and map paint style for
barrier=*
, highway waypoints
- Changed color of
- Validator:
- Added warnings for tags on isolated nodes, which should be part of a way
- Added warnings for
footway
- Added warnings for
addr:street
together withhighway
,noname=yes
together withname
, alternative name without name,destination
on a non oneway,amenity=yes
,place=yes
,levels
,place_name
, non integerlanes
- Notes
- Add note sorting options
- Display note IDs
- Ability to copy path of selected geotagged image
Happy mapping and happy new year,
The JOSM team
JOSM 7777 released, with a brand new logo
Posted by josmeditor on 10 December 2014 in English (English).The November version of JOSM is now available (a bit late) as version 7777 :)
You probably have already seen that we have now a great new logo! It has been designed by Ilya Palikov (Diamond00744), who won our logo contest (see results here).
Thanks again to everyone who participated to this contest, it has been a very difficult choice for us, especially during the final phase where we had to choose between two brilliant designs.
It took us several iterations before reaching the final winning design, Ilya has made a nice “making-of” on DeviantArt:
Apart of the new logo, here are the release notes:
Notable changes
major enhancements
- New logo
- Ability to download/upload Notes
minor enhancements
- Menu icons reduced to 16x16 pixels by default
- Autocomplete: remember user input and prefer recently entered strings
- Removed history toggle dialog in favour of a new history button in selection toggle dialog
- Display changeset discussions (comments) in changeset dialog
- Presets/Map styles/Validator:
- Added
man_made=bridge/bunker_silo
,power=pole
withtransformer
,shop=music/funeral_director/wine/art/tatoo/farm
,sidewalk
,boundary=protected_area
,width
,monitoring:groundwater
- New icons for
man_made=breakwater
,barrier=spikes
,landuse=orchard
- Updated style and validator warning for
parking
- Icon unification (same icon for preset and map paint style) for some
sport
,generator:source
,landuse
,natural
andamenity=drinking_water
icons - Drop support of
restriction
,landuse
and somenatural
on nodes
- Added
- Remember recently used tags across sessions by default
- Allow to sum all numeric values as conflict resolution of
capacity
,capacity:*
andstep_count
Cheers,
The JOSM team