Skip to content

Message generation length & checksum optimization #39

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

Merged
merged 219 commits into from
May 9, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
219 commits
Select commit Hold shift + click to select a range
0eb3359
Allocations optimization
charlesbr1 Jul 30, 2015
130a520
Create NumbersCache.java
charlesbr1 Jul 31, 2015
8a1cfb7
Allocations optimization
charlesbr1 Jul 31, 2015
c961fea
Update FileLog.java
knutae Jun 10, 2016
090cee4
Update FileLog.java
knutae Sep 22, 2016
629b801
QFJ-906: Source code language level set to JDK 7.
Oct 21, 2016
e28e87d
QFJ-906: Compile QFJ 1.6.x against JDK7 and QFJ 1.7.x against JDK8
chrjohn Oct 18, 2016
655c12c
- updated to MINA 2.0.16
chrjohn Nov 2, 2016
8e842e5
QFJ-876: Code Generator creates bad code for nested repeating groups
chrjohn Nov 3, 2016
eabbedf
- removed incorrect disconnect command from duplicate identity accep…
chrjohn Nov 3, 2016
234d805
Merge pull request #84 from quickfix-j/QFJ-876_nested_repeating_groups
chrjohn Nov 8, 2016
3d3cb07
Merge pull request #85 from quickfix-j/dup_identity_acceptance_tests
chrjohn Nov 8, 2016
a4b696d
Separate lock objects
knutae Nov 29, 2016
1b427f2
QFJ-886: FIX44.xml InstrumentLeg Inconsistently Defined
chrjohn Dec 12, 2016
0e11272
Merge pull request #86 from quickfix-j/qfj-886
chrjohn Dec 12, 2016
67b8439
Updated assembly and compiler plugins to latest.
Nov 12, 2016
7311dbc
Add No-op message store implementation
Dec 12, 2016
733dec0
Post migration to JDK 8: Functions, lambdas and use of computeIfAbsen…
Oct 24, 2016
2a77d99
Merge pull request #87 from guidomedina/noop-message-store-implementa…
chrjohn Dec 12, 2016
a4dc555
Merge pull request #88 from guidomedina/post-jdk8-migration-code-refa…
chrjohn Dec 12, 2016
664a6fb
Concurrency levels for quick computing values should be a factor of C…
Dec 12, 2016
fefeb92
Merge pull request #89 from guidomedina/master
chrjohn Dec 12, 2016
d377677
No-op stores does nothing hence all tests will fail as it will not st…
Dec 12, 2016
9fbce5a
Merge pull request #90 from guidomedina/master
chrjohn Dec 12, 2016
32e200b
QFJ-285 Add proxy support (compatible with SSL)
arnaud-lech Dec 12, 2016
f38c8ea
Add doc for Proxy support
arnaud-lech Dec 13, 2016
ce9ca3c
Fix HTTP proxy user/password
arnaud-lech Dec 13, 2016
47a0c78
Merge pull request #91 from soliad/master
chrjohn Dec 13, 2016
3bd1f40
removed '(optional)' qualifier for TargetCompID from configuration do…
brobits Jan 12, 2017
95ed2b2
Add support for custom SessionSchedule
Jan 16, 2017
8e44945
Add support for custom SessionSchedule
Jan 16, 2017
4cab916
optimize DoubleConverter
Jan 25, 2017
eb580aa
optimize DoubleConverter
Jan 25, 2017
3b9e6f2
Update slf4j-api to 1.7.22 and maven-compiler to 3.6.1
Jan 27, 2017
b107300
Whitespace removed from field number=276, name=QuoteCondition, enum=f…
damianfanaro Jan 27, 2017
9465f4e
Merge pull request #96 from jimbogithub/QFJ_1_6_x
chrjohn Jan 31, 2017
4bcf552
- corrected parameter
chrjohn Jan 31, 2017
afdc691
Merge pull request #100 from damianfanaro/master
chrjohn Jan 31, 2017
ea5ad59
Merge pull request #99 from guidomedina/master
chrjohn Jan 31, 2017
4917a19
Merge pull request #93 from brobits/docs_require_targetcompid
chrjohn Jan 31, 2017
840b83a
Merge pull request #94 from Arthurm1/master
chrjohn Feb 1, 2017
73877df
bug, more details see test case
Feb 6, 2017
dea619e
Merge branch 'master' of https://github.com/leonchen83/quickfixj into…
chrjohn Feb 10, 2017
f0be51b
- removed unnecessary test
chrjohn Feb 10, 2017
e30db8c
Merge branch 'leonchen83-master'
chrjohn Feb 10, 2017
b1e3412
QFJ-917
Mar 9, 2017
7bde761
QFJ-917
Mar 9, 2017
8dee0eb
QFJ-917
Mar 9, 2017
0d3ce01
QFJ-917
Mar 9, 2017
8318bf0
QFJ-917
Mar 14, 2017
dab4dd5
Merge pull request #104 from boxhead201/bugfix/qfj-917
chrjohn Mar 29, 2017
2f81f7e
QFJ-169 / QFJ-791: extended DataDictionary and DataDictionaryTest to …
chrjohn Apr 4, 2017
fb139ab
QFJ-169 / QFJ-791: changed visibility of USER_DEFINED_TAG_MIN
chrjohn Apr 4, 2017
d497f83
QFJ-169 / QFJ-791
chrjohn Apr 4, 2017
ceb3e9d
Merge pull request #106 from quickfix-j/qfj-169-qfj-791
chrjohn Apr 4, 2017
0ed04e0
QFJ-921: Support receiving higher resolution timestamps
chrjohn Apr 9, 2017
de3791d
Merge pull request #107 from quickfix-j/qfj-921
chrjohn Apr 11, 2017
82acca5
QFJ-169 / QFJ-791: support unknown tags in repeating groups
chrjohn Apr 11, 2017
eb759d5
Merge pull request #108 from quickfix-j/qfj-169-qfj-791-nested-repeat…
chrjohn Apr 11, 2017
d187744
QFJ-885: logout message is not sent out
chrjohn Apr 11, 2017
6f171d2
QFJ-885
chrjohn Apr 11, 2017
8878485
QFJ-885
chrjohn Apr 11, 2017
4101eb3
QFJ-886
chrjohn Apr 11, 2017
e7f0a2a
QFJ-885
chrjohn Apr 11, 2017
916f260
Merge pull request #109 from quickfix-j/qfj-885-logout-message
chrjohn Apr 12, 2017
2814f47
QFJ-792: Wrong order of fields in a repeating group makes the group i…
chrjohn Apr 13, 2017
a736ac0
Merge pull request #110 from quickfix-j/qfj-792-repeating-group-order
chrjohn Apr 13, 2017
8f3830b
QFJ-873: Support processing higher resolution timestamps
chrjohn Apr 26, 2017
1548c35
QFJ-873: Support processing higher resolution timestamps
chrjohn Apr 27, 2017
d8fd874
Merge pull request #112 from quickfix-j/qfj-873-timestamp-precision
chrjohn Apr 27, 2017
9e0e1c9
- added some time to wait for message processing threads to stop
chrjohn Apr 28, 2017
92a6176
JDK 8 tidy up, plugins and dependencies updates.
Apr 13, 2017
95105e4
- cleanup resources in SessionDisconnectConcurrentlyTest
chrjohn Apr 28, 2017
375c9d6
added some debug logging to diagnose problem occurring on build server
chrjohn May 5, 2017
dd163a0
- corrected SessionTest.testLogonLogoutOnAcceptor()
chrjohn May 23, 2017
f57f0eb
Merge pull request #111 from guidomedina/master
chrjohn May 23, 2017
a3b0f48
Treating CumQty as a double value
KKostya Jun 17, 2017
3034bd8
Merge pull request #115 from KKostya/fix-banzai-cumqty
chrjohn Jun 26, 2017
f128378
first cut of failing test
jonfreedman Jun 26, 2017
e87fee0
QFJ-926: Session reset happens after logon
chrjohn Jul 3, 2017
8d7ed73
Merge pull request #116 from quickfix-j/qfj-926-session-reset
chrjohn Jul 3, 2017
de7ff03
- added some debug logging to diagnose problem only encountered on b…
chrjohn Jul 4, 2017
5316fc9
QFJ-929: FieldException on Logon message is handled incorrectly
chrjohn Jul 4, 2017
68300f5
Merge pull request #117 from quickfix-j/qfj-929-logon-field-exception
chrjohn Jul 4, 2017
f457fe1
test now passes
jonfreedman Jul 4, 2017
cae848c
reduce coupling
jonfreedman Jul 4, 2017
15f8ee4
tidy up test
jonfreedman Jul 4, 2017
9473d88
add builder to SessionFactoryTestSupport
jonfreedman Jul 4, 2017
66e9661
tweak builder settings
jonfreedman Jul 4, 2017
d9596b2
release lock in try/finally
jonfreedman Jul 5, 2017
2cf399f
use Saxon instead of Xalan for XSLT
jonfreedman Jul 6, 2017
ad0e1bc
Revert "use Saxon instead of Xalan for XSLT"
jonfreedman Jul 6, 2017
90c0935
use Saxon instead of Xalan for XSLT
jonfreedman Jul 6, 2017
155d21d
build on travis-ci
jonfreedman Jul 6, 2017
04fb3a8
Update .travis.yml
jonfreedman Jul 6, 2017
5fdca01
travis actually calls mvn test for us
jonfreedman Jul 6, 2017
3b71e2a
Merge remote-tracking branch 'origin/travis' into travis
jonfreedman Jul 6, 2017
bad17d0
give maven 2gb of heap
jonfreedman Jul 6, 2017
ee652fc
set max heap in maven-compiler-plugin
jonfreedman Jul 6, 2017
25221f4
tweak compiler heap
jonfreedman Jul 6, 2017
9878ab9
set MAVEN_OPTS
jonfreedman Jul 6, 2017
d1a5039
set MAVEN_OPTS
jonfreedman Jul 6, 2017
c187924
tweak maven
jonfreedman Jul 6, 2017
8a51136
customise install step
jonfreedman Jul 6, 2017
73f8eff
make MAVEN_OPTS a global
jonfreedman Jul 6, 2017
798ec18
set maven-compiler-plugin to inherited
jonfreedman Jul 6, 2017
6f23e7c
put MAVEN_OPTS in ~/.mavenrc
jonfreedman Jul 7, 2017
552754e
remove build step customisation
jonfreedman Jul 7, 2017
071e9dd
make logging less verbose
jonfreedman Jul 7, 2017
551274e
replace more instances of ScreenLogFactory with SLF4JLogFactory
jonfreedman Jul 7, 2017
571d5b6
don't replace this one...
jonfreedman Jul 7, 2017
ca6b89c
Merge pull request #121 from jonfreedman/travis
chrjohn Jul 11, 2017
5b69941
Update .travis.yml
chrjohn Jul 11, 2017
6845d78
Merge pull request #92 from soliad/QFJ_1_6_x
chrjohn Jul 12, 2017
3926fa1
Merge pull request #75 from knutae/patch-1
chrjohn Jul 12, 2017
317fc6e
added some time to cleanup resources after each test in SSLCertificat…
chrjohn Jul 13, 2017
0b79323
- use distinct ports on test execution to prevent problems when quic…
chrjohn Jul 13, 2017
af84f71
- SocketInitiatorTest: changed protocol to VM_PIPE to test if dispos…
chrjohn Jul 14, 2017
a11ed13
- temporarily disable SocketInitiatorTest.testBlockLogoffAfterLogon()
chrjohn Jul 14, 2017
40cf8da
Merge pull request #119 from jonfreedman/verbose-dictionary
chrjohn Jul 14, 2017
ea7003a
- resolved conflicts in SessionFactoryTestSupport
chrjohn Jul 14, 2017
3b009a9
Merge branch 'jonfreedman-master'
chrjohn Jul 14, 2017
7940b0f
Merge pull request #118 from jonfreedman/master
chrjohn Jul 14, 2017
7ea2bb5
- clean up resources after unit tests
chrjohn Jul 17, 2017
8055b88
- added test for QFJ-907 which has already been fixed by QFJ-849
chrjohn Jul 17, 2017
07be36d
- used distinct session log where possible
chrjohn Jul 18, 2017
b2bdce5
- removed sessionID from log string since the distinct session log i…
chrjohn Jul 18, 2017
807e41f
Merge pull request #123 from quickfix-j/minor-refactorings
chrjohn Jul 18, 2017
5328e4b
QFJ-923: FileStore is leaking file handles (#124)
chrjohn Jul 19, 2017
fbddaf3
- deprecated block() methods in SocketAcceptor and SocketInitiator s…
chrjohn Jul 21, 2017
cf1b0b2
QFJ-914: Generate and package javadoc for release build (#128)
chrjohn Jul 24, 2017
bfe5469
IntelliJ inspections corrected and some dependencies updated.
Jul 24, 2017
947db8c
Merge pull request #127 from guidomedina/intellij-inspections-correct…
chrjohn Jul 25, 2017
bb8b313
- added some missing cases to Ordermatch application, prevent NPE
chrjohn Jul 25, 2017
06c312e
Merge pull request #129 from quickfix-j/ordermatch-application
chrjohn Jul 25, 2017
7a0bd5b
Fix for dropped logout message issue
traggatt Aug 3, 2017
f82779d
Merge pull request #130 from traggatt/session-logout-fix
chrjohn Aug 15, 2017
c9e3a59
increased memory for javadoc generation
chrjohn Aug 15, 2017
a1e2211
Add Weekday Scheduler
Arthurm1 Aug 20, 2017
a98b761
Add Weekday Scheduler
Arthurm1 Aug 20, 2017
9979ace
Add Weekdays schedule documentation
Arthurm1 Aug 25, 2017
2862d39
Merge remote-tracking branch 'origin/master'
Arthurm1 Aug 25, 2017
39183ce
Merge pull request #133 from Arthurm1/master
chrjohn Aug 25, 2017
37b97fb
Integrated changes done by Arthur McGibbon @Arthurm1 #133 into Defaul…
chrjohn Aug 25, 2017
ca16635
Merge pull request #134 from quickfix-j/weekdays-session-integration
chrjohn Aug 25, 2017
158050e
Use helper function to extract epochMillis
philipwhiuk Sep 18, 2017
67c381b
- fix javadoc generation
chrjohn Sep 19, 2017
37c285b
- changed version to 2.0.0-SNAPSHOT due to breaking API change (usag…
chrjohn Sep 19, 2017
f360ccd
Merge pull request #135 from philipwhiuk/master
chrjohn Sep 19, 2017
481c585
Merge pull request #136 from quickfix-j/javadoc-fixes
chrjohn Sep 19, 2017
635c55a
Merge pull request #137 from quickfix-j/use-semantic-versioning
chrjohn Sep 19, 2017
8dcc004
QFJ-933: FieldNotFound when Logon without HeartBtInt is received - me…
chrjohn Sep 21, 2017
6207415
Dependencies and plugins updated to latest and some IntelliJ inspecti…
Sep 21, 2017
4da4169
QFJ-934: Message with nested repeating group and missing delimiter ta…
chrjohn Sep 26, 2017
61dc658
QFJ-933: FieldNotFound when Logon without HeartBtInt is received - me…
chrjohn Sep 26, 2017
bfe0972
Merge pull request #139 from quickfix-j/qfj-933-logon-without-heartbeat
chrjohn Sep 27, 2017
a097bbd
- adapted acceptance tests and Session
chrjohn Sep 28, 2017
0b1f722
Merge pull request #140 from quickfix-j/qfj-934-repeating-group-delim…
chrjohn Sep 28, 2017
bcd963c
Merge pull request #138 from guidomedina/master
chrjohn Sep 28, 2017
2c099a8
QFJ-933: FieldNotFound when Logon without HeartBtInt is received - me…
chrjohn Sep 28, 2017
817fa74
QFJ-933: FieldNotFound when Logon without HeartBtInt is received - me…
chrjohn Sep 28, 2017
33e485e
- consolidated exception handling for IncorrectDataFormat, Incorrect…
chrjohn Oct 3, 2017
1abecc7
Merge branch 'master' into qfj-933-additions
chrjohn Oct 3, 2017
ea5bfab
Update SessionTest.java
chrjohn Oct 3, 2017
5665fcc
Merge pull request #141 from quickfix-j/qfj-933-additions
chrjohn Oct 3, 2017
e44b35d
- improved rejection messages for "invalid message type"
chrjohn Oct 5, 2017
dc98929
- improved rejection messages for "CompID problem"
chrjohn Oct 5, 2017
8b1f070
- minor logging changes in Session
chrjohn Oct 5, 2017
ddc2e46
Merge pull request #143 from quickfix-j/session-log
chrjohn Oct 6, 2017
63b7e6f
Merge branch 'master' into improve-rejection-messages
chrjohn Oct 6, 2017
bb026c6
Merge pull request #142 from quickfix-j/improve-rejection-messages
chrjohn Oct 6, 2017
53313d5
Removed deprecated methods.
chrjohn Oct 6, 2017
05374f6
Merge pull request #144 from quickfix-j/remove-deprecations
chrjohn Oct 6, 2017
ebcbf60
Changed logging to use formatting anchor {} where applicable.
chrjohn Oct 9, 2017
c068916
Removed unnecessary isDebugEnabled() statements.
chrjohn Oct 9, 2017
63fa9a7
Merge pull request #145 from quickfix-j/logging-formatting-anchor
chrjohn Oct 9, 2017
f4d9d60
add create_all (#132)
Oct 19, 2017
3868404
Re-enabled acceptor sessions in finally block (#126)
upchuck Oct 19, 2017
0431614
QFJ-902: Fixing a bug with attempt to close stream multiple times (#146)
alexwibowo Oct 23, 2017
38bc632
Better error messages in dictionary generator (#147)
aferrandi Oct 26, 2017
7b253d7
Playing with travis config
chrjohn Oct 27, 2017
acc0300
Tested another Linux distribution
chrjohn Oct 27, 2017
e220dd5
various fixes in install.html (#153)
ruediste Nov 17, 2017
5c0625c
added -Djava.net.preferIPv4Stack=true to test config (#154)
chrjohn Nov 17, 2017
fab0ce8
increased number of open files
chrjohn Nov 18, 2017
a1bedae
Changed sudo and alternative distribution setting for Travis (#155)
chrjohn Nov 21, 2017
01af2c3
forward caught exception to next filter (#156)
chrjohn Nov 21, 2017
cff2a5d
changed version to 2.0.0
chrjohn Nov 22, 2017
6ec3412
set version to 2.0.1-SNAPSHOT
chrjohn Nov 22, 2017
7afb9f3
Required component in group (#148)
mmitya Nov 23, 2017
8a6f417
QFJ-533: Throw InvalidMessage when count field for repeating groups w…
pbyrne413 Nov 23, 2017
622b858
After scheduled logout/disconnection FIX session starts connection at…
mmitya Nov 23, 2017
f4f0a9f
Changes to stop() method of SocketAcceptor and SocketInitiator (#159)
chrjohn Nov 28, 2017
f8a5f08
Minor changes to IncorrectTagValue and InvalidMessage (#158)
chrjohn Nov 28, 2017
5a512d8
set version to 2.1.0-SNAPSHOT
chrjohn Jan 25, 2018
ea6a11d
Add getOptionalString + unit test to FieldMap (#162)
egoebelbecker Jan 25, 2018
d4b36c0
Add new header field to header list: ApplExtID (#165)
philipwhiuk Jan 25, 2018
3cf3964
Pass SessionID to MemoryStore constructor from MemoryStoreFactory (#161)
jonfreedman Jan 25, 2018
b77de84
Don't increment sequence number on rejected logon (#164)
philipwhiuk Jan 26, 2018
8d9b7ce
QFJ-940 - Event log omits parts of received message in case of valida…
chrjohn Feb 5, 2018
ecef090
QFJ-888: DefaultMessageFactory does not support FIX5.0 SP1/2 (#171)
ckolek Feb 8, 2018
2ec570e
Minor logging change and correction of and-clause (#173)
chrjohn Feb 9, 2018
be3b5db
Fix a bug where some calls to isSetting() don't specify the session I…
jasonps01 Feb 19, 2018
746a35b
QFJ-943: optional watermarks-based back pressure propagation from inb…
mrbald Mar 6, 2018
6b377f7
Cleanup Sessions on stop (#175)
chrjohn Mar 6, 2018
d6b9c26
removed MaxPermSize setting
chrjohn Mar 10, 2018
a00e6f4
improving flaky ssl certificate test (#179)
the-thing Mar 12, 2018
95184ad
added trimStackTrace=false to surefire config
chrjohn Mar 13, 2018
d920853
QFJ-932 - data dictionary validation format independent (#180)
the-thing Mar 13, 2018
c14b77e
QFJ-944 Misleading error message when receiving Logon with tag RawDat…
chrjohn Mar 15, 2018
980414b
Update MINA to 2.0.17 (#177)
chrjohn Mar 19, 2018
c25aff7
QFJ-942: Observing hangs in dispose() on stop() (#178)
chrjohn Mar 19, 2018
da38e83
Merge branch 'slf4j-optimization' of https://github.com/charlesbr1/qu…
chrjohn Mar 29, 2018
e384336
Fixed SLF4JLogTest.
chrjohn Mar 29, 2018
90fec9e
Merge branch 'charlesbr1-slf4j-optimization'
chrjohn Mar 29, 2018
1136305
no-op change to trigger Travis build
chrjohn Mar 31, 2018
4ce9d42
Merge branch 'message-generation-optimization' of https://github.com/…
chrjohn Apr 2, 2018
5564321
- changed logic to work also with incomplete messages, i.e. where Beg…
chrjohn May 2, 2018
7f3c51e
trying to make unit test work
chrjohn May 2, 2018
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
10 changes: 10 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
language: java
sudo: false
jdk:
- oraclejdk8
before_script:
- ulimit -n 4096
before_install:
- echo "MAVEN_OPTS='-Xms2g -Xmx3g'" > ~/.mavenrc
script:
- travis_wait 30 mvn test -B -V -Djava.util.logging.config.file=logging.properties
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
QuickFIX/J
==========

[![Build Status](https://travis-ci.org/quickfix-j/quickfixj.svg?branch=master)](https://travis-ci.org/quickfix-j/quickfixj)
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.quickfixj/quickfixj-core/badge.svg)](https://maven-badges.herokuapp.com/maven-central/org.quickfixj/quickfixj-core)

This is the official QuickFIX/J project repository.

The Financial Information eXchange (FIX) protocol is a messaging standard developed
Expand Down
35 changes: 18 additions & 17 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

<groupId>org.quickfixj</groupId>
<artifactId>quickfixj-parent</artifactId>
<version>1.7.0-SNAPSHOT</version>
<version>2.1.0-SNAPSHOT</version>
<packaging>pom</packaging>

<name>QuickFIX/J Parent</name>
Expand Down Expand Up @@ -52,7 +52,7 @@
</issueManagement>

<prerequisites>
<maven>3.3.9</maven>
<maven>3.5.0</maven>
</prerequisites>

<modules>
Expand All @@ -68,25 +68,25 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<jdkLevel>1.7</jdkLevel>
<slf4j.version>1.7.21</slf4j.version>
<jdkLevel>1.8</jdkLevel>
<slf4j.version>1.7.25</slf4j.version>
<junit.version>4.12</junit.version>
<mainClass/>
<mainClass />

<maven-resources-plugin-version>3.0.1</maven-resources-plugin-version>
<maven-compiler-plugin-version>3.5.1</maven-compiler-plugin-version>
<maven-resources-plugin-version>3.0.2</maven-resources-plugin-version>
<maven-compiler-plugin-version>3.7.0</maven-compiler-plugin-version>
<maven-jar-plugin-version>3.0.2</maven-jar-plugin-version>
<maven-surefire-plugin-version>2.19.1</maven-surefire-plugin-version>
<maven-pmd-plugin-version>3.7</maven-pmd-plugin-version>
<maven-surefire-plugin-version>2.20.1</maven-surefire-plugin-version>
<maven-pmd-plugin-version>3.8</maven-pmd-plugin-version>
<maven-source-plugin-version>3.0.1</maven-source-plugin-version>
<maven-javadoc-plugin-version>2.10.4</maven-javadoc-plugin-version>
<maven-shade-plugin-version>2.4.3</maven-shade-plugin-version>
<maven-assembly-plugin-version>2.6</maven-assembly-plugin-version>
<maven-bundle-plugin-version>3.2.0</maven-bundle-plugin-version>
<maven-shade-plugin-version>3.1.0</maven-shade-plugin-version>
<maven-assembly-plugin-version>3.1.0</maven-assembly-plugin-version>
<maven-bundle-plugin-version>3.3.0</maven-bundle-plugin-version>
<maven-gpg-plugin-version>1.6</maven-gpg-plugin-version>
<maven-deploy-plugin-version>2.8.2</maven-deploy-plugin-version>
<nexus-staging-maven-plugin-version>1.6.7</nexus-staging-maven-plugin-version>
<build-helper-maven-plugin-version>1.12</build-helper-maven-plugin-version>
<nexus-staging-maven-plugin-version>1.6.8</nexus-staging-maven-plugin-version>
<build-helper-maven-plugin-version>3.0.0</build-helper-maven-plugin-version>
</properties>

<build>
Expand All @@ -106,9 +106,12 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin-version}</version>
<inherited>true</inherited>
<configuration>
<source>${jdkLevel}</source>
<target>${jdkLevel}</target>
<meminitial>2g</meminitial>
<maxmem>4g</maxmem>
</configuration>
</plugin>
<plugin>
Expand Down Expand Up @@ -155,9 +158,6 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${maven-javadoc-plugin-version}</version>
<configuration>
<excludePackageNames>quickfix.fix*</excludePackageNames>
</configuration>
<executions>
<execution>
<id>attach-javadocs</id>
Expand All @@ -166,6 +166,7 @@
</goals>
<configuration>
<additionalparam>-Xdoclint:none</additionalparam>
<maxmemory>3g</maxmemory>
</configuration>
</execution>
</executions>
Expand Down
2 changes: 1 addition & 1 deletion quickfixj-all/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<parent>
<groupId>org.quickfixj</groupId>
<artifactId>quickfixj-parent</artifactId>
<version>1.7.0-SNAPSHOT</version>
<version>2.1.0-SNAPSHOT</version>
</parent>

<artifactId>quickfixj-all</artifactId>
Expand Down
9 changes: 7 additions & 2 deletions quickfixj-codegenerator/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<parent>
<groupId>org.quickfixj</groupId>
<artifactId>quickfixj-parent</artifactId>
<version>1.7.0-SNAPSHOT</version>
<version>2.1.0-SNAPSHOT</version>
</parent>

<artifactId>quickfixj-codegenerator</artifactId>
Expand All @@ -25,13 +25,18 @@
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>3.3.9</version>
<version>3.5.0</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-project</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>net.sf.saxon</groupId>
<artifactId>Saxon-HE</artifactId>
<version>9.8.0-4</version>
</dependency>
</dependencies>

<build>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,13 @@

package org.quickfixj.codegenerator;

import java.io.File;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.project.MavenProject;
import org.codehaus.plexus.util.FileUtils;

import java.io.File;

/**
* A mojo that uses the quickfix code generator to generate
* Java source files from a QuickFIX Dictionary.
Expand Down Expand Up @@ -137,8 +138,6 @@ public void execute() throws MojoExecutionException {
task.setOrderedFields(orderedFields);
task.setDecimalGenerated(decimal);
generator.generate(task);
} catch (Exception e) {
throw new MojoExecutionException("QuickFIX code generator execution failed", e);
} catch (Throwable t) {
throw new MojoExecutionException("QuickFIX code generator execution failed", t);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,17 +19,10 @@

package org.quickfixj.codegenerator;

import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
Expand All @@ -42,11 +35,17 @@
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
* Generates Message and Field related code for the various FIX versions.
Expand Down Expand Up @@ -84,7 +83,7 @@ private void generateMessageBaseClass(Task task) throws
ParserConfigurationException, SAXException, IOException,
TransformerFactoryConfigurationError, TransformerException {
logInfo(task.getName() + ": generating message base class");
Map<String, String> parameters = new HashMap<String, String>();
Map<String, String> parameters = new HashMap<>();
parameters.put(XSLPARAM_SERIAL_UID, SERIAL_UID_STR);
generateClassCode(task, "Message", parameters);
}
Expand All @@ -107,7 +106,7 @@ private void generateClassCode(Task task, String className, Map<String, String>
TransformerException {
logDebug("generating " + className + " for " + task.getName());
if (parameters == null) {
parameters = new HashMap<String, String>();
parameters = new HashMap<>();
}
parameters.put("messagePackage", task.getMessagePackage());
parameters.put("fieldPackage", task.getFieldPackage());
Expand All @@ -131,7 +130,7 @@ private void generateFieldClasses(Task task) throws ParserConfigurationException
String outputFile = outputDirectory + fieldName + ".java";
if (!new File(outputFile).exists()) {
logDebug("field: " + fieldName);
Map<String, String> parameters = new HashMap<String, String>();
Map<String, String> parameters = new HashMap<>();
parameters.put("fieldName", fieldName);
parameters.put("fieldPackage", task.getFieldPackage());
if (task.isDecimalGenerated()) {
Expand Down Expand Up @@ -159,7 +158,7 @@ private void generateMessageSubclasses(Task task) throws ParserConfigurationExce
Transformer transformer = createTransformer(task, "MessageSubclass.xsl");
for (String messageName : messageNames) {
logDebug("generating message class: " + messageName);
Map<String, String> parameters = new HashMap<String, String>();
Map<String, String> parameters = new HashMap<>();
parameters.put("itemName", messageName);
parameters.put(XSLPARAM_SERIAL_UID, SERIAL_UID_STR);
parameters.put("orderedFields", Boolean.toString(task.isOrderedFields()));
Expand All @@ -185,7 +184,7 @@ private void generateComponentClasses(Task task) throws ParserConfigurationExcep
Transformer transformer = createTransformer(task, "MessageSubclass.xsl");
for (String componentName : componentNames) {
logDebug("generating component class: " + componentName);
Map<String, String> parameters = new HashMap<String, String>();
Map<String, String> parameters = new HashMap<>();
parameters.put("itemName", componentName);
parameters.put("baseClass", "quickfix.MessageComponent");
parameters.put("subpackage", ".component");
Expand All @@ -208,11 +207,11 @@ private Transformer createTransformer(Task task, String xsltFile)
logInfo("Loading predefined xslt file:" + xsltFile);
styleSource = new StreamSource(this.getClass().getResourceAsStream(xsltFile));
}
TransformerFactory transformerFactory = TransformerFactory.newInstance();
TransformerFactory transformerFactory = new net.sf.saxon.TransformerFactoryImpl();
return transformerFactory.newTransformer(styleSource);
}

private final Map<String, Document> specificationCache = new HashMap<String, Document>();
private final Map<String, Document> specificationCache = new HashMap<>();

private Document getSpecification(Task task) throws ParserConfigurationException, SAXException,
IOException {
Expand Down Expand Up @@ -242,7 +241,7 @@ private void writePackageDocumentation(String outputDirectory, String descriptio
}

private List<String> getNames(Element element, String path) {
return getNames(element, path, new ArrayList<String>());
return getNames(element, path, new ArrayList<>());
}

private List<String> getNames(Element element, String path, List<String> names) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
*****************************************************************************
-->

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:qf="http://www.quickfixj.org" version="2.0">
<xsl:output method="text" encoding="UTF-8"/>
<xsl:param name="fieldName"/>
<xsl:param name="fieldPackage"/>
Expand Down Expand Up @@ -60,8 +60,12 @@
package <xsl:value-of select="$fieldPackage"/>;

import quickfix.<xsl:call-template name="get-field-type"/>Field;
<xsl:if test="@type='UTCTIMESTAMP' or @type='UTCTIMEONLY' or @type='UTCDATE' or @type='UTCDATEONLY'">
import java.util.Date;</xsl:if>
<xsl:if test="@type='UTCTIMESTAMP'">
import java.time.LocalDateTime;</xsl:if>
<xsl:if test="@type='UTCDATE' or @type='UTCDATEONLY'">
import java.time.LocalDate;</xsl:if>
<xsl:if test="@type='UTCTIMEONLY'">
import java.time.LocalTime;</xsl:if>

public class <xsl:value-of select="@name"/> extends <xsl:call-template name="get-field-type"/>Field {

Expand Down Expand Up @@ -95,10 +99,10 @@ public class <xsl:value-of select="@name"/> extends <xsl:call-template name="get
<xsl:when test="@type='AMT'"><xsl:value-of select="$decimalType"/></xsl:when>
<xsl:when test="@type='QTY'"><xsl:value-of select="$decimalType"/></xsl:when>
<xsl:when test="@type='CURRENCY'">String</xsl:when>
<xsl:when test="@type='UTCTIMESTAMP'">Date</xsl:when>
<xsl:when test="@type='UTCTIMEONLY'">Date</xsl:when>
<xsl:when test="@type='UTCDATE'">Date</xsl:when>
<xsl:when test="@type='UTCDATEONLY'">Date</xsl:when>
<xsl:when test="@type='UTCTIMESTAMP'">LocalDateTime</xsl:when>
<xsl:when test="@type='UTCTIMEONLY'">LocalTime</xsl:when>
<xsl:when test="@type='UTCDATE'">LocalDate</xsl:when>
<xsl:when test="@type='UTCDATEONLY'">LocalDate</xsl:when>
<xsl:when test="@type='BOOLEAN'">boolean</xsl:when>
<xsl:when test="@type='FLOAT'">double</xsl:when>
<xsl:when test="@type='PRICEOFFSET'"><xsl:value-of select="$decimalType"/></xsl:when>
Expand Down Expand Up @@ -147,26 +151,39 @@ public class <xsl:value-of select="@name"/> extends <xsl:call-template name="get
</xsl:choose>
</xsl:template>

<xsl:function name="qf:sanitiseDescription">
<xsl:param name="text" />
<xsl:if test="contains('0123456789', substring($text, 1, 1))">
<xsl:text>N_</xsl:text>
</xsl:if>
<xsl:variable name="toReplace">.,+-=:()/&amp;&quot;&apos;&lt;&gt;</xsl:variable>
<xsl:for-each select="tokenize(translate($text,$toReplace,''),' ')">
<xsl:value-of select="upper-case(substring(.,1,1))" />
<xsl:value-of select="substring(.,2)" />
</xsl:for-each>
</xsl:function>

<xsl:template name="values">
<xsl:for-each select="value">
<xsl:variable name="description" select="string-join(qf:sanitiseDescription(@description),'')"/>
<xsl:choose>
<xsl:when test="../@type='STRING'">public static final String <xsl:value-of select="@description"/> = "<xsl:value-of select="@enum"/>";
<xsl:when test="../@type='STRING'">public static final String <xsl:value-of select="$description"/> = "<xsl:value-of select="@enum"/>";
</xsl:when>
<xsl:when test="../@type='MULTIPLESTRINGVALUE'">public static final String <xsl:value-of select="@description"/> = "<xsl:value-of select="@enum"/>";
<xsl:when test="../@type='MULTIPLESTRINGVALUE'">public static final String <xsl:value-of select="$description"/> = "<xsl:value-of select="@enum"/>";
</xsl:when>
<xsl:when test="../@type='MULTIPLEVALUESTRING'">public static final String <xsl:value-of select="@description"/> = "<xsl:value-of select="@enum"/>";
<xsl:when test="../@type='MULTIPLEVALUESTRING'">public static final String <xsl:value-of select="$description"/> = "<xsl:value-of select="@enum"/>";
</xsl:when>
<xsl:when test="../@type='BOOLEAN'">public static final boolean <xsl:value-of select="@description"/> = <xsl:call-template name="y-or-n-to-bool" />;
<xsl:when test="../@type='BOOLEAN'">public static final boolean <xsl:value-of select="$description"/> = <xsl:call-template name="y-or-n-to-bool" />;
</xsl:when>
<xsl:when test="../@type='INT'">public static final int <xsl:value-of select="@description"/> = <xsl:value-of select="@enum"/>;
<xsl:when test="../@type='INT'">public static final int <xsl:value-of select="$description"/> = <xsl:value-of select="@enum"/>;
</xsl:when>
<xsl:when test="../@type='NUMINGROUP'">public static final int <xsl:value-of select="@description"/> = <xsl:value-of select="@enum"/>;
<xsl:when test="../@type='NUMINGROUP'">public static final int <xsl:value-of select="$description"/> = <xsl:value-of select="@enum"/>;
</xsl:when>
<xsl:when test="../@type='EXCHANGE'">public static final String <xsl:value-of select="@description"/> = "<xsl:value-of select="@enum"/>";
<xsl:when test="../@type='EXCHANGE'">public static final String <xsl:value-of select="$description"/> = "<xsl:value-of select="@enum"/>";
</xsl:when>
<xsl:when test="../@type='MONTHYEAR'">public static final String <xsl:value-of select="@description"/> = "<xsl:value-of select="@enum"/>";
<xsl:when test="../@type='MONTHYEAR'">public static final String <xsl:value-of select="$description"/> = "<xsl:value-of select="@enum"/>";
</xsl:when>
<xsl:otherwise>public static final char <xsl:value-of select="@description"/> = '<xsl:value-of select="@enum"/>';
<xsl:otherwise>public static final char <xsl:value-of select="$description"/> = '<xsl:value-of select="@enum"/>';
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
*****************************************************************************
-->

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:output method="text" encoding="UTF-8"/>
<xsl:param name="serialVersionUID"/>
<xsl:param name="messagePackage"/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
*****************************************************************************
-->

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:output method="text" encoding="UTF-8"/>
<xsl:param name="fieldPackage"/>
<xsl:param name="messagePackage"/>
Expand Down
Loading