JMRI: Technology Road MapThis page is the road map for JMRI's future develpoment, including changes to our use of Java technologies. It is maintained and updated through continuing discussion on the jmri-developers mailing list.
There's also a page containing the history, particularly the saga of how we moved forward to Java 1.6 and Java 1.8 across a series of platform-related changes.
JMRI ReleasesThis section describes the (notional) plans for JMRI releases in the future.
|4.0||Production version, culmination of 3.11.* series||July 2015 (done)||1.8||1.8|
|4.2||Production version, culmination of 4.1.* series||December 2015 (done)||1.8||1.8|
|4.4||Production version, culmination of 4.3.* series||Early Summer 2016||1.8||1.8|
|4.6||Production version, culmination of 4.5.* series||Late Fall 2016||1.8||1.8|
JMRI during and after 2016The 4.1.* series of test releases in Fall 2015 and the 4.3.* series in Spring 2016 continued with Java 1.8. The following 4.5.* series, in Fall 2016, continued with Java 1.8, but may involve other updates.
- At some point, we have to migrate away from JavaHelp and JHelpDev. At a minimum, we'll need to replace the renderer. There are several alternative help systems available. Oracle Help might be a good choice. DocBook as a tool for generating multiple documentation forms is also being considered.
- JUnit has been migrated to the current JUnit 4 release, currently 4.12. Among other improvements, this can allow use of the Java assert keyword. We're working on how best to use the new capabilities, see the JMRI JUnit page.
- USB access technology has advanced a lot since support for some basic libraries was added to JMRI. At some point, we should replace those early library versions, but it will break some user scripts.
- Our logging methodology is now a hybrid of native logging (in some included libraries), Log4J (our original solution) and SLF4J (the most recent addition). It's likely that we'll eventually simplify that.
Java Release and Operating System SupportMore information on Java releases and the operating systems that support them is on a separate page.
Migration NotesThis is a section of notes for various code migrations that are in progress or contemplated. See also the related section on the migration to Java 1.8.
From JDOM 1 to JDOM 2JMRI 3.11 moved from JDOM version 1 to JDOM version 2. This involved a new jdom-2.0.5.jar file (in place of the earlier jdom.jar), changes to startup and build control files, and some required code changes:
- JDOM 2 classes are in the org.jdom2 package instead of org.jdom. This required some changes to import statements and class-references in the source code.
- The default output formatting is different, requiring minor changes in e.g. the XmlFile class output routines.