LogixNG Tutorial - Chapter 99
Note to reviewers of JMRI. When to merge LogixNG?
LogixNG is a huge PR. Around 800 files, where most of them are new. On the other hand, almost all of LogixNG are
in separate folders and if it's not used by the user, the impact on the rest of JMRI should be minimal.
Version numbers
LogixNG has been developed for the last two years. Once consequence is that there are version numbers for older
versions of JMRI that needs to be changed once it's time to release LogixNG. The ones I'm aware of now is:
- help/en/releasenotes/current-draft-note.shtml
- xml/schema/layout-4-19-2.xsd
- xml/schema/logixng/... - the schema files has version numbers and all of these needs to be changed.
File structure
Almost all of LogixNG is in separate folders with a few exceptions. The exceptions are:
- help/en/releasenotes/current-draft-note.shtml
- java/src/apps/Apps.java - Setup the LogixNGs when the application starts
- java/src/apps/AppsBase.java - Setup the LogixNGs when the application starts
- java/src/jmri/configurexml/LoadXmlConfigAction.java - Setup the LogixNGs when loaded
- java/src/jmri/jmrit/Bundle.properties
- java/src/jmri/jmrit/ToolsMenu.java - Adds the LogixNG menu items
- java/src/jmri/jmrit/beantable/AbstractLogixNGTableAction.java - abstract class for the LogixNG bean tables
- java/src/jmri/jmrit/beantable/BeanTableBundle.properties
- java/src/jmri/jmrit/beantable/BeanTableStartupActionFactory.java
- java/src/jmri/jmrit/beantable/ListedTableFrame.java - Add LogixNG bean tables to the list of bean tables
- java/src/jmri/jmrit/beantable/LogixNGModuleTableAction.java
- java/src/jmri/jmrit/beantable/LogixNGTableAction.java
- java/src/jmri/jmrit/beantable/LogixNGTableTableAction.java
- java/test/jmri/configurexml/LoadAndStoreTestBase.java - REMOVE THIS!!!
- java/test/jmri/jmrit/beantable/LogixNGTableActionTest.java
- java/test/jmri/util/JUnitUtil.java - the method initLogixNGManager()
- xml/schema/layout-4-19-2.xsd - includes the LogixNG schema files
The folders for LogixNG are:
- java/src/jmri/jmrit/logixng/ - Tests for LogixNG
- java/test/jmri/jmrit/logixng/ - Tests for LogixNG
- java/src/jmri/jmrix/loconet/logixng/ - LocoNet actions and expressions for LogixNG
- java/test/jmri/jmrix/loconet/logixng/ - Tests for LocoNet actions and expressions for LogixNG
- xml/schema/logixng/ - schema files for LogixNG
Tests
There is not enough tests of LogixNG to be satisfied, but much of the code base are tested. LogixNG has the benefit
of having a huge amount of small classes, there most of the classes is quite easy to test. On the other hand, due to
the size of LogixNG, there is a huge amount of code that needs to be written to test LogixNG throughout.
|