Release Notes for JMRI 4.99.5 release
Date: April 9, 2022
From: Bob Jacobsen
Subject: Test Release 4.99.5 of JMRI/DecoderPro is available for download.
Notes:
This is a test release. Please
post a note
if you encounter any new or old bugs!
And please back up your JMRI files before installing this, in case you want to go
back to an earlier version.
This is the next in a series of 4.99.* test releases to migrate JMRI to Java 11.
It requires Java 11 to work.
(See our page on downloading Java 11)
We expect this series to end in the next JMRI 5.0 production release at the end of Spring 2022.
(See the tentative release schedule)
Some of the changes involved are quite extensive.
They may require a certain amount of experience before they are working well.
Therefore, this test release should be considered experimental.
JMRI is now only available under the
GNU General Public License. For more information, please
see our
copyright and licensing page.
Update From Older JMRI Versions
If you are currently using a version older than JMRI 4.24, please follow these instructions carefully:
- Is your current version older than JMRI 4.12?
If so, then update to JMRI 4.12 first, and ensure everything works correctly: check
start-up, check things you need to be working, and check the JMRI log as well) before doing anything else.
Store your configuration and panel files under a new name and use those from now on.
Then continue with step 2.
If you are currently using JMRI 4.7.3 or earlier on Linux or macOS (Windows doesn't need this),
then it's very important
that you update to JMRI 4.12 and
carrying out the migration process described in the JMRI 4.12 release note
before updating to any later release.
- Is your current version older than JMRI 4.20?
Then update to JMRI 4.20 first, and ensure that works correctly (check
start-up, check things you need to be working, and check the JMRI log as well) before doing anything else
Save your preferences again.
Store your configuration and panel files under a new name, use those from now on, and go on to step 3.
- Is your current version older than JMRI 4.24?
Then update to JMRI 4.24 first, and ensure that works correctly (check
start-up, check things you need to be working, and check the JMRI log as well) before doing anything else
Save your preferences again.
Store your configuration and panel files under a new name and use those from now on.
- You can then install this release.
Following this multi-step order of updating via stable major releases safeguards you against possible migration issues
that can arise from skipping these versions.
New problems with this release
- When opening a Throttle, you may get an erroneous error dialog. You can just
dismiss it and continue. If you'd like to avoid it in future (until we get it fixed),
once you have the throttle open click "File -> Save Current Throttle".
This is GitHub
Issue 10874 and the fix is
PR 10875.
If this affects you, please either
wait for
JMRI 4.99.6,
or (once there's a fix for the problem) pick up a
JMRI development build installer
from
Jenkins.
New warnings for this release:
Older warnings
See the
JMRI 4.26 release note for more warnings predating the 4.99 development series,
including pointers to various migration issues.
These may be relevant to you if you're updating from an earlier version;
we strongly recommend you update to
JMRI 4.20
before installing this test release.
- Since JMRI 4.99.2
Example scripts related to MQTT moved from jython directory to jython\MQTT directory. This will require
an update to any start-up actions that reference their location.
- Since JMRI 4.99.1
This test release, and all subsequent ones, require the use of
Java 11 or later. Java 8 is explicitly not supported.
There's more information on this migration on the
JMRI Tech Road Map and
JVM Capabilities pages.
- Since JMRI 4.99.1
A number of classes and methods that have been deprecated for a long time
are removed in this release. These include:
- apps.JmriPlugin
- apps/startup/StartupActionFactory
- Routes/Turnouts/Sensors: One form of getNextAddress
- Handling of preferences from before JMRI 4.0; upgrade through JMRI 4.20 instead
- ShutDownTask, AbstractShutDownTask - use call & run methods now
- Removed JythonAutomaton, JythonAutomatonAction, JythonSiglet, JythonSigletAction
unused classes. These have been made obsolete by JMRI's native scripting,
and haven't been used since JMRI 1.2
- SSL (BlockBossLogic) - change to start/stop calls
- Various TrafficManagers.instance methods - use InstanceManager
- Throttle.getListeners() - use getPropertyChangeListeners
- Removed obsolete RosterRecorder class;
function now available via scripting
- Removed deprecated methods from Throttle panels
- Manager.getSystemNameList - rework with getNamedBeanSet
- Manager.getNamedBeanList - rework with getNamedBeanSet
- Manager.setPropertyChangesMuted - use setPropertyChangesSilenced
- Manager.getBeanBySystemName - use getBySystemName
- Manager.getBeanByUserName - use getByUserName
- FileChooserUtil
- get/setFontFamily in SystemConsolePreferencesManager
- throttle.FunctionPanel#changeState(..) has been replaced by #setSelected(..)
- Since JMRI 4.99.1
The PowerManager now only fires events with the id "power". Before this
release, it also fired events with the id "Power". Check that
your scripting code is looking for the right form.
- Since JMRI 4.99.1
This version no longer reads ZeroConf IPv4 and IPv6 preferences
written with JMRI 4.16 and before. Please make sure to upgrade
to JMRI 4.20 (or later) and save your preferences before
updating to this version if you have configured the WiThrottle preference pane.
Download links:
The
list of included changes is available from our
GitHub code repository.
Hardware Support
CBUS
- The consist tool is now available for the Pi-SPROG 3v2 in command station mode, the SPROG 3 Plus and the MERG CANCMD.
KPF-Zeller
- Improved the speed calibration
LocoNet
- Configuration - Permit disabling of interrogate messages.
- Slotmonitor - better guess the column widths
MERG
- The consist tool is now available for CBUS.
- Throttle support. JMRI Throttles can now operate
OpenLCB locomotives on OpenLCB / LCC Command Stations via the
Traction Protocol draft.
- Monitor Log updates. Decodes and prints the Traction
Protocol messages in the Monitor Log window.
- Accessibility changes. The network browser / tree is
now navigable using keyboard shortcuts. On the Configuration
Editor panel the keys F6 and Shift+F6 can be used to navigate
between subsequent sections of the configuration and the bar of
buttons at the bottom.
- Test Event button. In the Configuration Editor the
Event panels have a new button More... which opens a
dropdown. In the dropdown there is a Trigger button which sends
the given event. This is useful for testing. In the same
dropdown there is a Create Sensor button which for JMRI will
create a single-event sensor.
- Bug fixes. Fixes memory leak when opening many
different nodes' Configuration Editor windows. The CAN
Interface engine now correctly supports sending a message to a
Destination Node ID for which there is no currently registered
Alias in the Alias Map. The outgoing message will be enqueued
and an alias lookup interaction is triggered.
SPROG
- The consist tool is now available for the Pi-SPROG 3v2 in command station mode and for the SPROG 3 Plus.
New / Updated decoder definitions
Tam Valley Depot
- QuadLN_S - added support for new firmware version 3.1 features
ZIMO
- Fixed the coding for CV155 Half Speed Settings
Dispatcher
- Fixed bouncing speed slider in manual mode.
- Size AutoTrainsWindow correctly when going between auto and manual with use scroll bars off.
- Enabled disaplay scale speed for running with speed profiles.
Internationalization
- Spanish translation added to decoder and programmer panes
Throttle
- Add capability to display/print throttle files in easy-to-read browser format (using XSL transform)
- If there are at least two connections that have support for throttles, a
new menu
appears that lets you open a throttle for a particular connection.
Virtual Sound Decoder
- Added a new version of "advanced location following". This is now based
on a LayoutEditor panel and hence much easier to setup. See the
documentation for details.
Miscellaneous
- Add a search feature to the JmriHelp local web page.
- The method JUnitUtil.releaseThread(this) and JUnitUtil.releaseThread(this, delay)
has been removed. Use JUnitUtil.waitFor(int time) instead. Replace the call
JUnitUtil.releaseThread(this) with JUnitUtil.waitFor(JUnitUtil.DEFAULT_RELEASETHREAD_DELAY);
- Improve Block tracking in the case of a broken train being rejoined.
- Multiple updates to the Bachrus/KPF-Zeller speedometer support:
- Improved GUI
- Now handles programming on main without needing to go to service track first
- Improved speed matching algorithm
- Updated docs