module
with a name
but without any implementation. In that case the framework will look for an autodescripted module to instanciate. In that case the instance name will be generated automaticallyinstance
with a name
for the autodescripted module and an instance
for the instance namemodule1
is an instance because there is no implementation
specification:<application name="theAppli"> <deployment> <lib url="myModule.jar" /> </deployment> <modules> <module name="module1"/> </modules> </application>In this example, the fact that
myInstance
is an instance is explicit:<application name="theAppli"> <deployment> <lib url="myModule.jar" /> </deployment> <modules> <instance name="module1" instance="myInstance" /> </modules> </application>
implementation
. The framework will assume that it is an instance of one of the modules defined in the library.
<application name="autoDesc1"> <modules> <module name="firstModule" > <implementation path="org.da.MyModule1" > <initEntryPoint method="init" /> </implementation> <interfaces> <eventSend service="theEvent3"/> <eventReceived service="theEvent4"/> </interfaces> </module> </modules> </application>In the secondModule.jar jar file:
<application name="autoDesc2"> <modules> <module name="secondModule" > <implementation path="org.da.MyModule2" > <initEntryPoint method="init" /> </implementation> <interfaces> <eventSend service="theEvent2"/> <eventReceived service="theEvent1"/> </interfaces> </module> </modules> </application>
firstModule
module defined in the first jar file. The name of the instance will be firstModule$1
:<application name="theAppli"> <deployment> <lib url="firstModule.jar" /> </deployment> <modules> <module name="module1" /> </modules> </application>In this example, there is a specification where we have two modules in the library. We need to specify the correct module name. The name of the instance will be
secondModule$1
:<application name="theAppli"> <deployment> <lib url="firstModule.jar" /> <lib url="secondModule.jar" /> </deployment> <modules> <module name="secondModule" /> </modules> </application>In this example, we have two modules in the library, and we instanciate one twice. The name of the first instance will be
secondModule$1
, the name of the second instance will be secondModule$2
:<application name="theAppli"> <deployment> <lib url="firstModule.jar" /> <lib url="secondModule.jar" /> </deployment> <modules> <module name="secondModule" /> <module name="secondModule" /> </modules> </application>
instance
element.
myModule
:<application name="theAppli"> <deployment> <lib url="firstModule.jar" /> <lib url="secondModule.jar" /> </deployment> <modules> <instance name="secondModule" instance="myModule" /> </modules> </application>
interface
element for the instance, by default you will not use the interfaces defined for the autodescripted module, but those defined specifically for the instance. However it is also possible to keep the autodescripted module.
<application name="theAppli"> <deployment> <lib url="firstModule.jar" /> </deployment> <modules> <module name="firstModule" > <interfaces> <eventReceived service="theInstanceEvent"/> </interfaces> </module> </modules> </application>
module
element) is derived from the name of the autodescripted module: autodescripted_module_name$instance_index
(in the order of declaration).firstModule$1
:<application name="theAppli"> <deployment> <lib url="firstModule.jar" /> </deployment> <modules> <module name="firstModule" /> </modules> </application>In this other case, the name of the first instance will be
firstModule$1
, the second firstModule$2
:<application name="theAppli"> <deployment> <lib url="firstModule.jar" /> </deployment> <modules> <module name="firstModule" /> <module name="firstModule" /> </modules> </application>The names of modules which are defined explicitly (by the
instance
element) is the value of the instance
attribute for the instance. For example here the name of the instance will be myInstance
:<application name="theAppli"> <deployment> <lib url="firstModule.jar" /> </deployment> <modules> <instance name="firstModule" instance="myInstance" /> </modules> </application>
modules
and module
declarations.<application name="theAppli"> <deployment> <lib url="firstModule.jar" /> </deployment> <modules> <module name="firstModule" > <interfaces> <eventReceived service="theInstanceEvent"/> </interfaces> </module> </modules> </application>is equivalent to:
<application name="theAppli"> <deployment> <lib url="firstModule.jar" /> </deployment> <interfaces> <eventReceived service="theInstanceEvent"/> </interfaces> </application>
<application name="aircraft"> <deployment> <lib url="inertialNAV.jar" /> </deployment> <modules> <module name="InertialNAVSystem" /> <module name="InertialNAVSystem" /> </modules> </application>We can define the properties configuration with:
<properties> <application name="aircraft" > <module name="InertialNAVSystem$1" > ... </module> <module name="InertialNAVSystem$2" > ... </module> </application> </properties>or with:
<properties> <application name="aircraft" > <module name="InertialNAVSystem" > ... </module> <module name="InertialNAVSystem" > ... </module> </application> </properties>
Copyright 2017-2020 Dassault Aviation. All Rights Reserved. Documentation and source under the LGPL v3 licence