Skip to content

Releases: tguzik/valueclasses

v2.0.1

18 Jan 13:22
Immutable release. Only release title and notes can be modified.
v2.0.1
2a35e68

Choose a tag to compare

[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

19 Nov 00:39
Immutable release. Only release title and notes can be modified.
bb82c3c

Choose a tag to compare

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 17 for consumption, up from JDK 1.7 in the 1.x line
  • Following non-core, auxiliary classes have been moved to a separate artifact (com.tguzik:valueclasses-legacy):
    • c.t.o.MultilineNoAddressStyle
    • c.t.t.Loader
    • c.t.t.Normalize
    • c.t.t.SettableHashCode
    • c.t.v.MutableValue
    • c.t.v.a.JaxbStringValueAdapter (continues to rely on the javax.xml.* namespace)
    • c.t.v.a.JaxbValueAdapter (continues to rely on the javax.xml.* namespace)
    • The functionality of these classes has been preserved, so applications relying on them can simply include the com.tguzik:valueclasses-legacy dependency
  • The c.t.o.BaseObject class no longer exposes the MULTILINE_NO_ADDRESS_STYLE constant
  • The commons-lang3 has been updated from version 3.9 to 3.20, which has changed the order of fields in output of the reflection-based c.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.HasStringValue that 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 classes Value<> and/or StringValue, opening them up to be used with Java Records
  • The library now uses JSpecify annotations to mark nullable arguments
  • The com.tguzik:valueclasses-legacy artifact now offers JakartaJaxbValueAdapter<> that relies on the jakarta.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