Skip to content

barbaroony/GMSEC_API

 
 

Repository files navigation

This GMSEC API README file contains technical notes and the change summary
for the current release and historical releases.

See the associated Version Description Document (VDD) for further details
of each release.

For technical support regarding this release, or any previous version, please
contact the API Team at gmsec-support@lists.nasa.gov.


==============================================================================
= GMSEC API 4.7 release notes (May 2020)
==============================================================================
o Support for 32-bit distributions of the GMSEC API has been dropped.

o Java-related facets of the GMSEC API are built using OpenJDK 11. Users can
  continue to use Java 8 through 11 to run Java applications.

o Support for Python (2.7) has been dropped; users should use the Python3
  binding instead.

o Perl binding under Windows is no longer built with Active State Perl;
  Strawberry Perl is being used instead.


--- Change summary -----------------------------------------------------------
4766    The API should be able to validate dependent fields as defined by C2MS
        and GMSEC Addendum
5242    API should follow soft-link when attempting to determine install
        directory
5245    Under Windows, build the Perl binding of the GMSEC API using Strawberry
        Perl
5248    OpenDDS m/w occassionally crashes on shutdown
5249    Retrieval of binary data is not thread-safe in C# binding
5250    Add example programs that demonstrate basic usage of C2/C2-NSS
        capabilities of the GMSEC API
5251    Message validation can fail when comparing supposedly equal F32 values
5252    Tracking field insertion for C2MS (2019) Heartbeat message
5253    API should use the 2019 C2MS as the default for XSD files
5255    API is not referencing C++ header files on MacOSX
5256    Optimize InternalSpecification to skip loading unused message template
        files
5258    Avoid the unnecessary throwing of exception within the GMSEC API
5259    Condition class reports conflicting status
5260    By default, gmreq should not be republishing request messages
5261    Typo in error message when attempting to publish message with a non-
        PUBLISH message kind
5266    AMQP m/w wrapper provides vague error message when it fails to
        initialize
5268    Validation produces malformed error message when array fields are
        involved
5269    Add support for GMSEC-style wildcard characters in OpenDDS m/w wrapper
5270    Allow users to register custom message validation function
5271    Functions to create Connection Manager in C binding are not handling
        exceptions
5272    Perl and Python3 bindings are not properly handling GMSEC API exceptions
5274    Add a hasField() method to Message class
5284    Develop string utils that can be used to validate header string,
        timestamp, and IP address values that go into message fields
5285    Algorithm to determine leap-year reports incorrect results
5288    The gmreq and gmrpl utilities do not create valid C2MS messages
5290    ResourceInfoGenerator should not give up if it cannot query stats on a
        disk
5291    Tracking fields are not cleared from message upon receiving error from
        m/w wrapper
5292    ConnectionManager requestDirective() methods do not add REQUEST-ID or
        MSG-ID
5295    Provide the means for users to use an alias in lieu of a schema ID
        when building a MistMessage
5296    Provide utility app to display all available message schema IDs and
        associated alias (if any)
5297    Fix documentation for publish() method that accepts a Config object
5299    ConnectionManager publishLog() does not include miscellaneous elements
        in message subject
5301    Validate Header String, IP Address, and Timestamp contents in Fields
5302    Add getSchemaLevel() method to Specification
5306    NODE and USER-NAME fields are not C2MS compliant
5307    Add C2MS-Pipeline message templates
5308    Add middleware wrapper for ActiveMQ CMS 3.9.5
5309    API does not create message templates for all schema levels
5312    Field getIntegerValue() and getUnsignedIntegerValue() report incorrect
        error when a value cannot be produced
5313    MistMessage does not properly convert legacy message into newer format
5315    Duplicate message in error string when validating fields in an array
5316    Validation incorrectly identifies name of field when comparing to
        field template in array
5317    API's JNI MistMessage should not set standard fields when field count
        is zero
5318    Bolt wrapper is not reporting connection endpoint when multiple
        connections are used
5319    Fix Python3 and C# documentation regarding ConnectionManager's
        setStandardFields()
5332    Message Bus includes homemade field in request message
5333    IBM MQ m/w wrapper includes homemade field in request messages
5342    API fails to handle subscription with callback with certain topics
        ending with '+'
5345    Do not associate a Specification object with an InternalMistMessage


==============================================================================
= GMSEC API 4.6 release notes (June 2019)
==============================================================================

--- Change summary -----------------------------------------------------------
5067    Allow for user to set custom value for COUNTER field that is used by
        Heartbeat Service
5102    Concatenate Specification's parse errors into string summary to be
        thrown
5107    Update InternalDeviceMessage::init to leverage message templates
5109    Update InternalMnemonicMessage::init to leverage message templates
5129    Simplify Message Validation's exception string
5130    MistMessage needs data constructor that takes in data + specification
5139    Define a public-facing HeartbeatGenerator class
5178    API should check tracking fields when performing message validation
5181    Replace usages of std::auto_ptr with StdUniquePtr
5183    Update API example Heartbeat Service and Resource Service programs
5185    Add logging arguments to Bolt
5186    Fix Perl 4.x documentation
5187    Add Config constructor to the C# binding that accepts a string array
5189    MistMessage setValue() methods do not indicate if Field is a header
        field
5190    Internal Product File Message consructors are not initializing class
        member data
5193    Fix documentation issues within the SWIG-generated C# binding.
5196    INSTALL.txt does not include instructions for installing libxml2 and
        libxslt under Ubuntu and macOS
5197    Include JavaDoc for Java binding within gmsecapi.jar file
5198    The JAVA_LIBS definition in GMSEC API Platform configuration files is
        incorrect for OpenJDK use
5199    Message Bus client closes stdin file descriptor when connection to
        server fails
5201    Add setName() and clone() methods to Field class
5203    Log messages are always displayed when using SWIG-generated C# binding,
        regardless of the logging level
5204    Fix documentation issues within the SWIG-generated Python3 binding
5205    Add Config() constructor to Python3 binding that accepts a string list
5206    TimeUtil.format_time() returns SwigPyObject instead of string in
        Python3 binding
5208    Update GMSEC API utility apps to use ConnectionManager
5209    Trim the directory path from filename used in log messages
5210    Display file name and line number within Python3 log messages
5211    Remove AutoMutex from Perl and Python bindings
5212    Use of the Python3 binding shutdown_all_middlewares() results in
        dead-lock
5213    Boolean Field not created correctly when XML content uses "1" for field
        value
5214    Python3 binding does not register custom log handler with Core API
5215    Message addField(String, String) in Java binding does not allow for
        empty string value
5216    C# binding does not register custom log handler with Core API
5217    Identify Config.Initialize() in C# binding as being obsolete
5218    ProductFile GetContents() can throw unmanaged exception if object has
        no data contents
5220    Resource Service should not increment COUNTER field with each sample
        taken
5221    Resource Message published by Resource Service should include PUB-RATE
        field
5223    Scan GMSEC API 4.6 using Fortify and correct/disposition any
        deficiencies found
5224    Message Bus Reader Thread does not properly destroy data buffer
5225    MSG-ID field not included within C2CX HB messages generated by the API
        when operating with the 2014 GMSEC ISD
5226    C++ log macros cannot be compiled in extended namespace
5227    Internal ValueMap does not handle GMSEC_U32 value type
5228    Java applications cannot run on macOS when SIP is enabled
5230    Use python-config and python3-config to get compiler and linker flags
5232    GMSEC API Project File improperly references certain source modules
5233    AMQP m/w wrapper fails to free resource
5234    Generic JMS m/w wrapper failes to free resources
5235    IBM MQ (formerly WebSphere) m/w wrapper does not always retry connecting
        to broker
5236    Certain example programs for the SWIG-generated language bindings do not
        demonstrate usage of release() for disposing of received messages
5237    MistMessage needs to identify header fields when applying standard
        fields to message
5238    Environment Validator does not fully check if Java is installed on macOS


==============================================================================
= GMSEC API 4.5.1 release notes (February 26 2019)
==============================================================================
--- Change summary -----------------------------------------------------------
5192    API 3.x Request Message Kind should not be altered when message is
        published
5202    TYPE attribute should be ignored if KIND attribute is provided with
        Message definition


==============================================================================
= GMSEC API 4.5 release notes (February 12 2019)
==============================================================================
o Support for Microsoft Visual Studio 2008, 2010, 2012, and 2013 has been
    dropped. Currently the API is built only with Visual Studio 2017.

o Support for Solaris 10 SPARC has been dropped.

o Support for Ubuntu 18.04 LTS is being provided.

o Java 8 (or later version) must be used to run Bolt and/or to use the Java
    binding of the GMSEC API.

o This release contains an additional interface for the C# language that can be
    used under Linux (using Mono) or under Windows.

    Please refer to the example programs in GMSEC_API/examples/csharp and the
    code documentation in GMSEC_API_DOCS/manual/csharp_4x to learn more about
    the use of the new binding.

    Note: In future releases, the separate and distinct C# .NET/CLI language
    binding will no longer be provided with the GMSEC API.

o This release contains an additional interface for the Python 3 language.
    This interface is based on the Python 3.6.5 interface.

    Please refer to the example programs in GMSEC_API/examples/python3 and the
    code documentation in GMSEC_API_DOCS/manual/python3_4x to learn more about
    the use of the new binding.

o An OpenDDS middleware wrapper is now available for Windows and RHEL7.

o An IBM MQ 9.0 middleware wrapper is now available.


--- Change summary -----------------------------------------------------------
4730    The API should be able to validate the values of fields as defined by
        the GMSEC ISD
4977    The C# LogEntry does not contain file name or line number information
        for the C# source file
5036    Provide support for IBM MQ (formerly WebSphere) 9.0
5043    Build and test the GMSEC API under Ubuntu 18.04 LTS
5052    Support message validation logic in the GMSEC API using XSD files
5075    Add SWIG-generated C# binding for Linux-based Mono projects
5076    Generate Javadoc JAR file for the Java binding of the GMSEC API
5080    Update API User's Guide to remove certain unsupported features
5085    Update API User's Guide to include all tracking field enable/disable
        options
5088    Tracking fields are not removed from C2CX Heartbeat messages
5089    The PROCESS-ID tracking field should not always be set to a U32 field
        type
5091    Upgrade Visual Studio 2008 Project/Solution files to the Visual Studio
        2017 format
5092    Messages with excluded subject patterns should not be aggregated when
        Message Binning is enabled
5094    The API does not support multi-layered schema addendums
5095    Newly defined C2CX HB message tracking fields should not be added if
        2014 or 2016 ISD is specified
5096    Allow for customizable time out period for receiving WebSphere messages
5097    API should not remove user-supplied tracking field(s) from messages
5098    StringUtil's getValue<T>() method does not always report errors when
        given bad input
5099    InternalMistMessage not converting data values correctly with setValue()
5100    Field GetType() in C#/CLI (dotnet) binding should be renamed to
        GetFieldType()
5101    MistMessage needs a constructor that can convert a Message object into
        a MistMessage object
5103    Specification (class) is doing unnecessary work when validate() is 
        called with NO_ENFORCEMENT configured
5105    Removed ConnectionManager's setStandardFields() exception specification
5110    Clarify API documentation to mention user needs to first add COUNTER
        field (to the Heartbeat Service) before the API will increment the field
5111    Bolt server displays incorrect port
5112    Remove REPLY-UNIQUE-ID from request and response messages
5113    Offer ability for users to acquire Message Specifications
5114    StringUtil::toJSON isn't escaping newline characters
5116    Fix Open-Response example programs
5118    Build the SWIG-generated C# binding of the API under Windows
5119    Refactor Specification copy-constructor
5120    Generate a 32-bit distro of the API using Visual Studio 2017
5121    Create a Python 3.x binding for the GMSEC API
5122    Rename SWIG-generated C# libraries to match GMSEC API convention
5123    Build the GMSEC API using JDK 8
5124    Setting JVM stack size proves fatal with use of Java 8
5125    Add support for IBM MQ m/w wrapper to Environment Validator and GMSEC
        Help utilities
5126    InternalConnectionManager does not need to check for viable Connection
        object
5127    The GMSEC API crashes when handling validation of a MSG.AMSG message
5133    Custom validation example programs for the GMSEC API need updating
5134    Scan GMSEC API software using HP Fortify
5135    Embellish error message when error occurs processing an XML or JSON
        field definition
5136    Add API method so a user can add a list of Field objects to a Message
5137    Implement middleware wrapper that supports OpenDDS
5138    Update API build framework to check if 3rd-party tools are installed
5140    Fix comments in Java 4.x binding to follow JavaDoc conventions
5142    InternalConnectionManager should create MistMessage messages
5143    Fix package names for JNI related classes
5144    Generate Doxygen style documentation for the SWIG-generated C# binding
5147    Connection unsubscribe() documentation should indicate that an exception
        can be thrown if error occurs
5148    Create Project and Solution files for C# example programs
5149    Update C# (dotnet) example programs to build using .NET Framework 4
5150    ActiveMQ middleware wrapper calls on unsafe ActiveMQ C++ library method
5151    Enhance gmreq utility program to allow for configurable request
        republish timeout period
5153    Exception is not handled by setHeartbeatServiceField()
5154    Update Environment Validator script for OpenDDS
5155    Update GMSEC Help utility application for OpenDDS
5156    Heartbeat Service should publish only one message when PUB-RATE is 0
        (zero)
5158    API should use CONNECTION-ENDPOINT tracking field for C2MS compliancy
5163    Fix example programs so that they compile and that they produce legal
        messages
5164    Late destruction of ConnectionManager affects Java applications relying
        on MistMessage setStandardFields()
5165    Memory leak occurs when a received message fails validation
5166    PUB-RATE cannot be changed when restarting Heartbeat Service
5167    Unable to run GMSEC API based Java application using Java 10
5168    ConfigFile should report more concise error messages
5169    A Field definition in XML representation that spans multiple lines
        cannot be parsed
5170    Drop support for IBM WebSphere 7.5
5171    Sorting fields in a Message leads to a core dump
5173    API is not identifying tracking fields as header fields
5174    Python bindings do not allow for bytearray to be used for representing
        raw binary data
5175    Provide Python applications with the means to convert a Field object
        into a more specialized field object
5179    Replace usage of javah with javac to build JNI header file
5182    Depending on middleware, API publish operations may not be thread-safe
5184    ActiveMQ m/w wrapper does not log error messages from client library


==============================================================================
= GMSEC API 4.4.2 release notes (2018 March 14)
==============================================================================
--- Change summary -----------------------------------------------------------
4933    Provide IPv6 support for Message Bus
5044    Address the sections of the API which are using the deprecated Mac
        system-level function OSAtomicAdd32()
5057    Add option to gmpub to allow it to publish forever
5070    GMSEC_TimeSpec overloaded operators should not be defined in a
        namespace
5073    Example programs should run when configured with the strictest level
        of message validation
5074    API Makefile should not attempt to build Perl and Python bindings if
        swig is unavailable
5077    The XML templates used by the API for message validation do not include
        tracking fields
5078    Product File Message class is not inserting properly named field
5081    Build 32-bit version of GMSEC API under RHEL (CentOS) 7
5082    Config object is not passed to internal API by MistMessage constructor
5083    JMSConnection constructor is not throwing an exception on error
5087    CONNECTION-ID tracking field should be a U32 field


==============================================================================
= GMSEC API 4.4.1 release notes (2018 February 6)
==============================================================================
--- Change summary -----------------------------------------------------------
4731    Add message validation to receiving operations and expand validation
        configuration options
4760    Support builds on Windows 10
4787    Provide utility app for publishing a canned GMSEC message supplied
        by the user
4798    Add support for certain Connection class methods within Connection
        Manager
4963    Add cautionary statements to API User's Guide and code documentation
        regarding Callbacks
5033    PROCESS-ID in information bus header needs to be U32 rather than I16
5039    MnemonicMessage should readily support MVAL request-type messages
5045    Report the key value in the error when attempting to retrieve a non-
        existing value from a Config object
5046    Connection state should not be CONNECTED if a connection authentication
        failure occurs
5047    Fix logic error with Bolt's TypeValidater
5048    Perl and Python bindings should not be built if SWIG_HOME is not defined
5049    Define PERL5_LIB and PYTHON_INC within API Linux configuration files
5051    Resource Info Generator should not be adding certain fields to Resource
        Message
5053    Use major.minor name convention for ActiveMQ CMS library wrapper file
5056    Provide an interface to set standard fields in MistMessage
5058    Further simplify API utility programs
5059    Exceptions should not be thrown from class destructors
5060    Allow for registration of Event Callback before initializing Connection
        Manager
5062    Certain string characters need to be escaped or converted when
        generating JSON and XML data
5063    Python example programs not handling error when user passes no args
5064    Define macro that contains hex representation of API version number
5065    Avoid assuming a synchronous request is done when a response has not
        been received following a timeout
5066    The default republish period when issuing request messages should be
        GMSEC_REQUEST_REPUBLISH_NEVER (-1)
5069    Define RPATH within all GMSEC libraries built for Linux systems
5072    ConfigFileIterator of the Java binding returns non-persistent references
        to objects


==============================================================================
= GMSEC API 4.4 release notes (2017 Dec 15)
==============================================================================
o This release contains an additional interface for the Python language.
    This interface is based on the Python 2.x interface and is built and tested
    with CPython. Please refer to the example programs in
    GMSEC_API/examples/python and the code documentation in
    GMSEC_API_DOCS/manual/python_4x to learn more about the use of the new
    binding.

--- Change summary -----------------------------------------------------------
4292    Add subscription exclusion filters to subscription definitions in
        ConfigFile
4446    Consolidate API string constants, especially config keys, into a single
        header file
4671    Execute middleware performance testing and generate a performance test
        report for GMSEC API 4.2
4740    Add a tracking field which contains a list of unique subscription
        subjects in a process
4741    Add a tracking field which shows the server to which a GMSEC Connection
        is currently connected
4758    Simplify the example programs
4791    Fix inconsistencies in the values of the FIELD_CLASS attributes in XML
        template files used for message validation
4792    Change the UNSET type attribute to VARIABLE in the XML template files
        used for message validation
4796    Fix various minor issues with the XML template files used for message
        validation
4837    Fix Magic Bus so that it handles requests for resource information
4869    Provide support for ActiveMQ CMS 3.9.4 and OpenSSL 1.0.2
4881    Update MistMessage constructors so that the Schema ID does not require
        the version number of the ISD
4898    Allow applications to register an EventCallback before connecting to
        the bus
4899    Setting the field storage container type after a message has been 
        created can truncate the message
4900    API Environment Validator script does not always report the version
        number of the API
4901    Allow users to set configuration options for messages that are received
        from the GMSEC Bus
4921    Field::getStringValue does not properly convert Binary, I8, or U8 Field
        values to strings
4934    Fix the message encoding and decoding logic which prevents Fields from
        being identified as a header
4938    Augment Field class to allow type of "BINARY" in addition to "BLOB"
        and "BIN"
4953    Rename Doxygen documentation directories for API 3.x
4955    Users shall be able to change the rate of publication of the Heartbeat
        Service
4964    JNI objects created within Callbacks need to be destroyed after use
4969    The JVM stack size should be specified by the Generic JMS wrapper
4973    The Java API's registerHandler should reset to the default Java handler
        when invoked with null
4997    Fix the memory leak in the Java Message.getXXField() functions
4999    Add a getStandardFields function to the ConnectionManager
5003    ConnectionManager::request(no callback) and reply() should be able to
        validate messages
5015    MessagePopulator class doesn't add MSG-ID field
5027    Fix the memory leak in the Java ConnectionManager requestSimpleService()
5028    Fix output from Message toXML() so that the message configuration, if
        any, is properly indented
5032    Fix the connectionManagerCreate() function in the C binding so that it
        does not enable message validation
5034    MIST ignoring lower level message templates when overriding addendum is
        applied
5035    Infinite loop occurring when addendum is added with no header listed in
        directory
5050    Mark all deprecated classes and functions of the API


==============================================================================
= GMSEC API 4.3 release notes (2017 May 1)
==============================================================================
o For Mac OS X users, this release may break binary compatibility with previous
    API 4.x releases.  This is due to a change in how the API is built on OS X.
    Previously, libstdc++ was being used; now libc++ is used.  (See item 4462
    below).  This change was made to prevent a sporadic crash from occurring
    when using various API functions.

o Beginning with API 4.3, strict validation of subjects used within Messages
    and for subscriptions will be performed to ensure that they are GMSEC-
    compliant, as defined by the GMSEC Interface Specification Document.
    Users wishing to continue using non-strict validation may employ the use
    of the "SEC-POLICY" configuration option and set it equal to the value
    "API3".

o Beginning with API 4.3, support for Solaris 10 x86 and HP-UX has been dropped.

o Users of the Java language binding should be aware that the
    Connection.disconnect() and ConnectionManager.cleanup() functions now
    throw a GMSEC_Exception.  This means that any code which calls these
    functions must be encapsulated by a try..catch statement which handles
    a GMSEC_Exception, or else the application will not be able to compile.
    Previously compiled software will still be able to run, just as it did
    prior to this change.  This change was made in response to DR #4788 
    (See below) so that exceptional states can be handled more gracefully.
    
o The Perl language binding of the API is being pared down to only include
    support for synchronous operations.  Features involving asynchronous
    operations (e.g. registration of callbacks, auto-dispatcher, etc.) have
    been removed from the binding.  Additionally, LogHandler subclassing has
    been removed.  The removal of these features is due to an instability
    discovered when executing subclass implementations in a multithreaded
    process, such as when using the AutoDispatcher or invoking a custom
    LogHandler from a non-main thread.
	
o Configurable message bins (aggregated messages) now support subscription-type
    wildcards (e.g. '>', '*', and '+')

o The ConnectionManager, MISTMessage, DeviceMessage, ProductFileMessage,
    MnemonicMessage, and various iterator classes (Collectively referred to
    as the Messaging Interface Standardization Toolkit (MIST)) have been
    added to the 4.X Perl interface.

o The Config class can now ingest and output JSON data, as well as ingest
    strings of whitespace-delimited "key=value" pairs, much like command-line
    arguments used when running example programs such as gmpub and gmsub.

--- Change summary -----------------------------------------------------------
4147    Refactor implementation of the ActiveMQ Transport Listener
4462    Build API on Mac OS X using libc++ (not libstdc++)
4512    Improve efficiency of InternalSpecification
4513    Move InternalField::getValue() to StringUtil
4514    Add setSubject function to Message class
4515    Add support for custom Message validation
4516    Expand 4.X Perl Unit Testing Coverage
4517    Add support for MIST into the 4.X Perl interface
4518    Add Device, Mnemonic and Product File Iterator support in C binding
4559    Config class should be able to ingest alternative types of String data
4561    Update gmhelp to provide bind/connect connection examples for ZeroMQ
4567    Expand OS support for 4.X Perl interface
4572    Embellish error information included with exceptions thrown from Bolt
4596    Prevent MagicBus middleware wrapper from attempting to communicate with
        MB server once it is known that the connection has been lost
4597    Cannot create a BinaryField object with the Perl interface
4598    Comparison made against configuration string value should be case
        insensitive
4600    In the C++ and C example programs, unsubscribe should only be called on
        active subscriptions
4601    Error checking should by default be performed on subscription subjects
        with wildcard operators
4610    Create a Python language binding
4615    Create example programs and unit tests for Python language binding
4616    Incorrect cast types are used in Java binding when constructing C++
        fields
4618    Users should be able to add or change Heartbeat Service fields
4619    Message template files do not use correct XML encoding syntax
4657    Field should be able to ingest JSON with numeric type syntax
4662    Implement a public toJSON() method for Config
4669    Config functions getFirst and getNext in Perl interface do not work
4694    Republish period for asynchronous request is not being properly handled
4699    Configurable Message Bin fails to handle message subject using wildcard
        element
4707    Replace use of deprecated OSAtomicAdd with alternative function for Mac
        OS X
4717    Remove references of API 3.x header files from API 4.x modules
4721    Address issues reported by HP Fortify
4729    Field.getString() should be Field.getStringValue() in the Java 4.X API
4743    Re-order field type and name when displaying Field XML information
4744    Issue Request-kind message when Connection Manager requestDirective()
        is called
4751    Make the decoding of a message packet more efficient
4768    Remove Field descriptions from validation error messages
4788    Update documentation and example programs to indicate that
        Connection::disconnect() can throw an exception in rare cases
4803    Non-ASCII Unicode characters cause String truncation when retrieving
        data from the Java language binding
4804    Improve error messages related to MnemonicMessage's dependent field
        RAW-VALUE
4807    The getField functions should report the name of the requested field
        when unable to retrieve it from a message
4809    GMSEC_Exception does not initialize base class (Exception)
4840    Fix MistMessage to allow a value of 0 (zero) for F32 fields
4853    Client applications crash when using a Magic Bus fail-over configuration
        and yet only one broker is running



==============================================================================
= GMSEC API 4.2.2 release notes (2016 December 16)
==============================================================================
o This is a patch release that includes a couple of bug fixes.

o (Fastpath) Improvements to Configurable Message Binning that allow users to
    configure which messages, if any, should be excluded from being binned.
    Users can also employ the use of wild-cards when indicating which messages
    to bin or exclude from binning.

--- Change summary -----------------------------------------------------------
4509    Add ability to exclude messages, using subject, from being added to
        Configurable Message Bins
4655    Fixed bug related to how message tracking field options are processed
        by the Connection class
4685    Resolve dead-lock issue when call to publish() is made within a callback
        that was summoned by dispatch()



==============================================================================
= GMSEC API 4.2.1 release notes (2016 November 9)
==============================================================================
o This is a patch release to correct a bug in a method that is used by the
	Time Utility functions.

--- Change summary -----------------------------------------------------------
4609    Fix StringUtil::getTimeFromString() so that it can process time stamps
        that do not include fractional time



==============================================================================
= GMSEC API 4.2 release notes (2016 October 31)
==============================================================================
o This release contains an additional interface for the Perl language.
	This new interface exists in parallel with the existing one, so all
	existing software that utilizes the GMSEC API will continue to function
	without interruption. However, new software development should utilize
	this new interface, as it is safer and leaner than the existing interface.
	
o User-defined message validation has been added to the Messaging Interface
	Standardization Toolkit (MIST) portion of the API.  The ConnectionManager
	and Specification classes can now be configured to validate user-defined
	messages, as would be defined in an addendum to the GMSEC ISD.  More
	information on this functionality is outlined in the GMSEC API User's Guide
	in the section named, "Addendums to the ISD."
	
o (Fastpath) The API's internal classes have been refactored to use Exceptions
	for error handling rather than checking on a Status object returned from
	each step of an operation.  This has in turn improved the efficiency of
	the API by reducing the number of instruction cycles the CPU must execute
	to perform operations such as publishing and receiving messages.
	
--- Change summary -----------------------------------------------------------
3844    Implement MIST Build 3
3963    Add source file name and line number to the Java LogEntry
4122    Add Perl interface for core (non-MIST) API 4.x
4156    Refactor Core API C++ Framework
4334    Fastpath: Streamline Connection publish() and receive() with seamless
        enhancements
4392    Add methods that allow users to easily get native value from a Field
        object
4396    Protect against concurrent access to the list of pending requests in
        RequestThread
4399    Prevent overwriting of EVENT-TIME field in MIST message field populator
4400    Java binding of API fails to catch exceptions thrown by the C++ layer
4435    Fastpath: Configurable Message Bins
4444    Catch exceptions in StdThread and remove include statements for API 3.x
        header files
4481    Stop Resource Message Service when ConnectionManager is destroyed
4490    Allow for XML or JSON data containing fields with an empty value to be
        parsed without error
4501    Add missing Time Utility functions to C binding of API
4506    Implement Mnemonic addSample() within JNI-layer of Java binding
4519    Increment COUNTER field in C2CX Heartbeat Messages
4537    Fix Java binding to return correct StatusClassification and StatusCode
4570    Prevent memory leak when Message class copy-constructor is called
4571    Bolt Server should report version information that correlates with the
        version of the API
4582    Fix Bolt middleware wrapper so that it does not throw an exception
        when a timeout occurs while attempting to receive a message
4591    Fix Message class to support U64 fields
4595    Make InternalConnection's insertTrackingFields() method thread-safe
4606    Report correct message kind after ingesting XML or JSON data
4607    Mitigate thread-safe issue within AMQP middleware wrapper.



==============================================================================
= GMSEC API 4.1 release notes (2016 July 25)
==============================================================================

o IMPORTANT: This version corrects a mild memory leak in the 4.X Java Callback
	handling system. All 4.X interface callbacks are now abstract classes,
	instead of interfaces. This requires all code using these classes to 
	change their reference to Callback, ReplyCallback, and EventCallback to
	use the keyword "extends" instead of "implements".
	This change was necessary to ensure that callback memory is properly cleaned
	up.
	Client programs previously built with version 4.0 or 4.0.1 of the API should
	be recompiled if the plan is to use API 4.1; otherwise undefined runtime
	behavior can be expected.

o Corrected several coding defects identified by static code analysis

--- Change summary -----------------------------------------------------------
4250    Address Fortify issues within 4.0.1 (see important note above)
4295    Incorporate memory management corrections in C# binding
4332    Config class allows merging of config objects
4353    Correct logic in autodispatcher shutdown timing
4357    API will now warn users if log file cannot be opened	
4358    C2 NSS wrapper now frees resources (Compat C2 version only)
4375    ZeroMQ wrapper now employes the zero copy concept
4385    ConnectionManager requestDirective() method was not setting appropriate
        value for RESPONSE field
4390    WebSphere middleware wrapper asynchronous status check fails to dispatch
        event
4391    MagicBus fails to deliver messages to subscribers when two brokers are
        being used



==============================================================================
= GMSEC API 4.0.1 release notes (2016 May 16)
==============================================================================

o Added new Connection and Publish-level Config options which expose the
	WebSphere MQ Asynchronous Put Response client option.  This new option
	allows users to toggle this functionality on or off and potentially
	achieve a higher throughput rate of message traffic when using
	the WebSphere MQ middleware.  For more information on this topic,
	please see the Installation and Configuration Guide Section 7.7
	as well as the current and legacy gmpub_wsmq_async example programs.

o Added the PublishWithConfig function to the 3.X C.v1 and C.v2 interfaces.

--- Change summary -----------------------------------------------------------
4274    Exposure of WebSphere MQ Asynchronous Put Response Functionality



==============================================================================
= GMSEC API 4.0 release notes (2016 April 04)
==============================================================================

o This release contains an additional interface for the Java, C, C++, and C#
 	languages. This new interface exists in parallel with the existing one, 
 	so all existing software that utilizes the GMSEC API will continue to 
 	function without interruption. However, new software development should 
 	utilize this new interface, as it is safer and leaner than the existing
 	interface.
 	
o This release also contains an expanded set of functionality for the 
	Messaging Interface Standardion Toolkit (MIST). Available for the new 
	interface only, this functionality includes validation of all GMSEC ISD
	described messages, automatic production of resource messages, and 
	simplified production of Mnemonic, Device, and Product messages. For more
	information, please see the GMSEC API User's Guide or the doxygen 
	for the ConnectionManager (available in GMSEC_API\docs\cpp_4x)

o New middleware supported with this release are Rabbit MQ via AMQP 1.0 and
	ZeroMQ. 
	
--- Change summary -----------------------------------------------------------
4171    ZeroMQ wrapper drops messages due to interrupted function calls
4146    ActiveMQ Durable Subscription functionality has been corrected to work
        with separate Connection sessions.
4136    Added ability for users to provide a Config object to a Java Subscribe
        call
4110    Add support for anonymous classes in new Java interface
4109    Add automatic flushing of cached WebSphereMQ topic handles
4069    Add ability to disable request/reply operations for a Connection
        object, to simplify topic management
4066    Correct memory leak in open response reply delivery
4047    Conform new C# interface functions to industry standard
4009    Add support for U64 field to new interface
4004    Add support for ZeroMQ middleware, see API User's Guide for details
3971    EventCallback reports the ConnectionEvent which resulted in the Callback
        invocation
3959    Repair validation error in InteralFieldDescriptor
3924    Add ability for JSON formatted GMSEC messages to be used as the 
        middleware payload
3905    Add asynchronous message publishing
3836    Add JSON support to the Message and Field interfaces
3811    Add configurable TCP buffer to Bolt middleware client
3777    Add "+" operator to allowed subscription wildcard set
3747    Allow configuration of backlog queue size for the listen-socket used by
        Bolt server
3737    Add support for ActiveMQ CMS 3.8.4
3639    Add ability for API to report asynchronous middleware events
3622    Add support for U8
3621    Correct issue with Message Bus error class reporting
3605    Normalize middleware disconnect behavior
3600    Add support for current Mac versions
3576    Add support for AMQP 1.0, tested with Rabbit MQ
3570    Correct bug in Connection::Unsubscribe(), where subscription count was
        not correctly updated
3550    Correct issue in CMSConnection::GetMWINFO() that could product a 
        segfault.
3548    Implement connection global unique identifier
3451    Correct issue with MIST loading templates on Linux
3443    Create new interface for Java, C, C++, C#
3421    Add new functional block for MIST
3411    Correct ConfigFile error handling
3377    Add exclusion filters to connection to allow simpler message filtering
2604    Add support for WebSphere MQ 8
2291    Add support for Component style configuration to ease XML configuration
        loading


[For change descriptions from prior releases of the GMSEC API, please send your
 request to gmsec-support@lists.nasa.gov]

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 71.2%
  • Java 9.6%
  • SWIG 7.5%
  • C 5.8%
  • C# 3.0%
  • Perl 0.9%
  • Other 2.0%