X Platform Documentation Portal

Release Notes

X Platform Documentation Portal

Skip to end of metadata
Go to start of metadata

This is the 11th milestone rollup release of Core X 3.0 published as part of the 3.0-M8 milestone. It contains bug fixes, changes and improvements. This release represents stable functionality that is expected to be delivered as is in the first 3.0 release, but is published as a milestone as additional features are planned for 3.0. If you are interested in deploying this release, contact Neeve to request a production release of it. Milestone releases are published in the Neeve milestone repository and are subject to deletion.

Release Highlights

Change Log

 

 

Bug Fixes

Bug

XPLATFORM-962 Semantic Type for pooled string field is not set in ADM model.

The ADM XML parser doesn't set the semantic type for pooled string field via the field's getSemanticType() accessor like it should be. Consider the following:

Running the ADM code generator produces 2 pooled string types for the above: FirstName and LastName. The FirstName field is associated with the semantic type 'FirstName' while the 'LastName' field by virtue of being declared 'poolable' will result in the creation of a pooled string type.

Because the FirstName field is based on the semantic type 'FirstName' it is useful for tools that parse ADM models to be able to access the semantic type to inspect type semantics.

Changes

Change

XPLATFORM-869 Normalize poolable string fields and regular string field accessors in ADM generated code

This change normalizes message/entity accessors for pooled string types with those of regular string types. Prior to this change pooled string types were used in the generated code and pooled in a somewhat independent fashion from their message. Performance testing showed this approach to be infeasible due to the pooling overhead of string pools because those pools needed to be threadsafe. Additionally, after beta testing feedback it was found that such pooling was confusing to end users.

For the most part these changes are backwards compatible. However, the for pooled string fields there are a few compatibility breaking changes in generated accessors:

The default getters/setters no longer return the pooled string type. They now return/accept a String. Applications that used the default getters will need to update their code to use getXXXTo / setXXXFrom respectively.

Additionally this change removes several accessors that were made redundant by the normalization. By default these accessors are no longer generated by ADM to reduce the overhead associated with vtable lookups. Applications may set the code generator directive <generateDeprecatedAccessors>true</generateDeprecatedAccessors> to have ADM generated these accessors.

Change

XPLATFORM-981 Remove fluent setters from generated interfaces.

 
This milestone removes generation of fluent setters on generated interfaces when the generateFluentSetters directive is enabled. Fluent setters on generated interfaces were removed because it introduces too many possible type conflicts for the return type when a class implement multiple interfaces with the same field.
Change

XPLATFORM-982 Rename ADM generateBuilderSetters directive to generateFluentSetters

 
The ADM directive generateBuilderSetters has been renamed to generateFluentSetters. The old property name has been deprecated.
Change

XPLATFORM-973 Default Solace session client name to binding user name

 
Prior to this release, the Solace binding defaulted the client name used when establishing the Solace session to "" if not specified by the user via the binding's connection descriptor. This release changes the binding to use the binding's user name as the default. For applications using the AEP engine, the engine sets the user name as the engine's name.
Change

XPLATFORM-974 Default TCP_NODELAY in Solace binding to false

 
Prior to this release, the Solace binding defaults TCP_NODELAY to true. This is inconsistent with other configuration parameters that default to favor high throughput instead of low latency. This release changes the default for TCP_NODELAY to false from true.
Change

XPLATFORM-975 Rename fail_on_bad_message to fail_on_inbound_message_handling_fault in Solace binding

 
Prior to this release, the Solace binding supported a configuration parameter named _fail_on_bad_message_ that can be specified via the connection descriptor. The name of this parameter is not reflective of the behavior it invokes since setting this parameter to true will cause the binding to shut down if _any_ fault is encountered during the processing of an inbound message prior that prevents the message from being enqueued in the app's AEP engine's inbound multiplexer. This release changes the name of this parameter to more accurately reflect the behavior that it invokes. The name of the parameter is now _fail_on_inbound_message_handling_fault_
Change

XPLATFORM-977 o2s should be computed when nv.msg.latency.stats=true

 
Prior to this release, the o2s latency metric was only computed if nv.aep.<app>.latency.stats was set to true. However, it should be computed if either nv.aep.<app>.latency.stats is set to true or nv.msg.latency.stats is set to true. This release fixes this bug 

Improvements

Improvement

XPLATFORM-960 Allow TLT to sort dumped fields alphabetically

This improvement changes the behavior of the transaction log tool when dumping log entries in detailed (json) format to sort the fields alphabetically. The alphabetical sort can be disabled by launching the tool with the system property -Dnv.json.sortAlphabetically=false
Improvement

XPLATFORM-958 Core X Maven Plugin fails to resolved models from 'provided' scoped dependency jars

 
This change adds a project's 'provided' dependencies to the nvx-core-maven-plugins classpath. This allows the ADM Code Generator to resolve imported models from 'provided' dependencies. Prior to this change models could only be resolved from 'runtime' and 'compile' scoped dependencies.
Improvement

XPLATFORM-971 Configuration property to override use of native UtlTime.now()

 
Prior to this release, UtlTime automatically switched to using the native implementation for now() if the native X libraries can be located. This release adds a new configuration parameter - nv.time.usenative - that can be used to override this behavior. The default value of this parameter is true i.e. default behavior is backward compatible. If set to false, UtlTime.now() will use System.nanoTime() even if native X libraries can be located.
Improvement

XPLATFORM-978 Message type specific messaging latencies

 
Prior to this release, messaging waypoint latencies are computed as aggregate across all message types. This release adds the ability to configure the system to compute these latencies by message type. To enable latency computation and reporting by message type, set nv.msgtype.latency.stats=true 
  • No labels