Releases: gruelbox/transaction-outbox
5.5.447
Features
- Support for ordered processing by @badgerwithagun, @amseager, @markushc in #588
- Allow for execution to be delayed by @badgerwithagun in #595
- Tested using virtual threads in Java 21 by @badgerwithagun in #547 (note: MySQL Connector/J makes them unusable with MySQL but they work great with Postgres, Oracle and H2)
Dependencies
- Bump org.apache.maven.plugins:maven-compiler-plugin from 3.12.0 to 3.12.1 by @dependabot in #549
- Bump jackson.version from 2.16.0 to 2.16.1 by @dependabot in #548
- Bump org.jooq:jooq from 3.19.1 to 3.19.6 by @dependabot in #579
- Bump spring.version from 6.1.2 to 6.1.4 by @dependabot in #577
- Bump com.spotify.fmt:fmt-maven-plugin from 2.21.1 to 2.23 by @dependabot in #575
- Bump org.postgresql:postgresql from 42.7.1 to 42.7.2 by @dependabot in #571
- Bump org.slf4j:slf4j-api from 2.0.9 to 2.0.12 by @dependabot in #567
- Bump spring.boot.version from 3.2.1 to 3.2.3 by @dependabot in #578
- Bump org.apache.maven.plugins:maven-gpg-plugin from 3.1.0 to 3.2.0 by @dependabot in #581
- Bump net.bytebuddy:byte-buddy from 1.14.11 to 1.14.12 by @dependabot in #582
- Bump logback.version from 1.4.14 to 1.5.3 by @dependabot in #583
- Bump org.codehaus.mojo:flatten-maven-plugin from 1.5.0 to 1.6.0 by @dependabot in #559
- Bump org.apache.maven.plugins:maven-surefire-plugin from 3.2.3 to 3.2.5 by @dependabot in #554
- Bump jackson.version from 2.16.1 to 2.17.0 by @dependabot in #584
- Bump spring.version from 6.1.4 to 6.1.5 by @dependabot in #586
- Bump com.google.guava:guava from 33.0.0-jre to 33.1.0-jre by @dependabot in #585
- Bump org.postgresql:postgresql from 42.7.2 to 42.7.3 by @dependabot in #587
- Bump org.apache.maven.plugins:maven-gpg-plugin from 3.2.0 to 3.2.1 by @dependabot in #589
- Bump org.apache.maven.plugins:maven-compiler-plugin from 3.12.1 to 3.13.0 by @dependabot in #590
- Bump junit.jupiter.version from 5.10.1 to 5.10.2 by @dependabot in #580
Full Changelog: 5.4.421...5.5.447
5.4.421
Deprecations (forthcoming or partial breaking changes):
- All classes outside
transactionoutbox-core
(such as those relating to Guice, Spring, Jackson etc) have been moved to a related sub-package (e.g.com.gruelbox.transactionoutbox.spring
). The original classes remain in place but marked as deprecated for removal. Please update your code to reference the new locations. The old classes will be removed in the next release (6.0.x
). This is to resolve issues preventing use with the Java Module System (see #505). - Guice support has been bumped to version
6.0.0
, which brings thejakarta.inject.*
namespace in. Officially thejavax.inject.*
namespace is still supported, but there may be issues. Guice will be bumped to7.0.0
, removingjavax.inject.*
support entirely, in the next release. If this is a problem for you, feel free to just copy the (two!) Guice-related classes into your own code and flip the dependency. - Quarkus has been bumped to the latest version, with similar effects in terms of the Jakarta EE dependencies. The same solution applies if this affects you: just copy the classes and change the package names.
Dialect
has been converted to aninterface
(instead of anenum
). Existing code should be text-compatible (but not binary compatible) as long as you aren't using the dialect withswitch
statements. If you are, use chainedif
statements instead.
Bug fixes:
- When first adding
TXNO_OUTBOX
table to applications, if the upgrade occurred in parallel on multiple application instances, it could cause a conflict. This has been resolved to correctly apply database locks (e29b932) - Many, many dependency bumps (see full changelog for full list: 5.3.370...5.4.421)
New features:
- Official support for Java 21 (superseding 20) (#528)
- Official support for Postgres 16 (#492 ) - thanks @mkjensen
- Provide access to the database schema (#493) - thanks @mkjensen
- Tests refactored to allow secondary modules to more easily write acceptance tests (#522, #523)
Dialect
converted to interface, allowing new database support to be added more easily (83d0035)
Full Changelog: 5.3.370...5.4.421
5.3.370
BREAKING CHANGES for users of the jooq and spring integrations:
- Both now require Java 17
- Spring has made the jump to the
jakarta.*
dependencies rather thanjavax.*
.
Java 11 is supported for everything else.
Changes:
- Breaking change: Bump jooq from 3.16.5 to 3.18.4 (#438).
- Other dependency bumps
- Build improvements
- Publish missing Spring module from last release
5.2.360
5.2.337
- Experimental - Quarkus integration (#320) - thanks @RomainWilbert
- Fix - Deleting expired not working correctly on Postgres (#367) - thanks @kzkvv
- Experimental - Oracle integration (#340) - thanks @RomainWilbert and @skastenholz
- Dependency bumps
5.1.300
4.3.281
-
Enabled multiple java version 11, 15, 17 compatibility build
-
Introduce Jackson serializer which can serialize mostly anything
-
Added instructions on clustering workloads to README
-
Dependency bumps
4.2.268
feature: #223 Support serialization of UUID by default
feature: #239 Replaced CGLIB with ByteBuddy
Dependency bumps
Warning: To maintain compatibility with prior versions, add ByteBuddy and Objenesis to your classpath, e.g. in Maven:
<dependency>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy</artifactId>
<version>1.12.1</version>
</dependency>
<dependency>
<groupId>org.objenesis</groupId>
<artifactId>objenesis</artifactId>
<version>3.2</version>
</dependency>
These are only required if proxying classes (rather than interfaces).
4.1.230
4.1.214
BREAKING RELEASE - this version reverts to an earlier version of the Jakarta Expression Language/Hibernate Validator, which moves validation annotations back to javax.* from jakarta.*. It turns out that very little is compatible with the newer versions of Jakarta EL and most users were stuck on old version of Transaction Outbox because of this.
This release is 100% compatible with 2.x versions but incompatible with 3.x versions.
Changes