Files
JIMRI/help/en/html/doc/Technical/TechRoadMapOlder.shtml
2026-06-17 14:00:51 +02:00

455 lines
13 KiB
Plaintext

<!DOCTYPE html>
<html lang="en">
<head>
<meta name="generator" content="HTML Tidy for HTML5 for Apple macOS version 5.8.0">
<title>JMRI: Technology Road Map History</title>
<meta name="author" content="Bob Jacobsen">
<meta name="keywords" content="JMRI technical code road map">
<!--#include virtual="/help/en/parts/Style.shtml" -->
</head>
<body>
<!--#include virtual="/help/en/parts/Header.shtml" -->
<div id="mBody">
<!--#include virtual="Sidebar.shtml" -->
<div id="mainContent">
<h1>JMRI: Technology Road Map History</h1>
<p>This page is the historical version of the road map for JMRI's future development. It
contains notes on older releases.<br>
For more recent work, see the <a href="TechRoadMap.shtml">main Technology Road Map
page</a>.</p>
<h3>Java Release and Operating System Support</h3>
More information on Java releases and the operating systems that support them is on a
<a href="JVMCapabilities.shtml">separate page</a>.
<h2>JMRI Release and Development Plan History</h2>
This section describes the (notional) plans for JMRI releases.
<table border="1">
<tr>
<th>Release</th>
<th>Description</th>
<th>Date</th>
<td>JRE</td>
<td>JDK</td>
</tr>
<tr>
<td>1.8</td>
<td>Production version, culmination of 1.7.* series</td>
<td>July 2007 <strong>(done)</strong></td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>1.9.*</td>
<td>Development series</td>
<td>
</td>
<td>1.3</td>
<td>1.4</td>
</tr>
<tr>
<td>2.0</td>
<td>Production version, culmination of 1.9.* series</td>
<td>December 2007 <strong>(done)</strong></td>
<td>1.3</td>
<td>1.4</td>
</tr>
<tr>
<td>2.1.*</td>
<td>Development series</td>
<td>
</td>
<td>1.4</td>
<td>1.5</td>
</tr>
<tr>
<td>2.2</td>
<td>Production version, culmination of 2.1.* series</td>
<td>June 2008 <strong>(done)</strong></td>
<td>1.4</td>
<td>1.5</td>
</tr>
<tr>
<td>2.3.*</td>
<td>Development series</td>
<td>
</td>
<td>1.5</td>
<td>1.5</td>
</tr>
<tr>
<td>2.4</td>
<td>Production version, culmination of 2.3.* series</td>
<td>December 2008 <strong>(done)</strong></td>
<td>1.5</td>
<td>1.5</td>
</tr>
<tr>
<td>2.5.*</td>
<td>Development series</td>
<td>
</td>
<td>1.5</td>
<td>1.5</td>
</tr>
<tr>
<td>2.6</td>
<td>Production version, culmination of 2.5.* series</td>
<td>June 2009 <strong>(done)</strong></td>
<td>1.5</td>
<td>1.5</td>
</tr>
<tr>
<td>2.7.*</td>
<td>Development series</td>
<td>
</td>
<td>1.5</td>
<td>1.5</td>
</tr>
<tr>
<td>2.8</td>
<td>Production version, culmination of 2.7.* series</td>
<td>December 2009 <strong>(done)</strong></td>
<td>1.5</td>
<td>1.5</td>
</tr>
<tr>
<td>2.9.*</td>
<td>Development series</td>
<td>
</td>
<td>1.5</td>
<td>1.5</td>
</tr>
<tr>
<td>2.10/3.0</td>
<td>Production version, culmination of 2.9.* series</td>
<td>June 2010 <strong>(done)</strong></td>
<td>1.5</td>
<td>1.5</td>
</tr>
<tr>
<td>3.8</td>
<td>Production version, culmination of 3.7.* series</td>
<td>July 2014 <strong>(done)</strong></td>
<td>1.6</td>
<td>1.6</td>
</tr>
<tr>
<td>3.9.*</td>
<td>Development series</td>
<td>
</td>
<td>1.6</td>
<td>1.6</td>
</tr>
<tr>
<td>3.10</td>
<td>Production version, culmination of 3.9.* series</td>
<td>December 2014 <strong>(done)</strong></td>
<td>1.6</td>
<td>1.6</td>
</tr>
<tr>
<td>3.11.*</td>
<td>Development series</td>
<td>
</td>
<td>1.6</td>
<td>8</td>
</tr>
<tr>
<td>4.0</td>
<td>Production version, culmination of 3.11.* series</td>
<td>July 2015 <strong>(done)</strong></td>
<td>8</td>
<td>8</td>
</tr>
<tr>
<td>4.1.*</td>
<td>Development series</td>
<td>
</td>
<td>8</td>
<td>8</td>
</tr>
<tr>
<td>4.2</td>
<td>Production version, culmination of 4.1.* series</td>
<td>December 2015 <strong>(done)</strong></td>
<td>8</td>
<td>8</td>
</tr>
<tr>
<td>4.3.*</td>
<td>Development series</td>
<td>
</td>
<td>8</td>
<td>8</td>
</tr>
<tr>
<td>4.4</td>
<td>Production version, culmination of 4.3.* series</td>
<td>Early Summer 2016</td>
<td>8</td>
<td>8</td>
</tr>
<tr>
<td>4.5.*</td>
<td>Development series</td>
<td>
</td>
<td>8</td>
<td>8</td>
</tr>
<tr>
<td>4.6</td>
<td>Production version, culmination of 4.5.* series</td>
<td>Late Fall 2016</td>
<td>8</td>
<td>8</td>
</tr>
<tr>
<td>4.7.*</td>
<td>Development series</td>
<td>
</td>
<td>8</td>
<td>8</td>
</tr>
<tr>
<td>4.8</td>
<td>Production version, culmination of 4.7.* series</td>
<td>Early Summer 2017</td>
<td>8</td>
<td>8</td>
</tr>
<tr>
<td>4.9.*</td>
<td>Development series</td>
<td>
</td>
<td>8</td>
<td>8</td>
</tr>
<tr>
<td>4.10</td>
<td>Production version, culmination of 4.9.* series</td>
<td>December 2017</td>
<td>8</td>
<td>8</td>
</tr>
<tr>
<td>4.12</td>
<td>Production version, culmination of 4.11.* series</td>
<td>July 2018</td>
<td>8</td>
<td>8</td>
</tr>
<tr>
<td>4.14</td>
<td>Production version, culmination of 4.13.* series</td>
<td>December 2018</td>
<td>8</td>
<td>8</td>
</tr>
<tr>
<td>4.16</td>
<td>Production version, culmination of 4.15.* series</td>
<td>July 2019</td>
<td>8</td>
<td>8</td>
</tr>
<tr>
<td>4.18</td>
<td>Production version, culmination of Fall 2019 series</td>
<td>December 2019</td>
<td>8</td>
<td>8</td>
</tr>
<tr>
<td>4.20</td>
<td>Production version, culmination of Spring 2020 series</td>
<td>July 2020</td>
<td>8</td>
<td>8</td>
</tr>
</table>
<h4>JMRI 1.9, 2.0</h4>
The JMRI 1.9 development series moved forward to JRE 1.3, JDK 1.4. This permitted use of:
<ul>
<li>Collections in java.util instead of com.sun</li>
<li>Java2D, along with the associated printing support</li>
<li>Annotations (we need to develop conventions for their use)</li>
<li>JDOM 1.0 - Simplifies XML code, allows use of XSLT for dynamic combination</li>
<li>JUnit 3.8 - Minor improvements to test writing ease</li>
<li>Fewer jar files included in distribution</li>
<li>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)</li>
</ul>
<p>JMRI 1.9 and 2.0 will run on Windows 95 and later, all versions of Mac OS X, and all
versions of Linux.</p>
<p>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.</p>
<h4>JMRI 2.1, 2.2</h4>
The JMRI 2.1 development series moves forward to JRE 1.4, JDK 1.5. This permits use of
(subject to verification):
<ul>
<li>SwingWorker (and associated updates of threading)</li>
<li>JUnit 4.0</li>
<li>Java3D</li>
<li>JavaHelp update</li>
<li>Drag and Drop</li>
<li>Annotations (we'll have to develop conventions for these)</li>
<li>JavaMail</li>
<li>Java regular expressions (java.util.regexp)</li>
</ul>
<p>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.</p>
<p>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.</p>
<h4>JMRI 2.3, 2.4</h4>
The JMRI 2.3 development series moves forward to JRE 1.5, JDK 1.5. This permits use of
(subject to verification):
<ul>
<li>JSpinner (and removal of our replacement in jmri.util)</li>
<li>Enums (we'll need to make decisions about interface updates, e.g. Turnout.CLOSED)</li>
<li>printf, Formatter</li>
<li>generics (subject to decisions about conventions and interface updates)</li>
</ul>
<p>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.</p>
<p>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.</p>
<h4>JMRI 2.5, 2.6, 2.7, 2.8</h4>
These versions will continue to use Java 1.5 for both building and running.
<p>During the 2.7 build series, we moved from the Crimson XML parser to Xerces.</p>
<h4>JMRI 2.9, 2.10/3.0</h4>
Plans for the JMRI 2.9 development series are not final.
<p>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 <u>tentatively</u> Java
1.5 for both building and running, which is the same as JMRI 2.3.* and following ones.</p>
<p>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.</p>
<h4>JMRI after Summer 2010</h4>
After 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.
<!-- following added from TechRoadMap.shtml December 2015 -->
<h4>JMRI 3.9, 3.10 (End of 2014)</h4>
The JMRI 3.9 development series will stay with Java 1.6 for JRE and SDK.
<h4>JMRI 3.11, 4.0 (Summer 2015)</h4>
For multiple reasons including
<ul>
<li>Improved performance, particularly of web I/O and XML file loading, and</li>
<li>Language and library improvements that made the developer's work easier,</li>
</ul>
the Spring 2015 series of test releases (JMRI 3.11.*) required Java 1.8 for both building and
running. Java 1.8 is also required for the Summer 2015 production release and those that
follow.
<p>Planned JMRI changes that affect backwards-compatibility:</p>
<ul>
<li>Planned removal of XmlIO web service.</li>
<li>Removal of deprecated InstanceManager methods</li>
<li>Removal of some deprecated pass-through classes</li>
</ul>
<p>New library features (subject to verification):</p>
<ul>
<li>Update to JDOM 2 for efficiency and coding convenience</li>
<li>Update Jython to at least 2.5.4 (bug fixes), and depending on compatibility testing,
perhaps 2.7.* (for modern Python)</li>
<li>Start using <a href="https://jcp.org/en/jsr/detail?id=305">JSR 305 annotations</a>
<a href="http://spotbugs.github.io">via SpotBugs</a> to strengthen the code checking (see
<a href="https://today.java.net/pub/a/today/2008/09/11/jsr-305-annotations.html">this</a>
and <a href=
"http://findbugs.sourceforge.net/api/edu/umd/cs/findbugs/annotations/package-summary.html">
this</a>).
</li>
</ul>
<!--#include virtual="/help/en/parts/Footer.shtml" -->
</div>
<!-- closes #mainContent-->
</div>
<!-- closes #mBody-->
<script src="/js/help.js"></script>
</body>
</html>