The repository contains examples of customisation when building from a FIX Orchestra specification.
The examples are contrived and are only for the purpose of showing some of the ways that customisation can be accomplished.
The purpose of such customisation is to produce succinct Rules of Engagement and to generate the QuickFIX/J classes that assist in writing typesafe code for Messages, Components. Groups and Fields.
./src/main/resources
contains an example FIX Orchestra file containing a very minimal set of messages and fields.
This example is not intended as a reference for a good Rules Of Engagement.
The example FIX Orchestra file was prepared using "Playlist" which is available to FIX Trading Community members at the Fix Trading Community site.
The more complete documents for customising QuickFIX/J are available on the QuickFIX/J github repository.
Customising QuickFIX/J may be a good starting point.
See also QuickFIX/J Orchestra.
-
Build custom packages only for the required FIX protocol versions
For example build only FIX50SP2 or FIXlatest. You can build more than one of course, but only maintain what you need.
-
Regard FIXT11 as a responsibility of the QuickFIX/J project
Unless you need to customise FXIT11, use the artifacts from the QuickFIX/J project
-
Consider building using the legacy (original) code generator if you don't want the FIXlatest protocol version and:
- have legacy code using older versions of QuickFIX/J and want to benefit from QuickFIX/J 3.0.0 while minimising code changes
- have legacy customisations using QuickFIX dictionaries and want to defer customising using FIX Orchestra
-custom-application-messages : builds custom Application classes using FIX Orchestra.
-custom-legacy-code-application-messages : builds custom Application classes from a QuickFIX dictionary using the legacy QuickFIX/j code generation.
Java version is 17 for compatibility with the Spring Boot 3 examples.
mvn clean install -Djdk.xml.xpathExprGrpLimit=1024 -Djdk.xml.xpathExprOpLimit=1024
Faster without javadoc
mvn clean install -Djdk.xml.xpathExprGrpLimit=1024 -Djdk.xml.xpathExprOpLimit=1024 -Dmaven.javadoc.skip=true