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 theCharSequence
interface. Change the return type of theFIXValue#asString
method fromString
toCharSequence
to avoid memory allocation, and remove theFIXValue#asString(Appendable)
andFIXValue#asString(StringBuilder)
methods as superfluous.Split the
FIXValue#setTimeOnly
method intoFIXValue#setTimeOnlyMillis
andFIXTimeOnly#setTimeOnlySecs
, and split the
FIXValue#setTimestamp
method intoFIXValue#setTimestampMillis
andFIXValue#setTimestampSecs
.Remove the
FIXValue#asCheckSum
method. -
Improve
FIXConnection
(Dimitar Dimitrov, dmech, Jussi Virtanen)Remove the
Clock
interface, and make theFIXConnection
constructors to take the current timestamp in milliseconds instead. Replace theFIXConnection#updateCurrentTimestamp
method withFIXConnection#setCurrentTimeMillis
.Remove the
FIXConnection#updateCompID
method. UseFIXConnection#getSenderCompID
andFIXValue#getTargetCompID
together with theFIXValue
methods instead.Add support for other channel types besides
SocketChannel
, and add support for separate channels for receiving and transmitting data. Remove theFIXConnection#getChannel
method to facilitate this.Remove the
FIXConnectionStatusListener#heartbeatTimeout
method, and add theFIXHeartbeatTimeoutException
class. Throw this exception when a heartbeat timeout is detected in theFIXConnection#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
, andFIXConnection#setTargetCompID
. Rename theFIXConnection#getIncomingMsgSeqNum
method togetInMsgSeqNum
, and rename theFIXConnection#getOutgoingMsgSeqNum
method tosetOutMsgSeqNum
. -
Add
FIXTimestamp
(Jussi Virtanen)Replace uses of Joda-Time's
MutableDateTime
class andReadableDateTime
interface with aFIXTimestamp
class. While its design is inspired by thejava.time
package and theLocalDateTime
class in particular, it is mutable unlikeLocalDateTime
.With
FIXTimestamp
, the date and time operations onFIXValue
become at best over three times as fast as they were withMutableDateTime
. These benchmarks include the conversion from date and time fields into a timestamp in millisecods or vice versa. However, asFIXTimestamp
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 theFIXTimestamp#getEpochMilli
andFIXTimestamp#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 simplifyFIXConfig.Builder
construction. Add a
FIXConfig.DEFAULTS
constant to simplify default configuration usage.Replace the
FIXConfig#getVersion
method with aFIXConfig#getBeginString
method.Rename the
FIXConfig#getIncomingMsgSeqNum
method toFIXConfig#getInMsgSeqNum
and theFIXConfig.Builder#getOutgoingMsgSeqNum
method toFIXConfig#getOutMsgSeqNum
. Rename the corresponding methods inFIXConfig.Builder
similarly toFIXConfig.Builder#setInMsgSeqNum
andFIXConfig.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 |