Menu

protoFramework / Blog: Recent posts

Version 0.6.28.1 released

  • Use docJGenerator 1.6.7.1
  • Use jGraphML 1.2.9
  • Use MDIUtilities 1.3.3
  • Use MDIFramework 1.3.11
  • core framework: Use Netbeans 12.5 for the development
  • uaappli: Use Netbeans 12.5 for the development
  • Mention the type during a tentative value copy if an ObjectType cannot be serialized
  • Catch NoClassDefFoundError errors when trying to create a module if the module cannot be implemented because of a dependency
  • Don't throw an exception in the services template checker if a data has not type but show a clear error
  • Fix showing the path of libraries in the browser throwing an exception
  • Fix showing some paths in the brower not showing the correct relative path relative to the filelist
  • Add some forgotten license headers
  • Jena: Avoid a NPE if an ElementOperations is null
  • Jena: Make Operations Serializable
  • Jena: Emit a clearer error message if the mapping of a Class is incorrect in the mappings file
  • scenarioEngine: Avoid an exception if a value is not set on one cell
  • tacticalEnv: add a flightplanDelta element for an aircraft allowing to put the position of the aircraft at a delta position relative to the flightplan
  • tacticalEnv: allow to add a base in the GUI tool
  • tacticalEnv: allow to set the center of the scenario in the GUI tool
  • tacticalEnv: show properties on the GUI tool when selecting an element
  • tacticalEnv: write the world reference if it exists
  • tacticalEnv: show icons on the GUI tool for the elements
  • tacticalEnv: show properties on the GUI tool when selecting an element
  • tacticalEnv: Use Netbeans 12.5 for the development
  • tacticalRules: Use Netbeans 12.5 for the developmen
  • MaryTTS: Use Netbeans 12.5 for the development
  • MaryTTS: use maryTTS 5.2.1
  • vosk: Use Netbeans 12.5 for the development
  • vosk: use vosk api 0.3.45.1
  • Jena: add an "imports" property to import schemas
  • Fix a NPE which could happen if an application did not exist in the network configuration
  • Add methods to get a service instance for a Module using a namespace key
  • externalComm: allow to start or stop a service
  • userInputs: improve the handling of switch types
  • Rewrite the network protocol framework
  • scenarioEngine: set Netbeans 12.5 for the development
  • scenarioEngine: allow to record in JSON format
  • Use a properties file for all the error messages rather than coding the errors directly in the java code for the core framework
  • Drop old compatibility properties for the Python architecture
  • perfoLogger: support the recording and viewing of exchanges including the network
  • perfoLogger: serialize correctly the logger scenario if the user closes the perfoLogger Window without or before shutting the framework down
  • Ensures that the framework is properly shutdown even if the user closes the script file which started the framework rather than closing properly the framework GUI Window
  • externalComm: allow to have an empty channel content
  • scenarioEngine: allow to split records in JSON format
  • scenarioEngine: show correctly the flashing heart icon after restarting
  • Allow to put no field in a structure
  • Show an error if a Java module has an incompatible JRE version number
  • Add methods to get or set a float or double value in a Structure in a specific unit
  • externalComm: fix the sending of requests being incorrect (sending the response datas instead of the request datas)
  • Emit an error rather than throwing a Java exception if an URL which should a file is a directory in the properties
  • Jena: allow to specify dependencies for objects in the objet mappings
  • Update mapOntology sample
  • userInputs: fix the hyperlinks in the area on services with a namespace which was incorrect
  • Fix a regression where the shutdown hook associated with the main framework application prevented the JVM to effectively exit
Posted by Hervé Girod 2024-07-13

Vesion 0.6.28 released

Use docJGenerator 1.6.4.6 for the wiki generation
Use MDIUtilities 1.2.49
Use MDIFramework 1.3.10.1
Use Use JNA 5.13.0
Use jGraphML 1.2.2
Fix some cases where the starting of Python modules was not working correctly since 0.6.27.1
userInputs: add a "blocking" property to set if the user input GUI is blocking. Default is not blocking
Add a count parameter to a version of the send, sendRequest, and notified method on services to pass the invocation count
Add an event engine factory to the framework, and a perfoLogger which implements this factory
externalComm : allow to log the decoding of datas
userInputs: fix the columns of the table for input services not easily redimensionable if a lot of services are received
Add the concept of abstract types (usable for structures and unions)
Allow to extend structure and union types
Add a method allowing to copy as much content from one data to another as it is possible
Separate the method in the ServiceInstance class to copy the data values from another service to this one, to specify if the data copy should be strict
tacticalRules: handle long, char, and short simple types
tacticalRules: handle triggers and outputs in structures
Fix the to copyFromService method in some cases
tacticalRules: continue to handle triggers and outputs in structures
tacticalRules: add the copyService action
tacticalEnv: add a getFlightplan service in the tacticalEnv module, and getFlightplanModel service in the tacticalEnvModel module
uaappli: add a connectionDelay property
uaappli: fix the runtime API not setting the value for colors, pictures, blinkings, clippings, and fonts if set by the name of the element
uaappli: allow the runtime API to set the widget IDs by the name of the widget for parameters which point to a widget ID
uaappli: add methods in the A661RuntimeAPI to deal with the application ID
scenarioEngine: improve the presentation of the heart icon and the current time in the player
Add a new entry point notifying a module that all notified modules have achieved their procerss after the module invocation
externalComm: add a "serializeBuffer" property to specify if the input or output buffer must be serialized
externalComm: improve the output of the serialized XML buffer and the log file
externalComm: completely take the namespace of services into account
tacticalEnv: allow to use more than one scenario
tacticalEnv: allow to directly add points to a flightplan
Improve the cloning of Data values
Add a recorder engine to generate for the framework a sequence diagram
Add a new optional access point for a module which is called when all the notified modules have finished their execution
scenarioEngine: improve the serialization of the player when several records happen in a short time
uaappli: fix the A661RuntimeAPI not correctly setting the parameter value for a color or a picture referenc
Add the ability in the browser to export the modules in their applications
uaappli: fix the underlying ARINC661 client not working correctly with a tcp protocol
uaappli: fix the default layer representation not being set by default
uaappli: allow to not set explictly all services for an UA
externalComm: fix problems when queuing inputs and outputs
Add a new option to export diagrams in the browser
Add a new "minimizeGUI" option to minimize (iconify) the framework window
Add methods to directly get a data of a specific type in a service
Add a new type of invocation, allowing to clone the content of the service before invoking it
tacticalRules: add some service invocation configuration
uaappli: fix the MapItems management
Add a debugLog configuration property
tacticalEnv: change the name of the tacticalenv module to TacticalEnv, and tacticalenvModel to TacticalEnvModel
Allow to add several templated modules in one application
Remove the reset of data content for the invocation for the event services
Add several methods in the Units class allowing to detect the type of the unit (angle, time, speed, distance)
tacticalRules: add a clone option for services
uaappli: add new methods for the projection helper

Posted by Hervé Girod 2023-07-19

Version 0.6.27.1 released

Use MDIUtilities 1.2.28
Jena: Fix some constructs in the SPARQL request framework not able to use specific prefixes
userInputs: the logger area and the service content list are now separated by a split, allowing to redimension all the panels of the interface independently
userInputs: allow to export the content of all the bottom panel to a JSON file
browser: allow to generate a JSON file with the list of interfaces for a module
Simplify the structure of the Python modules integration in the framework
Add new blocking options for the http modules
Try to avoid an exception loop when using JavaFX after closing the framework
Fix an error which would appear in some cases when parsing the model if using an ownerModule
Add the capability to communicate with a Python module using TCP
Use Netty for the UDP or TCP communication with Python modules
When communicating with a Python module using TCP, allow to invoke blocking services
Add a property to avoid to show the module name when logging a content in a Python module
Update the python scripts to version 1.6
Use jGraphML 0.9.2
browser: improve the graphml diagram generation for request/resposne services
Fix a problem where Python modules called through Anaconda would not be correctly killed in some cases at the end of the framework
Add a "debug" attribute for the declaration of Python modules to debug the connection between the framework and the Python executable
Add a "logOnConsole" framework property to force logging all logs also on the system console
Fix cases where huge service content sent by a Python module was truncated
userInputs: allow to show the timeStamp of a service in the system current time (in milliseconds) rather than from the start of the framework

Posted by Hervé Girod 2022-03-05

Version 0.6.27.1 Beta 6 released

Add a method in the Module class allowing to know if there is a module subscriber in the framework for a service
Add the capability to add property arrays in property array groups
Jena: Add a "requestInfo" provided service allowing the module to send the received request
Jena: Add a property to set the default namespace for a schema
Jena: Add a property to set additional namespaces for a schema
Jena: Add new methods in the SPARQL request framework to set the prefix of a property construct

Posted by Hervé Girod 2022-01-16

Version 0.6.27.1 Beta 5 released

Use docGenerator 1.5.6.5
Use jGraphml 0.9
Jena: support sub-queries in the request creation framework
Jena: support the GROUP BY declaration in the request creation framework
Jena: support the COUNT and SUM expressions in the request creation framework
Jena: support using expressions in the SELECT construct in the request creation framework
browser: add an option in the graphml export to show the services in boxes
Add several blocking options for the http modules
Fix the Class-Path property in the framework manifest which could prevent the project to be built on Mac OS X or Linux
scenarioEngine: Fix the Class-Path property which could prevent the project to be built on Mac OS X or Linux
uaappli: Fix the Class-Path property which could prevent the project to be built on Mac OS X or Linux
uaappli: use J6661 1.8.1b1
Jena: Fix the Class-Path property which could prevent the project to be built on Mac OS X or Linux
MaryTTS: Fix the Class-Path property which could prevent the project to be built on Mac OS X or Linux
Meteo: Fix the Class-Path property which could prevent the project to be built on Mac OS X or Linux
xulInterface: Fix the Class-Path property which could prevent the project to be built on Mac OS X or Linux
Use scriptHelper 1.5.17

Posted by Hervé Girod 2022-01-11

Version 0.6.27.1 Beta 4 released

Use docJGenerator 1.5.6.4
Use MDIUtilities 1.2.27
Be more specific when encountering errors while parsing library definitions
Add the "not" condition
Add a method in the ServiceInstance to detect if a notified service was invoked by the module itself (this is the case if a module is both a provider and subscriber of the same service)
Rename the globalProperty element "var" and add the concept of a global property
The name of the module in properties definition is not significant if there is only one module in the application
Give more informations if an exception is thrown by the native JNA bridge during a service invocation or notification when communicating with a C library
Fix cases where the native JNA bridge did not handle notifications correctly for a C module
Add a capability in the browser to export only the part of a graph which is linked to a chosen module
tacticalEnv: all the list of elements now implement a common ElementList interface
Fix JSON enumeration values received from Python and encoded in String not correctly parsed by the Python module
Add a pythonEnumAsString for Python modules to encode enumeration states as Strings
Add a getProtectedStateValueAsString method in the EnumType class to get a guaranteed valid state value as a String
Make sure that the getStateValueAsString method in the EnumType class return a state name, or null
Add a method in the DataUtilities utility class to convert the content of a service as a JSON object
Add a method in the DataUtilities utility class to convert the content of a Data as a JSON object
userInputs: add a capability to export the content of a service in JSON format
Jena: fix the getGraph service which did not get correctly all the ranges from properties
Allow to specify the value of an enum as an hexadecimal value
Allow to specify a default value for a type as an hexadecimal value
Add an echo command in the filelist format to echo the value of an environment variable or a property
Use jGraphml 0.7
Jena: add methods in the QueryResults.Value class to return the value as several primitive types
Jena: fix some cases where individual references were incorrectly added in the SparqlRequest
Jena: protect for some cases where we could have a NPE when applying a query
Jena: add utilities to get a function key when using custom functions
Meteo: fix the unit tests which were failing
Meteo: the data types for the Meteo are now in a MeteoDataTypes common class
Add several samples using ontologies
vosk: use vosk api 0.3.32.1
vosk: add a new INITIALIZE_EXCEPTION state type
browser: show the implementation of libraries when opening these libraries
browser: show the python http modules implementation
browser: show the content of C modules implementation

Posted by Hervé Girod 2022-01-02

Version 0.6.27.1 Beta 3 released

Allow to use conditions on several elements in the filelist root configuration
Allow to include filelist root configuration files in another root configuration file
Add new methods to set a data value as a File
Use JSON 1.7.6
Allow to have JSONArrays (json type) directly as datas or fields
uaappli: fix the helper library not containing any classes
Jena: fix a case where an absent litteral could create an internal exception in the engine
Jena: manage removing instances
Fix some cases where a RejectedExecutionException could happen after shutting down the framework if using a request-response service
Fix the request-response service not working correctly in some cases when several modules are sending the same request

Posted by Hervé Girod 2021-11-24

Version 0.6.27.1 Beta 2 released

Use Netty 4.1.68
Use MDIUtilities 1.2.25.6
Use docGenerator 1.5.6.1
Use JSON 1.7.4
Add a "type" attribute for the "setenv" element in the filelist to specify that an environment variable is an URL
Jena: Fix the owl-time schema URL not correctly specified
Jena: Fix the owl-time schema URL not loaded correctly
Jena: Fix the "warning" value of the "debug" property doing the same thing as "all"
tacticalEnv: allow to have moving aircrafts
vosk: Use vosk library 0.3.31.2
vosk: fix the push to talk behavior
vosk: show the confidence rate of the voice decoding
Fix the printStackTrace property not handling the "false" value
Fix the start process of Python modules not ending if the Python script initialization fails
Allow to specify an environment to use when using Anaconda
Allow to override the user configuration properties at start
Allow to use the configuration properties to customize the framework architecture
Fix possible charset errors when calling a Python script through Anaconda
Fix the event services mandating the "attach" property for multiple providers
Add several values editions in the request and response services which were forgotten for these services types
Fix when a notification for a configured C module was wrongly invoking the notified service from this module
Protect the url data type from URLs which does not have the correct pattern
Fix the setValue method for a data of the urlType type and an initially null URL
Improve the correspondence between JSON parsing and the associated datas when communicating with Python modules
First steps for models editions and browsing

Posted by Hervé Girod 2021-11-10

Version 0.6.27.1 Beta 1 released

Use MDIUtilities 1.2.25
Use docJGenerator 1.5.4
Add a "libPath" property in the configuration allowing to set the path of native libraries
Fix some bugs in the joystick module
Fix a critical regression in the usage of Python modules
Fix the included editor for the UAApplication which was not working anymore
Allow to omit the top-level module element for an application with only one module
Allow to omit the modules element for an application which is a library instance
Allow to annotate the ObjectType associated classes
userInputs: show the content of ObjectType annotated classes
userInputs: show the full namespace of services in the input or output trees
tacticalEnv: annotate the model classes
uaappli: add a sample using UAAppli and tacticalEnv
uaappli: add a helper code to manipulate latitude, longitude coordinates
tacticalEnv: add an optional worldConfig element to specify the center of the tactical situation
Add a "hasChanged()" method in the ServiceInstance class to identify if the datas of the service have changed since the last reception
Fix the hasChanged() method for datas not seing the data as changed for arrays if the size of the array is unchanged
Fix the hasChanged() method for datas not seing the data as changed for structures
Fix the hasChanged() method for datas not seing the data as changed for unions
Add a "defaultChangeBehavior" property to specify how complex data changes are taken into account
Update the jGraphx library content
Fix the hasChanged() method not working correctly if the data valuke has not been set before the invocation
sphynx: add a wrapper to the Sphynx library
browser: fix the pythonUtils.py library not generated in the "Generate Python Library" action
Fix the Java runtime path for the browser and the framework applications
Fix the waitAtStart of Python modules which was incorrectly applied
Change the default values for the waitAtStart and waitAtInit of Python modules from 2 seconds to 200 ms
Add two global properties to set the waitAtStart and waitAtInit parameters by default for Python modules
externalComm: Fix some errors when adapting the externalComm interfaces to LittleEndian platforms
Use JNA 5.8.0
externalComm: allow to launch the external process by the framework
externalComm: add a new logFile property to allow to log the decoding result in a File
externalComm: add properties to customize how endianness is taken into account
scenarioEngine: ensure that the record of the XML file for the recorder is in the same order for each service that the service datas declaration order
externalComm: add a property to allow to receive more than one service in one buffer
externalComm: add a property to check the value of the MAGIC number
Allow to a description for all types in the configuration
Use Netty 4.1.66
Show the content of the models in the browser
vosk: add a wrapper to the vosk library
Add a capability to activate or deactivate cyclic service interfaces
Logger: add a Logger module
Fix the timestamp value not set for the service instance
Add a printStackTrace property to print the errors stack trace in the console
Add two methods in Module to get the elapsed time since the start of the framework, and the elapsed between the start of the framework and a timestamp
Add the utc and epoch time units
The enumeration values in EnumTypes can now be negatives
Add methods in the AbstractFunctionalUA to show or hide the displays
userInputs: add properties to keep the history of incoming services datas
uaappli: Add methods in the helper to get the latitude and longitude of an element expressed in 100th of mm
Jena: fix the properties and data properties not able to be updated with a cardinality of 1
tacticalRules: fix the properties and data properties not able to be updated with a cardinality of 1
Allow to load a configuration in a zip or jar file
Allow to set the value of an environment variable
Allow to communicate with http requests for Python modules

Posted by Hervé Girod 2021-08-13

Version 0.6.27 released

tacticalEnv: improve the tool, adding the capability to add waypoints, threats, FEBA, zones, flightplans, targets, corridors
tacticalEnv: improve the tool, adding the capability to move an isolated element
tacticalEnv: add the capability to add list of references
tacticalEnv: major improvement of the tool to allow for edition of all the tacticalEnv scenario elements
tacticalEnv: allow to set the latitude and longitude coordinates in a more natural manner in the tacticalEnv scenario
UAAppli: improve the application protection against an incorrectly defined API
userInputs: fix the invocation of services without data not taken into account
userInputs: sort the services in the GUI by their names
MaryTTS: add the MaryTTS module
Jena: fix the inversion of the latitude and Longitude coordinates when using Geosparql, triggering wrong answers when asking about geometries
Jena: add the commons-logging library to the dependencies
Jena: support owlTime in operations and requests
Jena: use the xsd: rather than the xs prefix for the XMLSchema elements in the Sparql requests, as of the Sparql specification
Jena: support custom functions in the Sparql requests in both the FILTER and BIND constructs, including functions using services
Jena: support COALESCE constructs
Jena: fix the VALUES construct generation
UAApplication: add logging to the UAApplication
Add a mode for the modules interfaces declarations to specify if the library interfaces must be cleared or kept
Add a new module attribute allowing to disable modules in the applications configuration
Use Netty 4.1.63
Allow to get the map of providing or subscribing services in the ServiceTemplates class
Protect the Python module implementation start, subscribe, and publish methods against cases where the python runtime is not found
Allow to customize the way service invocation are handled (using an executor service, or in the same thread as the caller)
Add an utility to get the duration from a value and a time unit
Allow to define a description for modules and applications in the architecture
Allow to set the value of configuration property variables in the command-line when starting the framework
Add the g-force unit and the ability to convert to/from m/s2
Add the ability in the browser to export the diagram architecture as graphml (readable by yEd)
Use MDIUtilities 1.2.16
Use MDIFramework 1.3.4
Use docJGenerator 1.5.3.3 for the wiki
Use scriptHelper 1.5.15
Use jGraphML 0.6
Add an optional comment attribute for datas in the service declarations
Add the "autoAttachProviders" framework property
Add a "comment" attribute for datas
externalComm: allow to use global or environment variables for the port and host in the Network configuration
xulInterface: use javaXUL 1.2.5

Posted by Hervé Girod 2021-04-08

Version 0.6.26 released

First Open Source release of the Dassault Aviation protoFramework library.

protoFramework is a Dassault Aviation software based on a Java library and other modules as described below, and on specific software developed and maintained by Dassault Aviation. This protoFramework aims to simplify the development of prototypes of any types in several languages or technologies (such as Java, C++/C, Groovy, Python, etc..).... read more

Posted by Hervé Girod 2020-11-22
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.