Uploaded image for project: 'QuickFIX/J'
  1. QuickFIX/J
  2. QFJ-733

Provide customisable hooks into the core QuickFIX/J workflow

    Details

    • Type: Improvement
    • Status: Open
    • Priority: Default
    • Resolution: Unresolved
    • Affects Version/s: 1.5.3
    • Fix Version/s: None
    • Component/s: Engine

      Description

      Background:
      I have been using QuickFIX for some time and found it a great library. As my usage has increased, I have become more aware that it's not necessarily GC-friendly. As such I'm in the process of extending the Message object to become more GC-friendly, but really a step away from the message type-safety that is currently present within QuickFIX/J.

      In order to achieve my goal, I have made (what I consider) minor modifications to the core codebase to provide locatable service lookups where need be,

      Improvement:
      It would be great if QuickFIX/J was more customisable in the services that were able to be overriden/extended or generally customised. I've currently created a (very simple - based on http://martinfowler.com/articles/injection.html) ServiceLocator that prepares services with defaults (current 1.5.3 behaviour) that can be overriden with custom services on startup (if required).

      The services that I have currently customised are:

      1. Message validation with the Data Dictionary
      2. Message creation from String (the FIXMessageDecoderFactory)
      3. Handling of FIX Messages within the abstract IoHandler (as it depends upon MINA passing it a String)

      This approach seemed less intrusive than a DI framework, and perhaps a simpler fit into QuickFIX core. It provides the benefits of maintaining a library that can be used out of the box, whilst providing the capability of customisation where required or necessary.

      I'd be mostly interested to know whether this (or something like it) would be considered as part of the roadmap with QuickFIX/J and how or whether I would be able to contribute.

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              ryan.lea Ryan Lea
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated: