Skip to content
New issue

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

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

Already on GitHub? # 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 ;)

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

Successfully merging this pull request may close these issues.

2 participants