JMRI: Technology Road Map History
This page is the historical version of the road map for
JMRI's future development. It contains notes on older releases.
For more recent work, see the main Technology Road Map page.
Java Release and Operating System SupportMore information on Java releases and the operating systems that support them is on a separate page.
JMRI Release and Development Plan HistoryThis section describes the (notional) plans for JMRI releases.
|1.8||Production version, culmination of 1.7.* series||July 2007 (done)|
|2.0||Production version, culmination of 1.9.* series||December 2007 (done)||1.3||1.4|
|2.2||Production version, culmination of 2.1.* series||June 2008 (done)||1.4||1.5|
|2.4||Production version, culmination of 2.3.* series||December 2008 (done)||1.5||1.5|
|2.6||Production version, culmination of 2.5.* series||June 2009 (done)||1.5||1.5|
|2.8||Production version, culmination of 2.7.* series||December 2009 (done)||1.5||1.5|
|2.10/3.0||Production version, culmination of 2.9.* series||June 2010 (done)||1.5||1.5|
|?.?||Production version, culmination of ?.?.* series||?||?|
|3.8||Production version, culmination of 3.7.* series||July 2014 (done)||1.6||1.6|
|3.10||Production version, culmination of 3.9.* series||December 2014 (done)||1.6||1.6|
JMRI 1.9, 2.0The JMRI 1.9 development series moved forward to JRE 1.3, JDK 1.4. This permitted use of:
- Collections in java.util instead of com.sun
- Java2D, along with the associated printing support
- Annotations (we need to develop conventions for their use)
- JDOM 1.0 - Simplifies XML code, allows use of XSLT for dynamic combination
- JUnit 3.8 - Minor improvements to test writing ease
- Fewer jar files included in distribution
- The Jakarta regexp regular expression library. (At some later point, we'll have to move that forward to java.util.regexp, but that won't be available until Java 1.4 in a later JMRI release)
JMRI 1.9 and 2.0 will run on Windows 95 and later, all versions of Mac OS X, and all versions of Linux.
To build JMRI 1.9 and 2.0, you will need Windows 98 1st Ed or later, any version of Mac OS X, or (almost any?) version of Linux.
JMRI 2.1, 2.2The JMRI 2.1 development series moves forward to JRE 1.4, JDK 1.5. This permits use of (subject to verification):
- SwingWorker (and associated updates of threading)
- JUnit 4.0
- JavaHelp update
- Drag and Drop
- Annotations (we'll have to develop conventions for these)
- Java regular expressions (java.util.regexp)
JMRI 2.1 and 2.2 will run on Windows 98 1st Ed or later, any version of Mac OS X, or version of Linux.
To build JMRI 2.1 and 2.2, you will need Windows 98 2nd Ed or later, Mac OS X 10.4 or later, or (almost any?) version of Linux.
JMRI 2.3, 2.4The JMRI 2.3 development series moves forward to JRE 1.5, JDK 1.5. This permits use of (subject to verification):
- JSpinner (and removal of our replacement in jmri.util)
- Enums (we'll need to make decisions about interface updates, e.g. Turnout.CLOSED)
- printf, Formatter
- generics (subject to decisions about conventions and interface updates)
JMRI 2.3 and 2.4 will run on Windows 98 2nd Ed or later, Mac OS X 10.4 or later, or (almost any?) version of Linux.
To build JMRI 2.1 and 2.2, you will need Windows 98 2nd Ed or later, Mac OS X 10.3 or later, or (almost any?) version of Linux.
JMRI 2.5, 2.6, 2.7, 2.8These versions will continue to use Java 1.5 for both building and running.
During the 2.7 build series, we moved from the Crimson XML parser to Xerces.
JMRI 2.9, 2.10/3.0Plans for the JMRI 2.9 development series are not final.
The JRE and JDK choice for JMRI 2.9 development will depend on desired runtime features, and availability on our popular user and development platforms. It is tentatively Java 1.5 for both building and running, which is the same as JMRI 2.3.* and following ones.
During the 2.9.* series, we intend to move from the javax.comm serial classes to the RXTX gnu.io classes, either via RXTX 2.2-pre2 or some later version. This will remove support for the MS100 from JMRI applications.
JMRI after Summer 2010After JMRI 2.10/3.0 in early summer 2010, development will continue. It's likely that soon after that, if not before, we'll have to move to using Java 1.6.
JMRI 3.9, 3.10 (End of 2014)The JMRI 3.9 development series will stay with Java 1.6 for JRE and SDK.
JMRI 3.11, 4.0 (Summer 2015)For multiple reasons including
- Improved performance, particularly of web I/O and XML file loading, and
- Language and library improvements that made the developer's work easier,
Planned JMRI changes that affect backwards-compatibility:
- Planned removal of XmlIO web service.
- Removal of deprecated InstanceManager methods
- Removal of some deprecated pass-through classes
New library features (subject to verification):
- Update to JDOM 2 for efficiency and coding convenience
- Update Jython to at least 2.5.4 (bug fixes), and depending on compatibility testing, perhaps 2.7.* (for modern Python)
- Start using JSR 305 annotations via SpotBugs to strengthen the code checking (see this and this).