Skip to content

Releases: ydb-platform/yoj-project

YOJ 2.6.44 (Update Netty to mitigate CVE-2025-55163)

27 Oct 13:30

Choose a tag to compare

⚠️ YOJ releases 2.6.41 and 2.6.42 introduce breaking API changes in TxManager and TxNameGenerator. These changes are unlikely to affect most API users, but are breaking nonetheless.


Compile Dependency Updates:

YOJ 2.6.43 (Java 25 Readiness + Dependency Updates)

24 Oct 19:35

Choose a tag to compare

Compile Dependencies Updated:

  • YDB Java SDK: 2.3.21 -> 2.3.22
  • GRPC Java version: 1.59.1 -> 1.68.3
    (same as in our and YDB Java SDK's ydb-proto-api dependency)
  • Google Common Protos: 2.9.0 -> 2.41.0
    (same as in GRPC Java dependencies)
  • Prometheus Simpleclient: 0.6.0 -> 0.16.0
  • Guava 33.0.0-jre -> 33.5.0-jre

Optional Compile Dependencies:

  • Kotlin: 1.9.0 -> 2.2.21

Test Dependencies Updated:

  • Mockito: 5.11.0 -> 5.20.0
  • ByteBuddy: 1.14.11 -> 1.17.7 (same as in Mockito dependencies)
  • AspectJ Weaver: 1.9.21 -> 1.9.24
  • Kotlin Compile Testing (for testing Annotation Processor):
    Switched to a fork (dev.zacsweers.kctfork:core) that supports Kotlin 2.2.x

Test Dependencies Removed:

  • Hamcrest: Was unused, because we now use AssertJ everywhere

Build-Time Dependencies Updated:

  • Lombok: 1.18.30 -> 1.18.42
  • Maven Compiler Plugin: 3.11.0 -> 3.14.1
  • Maven Enforcer Plugin: 3.3.0 -> 3.6.2
  • Extra Maven Enforcer Plugin rules: 1.7.0 -> 1.11.0
  • Maven JaCoCo plugin: 0.8.11 -> 0.8.14

YOJ 2.6.42 (TableQueryBuilder with explicit schema)

23 Oct 22:23

Choose a tag to compare

⚠️ YOJ release 2.6.41 also introduces breaking API changes in TxManager and TxNameGenerator. These changes are unlikely to affect most API users, but are breaking nonetheless.


API Changes

YOJ 2.6.41 (TxManager improvements)

23 Oct 22:20

Choose a tag to compare

⚠️ YOJ release 2.6.41 introduces breaking API changes in TxManager and TxNameGenerator. These changes are unlikely to affect most API users, but are breaking nonetheless.


API Changes

  • ⚠️ Breaking: Refactor TxManager API
    • ⚠️ StdTxManager(Repository repository, int maxAttemptCount, String name, Integer logLine, String logContext, TxOptions options) constructor has been removed; use StdTxManager(Repository) constructor instead, and set extra settings via with methods on TxManager.
      • For legacy code compatibility only: If you have to set a custom tx IsolationLevel on a TxManager directly**, use the new StdTxManager.withTransactionIsolationLevel() method. Note that the method is introduced on the implementation (StdTxManager only) and not on the general TxManager interface.
    • ⚠️ Recently introduced TxNameGenerator API has been incompatibly changed, and it is now explicitly annotated as experimental (@ExperimentalApi). Note that an experimental API might get incompatibly changed between YOJ versions again and again.
  • #157: Deprecate reflection-heavy EntityIdSchema.SORT_ENTITY_BY_ID constant in favor of new EntitySchema.defaultOrder() method

Doc and Debugging Improvements

YOJ 2.6.40 (minor YdbSessionManager metric improvements)

25 Sep 14:54

Choose a tag to compare

Features

  • Add "acquire duration histogram (in seconds)" metric for YdbSessionManager

YOJ 2.6.39 (improved exception hierarchy, new session manager metrics)

23 Sep 22:07

Choose a tag to compare

API Changes

  • Improved RepositoryException hierarchy (RepositoryException is now a sealed exception class)

New Features

  • New YdbSessionManager metrics: session pool settings (min and max) as gauges, totals as counters; all grouped by YdbRepository name (see YdbRepository.Settings.metrics() for more information).

YOJ 2.6.38 (gentler deprecation warnings for projections)

18 Sep 01:11

Choose a tag to compare

API Changes

  • #77: Remove deprecation from user-visible parts of the Projections API (for now) +
    • ❌ We remove @Deprecated annotation and deprecation warning logs from user-visible parts of the Projections API: t.y.y.r.d.{Entity.createProjections, EntityList}, t.y.y.r.d.projection.* (except for @InternalApis).
    • ➕ We add concrete docs on which parts of the APIs will be moved to a different library and/or
      package, and which internal Projection-related APIs will be removed entirely (or at least may be.)
  • Add TxManagerState.isDryRun() method to check if transaction body is being executed in dry-run mode (all queries will be performed and result returned, but the database transaction will be rolled back). This method is mostly useful for TxManager decorators, see DelegatingTxManager for a recommended way to create one.

Minor Fixes

  • Improve log messages for dry-run mode transactions
    rollback() of a dry-run transaction is not caused by any inconsistency, and is in fact entirely normal and indended. Now the logs reflect that.

YOJ 2.6.37 (bugfixes)

18 Sep 01:07

Choose a tag to compare

Bugfixes

  • Unexpected NPE when trying to validate conversion result in CustomValueTypes.preconvert()
    The bug happened when a custom-value converter erroneously returned null from ValueConverter.toColumn(), e.g. because of a bad null-returning toString() implementation in a string-value type.
    This should not happen in CustomValueTypes.postconvert() because the null -> null logic is applied
    before that, and a null value should not get into CustomValueTypes.postconvert() at all.

Reverted Changes

YOJ 2.6.36 (mis-release)

18 Sep 01:00

Choose a tag to compare

⚠️ This release reintroduces a behavior that, it turns out, is no longer needed by the intended users.
The next release (2.6.37) rolls it back.

Backwards Compatibility

YOJ 2.6.35 (add NOT STARTS_WITH, NOT ENDS_WITH)

18 Sep 00:58

Choose a tag to compare