This PR introduces a plugin system for the sequencing server in efforts for Seq 2.0:
Plugin loader: A flexible plugin loader has been added to support various dictionary parsers. By default, the AMPCS dictionary parser is loaded from /ampcs-dictionary-parser/ampcs-parser.js.
Plugin manager: The PluginManager has been implemented to manage the loaded parsers and their use in dictionary uploads.
Dictionary parsing: Dictionary uploads now leverage the parsers provided by the PluginManager, allowing for more diverse dictionary formats.
Nested repeat arguments: Support for nested repeat arguments has been added to the eDSL generation, enabling better handling of Fprime dictionaries. Sequence expansion is experimental with FPrime dictionaries
New environment variable: A new environment variable has been introduced to specify the path to a custom dictionary parser, providing flexibility in parser selection.
Dictionary parser plugins: Two new plugins have been created:
AMPCS Dictionary Parser Plugin: This plugin moves the parsing code from the sequencing server into a separate Node.js project, built using Gradlew assemble.
FPrime Dictionary Parser Plugin: This plugin is also a Node.js project, built using gradlew assemble from the sequencing server.
Sequencing server configuration: The sequencing server has been configured to build the Aerie-supported dictionary parser plugins.
Testing:
In the docker-compose file uncomment line DICTIONARY_PARSER_PLUGIN to use the FPrime parser
Build the sequencing server ./gradlew sequence-server:clean; ./gradlew sequencing-server:assemble;
Destroy and Rebuild the sequencing server container
Ensure you use the UI branch linked to this PR.
You can now upload the FPrime dictionary via the UI under the 'Dictionary Section'. ./sequencing-server/plugins/fprime-dictionary-parser/test/dictionary/RefTopologyDictionary.json
Description
Frontend PR: https://github.com/NASA-AMMOS/aerie-ui/pull/1447
This PR introduces a plugin system for the sequencing server in efforts for Seq 2.0:
Plugin loader: A flexible plugin loader has been added to support various dictionary parsers. By default, the AMPCS dictionary parser is loaded from /ampcs-dictionary-parser/ampcs-parser.js.
Plugin manager: The PluginManager has been implemented to manage the loaded parsers and their use in dictionary uploads.
Dictionary parsing: Dictionary uploads now leverage the parsers provided by the PluginManager, allowing for more diverse dictionary formats.
Nested repeat arguments: Support for nested repeat arguments has been added to the eDSL generation, enabling better handling of Fprime dictionaries. Sequence expansion is experimental with FPrime dictionaries
New environment variable: A new environment variable has been introduced to specify the path to a custom dictionary parser, providing flexibility in parser selection.
Dictionary parser plugins: Two new plugins have been created:
AMPCS Dictionary Parser Plugin: This plugin moves the parsing code from the sequencing server into a separate Node.js project, built using Gradlew assemble.
FPrime Dictionary Parser Plugin: This plugin is also a Node.js project, built using
gradlew assemble
from the sequencing server.Sequencing server configuration: The sequencing server has been configured to build the Aerie-supported dictionary parser plugins.
Testing:
./gradlew sequence-server:clean; ./gradlew sequencing-server:assemble;
./sequencing-server/plugins/fprime-dictionary-parser/test/dictionary/RefTopologyDictionary.json
Verification
Still got to update e2e test...