Skip to content

QFJ 2.0.0 release notes

Christoph John edited this page Jan 26, 2018 · 14 revisions

General

You need at least Java 8 to run QuickFIX/J.
Usage of the Java 8 Date/Time API was a breaking API change, so it was decided to make this a 2.0.0 release (instead of 1.7.0).

UtcTimestamp resolution

QuickFIX/J now can accept (up to picoseconds) and process (up to nanoseconds) UtcTimestamp fields with higher precision.
See http://www.quickfixj.org/jira/browse/QFJ-873

  • Instead of java.util.Date we will now use java.time.LocalDate/Time classes. This means your code probably needs adaptations (unless you are treating each field as String). Example code:
    // convert existing date to LocalDateTime
    LocalDateTime dateTime = LocalDateTime.ofInstant(date.toInstant(), ZoneId.of("UTC"));
    message.setUtcTimeStamp(field, dateTime, UtcTimestampPrecision.MILLIS);
    // set current date/time
    message.setUtcTimeStamp(field, LocalDateTime.now(ZoneId.of("UTC")), UtcTimestampPrecision.MILLIS);
  • added config TimeStampPrecision (used for (Orig)SendingTime) which can take a value of SECONDS, MILLIS, MICROS or NANOS. Default is MILLIS.
  • added new fields UtcTimeField and UtcDateField

other improvements

  • There are many bug fixes included.
  • Plus it is now possible to define a SessionSchedule for a set of weekdays.
  • Reject and Logout messages have been improved and unified with regard to the rejection text and reason. The log message "Tried to send a reject while not logged on" should not happen anymore and a Logout message should be sent instead.
  • Removal of deprecated methods.

Contributors

Many thanks to all the people who have also contributed to this release (hopefully not missing someone, in alphabetical order):

https://github.com/aferrandi
https://github.com/alexwibowo
https://github.com/Arthurm1
https://github.com/chrjohn
https://github.com/guidomedina
https://github.com/jonfreedman
https://github.com/philipwhiuk
https://github.com/ruediste
https://github.com/traggatt
https://github.com/upchuck
https://github.com/welloncn

included pull requests / commits (which are not already JIRA issues)

https://github.com/quickfix-j/quickfixj/pull/121 - Travis CI
https://github.com/quickfix-j/quickfixj/pull/126 - Re-enabled acceptor sessions in finally block
https://github.com/quickfix-j/quickfixj/pull/127 - IntelliJ inspections corrected and some dependencies updated
https://github.com/quickfix-j/quickfixj/pull/130 - Fix for dropped logout message issue
https://github.com/quickfix-j/quickfixj/pull/132 - added create_all SQL script
https://github.com/quickfix-j/quickfixj/pull/133 - Weekday Session Schedule
https://github.com/quickfix-j/quickfixj/pull/134 - Integrated changes from #133 into DefaultSessionSchedule
https://github.com/quickfix-j/quickfixj/pull/135 - Use helper function to extract epochMillis
https://github.com/quickfix-j/quickfixj/pull/136 - fix javadoc generation for release
https://github.com/quickfix-j/quickfixj/pull/137 - changed version to 2.0.0-SNAPSHOT due to breaking API change (QFJ-873)
https://github.com/quickfix-j/quickfixj/pull/138 - Dependencies and plugins updated to latest
https://github.com/quickfix-j/quickfixj/pull/141 - additions to QFJ-933 around Exception handling
https://github.com/quickfix-j/quickfixj/pull/142 - Improve rejection messages
https://github.com/quickfix-j/quickfixj/pull/143 - minor logging changes in Session
https://github.com/quickfix-j/quickfixj/pull/144 - Removed deprecated methods
https://github.com/quickfix-j/quickfixj/pull/145 - Changed logging to use formatting anchor {} where applicable
https://github.com/quickfix-j/quickfixj/pull/147 - Better error messages in dictionary generator
https://github.com/quickfix-j/quickfixj/pull/153 - Various fixes in install.html

JIRA issues

Bug

  • [QFJ-902] - Logon rejected even though within session time (java.io.IOException: Stream Closed)
  • [QFJ-933] - FieldNotFound when Logon without HeartBtInt is received - message is ignored
  • [QFJ-934] - Message with nested repeating group and missing delimiter tag is silently ignored

New Feature

  • [QFJ-873] - Support processing higher resolution timestamps

Improvement

  • [QFJ-906] - Compile QFJ 1.6.x against JDK7 and QFJ 1.7.x against JDK8