J661 development encompass:
- Plugins development: Plugins allow to add functionalities to a Client, Server, or Editor, but do not extend the behavior of the Server or Client (for exemple, a Plugin can't add new custom widgets)
- J661 extensions development: J661 extensions allow to extend the behavior of the Server or Client, for exemple adding new widgets, a new Protocol, etc..
- The core J661 development itself. Note that the core J661 code tries to be as close as possible to the ARINC 661 standard, which means that there are no custom widgets in the core
Note that normally you should not have to change J661 code to add your functionalities, J661 is very modular, normally developing a Plugin or a J661 extension will be enough to fullfill your needs.
See Project architecture
for an overview of the project architecture. See Server architecture
for an overview of the Server architecture.
When to develop a Plugin
You should develop a Plugin if you want to add functionalities to the Server, Client, or Editor but do not want to change the way the Server or CLient works. For example existing Plugins:
- Scenario Plugin: Allow to save and load runtime Buffers in the Client or the Server
- Editor Scripting Plugin: Allow to execute Scripts in the Editor
- UACDS Plugin: Allow to Edit an UACDS Interface in the Editor
- Snapshot Plugin: Allow to save a PPT, SVG or image Snapshot in the Server or Editor
- WidgetDef Plugin: Allow to check the Meta−definition, or generate a Word document with the Meta−definition
When to develop a J661 extension
You should develop a J661 extension when you want to chagne the way the Client or Server works. For example:
- Change the Meta−definition
- Add new widgets, MapItems, Symbol Commands, etc...
- Add a new renderer for an existing widget
- Add a new protocol
- Add a new Window Manager
The J661 Project provides several thousands of Unit Tests defined using JUnit. See the Unit Tests
article for how to develop Unit tests on J661 functionalities.
Copyright 2016 Dassault Aviation. All Rights Reserved. Documentation and source under the GPL v2 licence