Home
Categories
Dictionary
Download
Project Details
Changes Log
Who We Are
FAQ
License

J661 extension manifest properties



As explained in J661 extensions article, J661 extensions are jar files which allow to extend the behavior of the Server or Client. Extensions have:
  • Mandatory properties that always have to be present for any extension and allows to register them
  • Optional properties which specify which characteristics are extended
Note that J661 extensions are jar files, so the Manifest format specification apply to their development. For example, the Class-Path attribute in the manfest allows to specify Jar dependencies.

Mandatory properties

The mandatory properties only allow to register the extension.
  • "ExtensionID": The extension identification
  • "ExtensionVersion": The extension Version
  • "ExtensionDate": The extension date
All these properties are Strings, and J661 modules do not enforce any consistency for these Stringsd, excepts that two extensions must not have the same ExtensionID.

Note that it is not a problem to have Manifest properties not used by a particular J661 module. THese properties will simply be skipped for the associated module. For example, specific Server properties will be skipped if the extension is registered by the Client.

Optional properties

The optional properties are used for all the characteristics which are extended. The following lists are separated into basic and advanced properties, although there are no fundamental differences between these two kinds of properties. Note that all properties which refer to an URL path refer to a classpath in the exctension jar file. For example:
      Widgets: myPackage/myWidgets.xml
specifies that we will find the myWidgets.xml URL in the myPackage package in the jar file.

Basic properties

General properties

These properties are for both the Client and Server.
  • "Desc": An optional description for the extension
  • "Widgets": Specifies the path to the XML meta-definition file specified for the extension. This allows to add new ARINC definitions, or modify existing ones
  • "AllowA661Extensions": false if ARINC extensions are not allowed in Definition Files
  • "AllowA661SDL": false if Symbol Tables are not allowed in Definition Files
  • "Supplement": Force an ARINC 661 supplement to use with this extension

Server properties

These properties are for the Server only.

Editor properties

These properties are for the Editor only.
  • "EditorDefaults": the path to the editor defaults XML definition file for the extension. See editor widgets defaults for the format of this XML file
  • "WidgetsDescriptions": the path to the widgets descriptions XML definition file for the extension
  • "A661EditorFactory": the path to an A661 Editor factory which can be used for the extension

Advanced properties

Advanced General properties

These properties are for both the Client and Server.
  • "JavaVersion": The minimum Java version allowed for the extension. The extension will only be loaded if the Java version is at least equal to this specified version
  • "ProtocolProvider": allows to define a provider class which will define new protocols
  • "WidgetsExtensionProvider": The Widgets Extension provider classpath, allowing to return a class which will provide several extensions for widgets definition
  • "ComUtils": The classpath for a custom Utilities class for decoding and encoding ARINC 661 Buffers
  • "BinaryDecoder": A binary decoder extension classpath
  • "A661Schema": Specify an alternative ARINC 661 schema to use when parsing ARINC 661 definition files
  • "DataTypes": Specify the path for an additional XML DataTypes definition
  • "SupportedProperties": Specify a list of additional configuration properties that will be parsed by the extension. See Supported Properties format
  • "RegisterManager": The classpath for the Extension Start manager, which will be called for the extension after the engine initialization. The class will be called after the engine intialization

Advanced Server properties

These properties are for the Server only.
  • "LayerSizeAsPixels": sets if the Layer size is specified in XML Definition Files as Pixels rather than 100th of millimeters. See Layer Size density
  • "MapManagerProvider": the Classpath to a Map Manager provider which is able to return alternative 2D projection systems
  • "WindowManagersProvider": the Classpath of the Window Managers provider, which is able to define alternative Window Managers
  • "GesturesProvider": the Classpath of the Gestures provider, which is able to define customized gestures
Advanced 3D Server properties
These properties are for the Server only, for 3D Maps. Note that 3D Maps are still not standardized in the ARINC 661 stndard as of supplement 6.
  • "Map3DManagerProvider": the Classpath of the Map 3D Manager provider, which is able to define 3D projection systems. Note that contrary to 2D Maps, there are no default 3D projection systems. You need to define them in an extension
  • "Model3DProvider": the Classpath of the built-in Model 3D provider, which is able to return built-in 3D models
  • "Server3DFactory": the Classpath of factory which is able to create 3D MapItems

Supported Properties format

The format of this property is <property1, property2, ...: <ExtensionPropertyLoader classPath>. The first part of the String is the list of property names which the extension support, the second part (after the colon) represent the ClassPath of the ExtensionPropertyLoader which will be responsible of loading the properties of the specified names.

For example, for the following attribute in an extension Manifest: prop, prop2: arinc.ext.MyPropertyLoader: The extension supports two properties ("prop1" and "prop2". This support is performed through an instance of the class arinc.ext.MyPropertyLoader which will be lazily instantiated if one of these properties is present in the properties file.

See extensions manifest properties for more informations on how to define these properties.

Extending the reference Schema

The reference Schema for XML Definition File validation is built-in, but it is possible to use a custom one, or even better, to extend the built-in reference one. The http://j661.sourceforge.net/schemas/arinc.xsd" location allows to specify the virtual location for the reference Schema to extend it. For example, for adding the "myNewElement" at the end of the "a661_df" element children:
   <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
      <xs:redefine schemaLocation="http://j661.sourceforge.net/schemas/arinc.xsd">
         <xs:complexType name="a661_df">
            <xs:complexContent>
               <xs:extension base="a661_df" >
                  <xs:sequence>
                     <xs:element ref="myNewElement" minOccurs="0"/>
                  </xs:sequence>
               </xs:extension>
            </xs:complexContent>
         </xs:complexType>
      </xs:redefine>
   </xs:schema>

Layer Size density

This property sets if the Layer size is specified in XML Definition Files as Pixels rather than 100th of millimeters. There are two possibilities to specify this property:
  • As a boolean. In this case, the conversion from pixels to 100th of millimeters will be performed with the current screen density of the device used to load the XML Definition File
  • As a float value. In this case, the conversion from pixels to 100th of millimeters will be performed with this specifed value as the screen density
If this property is set, the width and height of Layers in the XML Definition Fiels will be defined using this specified density rather than in 100th of mm. Note that widgets positions and sizes in the XML Definition FIles will still be defined in 100th of mm.

Note that the server.layerSizeDensity configuration property will only be taken into account if an extension has set this manifest property.

Server widgets UI

The "ServerWidgetsUI" property specifies the path to the XML Server renderers configuration file for the extension. A basic example is:
      ServerWidgetsUI: the/path/to/my/package/renderersConfig.xml
It is also possible to define two different paths, depending on the active UI framework. In this case the format of the property will be one of the followings:
  • There are only Swing renderers for the widgets: swing:<path of the swing renderers XML file>
  • There are only JavaFX renderers for the widgets: javaFX:<path of the JavaFX renderers XML file>
  • There are both Swing and JavaFX renderers for the widgets: swing:<path of the swing renderers XML file>javaFX:<path of the JavaFX renderers XML file>
For example:
      ServerWidgetsUI: my/swingPackage/swingRenderers.xml;javaFX:my/javafxPackage/javafxRenderers.xml

See also


Categories: client | dev | extensions | server

Copyright 2016-2017 Dassault Aviation. All Rights Reserved. Documentation and source under the LGPL v2 licence