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

Fix orchestra with updated project structure #460

Merged
Show file tree
Hide file tree
Changes from 250 commits
Commits
Show all changes
270 commits
Select commit Hold shift + click to select a range
772e864
attempt to get build timeout workaround to succedd
david-gibbs-ig Oct 27, 2020
617be71
Merge branch 'master' of https://github.com/quickfix-j/quickfixj
david-gibbs-ig Oct 27, 2020
5cb1b08
Merge branch 'master' into fix-orchestra
david-gibbs-ig Oct 27, 2020
13f8e70
restore travis.yml from master
david-gibbs-ig Oct 27, 2020
70c5137
restore travis.yml from master
david-gibbs-ig Oct 27, 2020
1fd1c53
updated orchestration build to use assembly id when publishing artefacts
david-gibbs-ig Oct 28, 2020
b326992
adjusted build phases for orchestra so it will fit better with qFJ bu…
david-gibbs-ig Oct 28, 2020
78486c7
increased max heap size
david-gibbs-ig Oct 28, 2020
1426096
updated build for messages-all
david-gibbs-ig Oct 28, 2020
31aade6
corrections to quickfixj-messages-fixLatest
david-gibbs-ig Oct 28, 2020
f95fbda
corrections to quickfixj-messages-fixLatest
david-gibbs-ig Oct 28, 2020
378cb8a
corrections to quickfixj-messages-fixLatest
david-gibbs-ig Oct 28, 2020
3cc8ba4
experiment to see if high memory use is peculiar to PC configuration
david-gibbs-ig Oct 30, 2020
d97297b
experiment to see if high memory use is peculiar to PC configuration
david-gibbs-ig Oct 30, 2020
4f499aa
Merge branch 'master' of https://github.com/quickfix-j/quickfixj into…
david-gibbs-ig Nov 2, 2020
0c28e69
exec plugin in orchestra build needs classpath update to work with Ja…
david-gibbs-ig Nov 2, 2020
875ba2a
FIX for Java 11
david-gibbs-ig Nov 2, 2020
f29e7df
FIX for Java 11
david-gibbs-ig Nov 2, 2020
4baf24c
commit to preserve work in progress
david-gibbs-ig Dec 24, 2021
093f63c
this builds but has javadoc commented out and some hacks
david-gibbs-ig Dec 28, 2021
2ce9d6a
this includes a new module quickfixj-core-latest that is meant to be …
david-gibbs-ig Jan 1, 2022
65dcb04
quickfixj core not does not included quickfix.fields package that is …
david-gibbs-ig Jan 1, 2022
25fcee0
renamed orchestra module to orchestration
david-gibbs-ig Jan 3, 2022
3d1470e
Merge branch 'master' of https://github.com/quickfix-j/quickfixj
david-gibbs-ig Jan 3, 2022
2a12691
merged master
david-gibbs-ig Jan 3, 2022
8110d94
clean up merge and java 8
david-gibbs-ig Jan 3, 2022
238c7bd
remove obsolete module
david-gibbs-ig Jan 3, 2022
29b42fe
interim commit in which fix50SP2 module is used for fixLatest, this i…
david-gibbs-ig Jan 4, 2022
28d4e60
re-enabled javadoc mvn plugin
david-gibbs-ig Jan 4, 2022
bcd84c0
removed "Component" suffix from component accessors
david-gibbs-ig Jan 5, 2022
1c421d0
created fixlatest package and updated dependency on fix standard orch…
david-gibbs-ig Jan 5, 2022
f018286
updated xsl files from master
david-gibbs-ig Jan 5, 2022
45b4800
updated jaxb dependencies for java 11
david-gibbs-ig Jan 6, 2022
d20119f
corrections to packaging for fix latest
david-gibbs-ig Jan 6, 2022
057d8e3
re-introduced recursion to include component members in message for g…
david-gibbs-ig Jan 6, 2022
80c0047
removed condition on recursion
david-gibbs-ig Jan 7, 2022
cae3fc0
updated tests and documents
david-gibbs-ig Jan 7, 2022
41beff4
updated test to conform to new component accessor name for FIX Latest
david-gibbs-ig Jan 8, 2022
9623b68
updated FIX Latest tests
david-gibbs-ig Jan 8, 2022
ca0a1cc
interim commit of updated structure intended to make it faster to wor…
david-gibbs-ig Jan 13, 2022
82f1a84
corrected ordering of modules in parent pom and updated XML tests in …
david-gibbs-ig Jan 14, 2022
6143f0b
updated packaging for orchestration
david-gibbs-ig Jan 14, 2022
52fbce5
updated packaging for orchestration
david-gibbs-ig Jan 14, 2022
5b15efe
remove resource classifier for orchestration
david-gibbs-ig Jan 14, 2022
ef684b4
updated messages build to make it easier to customise the build for l…
david-gibbs-ig Jan 14, 2022
946a2fe
updated so that the module does not require "install" to be run for o…
david-gibbs-ig Jan 15, 2022
a61e917
refactored so that core has only test dependencies on generated messa…
david-gibbs-ig Jan 17, 2022
99a6aff
exclude quickfix.field. that are present in quickfixj-base
david-gibbs-ig Jan 17, 2022
816a3a7
remove irrelevant file
david-gibbs-ig Jan 17, 2022
a57fc02
removed obsolete tests module
david-gibbs-ig Jan 17, 2022
73833b1
changed module name
david-gibbs-ig Jan 17, 2022
b39073c
updated maven.yml, mvn install must be used for this build
david-gibbs-ig Jan 18, 2022
0c49c98
Merge branch 'master' of github.com:david-gibbs-ig/quickfixj
david-gibbs-ig Jan 18, 2022
3350b5a
updated .github for additional memory and made message generation use…
david-gibbs-ig Jan 19, 2022
dfa232f
updated javadoc configuration to increase memory and standardise
david-gibbs-ig Jan 22, 2022
b9c3efd
updated javadoc configuration to reduce memory
david-gibbs-ig Jan 22, 2022
5ad1c16
trying different settings for github build as it gets OOM
david-gibbs-ig Jan 22, 2022
658e79e
trying different settings for github build as it gets OOM
david-gibbs-ig Jan 22, 2022
bd24dc5
interim commit
david-gibbs-ig Jan 28, 2022
e2479bd
interim commit
david-gibbs-ig Jan 29, 2022
a2f90ab
tests pass
david-gibbs-ig Jan 29, 2022
e196399
tests pass
david-gibbs-ig Jan 29, 2022
88fd1c4
tests pass
david-gibbs-ig Jan 29, 2022
d61e704
added maven plugin to prune unused classes from specific FIX distribu…
david-gibbs-ig Jan 30, 2022
15e38a1
added maven plugin to prune unused classes from specific FIX distribu…
david-gibbs-ig Jan 30, 2022
711d2b0
removed over-ride of maven compiler settings
david-gibbs-ig Jan 30, 2022
19c0ace
corrected defect in which overwrite option does not work in code gene…
david-gibbs-ig Jan 30, 2022
1f9049e
reverted change to github actions workflow and updated surefire plugi…
david-gibbs-ig Jan 31, 2022
588133a
changed SerializationTest to remove hard coded directory locations
david-gibbs-ig Jan 31, 2022
ba4f3e8
replaced tabs with 4 spaces in java files
david-gibbs-ig Jan 31, 2022
c655ea5
white space changes to pom files
david-gibbs-ig Jan 31, 2022
3577f1e
javadoc still running OOM on windows builds in github actions so run …
david-gibbs-ig Jan 31, 2022
eabb3a4
javadoc still running OOM on windows builds so adjust workflow maven.…
david-gibbs-ig Jan 31, 2022
4c01c71
renamed repository-quickfix
david-gibbs-ig Jan 31, 2022
6facb78
corrected base pom and quoted -D"parameter" in maven.yml
david-gibbs-ig Feb 1, 2022
892b831
re-added dictgenerator module and fixed base
david-gibbs-ig Feb 1, 2022
d761cdd
corrected dictgenerator pom
david-gibbs-ig Feb 1, 2022
aac5428
implemented maven plugins for code and dictionary generation from FIX…
david-gibbs-ig Feb 1, 2022
befcc87
try to fix codeQL build
david-gibbs-ig Feb 4, 2022
3a60c1f
try to fix codeQL build
david-gibbs-ig Feb 4, 2022
7894f09
try to fix codeQL build
david-gibbs-ig Feb 4, 2022
b78fd08
try to fix codeQL build
david-gibbs-ig Feb 5, 2022
f7901de
added profile for codeql and added markdown
david-gibbs-ig Feb 7, 2022
448823d
attempt to fix lgtm workflow
david-gibbs-ig Feb 7, 2022
1f00e34
merged master
david-gibbs-ig Feb 7, 2022
0cc90c1
added readme for class pruner
david-gibbs-ig Feb 8, 2022
43bd27c
Merge branch 'master' into fix-orchestra-with-updated-project-structure
david-gibbs-ig Feb 8, 2022
0f7ffb9
documentation and merged master
david-gibbs-ig Feb 8, 2022
7c4ce49
updated docs & still trying to fix lgtm
david-gibbs-ig Feb 9, 2022
7522a26
giving up on lgtm
david-gibbs-ig Feb 9, 2022
00664a3
fix workflow
david-gibbs-ig Feb 9, 2022
f6f70e8
correct MassStatusReqType codeset for STATUS_FOR_ORDERS_FOR_A_PARTY_ID
david-gibbs-ig Feb 9, 2022
27b81ff
added options
david-gibbs-ig Feb 11, 2022
3012467
made generation using BigDecimal for Decimal Fields optional
david-gibbs-ig Feb 11, 2022
4e8639f
update code generator mojo
david-gibbs-ig Feb 11, 2022
db9aa96
updated readmes
david-gibbs-ig Feb 12, 2022
fa6323a
Merge branch 'fix-orchestra-with-updated-project-structure' of github…
david-gibbs-ig Feb 12, 2022
1a17791
cleaned up FIXT11 fields and updated readmes
david-gibbs-ig Feb 13, 2022
5c707c4
updated readmes
david-gibbs-ig Feb 14, 2022
cfbec63
interim commit before changing exclusion of session
david-gibbs-ig Feb 17, 2022
cee2420
tests pass before segregating t11
david-gibbs-ig Feb 18, 2022
e328bb4
tests pass after segregating t11
david-gibbs-ig Feb 18, 2022
0304373
interim commit - this passes tests but does not build good messages f…
david-gibbs-ig Feb 19, 2022
baf131a
interim commit, need to add ctor for mandatory fields for greater com…
david-gibbs-ig Feb 20, 2022
2c40dc1
added ctor for mandatory fields for greater compatibility
david-gibbs-ig Feb 21, 2022
d56e1eb
tests pass with full and min profiles
david-gibbs-ig Feb 24, 2022
8fdb3ed
uppdate slf4j depend and use minimal profile for lgtm
david-gibbs-ig Feb 24, 2022
5b41b42
fix snyk warnings and try againg to get lgtm to run
david-gibbs-ig Feb 25, 2022
d927ba2
try again to get lgtm to run
david-gibbs-ig Feb 25, 2022
0ffb6c1
fix issues identified by lgtm
david-gibbs-ig Feb 25, 2022
791fb04
cleaning up dependencies
david-gibbs-ig Feb 26, 2022
ef2dbfa
update guava dependency for Snyk alert
david-gibbs-ig Feb 26, 2022
f1c901d
updated test and test resources to remove many test files
david-gibbs-ig Feb 26, 2022
15b314f
improved clear up of unit test
david-gibbs-ig Feb 27, 2022
86f85ac
update float to result in double_field base type
david-gibbs-ig Jul 21, 2022
f985fbc
Merge branch 'master' of https://github.com/quickfix-j/quickfixj
david-gibbs-ig Jul 21, 2022
643246a
Merge remote-tracking branch 'remotes/upstream/master' into fix-orche…
david-gibbs-ig Jul 22, 2022
545fbbd
work around xpath FEATURE_SECURE_PROCESSING limits
david-gibbs-ig Jul 22, 2022
28839ae
work around xpath FEATURE_SECURE_PROCESSING limits
david-gibbs-ig Jul 22, 2022
b3ef48a
work around xpath FEATURE_SECURE_PROCESSING limits
david-gibbs-ig Jul 22, 2022
a500d9b
work around xpath FEATURE_SECURE_PROCESSING limits
david-gibbs-ig Jul 22, 2022
ab8ec34
Merge branch 'master' of https://github.com/quickfix-j/quickfixj
david-gibbs-ig Oct 22, 2022
d0990ad
merged changes from master
david-gibbs-ig Oct 30, 2022
9bcb863
Merge branch 'master' of https://github.com/quickfix-j/quickfixj into…
david-gibbs-ig Nov 6, 2022
70155c0
enable manual run of workflow
david-gibbs-ig Nov 6, 2022
a04da12
Merge pull request #16 from david-gibbs-ig/enable-manual-run-of-githu…
david-gibbs-ig Nov 6, 2022
5c82fcf
enable manual run of workflow
david-gibbs-ig Nov 6, 2022
7fb7887
brought workflows in line with updates to master
david-gibbs-ig Nov 6, 2022
e5391c9
Merge branch 'master' of https://github.com/quickfix-j/quickfixj
david-gibbs-ig Dec 10, 2022
252e3c5
merged upstream master
david-gibbs-ig Dec 11, 2022
f980ef2
workaround codeql autobuild failure
david-gibbs-ig Dec 11, 2022
0a4390f
Revert "workaround codeql autobuild failure"
david-gibbs-ig Dec 11, 2022
cf3cd5e
set mvn options for code ql autobuild step
david-gibbs-ig Dec 11, 2022
4bf5893
explicit run step for code ql
david-gibbs-ig Dec 11, 2022
b767d13
remove distribution module from top level pom
david-gibbs-ig Dec 11, 2022
70fe1a8
Revert "remove distribution module from top level pom"
david-gibbs-ig Dec 18, 2022
82b365a
updated codeQL, restored distribution module, updated installation.html
david-gibbs-ig Dec 11, 2022
d2e5a04
update codegen doc
david-gibbs-ig Dec 27, 2022
2eea906
updated project to use new QuickFIX/J from FIX Orchestra tools
david-gibbs-ig Jan 1, 2023
89d5977
Merge branch 'master' of https://github.com/quickfix-j/quickfixj
david-gibbs-ig Jan 1, 2023
956b1f6
merge upstream master and update junit (jupiter) depends
david-gibbs-ig Jan 1, 2023
25276c0
updates to codegenerator project to fix mvn build deprecation warnings
david-gibbs-ig Jan 2, 2023
c11ece9
updated documents
david-gibbs-ig Jan 2, 2023
1d3fd4a
updated quickfixj-orchestra dependency to 1.0.0
david-gibbs-ig Jan 2, 2023
a95e353
Update README.md
david-gibbs-ig Jan 3, 2023
f8eb61e
Merge branch 'master' of https://github.com/quickfix-j/quickfixj
david-gibbs-ig Jan 3, 2023
f61eaf5
merged changes from master to update mockito and maven plugin api ver…
david-gibbs-ig Jan 3, 2023
21cc256
Merge branch 'master' into fix-orchestra-with-updated-project-structure
chrjohn Jan 4, 2023
3b28f7d
merged from origin
david-gibbs-ig Jan 4, 2023
680cfbb
removed repository-to-quickfixj from distribution module, update XML …
david-gibbs-ig Jan 5, 2023
6aeb6da
attempt to fix dependency reported by Snyk.
david-gibbs-ig Jan 7, 2023
a018954
updated documents and location of Plant UML artefacts, to reduce clut…
david-gibbs-ig Jan 7, 2023
c095fe3
removed unneccessary changes in MessageTest
david-gibbs-ig Jan 8, 2023
9cc2e9e
SerialisationTest is moved to quickfixj-messages/quickfixj-messages-all
david-gibbs-ig Jan 8, 2023
53e617a
removed redundant TODO file and checked out from master mina/ssl test…
david-gibbs-ig Jan 8, 2023
a0e7574
implement code review comments
david-gibbs-ig Jan 25, 2023
d033fcb
initial effort to move some Message Tests to quickfixj-base
david-gibbs-ig Jan 26, 2023
ae08e7a
moved some DataDictionary Tests to quickfixj-base
david-gibbs-ig Jan 26, 2023
d672d9a
moved some Field and FieldMap Tests to quickfixj-base, moved DataDict…
david-gibbs-ig Jan 26, 2023
175089d
moved a number of classes back to quickfixj-core, to make comparison …
david-gibbs-ig Jan 26, 2023
9a7ee11
Update customising-quickfixj.md - typo spotted in review
david-gibbs-ig Feb 3, 2023
9db11ea
removed maven plugin "integration tests" and guava dependency managem…
david-gibbs-ig Feb 4, 2023
f17f58b
wMerge branch 'fix-orchestra-with-updated-project-structure' of githu…
david-gibbs-ig Feb 4, 2023
de91e9b
restored guava transitive dependency version management to correct se…
david-gibbs-ig Feb 5, 2023
3a7dca3
update maven version to 3.8.7 to reduce security vulnerabilities in m…
david-gibbs-ig Feb 5, 2023
962a5c4
Revert "update maven version to 3.8.7 to reduce security vulnerabilit…
david-gibbs-ig Feb 5, 2023
6fda35c
removed _provided_ dependencies for mvn plugin, fixed incorrect depen…
david-gibbs-ig Feb 6, 2023
09173e1
setting guava version only in dependency management, specify _provide…
david-gibbs-ig Feb 6, 2023
cd50fd5
fixing javadoc, corrected some existing WARNINGs, made minimal-fix-la…
david-gibbs-ig Feb 11, 2023
2249d68
removed javadoc skip from maven.yml
david-gibbs-ig Feb 11, 2023
81539f4
worked on javadoc generation and updated documents
david-gibbs-ig Feb 12, 2023
ef03191
copy FIXLatest.xml to project output dir
david-gibbs-ig Feb 12, 2023
cafb2de
updated readme
david-gibbs-ig Feb 18, 2023
2af213f
resurrected javadoc in distribution module, updated dependency manage…
david-gibbs-ig Feb 27, 2023
93eca43
revert some changes to javadoc plugin configuration in attempt to fix…
david-gibbs-ig Feb 27, 2023
be0ed05
latest javadoc plugin version
david-gibbs-ig Feb 27, 2023
669fa3b
more memory for javadoc
david-gibbs-ig Feb 27, 2023
3aa7e7e
more memory for javadoc
david-gibbs-ig Feb 27, 2023
e6cd586
attempts to fix paging file too small error
david-gibbs-ig Mar 5, 2023
f88d76e
removed failing step
david-gibbs-ig Mar 5, 2023
ca2a5b5
updated for review comments, added tests for UTCDateOnlyField
david-gibbs-ig Mar 19, 2023
4b8283b
corrected test for UTCDateOnlyField
david-gibbs-ig Mar 19, 2023
2966cf9
restored "mvn install" in maven.yml
david-gibbs-ig Mar 19, 2023
bb6b56b
update maven.yml to run mvn test rather than mvn install so that buil…
david-gibbs-ig Mar 21, 2023
5fe391b
update maven.yml to change it back to using mvn install
david-gibbs-ig Mar 21, 2023
e811a2f
restored properties for acceptance test
david-gibbs-ig Mar 21, 2023
24a35f0
added some ugly debug logging for acceptance test 2r_UnregisteredMsgType
chrjohn Apr 13, 2023
aaede76
some ugly debug logging for 2r_UnregisteredMsgType.def
chrjohn Apr 13, 2023
3a4d5c2
removed debug logging from ATApplication
chrjohn Apr 13, 2023
41e7c93
Check whether surefire 3.0.0 will fix failing acceptance tests
chrjohn Apr 15, 2023
5dbd867
increased debug logging
chrjohn Apr 17, 2023
899e8d6
increased logging level to ALL
chrjohn Apr 18, 2023
5bafbdf
Check onMessage for other FIX versions in acceptance tests
chrjohn Apr 19, 2023
e4d6f90
updated SLF4J test dependencies
david-gibbs-ig May 7, 2023
b52e29c
updated logging for debuging issue with Business Message Reject
david-gibbs-ig May 8, 2023
006c795
correction to construction of BusinessMessageReject messages
david-gibbs-ig May 8, 2023
e80bcba
updated log4j dependency
david-gibbs-ig May 8, 2023
6cf6d71
renamed class pruner to quickfixj class pruner
david-gibbs-ig May 9, 2023
e478f41
changes to allow removal of string constructor and date formatter for…
david-gibbs-ig May 9, 2023
ff3f77e
update version of orchestra tools
david-gibbs-ig May 17, 2023
b8b29c4
changes to remove string ctor for UTCDateOnly
david-gibbs-ig May 17, 2023
2f34b6e
first cut of acceptance tests for fix latest
david-gibbs-ig May 23, 2023
f1f9233
updated version of quickfixj-orchestra
david-gibbs-ig May 23, 2023
8fd8ca2
corrected tag 9
david-gibbs-ig May 24, 2023
5122350
commiting first cut, acceptance tests get Out of Memory exceptions
david-gibbs-ig May 25, 2023
987a979
Merge branch 'acceptance-tests' into fix-orchestra-with-updated-proje…
david-gibbs-ig May 25, 2023
f1fe950
More heap memory for acceptance tests
chrjohn May 26, 2023
4406913
Even more heap memory for acceptance tests
chrjohn May 26, 2023
ee52ff9
updated to include BMR Message in FixLatest, changed transformation f…
david-gibbs-ig May 27, 2023
bf2aae4
attempt to set Windows pagefile size for build
david-gibbs-ig May 29, 2023
af88a36
another attempt to set Windows pagefile size for build
david-gibbs-ig May 29, 2023
a7b703f
Revert "another attempt to set Windows pagefile size for build"
david-gibbs-ig May 29, 2023
c99df0b
Revert "attempt to set Windows pagefile size for build"
david-gibbs-ig May 29, 2023
33111ff
another attempt to use github action to influence windows page size
david-gibbs-ig May 30, 2023
243792a
updated al-cheb/configure-pagefile-action to version 1.3
david-gibbs-ig May 30, 2023
3e6d914
Revert "updated al-cheb/configure-pagefile-action to version 1.3"
david-gibbs-ig May 30, 2023
f8fc1b4
added <quiet>true</quiet> to javadoc configs in attempt to improve b…
david-gibbs-ig May 30, 2023
8a3fd43
changing mvn build arguments in attempt to improve build performance …
david-gibbs-ig May 31, 2023
6943694
changing mvn build arguments in attempt to improve build performance …
david-gibbs-ig May 31, 2023
682a3bd
restored http properties, removing them did not help mvn repo connect…
david-gibbs-ig May 31, 2023
ee46413
put simple logging back to help understanding of Acceptance Tests, te…
david-gibbs-ig Jun 3, 2023
5bf2b4b
added concurrency specification as build stability experiment
david-gibbs-ig Jun 3, 2023
6a79150
added maven cache to git hub build actions
david-gibbs-ig Jun 4, 2023
7ef686a
updated regular expression in ATServer to match windows paths
david-gibbs-ig Jun 6, 2023
3d52499
Revert "added concurrency specification as build stability experiment"
david-gibbs-ig Jun 6, 2023
0c03d0e
updated max-parallel for test-windows job
david-gibbs-ig Jun 6, 2023
b35729b
Make ATServer fali-fast on empty sessions
chrjohn Jun 6, 2023
1471807
Revert "Make ATServer fali-fast on empty sessions"
chrjohn Jun 7, 2023
dc35f07
update FileUtil to resolve new 403 error for requests with User-Agent…
david-gibbs-ig Jun 10, 2023
c7b037e
Merge branch 'fix-orchestra-with-updated-project-structure' of github…
david-gibbs-ig Jun 10, 2023
6d2d6ac
Updated User-Agent value for FileUtil
david-gibbs-ig Jun 10, 2023
867d00f
Revert "put simple logging back to help understanding of Acceptance T…
david-gibbs-ig Jun 12, 2023
9eff0b6
removed commented out dependency on slf4j-simple
david-gibbs-ig Jun 12, 2023
04f488e
Added xpath JVM options to build instructions
chrjohn Jul 27, 2023
ec0e8e9
Fixed some typos
chrjohn Jul 27, 2023
e9c0731
Merge remote-tracking branch 'qfj-repo-remote/master' into fix-orches…
chrjohn Jul 27, 2023
fa87360
Moved FileUtilTest from quickfixj-core to quickfixj-base
chrjohn Jul 27, 2023
ed6cef1
Corrected FileUtilTest
chrjohn Jul 28, 2023
d6d7208
Upgraded to guava-32.0.0 to mitigate vulnerability.
chrjohn Jul 28, 2023
76c16dc
Minor whitespace change.
chrjohn Jul 28, 2023
e499f2a
Removed excess import
chrjohn Sep 21, 2023
f15468e
Copied MessageUtilsTest from core to base.
chrjohn Sep 21, 2023
c46dc29
Split up MessageUtilsTest in base and core part.
chrjohn Sep 22, 2023
aa69002
update to use new version of quickfifj-orchestra and add an example o…
david-gibbs-ig Nov 12, 2023
6e5f9d9
updated readmes
david-gibbs-ig Nov 13, 2023
fcc76bf
fixed typo
chrjohn Nov 23, 2023
d97fdd1
Merge branch 'fix-orchestra-with-updated-project-structure' of https:…
chrjohn Nov 23, 2023
ca7c47e
Update maven.yml
chrjohn Nov 30, 2023
832499b
Revert "Update maven.yml"
chrjohn Nov 30, 2023
b9d0557
Removed no longer needed debug logging.
chrjohn Nov 30, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 7 additions & 6 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
env:
MAVEN_OPTS: "-Xms3g -Xmx6g -Djdk.xml.xpathExprGrpLimit=500 -Djdk.xml.xpathExprOpLimit=500"

strategy:
fail-fast: false
Expand All @@ -51,19 +53,18 @@ jobs:

# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v2
#- name: Autobuild
# env:
# uses: github/codeql-action/autobuild@v2

# ℹ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl

# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language

#- run: |
# make bootstrap
# make release
- run: |
mvn clean package -B -V -e -Pminimal-fix-latest -Dmaven.javadoc.skip=true -Dfindbugs.skip -Dcheckstyle.skip -Dpmd.skip=true -Dspotbugs.skip -Denforcer.skip -DskipTests -Dmaven.test.skip.exec -Dlicense.skip=true -Drat.skip=true -Dspotless.check.skip=true -D"java.util.logging.config.file"="logging.properties" -D"http.keepAlive"="false" -D"maven.wagon.http.pool"="false" -D"maven.wagon.httpconnectionManager.ttlSeconds"="120"

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
35 changes: 32 additions & 3 deletions .github/workflows/maven.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macOS-latest, windows-latest]
os: [ubuntu-latest, macOS-latest]
java: [8, 11, 17]
fail-fast: false
max-parallel: 4
Expand All @@ -26,7 +26,36 @@ jobs:
with:
distribution: 'temurin'
java-version: ${{ matrix.java }}
cache: 'maven'
- name: Test with Maven
env:
MAVEN_OPTS: "-Xms3g -Xmx3g"
run: mvn test -B -V -D"java.util.logging.config.file"="logging.properties" -D"http.keepAlive"="false" -D"maven.wagon.http.pool"="false" -D"maven.wagon.httpconnectionManager.ttlSeconds"="120"
MAVEN_OPTS: "-Xms3g -Xmx5g -Djdk.xml.xpathExprGrpLimit=500 -Djdk.xml.xpathExprOpLimit=500"
run: mvn install -B -V -Pminimal-fix-latest -D"java.util.logging.config.file"="logging.properties" -D"http.keepAlive"="false" -D"maven.wagon.http.pool"="false" -D"maven.wagon.httpconnectionManager.ttlSeconds"="120"

test-windows:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [windows-latest]
java: [8, 11, 17]
fail-fast: false
max-parallel: 3
name: Test JDK ${{ matrix.java }}, ${{ matrix.os }}

steps:
- uses: actions/checkout@v3
- name: Configure pagefile
uses: al-cheb/[email protected]
with:
minimum-size: 8GB
maximum-size: 16GB
- name: Set up Windows JDK
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: ${{ matrix.java }}
cache: 'maven'
- name: Test with Maven on Windows
env:
MAVEN_OPTS: "-Xms3g -Xmx5g -Djdk.xml.xpathExprGrpLimit=500 -Djdk.xml.xpathExprOpLimit=500"
run: mvn install -B -V -D"maven.javadoc.skip"="true" -P"skipBundlePlugin,minimal-fix-latest" -D"java.util.logging.config.file"="logging.properties" -D"http.keepAlive"="false" -D"maven.wagon.http.pool"="false" -D"maven.wagon.httpconnectionManager.ttlSeconds"="120"
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,6 @@ target/
*.iws
# ignore NetBeans configuration
nb-configuration.xml
*.bak
.mvn/
mvn*
45 changes: 41 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,17 +42,17 @@ Pull requests are always welcome! Best is if you added a unit test to show that

Fastest: clone the repo and issue the following command.
```
$ mvn clean package -Dmaven.javadoc.skip=true -DskipTests -PskipBundlePlugin
$ mvn clean package -Dmaven.javadoc.skip=true -DskipTests -PskipBundlePlugin,minimal-fix-latest -Djdk.xml.xpathExprGrpLimit=500 -Djdk.xml.xpathExprOpLimit=500
```

Slower: if you only want to skip the acceptance test suite:
```
$ mvn clean package -Dmaven.javadoc.skip=true -DskipAT=true -PskipBundlePlugin
$ mvn clean package -Dmaven.javadoc.skip=true -DskipAT=true -PskipBundlePlugin,minimal-fix-latest -Djdk.xml.xpathExprGrpLimit=500 -Djdk.xml.xpathExprOpLimit=500
```

Slow: if you want to run all tests:
```
$ mvn clean package -Dmaven.javadoc.skip=true -PskipBundlePlugin
$ mvn clean package -Dmaven.javadoc.skip=true -PskipBundlePlugin,minimal-fix-latest -Djdk.xml.xpathExprGrpLimit=500 -Djdk.xml.xpathExprOpLimit=500
```
NB: If you want to use the resulting JARs in an OSGi environment you'll have to omit the `-PskipBundlePlugin` option.

Expand All @@ -62,7 +62,7 @@ When the project is first created, it will not have the generated message classe

If the IDE reports some errors after the compilation with `mvn clean package`, try to use `mvn clean install`, like:
```
$ mvn clean install -Dmaven.javadoc.skip=true -DskipTests -PskipBundlePlugin
$ mvn clean install -Dmaven.javadoc.skip=true -DskipTests -PskipBundlePlugin,minimal-fix-latest -Djdk.xml.xpathExprGrpLimit=500 -Djdk.xml.xpathExprOpLimit=500
```

## configuration options
Expand Down Expand Up @@ -283,3 +283,40 @@ void sendOrderCancelRequest() throws SessionNotFound {
Session.sendToTarget(message, "TW", "TARGET");
}
```

## QuickFIX/J Runtime

This project builds artefacts for the standard published FIX specification versions from FIX 4.0 to FIX Latest.

* ```quickfixj-messages-fix40```
* ```quickfixj-messages-fix41```
* ```quickfixj-messages-fix42```
* ```quickfixj-messages-fix43```
* ```quickfixj-messages-fix44```
* ```quickfixj-messages-fix50```
* ```quickfixj-messages-fix50sp1```
* ```quickfixj-messages-fix50sp2```
* ```quickfixj-messages-fixlatest```
* ```quickfixj-messages-fixt11```
* ```quickfixj-messages-all``` - includes all of the above

These artefacts are <u>**test**</u> dependencies of ```quickfixj-core```. They are **not** specified as _runtime_ dependencies, this makes it easier to customise QuickFIX/J deployments.

If you have no need to customise a FIX integration then you can use the ```org.quickfixj``` artefacts built by this project. Simply include them as dependencies of your application.

Artefacts for unused FIX specification versions can be omitted from your runtime.
Many integrations will not require ```quickfixj-messages-all``` and need only depend on artefacts for a subset of the FIX standard versions. Please note that FIX Protocol versions 5.0 and later depend on ```quickfixj-messages-fixt11``` which provides the implementation for the FIXT1.1 transport messages.

Many integrations require specialisation of the FIX Messages, Components and/or Fields. This is accomplished by building and using custom artefacts. Please see [Customising QuickFIX/J](./customising-quickfixj.md) for more detail.

### Application Dependencies for QuickFIX/J Messages Build

![image info](./src/main/puml/dependencies_fixt11_fixlatest.png)

![image info](./src/main/puml/dependencies_qfj_all.png)

### Application Dependencies for Custom Messages Build

![image info](./src/main/puml/custom_dependencies.png)

![image info](./src/main/puml/custom_dependencies_fixt11_fixlatest.png)
94 changes: 94 additions & 0 deletions customising-quickfixj.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@

# Customising QuickFIX/J

The core QuickFIX/J module is agnostic to FIX Protocol Versions. At runtime a QuickFIX/J dictionary with supporting implementation packages is required to use type-safe classes.

The specification for a FIX integration is called a "Rules of Engagement". The Rules of Engagement can be customised with the mutual agreement of the respective counter-parties.

The message, component and field implementations can be provided by a specialised build, along with the corresponding QuickFIX/J dictionary for the custom Rules of Engagement.

The standard distribution of ```quickfixj-core``` can be used with custom artefacts. You need only build artefacts for versions of the Protocol that you use. These can be maintained independently from the QuickFIX/J project, while depending on the QuickFIX/J for the core functionality and tools.

To build custom artefacts it's helpful to understand how QuickFIX/J builds the Field, Component and Message classes from the QuickFIX/J dictionaries and from [FIX Orchestra](https://www.fixtrading.org/standards/fix-orchestra/).

The QuickFIX/J reference implementations for FIX versions FIX4.0 to FIX5.0sp2 and for FIXT1.1 are generated from the QuickFIX dictionaries for the specific version. The dictionaries are located in the ```src/main/resources``` directory of the respective modules of the ```quickfixj-messages``` module.
Maintaining the FIX4.0 to FIX5.0sp2 builds intentionally provides consistency with the prior QuickFIX/J 2 release in order to ease migration to QuickFIX/J 3.

The most recent standard is defined as [FIX Latest](https://www.fixtrading.org/online-specification/). The QuickFIX/J reference implementation for FIX Latest is generated from a [FIX Orchestra](https://www.fixtrading.org/standards/fix-orchestra/) repository file.
An implementation or customisation of the FIX Standars derived from the FIX Orchestra repository is known as an "_orchestration_".
The standard FIX Orchestra repository requires some modification to work well with QuickFIX/J.
This is done by the ```quickfixj-orchestration``` module.
The ```quickfixj-orchestration``` module publishes a modified Orchestra artefact which can then be the basis of a custom FIX Latest build using QuickFIX/J .

The complete reference FIX Latest specification results in a very large distribution.
To use FIX Latest, customisation of the [FIX Orchestra](https://www.fixtrading.org/standards/fix-orchestra/) repository is advisable.
Please see [QuickFIX/J Orchestration](./quickfixj-orchestration/readme.md) for details.

## Customisation Scenarios

### **Enable the use of ```BigDecimal``` for FIX Decimal Data Types**

This behaviour is controlled by the ```${generator.decimal}``` build property. It is "false" by default to avoid surprising side effects of incompatible data types.

To enable the use of ```BigDecimal``` in code generation, set the ```${generator.decimal}``` property to "true" in [quickfixj-messages](./quickfixj-messages/readme.md) and build the message artefacts.

```
<properties>
<generator.decimal>true</generator.decimal>
</properties>
```
See [QuickFIX/J Messages](./quickfixj-messages/readme.md) for details of the build and recommendation for **how to implement custom builds.**

### **Incompatible Data Types**

Some incompatible changes have occurred in the evolution of the FIX protocol. For example see below changes to the type of **OrderQty (38)** :

|FIX Version|Field Name|FIX Datatype|Base Type|QuickFIX/J Datatype|
|---|---|---|---|---|
|4.0|OrderQty|int|int|```int```|
|4.2|OrderQty|Qty|float|```Double``` or ```BigDecimal```|

Only one ```quickfix.Field``` class with the same name may be loaded by the Java classloader so only one version of this Field should be in the classpath. QuickFix/J also verifies the data type using the supplied QuickFIX "Dictionary".

Code generation using ```BigDecimal``` is incompatible at runtime with ```int``` for **OrderQty**. In this case, ```double``` is compatible with ```int``` at run time due to [widening primitive conversion](http://titanium.cs.berkeley.edu/doc/java-langspec-1.0/5.doc.html).

Runtime incompatibilities can be resolved by:
* Amending the QuickFIX Dictionary to coerce the code generation and/or validation
* Changing the ordering of code generation and/or overwrite behaviour of code generation
* Omitting incompatible versions from your customised build
* Building artefacts independently for the conflicting versions and ensuring they are not used them in the same runtime

See [QuickFIX/J Messages](./quickfixj-messages/readme.md) for details of the build and recommendation for **how to implement custom builds.**

### **Customising the FIX Protocol for specialised Rules of Engagement**

A Rules of Engagement can include customisation Messages, Components and Fields, including User Defined elements.

It is not necessary to maintain a fork of the entire QuickFIX/J project to provide customised QuickFIX Dictionaries and to
generate type-safe libraries that are interoperable with QuickFIX/J.

[FIX Orchestra](https://www.fixtrading.org/standards/fix-orchestra/) is intended for customisation to produce machine-readable Rules of Engagement.

Consider creating a new project (or projects) to build the Messages, Components and Fields as needed for your specific Rules of Engagement.

Edit the QuickFIX Dictionary or FIX Orchestra Repository (Orchestration) as required and
build the Messages, Components and Fields packages using the tools provided by the QuickFIX/J projects.

QuickFIX/J Dictionaries, FIX Orchestra Orchestrations and/or documents can also be generated.

See [QuickFIX/J Messages](./quickfixj-messages/readme.md) for details of the build and recommendation for **how to implement custom builds.**

### **Managing incompatibility with Prior Versions of QuickFIX/J**

From QuickFIX/J 3.0.0 the code generation for ```quickfix.Field``` prefers the FIX Orchestra Standard. This results in incompatible changes to the names of constants.

For example : ```SettlType.REGULAR_FX_SPOT_SETTLEMENT``` becomes ```SettlType.REGULAR```.

The required code changes may be trivial in most cases, but changes are elective.
The following describes how to use ```quickfixj-core``` from QuickFIX/J 3 without needing to implement code changes:
* build the required Message artefacts without the FIX Latest code generation. The Fields will then be generated only from legacy FIX Protocol Versions as they were prior to QuickFIX/J 3.0.0 - **or**
* if you want to use Messages, Components and/or Fields from FIX Latest while preferring legacy constants,
manipulate the order of code generation and/or the over-write behaviour of code behaviour to prefer earlier versions of FIX.
For example, generate FIX Latest first and overwrite the generated Field classes by subsequently running code generation for an earlier version.

See [QuickFIX/J Messages](./quickfixj-messages/readme.md) for details of the build and recommendation for **how to implement custom builds.**
Loading
Loading