9.4.2.10. Micro Application Generator

9.4.2.10.1. [Major] NullPointerException when using -outputFinalQoS if QoS Profile did not define each internal QoS

When using MAG with the -outputFinalQoS option, if the QoS Profile to check did not contain a definition of each internal QoS (participant_qos, publisher_qos, etc.) directly or by inheriting from another QoS Profile, MAG reported this error:

Exception in thread "main" java.lang.NullPointerException
   at com.rti.micro.appgen.utils.QosUtils.removeNullElementsFromList(QosUtils.java:2332)
   at com.rti.micro.appgen.utils.QosUtils.removeNullElements(QosUtils.java:2256)
   at com.rti.micro.appgen.MicroAppGen.main(MicroAppGen.java:328)

[RTI Issue ID MAG-121]

9.4.2.10.2. [Minor] MAG failed to generate code when qos_profile inherited from individual QoS policies

MAG failed to generate code when a <qos_profile> inherited from individual QoS policies. For example, running MAG with the following input file caused an error:

<qos_library name="QosLibrary">
   <qos_profile name="QosProfile1" is_default_qos="true">
      <participant_qos name="QosParticipant">
         ...
      </participant_qos>
   </qos_profile>
   <qos_profile name="QosProfile2" base_name="QosProfile1::QosParticipant">
   </qos_profile>
</qos_library>

The error was:

...
11:31:40.548 [main] ERROR com.rti.micro.appgen.MicroAppGen - Failed to calculate the system model.
java.lang.Exception: Unable to find QoS library/profile 'QosProfile1::QosParticipant'.
...
11:31:40.552 [main] INFO com.rti.micro.appgen.MicroAppGen - Exiting.

Now MAG properly handles this case.

[RTI Issue ID MAG-105]

9.4.2.10.3. [Minor] MAG always used default value for disable_auto_interface_config

MAG always used the default value for disable_auto_interface_config in the generated code, regardless of the value specified in the XML.

[RTI Issue ID MAG-110]

9.4.2.10.4. [Minor] MAG failed if arguments contained whitespace on Linux systems

On Linux systems, MAG failed to run if any arguments contained whitespace. It logged an error similar to the following:

12:04:55.205 [main] ERROR com.rti.micro.appgen.MicroAppGen - Only 1 input file
can be processed.
12:04:55.208 [main] INFO  com.rti.micro.appgen.MicroAppGen - Exiting.

[RTI Issue ID MAG-118]

9.4.2.10.5. [Trivial] XSD validation failed if flags used a combination of values

The XSD validation of an XML application file failed if there was a UDPv4 configuration using a combination of values for the flags element. For example, this snippet caused an error:

<transport_builtin>
   <udpv4>
         <interface_table>
            <element>
               <flags>
                     UDP_INTERFACE_INTERFACE_UP_FLAG|UDP_INTERFACE_INTERFACE_MULTICAST_FLAG
               </flags>
            </element>
         </interface_table>
   </udpv4>
</transport_builtin>

The error was:

ERROR com.rti.micro.appgen.MicroAppGen - cvc-pattern-valid:
Value 'UDP_INTERFACE_INTERFACE_UP_FLAG|UDP_INTERFACE_INTERFACE_MULTICAST_FLAG'
is not facet-valid with respect to pattern
'(UDP_INTERFACE_INTERFACE_UP_FLAG|UDP_INTERFACE_INTERFACE_MULTICAST_FLAG)'
for type 'udpInterfaceFlagMask'.

Now combinations are allowed.

[RTI Issue ID MAG-114]