Skip to content

2.0.0

Latest
Compare
Choose a tag to compare
@jvirtanen jvirtanen released this 29 Oct 13:58
· 246 commits to main since this release
9c687dd

Release Notes

See the upgrade instructions.

  • Make FIXCheckSums package-private (Jussi Virtanen)

    Despite being public, FIXCheckSums is essentially an internal utility class. Make it package-private to reflect this and gain more flexibility for the future.

  • Make FIXTags package-private (Jussi Virtanen)

    See above.

  • Remove FIXTimestamps (Jussi Virtanen)

    See above.

  • Improve FIXValue (Jussi Virtanen)

    Make the FIXValue class implement the CharSequence interface. Change the return type of the FIXValue#asString method from String to CharSequence to avoid memory allocation, and remove the FIXValue#asString(Appendable) and FIXValue#asString(StringBuilder) methods as superfluous.

    Split the FIXValue#setTimeOnly method into FIXValue#setTimeOnlyMillis and FIXTimeOnly#setTimeOnlySecs, and split the
    FIXValue#setTimestamp method into FIXValue#setTimestampMillis and FIXValue#setTimestampSecs.

    Remove the FIXValue#asCheckSum method.

  • Improve FIXConnection (Dimitar Dimitrov, dmech, Jussi Virtanen)

    Remove the Clock interface, and make the FIXConnection constructors to take the current timestamp in milliseconds instead. Replace the FIXConnection#updateCurrentTimestamp method with FIXConnection#setCurrentTimeMillis.

    Remove the FIXConnection#updateCompID method. Use FIXConnection#getSenderCompID and FIXValue#getTargetCompID together with the FIXValue methods instead.

    Add support for other channel types besides SocketChannel, and add support for separate channels for receiving and transmitting data. Remove the FIXConnection#getChannel method to facilitate this.

    Remove the FIXConnectionStatusListener#heartbeatTimeout method, and add the FIXHeartbeatTimeoutException class. Throw this exception when a heartbeat timeout is detected in the FIXConnection#keepAlive method.

    Make FIXConnectionStatusListener, and therefore the default administrative message handling, optional. This makes it possible for applications to handle inbound administrative messages themselves.

    Add the methods FIXConnection#setInMsgSeqNum, FIXConnection#setOutMsgSeqNum, FIXConnection#setSenderCompID, and FIXConnection#setTargetCompID. Rename the FIXConnection#getIncomingMsgSeqNum method to getInMsgSeqNum, and rename the FIXConnection#getOutgoingMsgSeqNum method to setOutMsgSeqNum.

  • Add FIXTimestamp (Jussi Virtanen)

    Replace uses of Joda-Time's MutableDateTime class and ReadableDateTime interface with a FIXTimestamp class. While its design is inspired by the java.time package and the LocalDateTime class in particular, it is mutable unlike LocalDateTime.

    With FIXTimestamp, the date and time operations on FIXValue become at best over three times as fast as they were with MutableDateTime. These benchmarks include the conversion from date and time fields into a timestamp in millisecods or vice versa. However, as FIXTimestamp internally stores the instant it represents in date and time fields rather than as a timestamp in milliseconds, these conversions only take place when explicitly invoking the FIXTimestamp#getEpochMilli and FIXTimestamp#setEpochMilli methods.

    This change removes the Joda-Time 2.x dependency.

  • Update FIX 4.3 support (Jussi Virtanen)

    Regenerate the FIX 4.3 support from the latest FIX Repository version.

  • Update FIXT 1.1 support (Jussi Virtanen)

    Regenerate the FIXT 1.1 support from the latest FIX Ochestra version.

  • Add FIX 4.0 support (Jussi Virtanen)

  • Add FIX 4.1 support (Jussi Virtanen)

  • Improve FIXConfig (Jussi Virtanen)

    Define constants for default values. Add a static FIXConfig.newBuilder method to simplify FIXConfig.Builder construction. Add a
    FIXConfig.DEFAULTS constant to simplify default configuration usage.

    Replace the FIXConfig#getVersion method with a FIXConfig#getBeginString method.

    Rename the FIXConfig#getIncomingMsgSeqNum method to FIXConfig#getInMsgSeqNum and the FIXConfig.Builder#getOutgoingMsgSeqNum method to FIXConfig#getOutMsgSeqNum. Rename the corresponding methods in FIXConfig.Builder similarly to FIXConfig.Builder#setInMsgSeqNum and FIXConfig.Builder#setOutMsgSeqNum.

  • Update FIX Latest support (Jussi Virtanen)

    Regenerate the FIX Latest support from the latest FIX Orchestra version, including Extension Packs up to EP272.

Maven

The following artifacts are available in the Central Repository:

Group ID Artifact ID Version
com.paritytrading.philadelphia philadelphia-core 2.0.0
com.paritytrading.philadelphia philadelphia-fix40 2.0.0
com.paritytrading.philadelphia philadelphia-fix41 2.0.0
com.paritytrading.philadelphia philadelphia-fix42 2.0.0
com.paritytrading.philadelphia philadelphia-fix43 2.0.0
com.paritytrading.philadelphia philadelphia-fix44 2.0.0
com.paritytrading.philadelphia philadelphia-fix50 2.0.0
com.paritytrading.philadelphia philadelphia-fix50sp1 2.0.0
com.paritytrading.philadelphia philadelphia-fix50s2p 2.0.0
com.paritytrading.philadelphia philadelphia-fixlatest 2.0.0
com.paritytrading.philadelphia philadelphia-fixt11 2.0.0