Repository navigation
[11.x.x] Add RuneFIXMapper to serialise Rune model objects to FIX messages - #24
Closed
hugohills-regnosys wants to merge 3 commits into
Closed
hugohills-regnosys wants to merge 3 commits into
hugohills-regnosys wants to merge 3 commits into
Conversation
Moves the FIX serialiser from the DRR repository into rune-common under com.regnosys.rosetta.common.serialisation.fix, built on QuickFIX/J. Field tags come from the model's labels and repeating-group structure from the QuickFIX/J DataDictionary. Deserialisation is still stubbed.
…dictionary Adds a test model shaped like a MiFIR TradeCaptureReport and a minimal FIX 5.0 SP2 dictionary, and exercises scalars, components, enum and complex repeating groups, nested groups, validation, unmappable attributes, routing and concurrent use. Two tests are disabled pending fixes: validation failures are dropped from the report, and a type with no labels throws a NullPointerException.
…ectMapperCreator.forFIX Like RosettaCsvMapper, it extends ObjectMapper and overrides writeValueAsString, writeValueAsBytes, writer, writerWithDefaultPrettyPrinter, readValue(String, Class) and copy. forFIX overloads load the DataDictionary from the configuration's dictionaryPath, which the mapper previously ignored.
Author
|
Moved to finos#756. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds
RuneFIXMapperundercom.regnosys.rosetta.common.serialisation.fix, which serialises a Rune model object to a QuickFIX/JMessageor FIX string. It takes field tags from the model's labels (viaLabelProviderResolver) and repeating-group structure from the QuickFIX/JDataDictionary. LikeRosettaCsvMapper, it is a JacksonObjectMapper, created throughRosettaObjectMapperCreator.forFIX, which loads theDataDictionaryfrom the configuration'sdictionaryPath. Moved here from the DRR repository; still in progress, and deserialisation is stubbed. Targets 11.x.x first, to be cherry-picked to main.Adds
quickfixj-core3.0.2 (Java 8 bytecode), andmockito-junit-jupiterfor tests.RuneFIXMapperSerialisationTestruns the mapper end to end against a generated test model and a minimal FIX 5.0 SP2 dictionary. Two of its tests are disabled until the bugs they expose are fixed in a follow-up commit on this PR: validation failures never reach the report (validateBodyOnlyReportbuildsreportIssuesbut returnsissues), and a type with no labels of its own throws aNullPointerExceptionbecauseLabelProviderResolver.fromTypereturns null.Type of change
🤖 Generated with Claude Code