Releases: tguzik/valueclasses
Releases · tguzik/valueclasses
v2.0.1
Immutable
release. Only release title and notes can be modified.
[v2.0.1] - 2026-01-18
Dependencies:
- Bump org.sonatype.central:central-publishing-maven-plugin from 0.9.0 to 0.10.0 (#165)
- Bump org.junit.jupiter:junit-jupiter from 6.0.1 to 6.0.2 (#166)
- Bump org.apache.maven.plugins:maven-release-plugin from 3.3.0 to 3.3.1 (#164)
- Bump org.mockito:mockito-core from 5.20.0 to 5.21.0 (#163)
- (test) Bump tools.jackson.core:jackson-databind from 3.0.2 to 3.0.3 (#162)
- (test) Bump tools.jackson.core:jackson-core from 3.0.2 to 3.0.3 (#159)
- Bump org.apache.maven.plugins:maven-release-plugin from 3.1.1 to 3.3.0 (#158)
- Bump org.codehaus.mojo:versions-maven-plugin from 2.19.1 to 2.20.1 (#157)
- Bump com.github.spotbugs:spotbugs-maven-plugin from 4.9.8.1 to 4.9.8.2 (#156)
- Bump org.apache.maven.plugins:maven-source-plugin from 3.3.1 to 3.4.0 (#155)
- (gha) Bump actions/checkout from 5 to 6 (#160)
Maintenance:
- Fine-tune changelog generation workflow (#169)
- Automate changelog generation (#168)
- Lint Nix files in pre-commit hooks (#167)
- Sign release tags (#161)
Other:
- [maven-release-plugin] prepare release v2.0.1
- [maven-release-plugin] prepare for next development iteration
v2.0.0
Breaking changes
The previous version of this library (1.0.2) has been released over 8 years ago, so there's a number of changes to adapt to the current ecosystem landscape:
- The library now requires JDK
17for consumption, up from JDK1.7in the 1.x line - Following non-core, auxiliary classes have been moved to a separate artifact (
com.tguzik:valueclasses-legacy):c.t.o.MultilineNoAddressStylec.t.t.Loaderc.t.t.Normalizec.t.t.SettableHashCodec.t.v.MutableValuec.t.v.a.JaxbStringValueAdapter(continues to rely on thejavax.xml.*namespace)c.t.v.a.JaxbValueAdapter(continues to rely on thejavax.xml.*namespace)- The functionality of these classes has been preserved, so applications relying on them can simply include the
com.tguzik:valueclasses-legacydependency
- The
c.t.o.BaseObjectclass no longer exposes theMULTILINE_NO_ADDRESS_STYLEconstant - The
commons-lang3has been updated from version3.9to3.20, which has changed the order of fields in output of the reflection-basedc.t.o.BaseObject#toString()
Changes
- Significantly improved support for valueclasses backed by Java Records, which is now the preferred style. The changes include, but are not limited to:
- Added interface
c.t.t.HasStringValuethat provides several convenience methods, and can be implemented by valueclasses backed both by Java Records and regular Java classes - The generic arguments in JaxB adapters have been relaxed to require implementing interface
HasValue<>instead of inheriting from classesValue<>and/orStringValue, opening them up to be used with Java Records
- Added interface
- The library now uses JSpecify annotations to mark nullable arguments
- The
com.tguzik:valueclasses-legacyartifact now offersJakartaJaxbValueAdapter<>that relies on thejakarta.xml.*namespace - The footprint and the number of dependencies required to consume this library have been reduced
Full Changelog: valueclasses-1.0.2...v2.0.0