Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft: Changes from FlexTrade #876

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

philipwhiuk
Copy link
Contributor

@philipwhiuk philipwhiuk commented Sep 12, 2024

Change summary:

  • Jacoco & Surefire build data
  • Introduction of an interface IMessage to allow alternate implementations of Message
  • Log handlers for InvalidMessage and Disconnects
  • Exposing creationTimeCalendar object for reduced GC
  • Allowing Throwables (e.g. OOMs) to propogate
  • Adding DataDictionaryProxy for dynamically reloading a session's Dictionary
  • Re-exposing field ordering information from DataDictionary objects
  • ValidationSettings separation
  • Providing the value when rejecting a message for a bad field value
  • Standardising error reasons
  • Introduction of SendResult to properly clarify persistence status of messages
  • Adding TimePeriods as a complex session timing mechanism
  • Adding UseFirstTagAsGroupDelimiter to handle FIX engines that don't behave in a FIX-spec compliant mechanism
  • Adding OnlyAllowSeenOrKnownFieldsInLastGroup to control whether to fold unknown tags into the last group or not
  • Adding WeakParsingMode to add an alternative parsing mechanism to handle Groups without a DataDictionary
  • Adding Fix41ResendRequestAsFix42 to deal with FIX implementations that use FIX.4.2 semantics in a FIX.4.1 session
  • Adding UseDictionaryOrdering to apply the DataDictionary's ordering when parsing a message
  • Adding MaxMessagesQueuedWhilePendingResend to prevent OOMs by capping the number of messages retrieved at once in response to a resend request
  • Adding MaxResendBatchRetrievalSize similarly
  • Adding UseDataDictionaryForMsgTypes to allow you to use the DataDictionary only on selected message types
  • Adding RejectMessageOutOfTime to allow you to control whether to send a reject in response to a late message
  • Deprecated Session#reset in favour of one that provides a reason to give to the Logout
  • Adding IgnoredGarbledMessageListener to provide the app information about messages discarded
  • Stopped Session generating rejects in response to rejects - can lead to a reject-loop
  • Reworked the resend logic
  • Added notifications for duplicate resend requests
  • Added sendNoChange to allow the app to ensure tag 43 is set
  • Added sendExact method to allow the app even more control
  • Added the date-time to the log message when resettting to aid debugging issues
  • Changed SessionID to ignore 'SubIDs' # Internal decision
  • Added a SimpleMessage class that doesn't do much structural handling
  • Removed Sleepycat implementation
  • Moved calls to create acceptors separate to the starting of them
  • Improved the logging surrounding multiple/unknown sessions
  • Improved CompositeLog testing.
  • Removed some internet-required tests
  • Added library to allow 'random-value' testing

Outstanding work:

  • Rebase against master
  • Split into separate reviews based on feedback

@philipwhiuk philipwhiuk marked this pull request as draft September 13, 2024 09:05
@chrjohn
Copy link
Member

chrjohn commented Sep 13, 2024

Woah ;)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants