-
Notifications
You must be signed in to change notification settings - Fork 660
QFJ 3.0.0 release notes
Christoph John edited this page Mar 3, 2026
·
1 revision
-
Resend abort: Implement resend abort when
send()returns false; simplify resend abort warning and use session log. -
JMX: Add
start()method to JMX Connector operations to start Acceptor/Initiator after stopping. -
Session / configuration: Add
removeSection()toSessionSettings; addSessionSettings.getBoolOrDefault(); addonWarnEvent()(defaults toonErrorEventif not implemented); addSocketConnectTimeoutandSocketConnectProtocolfallback configuration. -
Validation: Add
FirstFieldInGroupIsDelimiter/ property to set repeating group delimiter from first tag in group; enhanceValidateFieldsOutOfOrderlogic; rework Data Dictionary handling to separateDataDictionarySettingsfromDataDictionary(QFJ-982). -
Logon: Validate
DefaultApplVerIDfrom Logon inSession.nextLogon(); validate Logon before acting onResetMsgSeqNumflag (#549). -
Message queue: Expose
MessageQueueinterface for custom implementation (#380); add bounded-size in-memory message queue. -
FieldMap / Session: Add
FieldMapAPI methods for for-each use (#347); addSessionIDtoSessionStateListenermethods (#370). - FIX Latest / Orchestra: FIX Latest support and FIX Orchestra tooling; FIXT11 and minimal-fix-latest; code/dictionary generation from FIX orchestration; class pruner plugin; replace order functionality.
-
Other: Charset support for
BytesField(QFJ-684); allow sending unchanged message inSession#send(#395); addCharacter.classforFieldType.CHAR; improveIntConverterperformance; optimizeconvertToLocalDateTimeand session reset; improveUtcTimeStampFieldinstantiation; addgetIoSession().
-
Session / connector: Fix thread leak in
SessionConnector; fix NPE and context class loader; remove unnecessary session close when already closed; fixUseDataDictionary=NwhendataDictionaryProvideris null; remove duplicated disconnect case; improve disconnect reason when ResetOnLogon is not honoured. -
Reset/Persist: Fix ResetOnLogon/ResetOnLogout/ResetOnDisconnect when
PersistMessages=N(#316). - Schedule: Fix schedule handling when EndTime < StartTime in different timezones.
- Parsing / XML: Fix FIX message XML conversion (#322); fix parsing infinite loop on invalid FIX message (#434).
-
Group/FieldMap: Remove group entry entirely when removing a group (#414); improve
FieldMapnull handling (#567); clean upSessionSettings.getBool()exception handling (#575). - File store: Filestore message length fix (650).
- Executor example: Fix ExecType for FIX 4.1/4.2 (Issue #968); set correct ExecType in ExecutionReport (#404).
-
Tests / cleanup: Fix
DataDictionaryTestDTD assertion for locale; fixFileUtilTestresource not found (#654); correctFileUtilfor 403 with User-Agent; copy constructor retains setting; various test and cleanup fixes.
- Replace deprecated TLS cipher suites with
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256/TLS_RSA_WITH_AES_128_GCM_SHA256; remove deprecated cipher suites fromCERTIFICATE_REQUIRED_CIPHER_SUITES. - SNI fixes; comprehensive cipher list for Windows JDK 21; fix intermittent
SSLCertificateTestwith explicit cipher suites; SSL SOCKS proxy tests. - Remove custom MINA SSL filter; MINA 2.2.x update.
- Upgrade Guava for vulnerability mitigation; Snyk/dependency updates.
- Maven: Upgrade to 3.9.12 (wrapper + POM); earlier steps to 3.9.9–3.9.11; Maven plugin API and plugin versions aligned.
- JUnit: Migrate JUnit 3 → JUnit 4; JUnit Jupiter 5.6.1 → 5.14.2; Surefire updates.
- JAXB: 2.3.3 → 4.0.4; Saxon-HE 9.8 → 12.9; Netty example 4.1.x → 4.2.9; SLF4J 1.7.x → 2.0.x; Commons IO, Hamcrest, Mockito, and many Maven plugin bumps (compiler, jar, javadoc, PMD, enforcer, gpg, invoker, etc.).
- Other: Replace Proxool with HikariCP; remove Guava where possible; add plexus-xml; dependabot for GitHub Actions and Maven; JDK 8/11/17/21 build and CI adjustments.
- Update configuration options link; fix issue reference format (GitHub URL); add assertj-quickfixj to related projects; add skip javadoc to README; extend README with SNAPSHOT usage; configuration and SSL docs; issue/PR templates; SECURITY.md; customising-quickfixj and codegen docs.
- JUnit 3 → 4 migration;
AcceptanceTestSuitecomposition and runner for test count parity; CI script to compare test execution totals; JDBC store jcstress suite; dynamic ports for tests; free port for SocketAcceptor/SocketInitiator tests; additional acceptor mixed-session scenario; overloading header for message-specific subclasses.
- Nightly SNAPSHOT to GitHub Packages; nightly build workflow (package step, exclude quickfixj-distribution, add quickfixj-stress-test); GitHub Actions (checkout 5→6, setup-java 4→5, CodeQL 2→4); macOS/Windows CI (Corretto, pagefile, JDK 8/17/21); devcontainer and .junie workflow; Maven wrappers; dependabot; remove Travis.
Unique human contributors, sorted alphabetically. Bots are not listed.
- Alexander A — @fillreject
- Andreas Büchel — @andreasbuechel
- Andrei Korzhevskii — @korzha
- Andrey Nudko — @andreydp
- Andrii Poletaiev — @andreydp
- Anton Rybochkin — @raipc
- Baoyi Chen — @leonchen83
- ChoiJunsik — @ChoiJunsik
- Christoph John — @chrjohn
- David Gibbs — @david-gibbs-ig
- Diptanshu Parui — @dparui
- Eduardo Sanchez-Ros — @esanchezros
- frankk-d — @frankk-d
- Grant Birchmeier — @gbirchmeier
- Harinda Samarasekara — @harinda05
- Isha Bandi — @ishabandi67
- Isuru — @busy-spin
- Jacques Barnard — @jacques0803
- jimbogithub — @jimbogithub
- JKlmrk — @JKlmrk
- Krzysztof Banasik — @krisbanas
- Marcin — @the-thing
- Martin Smat — @msmat0
- Max Mok — @zhaojunmo
- Philip Whitehouse — @philipwhiuk
- Ramon Singh — @Ramonster1
- spoerri — @spoerri
- Stanislav Alekminskii — @stasal
- Vini — @vinipx
- Wilson Zhang — @wilson-zh