7.0.0-dev.121
CDM AssetBase Conditions - Modelling
Background
AssetBase includes Party and PartyRole attributes, both with (0..1) cardinality. The associated conditions make PartyRole mandatory. For example:
condition IssuerRole: <"If the asset type is a security then the role must be issuer."> if assetType = Security then partyRole -> role = Issuer
If PartyRole is omitted from the Security object, the constructed trade object fails validation because this condition cannot be evaluated. The condition should be updated to read: if assetType = Security and partyRole exists then partyRole -> role = Issuer
What is being released?
Changes the below AssetBase conditions to read:
if assetType = Security and partyRole exists then partyRole -> role = Issuerif assetType = ListedDerivative and partyRole exists then partyRole -> role = Exchangeif assetType = Loan and partyRole exists then partyRole -> role = Lender or partyRole -> role = Borrowerif isExchangeListed and partyRole exists then partyRole -> role = Exchange
Review Directions
Changes can be reviewed in PR: #4856
function Create_ProposedWorkflowStep - propagate action attribute to proposedWorkflowStep
Background
The function cdm.event.workflow.Create_ProposedWorkflowStep has the input parameter action, which is not propagated to the proposedWorkflowStep WorkflowStep action attribute
What is being released?
Add the action mapping to proposedWorkflowStep
Review Directions
Changes can be reviewed in PR: #4831
Infrastructure - Enable Java Compiler Options
Background
This release improves interoperability with Java reflection-based frameworks and JSON mapping libraries by preserving semantic parameter names in generated models. As a result, downstream consumers can reference meaningful domain-specific names (for example, tradeState) rather than compiler-generated placeholders (such as arg0), simplifying integration and improving readability. The change is fully backward compatible, does not modify existing CDM models or APIs, and introduces no runtime performance overhead. For further details, see issue #4524
What is being released?
In the pom.xml, update maven compiler plugin to specify the parameters option.
Review Directions
Changes can be reviewed in PR: #4815
Asset - Moving Price Quantity Triangulation to PriceQuantity
Background
A PriceQuantityTriangulation condition is implemented at the TradableProduct level to check the internal consistency of the price and quantities provided. There are limitations to the existing implementation and the placement of the condition
What is being released?
- Move the condition to
PriceQuantityso the check happens on the prices & quantities rather than on the trade lot - Remove the
CashPriceQuantityNoOfUnitsTriangulationfunction and place the logic directly in thePriceQuantityTriangulationfunction - Remove references to the unit type and apply the condition to a broader use case
Review Directions
Changes can be reviewed in PR: #4863
Infrastructure - Enable Rune JSON Serialiser
Background
As recommended by the Steering WG and Technology Architecture WG, an improved JSON serialisation format was specified and implemented to improve interoperability, completeness, readability, and compactness of serialised CDM data. The specification is detailed in issue #3236.
For more details, see GitHub issue: #4746.
What is being released?
CDM 7 is configured to use the new Rune JSON serialiser by default. Both the new and legacy JSON mappers remain available, allowing CDM implementors to choose which serialisation format to use in their internal models. CDM versions 5 and 6 will continue to use the legacy serialisation format.
Review directions
Changes can be reviewed in PR: #4803