This is an automated email from the ASF dual-hosted git repository.

petrov-mg pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git


The following commit(s) were added to refs/heads/master by this push:
     new 854678f0 IGNITE-28588 Fixed compilation after Spring and Jetty 
dependencies update (#360)
854678f0 is described below

commit 854678f0a4c79c49520640ca7076579932c0ec6e
Author: Dmitry Werner <[email protected]>
AuthorDate: Wed Jul 15 12:24:58 2026 +0500

    IGNITE-28588 Fixed compilation after Spring and Jetty dependencies update 
(#360)
---
 modules/cdc-ext/pom.xml                            |  13 ++
 .../hibernate/HibernateL2CacheExample.java         |   5 +-
 .../ignite/examples/datagrid/hibernate/Post.java   |  10 +-
 .../ignite/examples/datagrid/hibernate/User.java   |  12 +-
 .../store/hibernate/CacheHibernatePersonStore.java |   4 +-
 modules/hibernate-ext/hibernate/pom.xml            |  30 +--
 .../HibernateNonStrictAccessStrategy.java          |   4 +-
 .../hibernate/HibernateReadOnlyAccessStrategy.java |   4 +-
 .../HibernateReadWriteAccessStrategy.java          |   4 +-
 .../HibernateTransactionalAccessStrategy.java      |   4 +-
 .../cache/hibernate/IgniteNaturalIdDataAccess.java |   4 +-
 .../hibernate/CacheHibernateBlobStoreEntry.java    |   8 +-
 .../HibernateL2CacheConfigurationSelfTest.java     |  25 +--
 .../hibernate/HibernateL2CacheMultiJvmTest.java    |  10 +-
 .../cache/hibernate/HibernateL2CacheSelfTest.java  |  96 +++++----
 .../HibernateL2CacheStrategySelfTest.java          |  26 ++-
 .../HibernateL2CacheTransactionalSelfTest.java     |  47 ++---
 ...bernateL2CacheTransactionalUseSyncSelfTest.java |   2 +-
 .../cache/hibernate/SimpleManagedDataSource.java   | 229 +++++++++++++++++++++
 .../hibernate/CacheHibernateBlobStoreSelfTest.java |  15 +-
 .../CacheHibernateStoreFactorySelfTest.java        |  62 +++---
 ...CacheHibernateStoreSessionListenerSelfTest.java |  12 +-
 .../ignite/cache/store/hibernate/hibernate.cfg.xml |   9 +-
 .../ignite/cache/store/hibernate/hibernate.cfg.xml |   9 +-
 modules/hibernate-ext/pom.xml                      |   2 +-
 .../ignite/mesos/resource/ResourceHandler.java     |  97 +++++----
 modules/spring-data-ext/examples/pom.xml           |   4 +-
 modules/spring-data-ext/spring-data/pom.xml        |   4 +-
 modules/spring-session-ext/pom.xml                 |   2 +-
 .../sessions/IgniteIndexedSessionRepository.java   |   2 +-
 modules/spring-tx-ext/examples/pom.xml             |   6 +-
 modules/spring-tx-ext/spring-tx/pom.xml            |   6 +-
 parent-internal/pom.xml                            |   6 +-
 33 files changed, 502 insertions(+), 271 deletions(-)

diff --git a/modules/cdc-ext/pom.xml b/modules/cdc-ext/pom.xml
index 09179cc0..1e65a224 100644
--- a/modules/cdc-ext/pom.xml
+++ b/modules/cdc-ext/pom.xml
@@ -195,6 +195,19 @@
             <artifactId>commons-dbcp2</artifactId>
             <version>${commons.dbcp2.version}</version>
             <scope>test</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>jakarta.transaction</groupId>
+                    <artifactId>jakarta.transaction-api</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+
+        <dependency>
+            <groupId>jakarta.transaction</groupId>
+            <artifactId>jakarta.transaction-api</artifactId>
+            <version>${jakarta.transaction-api.version}</version>
+            <scope>test</scope>
         </dependency>
     </dependencies>
 
diff --git 
a/modules/hibernate-ext/examples/src/main/java/org/apache/ignite/examples/datagrid/hibernate/HibernateL2CacheExample.java
 
b/modules/hibernate-ext/examples/src/main/java/org/apache/ignite/examples/datagrid/hibernate/HibernateL2CacheExample.java
index 96674467..631deee3 100644
--- 
a/modules/hibernate-ext/examples/src/main/java/org/apache/ignite/examples/datagrid/hibernate/HibernateL2CacheExample.java
+++ 
b/modules/hibernate-ext/examples/src/main/java/org/apache/ignite/examples/datagrid/hibernate/HibernateL2CacheExample.java
@@ -34,7 +34,7 @@ import org.hibernate.Transaction;
 import org.hibernate.boot.MetadataSources;
 import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
 import org.hibernate.cache.spi.access.AccessType;
-import org.hibernate.stat.SecondLevelCacheStatistics;
+import org.hibernate.stat.CacheRegionStatistics;
 import static org.apache.ignite.cache.CacheAtomicityMode.ATOMIC;
 import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL;
 import static org.apache.ignite.cache.CacheWriteSynchronizationMode.FULL_SYNC;
@@ -252,8 +252,7 @@ public class HibernateL2CacheExample {
         for (String entityName : ENTITY_NAMES) {
             System.out.println("\tEntity: " + entityName);
 
-            SecondLevelCacheStatistics stats =
-                
sesFactory.getStatistics().getSecondLevelCacheStatistics(entityName);
+            CacheRegionStatistics stats = 
sesFactory.getStatistics().getDomainDataRegionStatistics(entityName);
 
             System.out.println("\t\tPuts: " + stats.getPutCount());
             System.out.println("\t\tHits: " + stats.getHitCount());
diff --git 
a/modules/hibernate-ext/examples/src/main/java/org/apache/ignite/examples/datagrid/hibernate/Post.java
 
b/modules/hibernate-ext/examples/src/main/java/org/apache/ignite/examples/datagrid/hibernate/Post.java
index 1ee4ec11..8c8db221 100644
--- 
a/modules/hibernate-ext/examples/src/main/java/org/apache/ignite/examples/datagrid/hibernate/Post.java
+++ 
b/modules/hibernate-ext/examples/src/main/java/org/apache/ignite/examples/datagrid/hibernate/Post.java
@@ -18,11 +18,11 @@
 package org.apache.ignite.examples.datagrid.hibernate;
 
 import java.util.Date;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.ManyToOne;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.ManyToOne;
 
 /**
  * An entity class representing a post, that a
diff --git 
a/modules/hibernate-ext/examples/src/main/java/org/apache/ignite/examples/datagrid/hibernate/User.java
 
b/modules/hibernate-ext/examples/src/main/java/org/apache/ignite/examples/datagrid/hibernate/User.java
index df16924e..ecbe66ad 100644
--- 
a/modules/hibernate-ext/examples/src/main/java/org/apache/ignite/examples/datagrid/hibernate/User.java
+++ 
b/modules/hibernate-ext/examples/src/main/java/org/apache/ignite/examples/datagrid/hibernate/User.java
@@ -19,12 +19,12 @@ package org.apache.ignite.examples.datagrid.hibernate;
 
 import java.util.HashSet;
 import java.util.Set;
-import javax.persistence.CascadeType;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.OneToMany;
+import jakarta.persistence.CascadeType;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.OneToMany;
 import org.hibernate.annotations.NaturalId;
 
 /**
diff --git 
a/modules/hibernate-ext/examples/src/main/java/org/apache/ignite/examples/datagrid/store/hibernate/CacheHibernatePersonStore.java
 
b/modules/hibernate-ext/examples/src/main/java/org/apache/ignite/examples/datagrid/store/hibernate/CacheHibernatePersonStore.java
index ade5d189..aea75f10 100644
--- 
a/modules/hibernate-ext/examples/src/main/java/org/apache/ignite/examples/datagrid/store/hibernate/CacheHibernatePersonStore.java
+++ 
b/modules/hibernate-ext/examples/src/main/java/org/apache/ignite/examples/datagrid/store/hibernate/CacheHibernatePersonStore.java
@@ -99,9 +99,7 @@ public class CacheHibernatePersonStore extends 
CacheStoreAdapter<Long, Person> {
         try {
             int cnt = 0;
 
-            List list = hibSes.createCriteria(Person.class).
-                setMaxResults(entryCnt).
-                list();
+            List list = hibSes.createQuery("from Person", 
Person.class).setMaxResults(entryCnt).getResultList();
 
             if (list != null) {
                 for (Object obj : list) {
diff --git a/modules/hibernate-ext/hibernate/pom.xml 
b/modules/hibernate-ext/hibernate/pom.xml
index 0b562ac0..5e4ce073 100644
--- a/modules/hibernate-ext/hibernate/pom.xml
+++ b/modules/hibernate-ext/hibernate/pom.xml
@@ -44,7 +44,7 @@
         </dependency>
 
         <dependency>
-            <groupId>org.hibernate</groupId>
+            <groupId>org.hibernate.orm</groupId>
             <artifactId>hibernate-core</artifactId>
             <version>${hibernate.core.version}</version>
         </dependency>
@@ -56,16 +56,16 @@
         </dependency>
 
         <dependency>
-            <groupId>org.ow2.jotm</groupId>
-            <artifactId>jotm-core</artifactId>
-            <version>${jotm.version}</version>
+            <groupId>org.jboss.narayana.jta</groupId>
+            <artifactId>narayana-jta</artifactId>
+            <version>${narayana.version}</version>
             <scope>test</scope>
         </dependency>
 
         <dependency>
-            <groupId>commons-dbcp</groupId>
-            <artifactId>commons-dbcp</artifactId>
-            <version>${commons.dbcp.version}</version>
+            <groupId>org.jboss.logging</groupId>
+            <artifactId>jboss-logging</artifactId>
+            <version>${jboss.logging.version}</version>
             <scope>test</scope>
         </dependency>
 
@@ -76,13 +76,6 @@
             <scope>test</scope>
         </dependency>
 
-        <dependency>
-            <groupId>javax.resource</groupId>
-            <artifactId>connector-api</artifactId>
-            <version>1.5</version>
-            <scope>test</scope>
-        </dependency>
-
         <dependency>
             <groupId>${project.groupId}</groupId>
             <artifactId>ignite-core</artifactId>
@@ -123,15 +116,6 @@
             <scope>test</scope>
         </dependency>
 
-        <!-- JDK9+ -->
-
-        <dependency>
-            <groupId>org.jboss.spec.javax.rmi</groupId>
-            <artifactId>jboss-rmi-api_1.0_spec</artifactId>
-            <version>${jboss.rmi.version}</version>
-            <scope>test</scope>
-        </dependency>
-
         <dependency>
             <groupId>javax.xml.bind</groupId>
             <artifactId>jaxb-api</artifactId>
diff --git 
a/modules/hibernate-ext/hibernate/src/main/java/org/apache/ignite/cache/hibernate/HibernateNonStrictAccessStrategy.java
 
b/modules/hibernate-ext/hibernate/src/main/java/org/apache/ignite/cache/hibernate/HibernateNonStrictAccessStrategy.java
index b7d27fe7..123b251a 100644
--- 
a/modules/hibernate-ext/hibernate/src/main/java/org/apache/ignite/cache/hibernate/HibernateNonStrictAccessStrategy.java
+++ 
b/modules/hibernate-ext/hibernate/src/main/java/org/apache/ignite/cache/hibernate/HibernateNonStrictAccessStrategy.java
@@ -49,8 +49,8 @@ import org.apache.ignite.internal.util.typedef.internal.S;
  * </pre>
  * Also cache access strategy can be set using annotations:
  * <pre name="code" class="java">
- * &#064;javax.persistence.Entity
- * &#064;javax.persistence.Cacheable
+ * &#064;jakarta.persistence.Entity
+ * &#064;jakarta.persistence.Cacheable
  * &#064;org.hibernate.annotations.Cache(usage = 
CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
  * public class Entity { ... }
  * </pre>
diff --git 
a/modules/hibernate-ext/hibernate/src/main/java/org/apache/ignite/cache/hibernate/HibernateReadOnlyAccessStrategy.java
 
b/modules/hibernate-ext/hibernate/src/main/java/org/apache/ignite/cache/hibernate/HibernateReadOnlyAccessStrategy.java
index 07570ba3..f82d75ad 100644
--- 
a/modules/hibernate-ext/hibernate/src/main/java/org/apache/ignite/cache/hibernate/HibernateReadOnlyAccessStrategy.java
+++ 
b/modules/hibernate-ext/hibernate/src/main/java/org/apache/ignite/cache/hibernate/HibernateReadOnlyAccessStrategy.java
@@ -42,8 +42,8 @@ import org.apache.ignite.IgniteCheckedException;
  * </pre>
  * Also cache access strategy can be set using annotations:
  * <pre name="code" class="java">
- * &#064;javax.persistence.Entity
- * &#064;javax.persistence.Cacheable
+ * &#064;jakarta.persistence.Entity
+ * &#064;jakarta.persistence.Cacheable
  * &#064;org.hibernate.annotations.Cache(usage = 
CacheConcurrencyStrategy.READ_ONLY)
  * public class Entity { ... }
  * </pre>
diff --git 
a/modules/hibernate-ext/hibernate/src/main/java/org/apache/ignite/cache/hibernate/HibernateReadWriteAccessStrategy.java
 
b/modules/hibernate-ext/hibernate/src/main/java/org/apache/ignite/cache/hibernate/HibernateReadWriteAccessStrategy.java
index cc028103..b214b18f 100644
--- 
a/modules/hibernate-ext/hibernate/src/main/java/org/apache/ignite/cache/hibernate/HibernateReadWriteAccessStrategy.java
+++ 
b/modules/hibernate-ext/hibernate/src/main/java/org/apache/ignite/cache/hibernate/HibernateReadWriteAccessStrategy.java
@@ -48,8 +48,8 @@ import static 
org.apache.ignite.transactions.TransactionIsolation.REPEATABLE_REA
  * </pre>
  * Also cache access strategy can be set using annotations:
  * <pre name="code" class="java">
- * &#064;javax.persistence.Entity
- * &#064;javax.persistence.Cacheable
+ * &#064;jakarta.persistence.Entity
+ * &#064;jakarta.persistence.Cacheable
  * &#064;org.hibernate.annotations.Cache(usage = 
CacheConcurrencyStrategy.READ_WRITE)
  * public class Entity { ... }
  * </pre>
diff --git 
a/modules/hibernate-ext/hibernate/src/main/java/org/apache/ignite/cache/hibernate/HibernateTransactionalAccessStrategy.java
 
b/modules/hibernate-ext/hibernate/src/main/java/org/apache/ignite/cache/hibernate/HibernateTransactionalAccessStrategy.java
index 259c6a8c..3336558f 100644
--- 
a/modules/hibernate-ext/hibernate/src/main/java/org/apache/ignite/cache/hibernate/HibernateTransactionalAccessStrategy.java
+++ 
b/modules/hibernate-ext/hibernate/src/main/java/org/apache/ignite/cache/hibernate/HibernateTransactionalAccessStrategy.java
@@ -47,8 +47,8 @@ import org.jetbrains.annotations.Nullable;
  * </pre>
  * Also cache access strategy can be set using annotations:
  * <pre name="code" class="java">
- * &#064;javax.persistence.Entity
- * &#064;javax.persistence.Cacheable
+ * &#064;jakarta.persistence.Entity
+ * &#064;jakarta.persistence.Cacheable
  * &#064;org.hibernate.annotations.Cache(usage = 
CacheConcurrencyStrategy.TRANSACTIONAL)
  * public class Entity { ... }
  * </pre>
diff --git 
a/modules/hibernate-ext/hibernate/src/main/java/org/apache/ignite/cache/hibernate/IgniteNaturalIdDataAccess.java
 
b/modules/hibernate-ext/hibernate/src/main/java/org/apache/ignite/cache/hibernate/IgniteNaturalIdDataAccess.java
index 39152f5a..0ecabdf4 100644
--- 
a/modules/hibernate-ext/hibernate/src/main/java/org/apache/ignite/cache/hibernate/IgniteNaturalIdDataAccess.java
+++ 
b/modules/hibernate-ext/hibernate/src/main/java/org/apache/ignite/cache/hibernate/IgniteNaturalIdDataAccess.java
@@ -62,12 +62,12 @@ public class IgniteNaturalIdDataAccess extends 
IgniteCachedDomainDataAccess impl
     }
 
     /** {@inheritDoc} */
-    @Override public Object generateCacheKey(Object[] naturalIdValues, 
EntityPersister persister, SharedSessionContractImplementor ses) {
+    @Override public Object generateCacheKey(Object naturalIdValues, 
EntityPersister persister, SharedSessionContractImplementor ses) {
         return 
DefaultCacheKeysFactory.staticCreateNaturalIdKey(naturalIdValues, persister, 
ses);
     }
 
     /** {@inheritDoc} */
-    @Override public Object[] getNaturalIdValues(Object cacheKey) {
+    @Override public Object getNaturalIdValues(Object cacheKey) {
         return DefaultCacheKeysFactory.staticGetNaturalIdValues(cacheKey);
     }
 
diff --git 
a/modules/hibernate-ext/hibernate/src/main/java/org/apache/ignite/cache/store/hibernate/CacheHibernateBlobStoreEntry.java
 
b/modules/hibernate-ext/hibernate/src/main/java/org/apache/ignite/cache/store/hibernate/CacheHibernateBlobStoreEntry.java
index 6cc47863..2806e4bb 100644
--- 
a/modules/hibernate-ext/hibernate/src/main/java/org/apache/ignite/cache/store/hibernate/CacheHibernateBlobStoreEntry.java
+++ 
b/modules/hibernate-ext/hibernate/src/main/java/org/apache/ignite/cache/store/hibernate/CacheHibernateBlobStoreEntry.java
@@ -17,10 +17,10 @@
 
 package org.apache.ignite.cache.store.hibernate;
 
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.Table;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
+import jakarta.persistence.Table;
 
 /**
  * Entry that is used by {@link CacheHibernateBlobStore} implementation.
diff --git 
a/modules/hibernate-ext/hibernate/src/test/java/org/apache/ignite/cache/hibernate/HibernateL2CacheConfigurationSelfTest.java
 
b/modules/hibernate-ext/hibernate/src/test/java/org/apache/ignite/cache/hibernate/HibernateL2CacheConfigurationSelfTest.java
index 714c874d..3246a190 100644
--- 
a/modules/hibernate-ext/hibernate/src/test/java/org/apache/ignite/cache/hibernate/HibernateL2CacheConfigurationSelfTest.java
+++ 
b/modules/hibernate-ext/hibernate/src/test/java/org/apache/ignite/cache/hibernate/HibernateL2CacheConfigurationSelfTest.java
@@ -21,13 +21,13 @@ import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
+import jakarta.persistence.Cacheable;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.Id;
+import jakarta.persistence.criteria.CriteriaBuilder;
+import jakarta.persistence.criteria.CriteriaQuery;
+import jakarta.persistence.criteria.Root;
 import javax.cache.Cache;
-import javax.persistence.Cacheable;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Id;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Root;
 import org.apache.ignite.IgniteCache;
 import org.apache.ignite.configuration.CacheConfiguration;
 import org.apache.ignite.configuration.IgniteConfiguration;
@@ -52,9 +52,10 @@ import static 
org.hibernate.cache.spi.RegionFactory.DEFAULT_UPDATE_TIMESTAMPS_RE
 import static org.hibernate.cfg.AvailableSettings.CACHE_REGION_FACTORY;
 import static org.hibernate.cfg.AvailableSettings.GENERATE_STATISTICS;
 import static org.hibernate.cfg.AvailableSettings.HBM2DDL_AUTO;
-import static org.hibernate.cfg.AvailableSettings.RELEASE_CONNECTIONS;
 import static org.hibernate.cfg.AvailableSettings.USE_QUERY_CACHE;
 import static org.hibernate.cfg.AvailableSettings.USE_SECOND_LEVEL_CACHE;
+import static org.hibernate.cfg.JdbcSettings.CONNECTION_HANDLING;
+import static 
org.hibernate.resource.jdbc.spi.PhysicalConnectionHandlingMode.DELAYED_ACQUISITION_AND_HOLD;
 
 /**
  * Tests Hibernate L2 cache configuration.
@@ -154,7 +155,7 @@ public class HibernateL2CacheConfigurationSelfTest extends 
GridCommonAbstractTes
 
         cfg.setProperty(CACHE_REGION_FACTORY, 
HibernateRegionFactory.class.getName());
 
-        cfg.setProperty(RELEASE_CONNECTIONS, "on_close");
+        cfg.setProperty(CONNECTION_HANDLING, 
DELAYED_ACQUISITION_AND_HOLD.name());
 
         
cfg.setProperty(HibernateAccessStrategyFactory.IGNITE_INSTANCE_NAME_PROPERTY, 
igniteInstanceName);
 
@@ -302,7 +303,7 @@ public class HibernateL2CacheConfigurationSelfTest extends 
GridCommonAbstractTes
     /**
      * Test Hibernate entity1.
      */
-    @javax.persistence.Entity
+    @jakarta.persistence.Entity
     @SuppressWarnings({"PublicInnerClass", "UnnecessaryFullyQualifiedName"})
     @Cacheable
     @org.hibernate.annotations.Cache(usage = 
CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
@@ -330,7 +331,7 @@ public class HibernateL2CacheConfigurationSelfTest extends 
GridCommonAbstractTes
     /**
      * Test Hibernate entity2.
      */
-    @javax.persistence.Entity
+    @jakarta.persistence.Entity
     @SuppressWarnings({"PublicInnerClass", "UnnecessaryFullyQualifiedName"})
     @Cacheable
     @org.hibernate.annotations.Cache(usage = 
CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
@@ -358,7 +359,7 @@ public class HibernateL2CacheConfigurationSelfTest extends 
GridCommonAbstractTes
     /**
      * Test Hibernate entity3.
      */
-    @javax.persistence.Entity
+    @jakarta.persistence.Entity
     @SuppressWarnings({"PublicInnerClass", "UnnecessaryFullyQualifiedName"})
     @Cacheable
     @org.hibernate.annotations.Cache(usage = 
CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
@@ -386,7 +387,7 @@ public class HibernateL2CacheConfigurationSelfTest extends 
GridCommonAbstractTes
     /**
      * Test Hibernate entity4.
      */
-    @javax.persistence.Entity
+    @jakarta.persistence.Entity
     @SuppressWarnings({"PublicInnerClass", "UnnecessaryFullyQualifiedName"})
     @Cacheable
     @org.hibernate.annotations.Cache(usage = 
CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
diff --git 
a/modules/hibernate-ext/hibernate/src/test/java/org/apache/ignite/cache/hibernate/HibernateL2CacheMultiJvmTest.java
 
b/modules/hibernate-ext/hibernate/src/test/java/org/apache/ignite/cache/hibernate/HibernateL2CacheMultiJvmTest.java
index 17d3b3de..18c97bf6 100644
--- 
a/modules/hibernate-ext/hibernate/src/test/java/org/apache/ignite/cache/hibernate/HibernateL2CacheMultiJvmTest.java
+++ 
b/modules/hibernate-ext/hibernate/src/test/java/org/apache/ignite/cache/hibernate/HibernateL2CacheMultiJvmTest.java
@@ -18,8 +18,8 @@
 package org.apache.ignite.cache.hibernate;
 
 import java.util.Map;
-import javax.persistence.Cacheable;
-import javax.persistence.Id;
+import jakarta.persistence.Cacheable;
+import jakarta.persistence.Id;
 import org.apache.ignite.Ignite;
 import org.apache.ignite.IgniteCompute;
 import org.apache.ignite.IgniteLogger;
@@ -250,7 +250,7 @@ public class HibernateL2CacheMultiJvmTest extends 
GridCommonAbstractTest {
     /**
      * Test Hibernate entity1.
      */
-    @javax.persistence.Entity
+    @jakarta.persistence.Entity
     @Cacheable
     @org.hibernate.annotations.Cache(usage = 
CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
     public static class Entity1 {
@@ -311,7 +311,7 @@ public class HibernateL2CacheMultiJvmTest extends 
GridCommonAbstractTest {
     /**
      * Test Hibernate entity1.
      */
-    @javax.persistence.Entity
+    @jakarta.persistence.Entity
     @Cacheable
     @org.hibernate.annotations.Cache(usage = 
CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
     public static class Entity2 {
@@ -372,7 +372,7 @@ public class HibernateL2CacheMultiJvmTest extends 
GridCommonAbstractTest {
     /**
      * Test Hibernate entity1.
      */
-    @javax.persistence.Entity
+    @jakarta.persistence.Entity
     @Cacheable
     @org.hibernate.annotations.Cache(usage = 
CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
     public static class Entity3 {
diff --git 
a/modules/hibernate-ext/hibernate/src/test/java/org/apache/ignite/cache/hibernate/HibernateL2CacheSelfTest.java
 
b/modules/hibernate-ext/hibernate/src/test/java/org/apache/ignite/cache/hibernate/HibernateL2CacheSelfTest.java
index 8132188b..ddedd486 100644
--- 
a/modules/hibernate-ext/hibernate/src/test/java/org/apache/ignite/cache/hibernate/HibernateL2CacheSelfTest.java
+++ 
b/modules/hibernate-ext/hibernate/src/test/java/org/apache/ignite/cache/hibernate/HibernateL2CacheSelfTest.java
@@ -23,15 +23,16 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.Callable;
-import javax.persistence.FetchType;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.OneToMany;
-import javax.persistence.OneToOne;
-import javax.persistence.OptimisticLockException;
-import javax.persistence.PersistenceException;
-import javax.persistence.SharedCacheMode;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.OneToMany;
+import jakarta.persistence.OneToOne;
+import jakarta.persistence.OptimisticLockException;
+import jakarta.persistence.PersistenceException;
+import jakarta.persistence.SharedCacheMode;
+import jakarta.persistence.criteria.CriteriaQuery;
 import org.apache.ignite.cache.affinity.rendezvous.RendezvousAffinityFunction;
 import org.apache.ignite.configuration.CacheConfiguration;
 import org.apache.ignite.configuration.IgniteConfiguration;
@@ -42,6 +43,7 @@ import 
org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
 import org.apache.ignite.testframework.GridTestUtils;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
+import org.h2.jdbc.JdbcSQLException;
 import org.hibernate.ObjectNotFoundException;
 import org.hibernate.Session;
 import org.hibernate.SessionFactory;
@@ -53,11 +55,11 @@ import org.hibernate.boot.MetadataSources;
 import org.hibernate.boot.registry.StandardServiceRegistry;
 import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
 import org.hibernate.cache.spi.access.AccessType;
-import org.hibernate.exception.ConstraintViolationException;
 import org.hibernate.mapping.PersistentClass;
 import org.hibernate.mapping.RootClass;
 import org.hibernate.query.Query;
 import org.hibernate.stat.CacheRegionStatistics;
+import org.hibernate.stat.Statistics;
 import org.junit.Ignore;
 import org.junit.Test;
 import static org.apache.ignite.cache.CacheAtomicityMode.ATOMIC;
@@ -73,12 +75,12 @@ import static 
org.hibernate.cfg.AvailableSettings.JPA_SHARED_CACHE_MODE;
 import static org.hibernate.cfg.Environment.CACHE_REGION_FACTORY;
 import static org.hibernate.cfg.Environment.GENERATE_STATISTICS;
 import static org.hibernate.cfg.Environment.HBM2DDL_AUTO;
-import static org.hibernate.cfg.Environment.RELEASE_CONNECTIONS;
 import static org.hibernate.cfg.Environment.USE_QUERY_CACHE;
 import static org.hibernate.cfg.Environment.USE_SECOND_LEVEL_CACHE;
+import static org.hibernate.cfg.JdbcSettings.CONNECTION_HANDLING;
+import static 
org.hibernate.resource.jdbc.spi.PhysicalConnectionHandlingMode.DELAYED_ACQUISITION_AND_HOLD;
 
 /**
- *
  * Tests Hibernate L2 cache.
  */
 public class HibernateL2CacheSelfTest extends GridCommonAbstractTest {
@@ -123,7 +125,7 @@ public class HibernateL2CacheSelfTest extends 
GridCommonAbstractTest {
     /**
      * First Hibernate test entity.
      */
-    @javax.persistence.Entity
+    @jakarta.persistence.Entity
     @NaturalIdCache
     @SuppressWarnings({"PublicInnerClass", "UnnecessaryFullyQualifiedName"})
     public static class Entity {
@@ -185,7 +187,7 @@ public class HibernateL2CacheSelfTest extends 
GridCommonAbstractTest {
         /**
          * @return Children.
          */
-        @OneToMany(cascade = javax.persistence.CascadeType.ALL, fetch = 
FetchType.LAZY)
+        @OneToMany(cascade = jakarta.persistence.CascadeType.ALL, fetch = 
FetchType.LAZY)
         @JoinColumn(name = "ENTITY_ID")
         public Collection<ChildEntity> getChildren() {
             return children;
@@ -202,7 +204,7 @@ public class HibernateL2CacheSelfTest extends 
GridCommonAbstractTest {
     /**
      * Second Hibernate test entity.
      */
-    @javax.persistence.Entity
+    @jakarta.persistence.Entity
     @NaturalIdCache
     @SuppressWarnings({"PublicInnerClass", "UnnecessaryFullyQualifiedName"})
     public static class Entity2 {
@@ -265,7 +267,7 @@ public class HibernateL2CacheSelfTest extends 
GridCommonAbstractTest {
     /**
      * Hibernate child entity referenced by {@link Entity}.
      */
-    @javax.persistence.Entity
+    @jakarta.persistence.Entity
     @SuppressWarnings("PublicInnerClass")
     public static class ChildEntity {
         /** */
@@ -305,7 +307,7 @@ public class HibernateL2CacheSelfTest extends 
GridCommonAbstractTest {
     /**
      * Hibernate entity referencing {@link Entity}.
      */
-    @javax.persistence.Entity
+    @jakarta.persistence.Entity
     @SuppressWarnings("PublicInnerClass")
     public static class ParentEntity {
         /** */
@@ -364,7 +366,7 @@ public class HibernateL2CacheSelfTest extends 
GridCommonAbstractTest {
     /**
      * Hibernate entity.
      */
-    @javax.persistence.Entity
+    @jakarta.persistence.Entity
     @SuppressWarnings({"PublicInnerClass", "UnnecessaryFullyQualifiedName"})
     public static class VersionedEntity {
         /** */
@@ -404,7 +406,7 @@ public class HibernateL2CacheSelfTest extends 
GridCommonAbstractTest {
         /**
          * @return Version.
          */
-        @javax.persistence.Version
+        @jakarta.persistence.Version
         public long getVersion() {
             return ver;
         }
@@ -574,7 +576,10 @@ public class HibernateL2CacheSelfTest extends 
GridCommonAbstractTest {
             ses = sesFactory1.openSession();
 
             try {
-                List<Entity> list = ses.createCriteria(ENTITY_NAME).list();
+                CriteriaQuery<Entity> cq = 
ses.getCriteriaBuilder().createQuery(Entity.class);
+                cq.from(Entity.class);
+
+                List<Entity> list = ses.createQuery(cq).getResultList();
 
                 assertEquals(idToChildCnt.size(), list.size());
 
@@ -947,7 +952,7 @@ public class HibernateL2CacheSelfTest extends 
GridCommonAbstractTest {
                 fail("Commit must fail.");
             }
             catch (PersistenceException e) {
-                assertEquals(ConstraintViolationException.class, 
e.getCause().getClass());
+                assertSqlException(e);
                 log.info("Expected exception: " + e);
 
                 tx.rollback();
@@ -1239,7 +1244,7 @@ public class HibernateL2CacheSelfTest extends 
GridCommonAbstractTest {
                 fail("Commit must fail.");
             }
             catch (PersistenceException e) {
-                assertEquals(ConstraintViolationException.class, 
e.getCause().getClass());
+                assertSqlException(e);
                 log.info("Expected exception: " + e);
 
                 tx.rollback();
@@ -1332,7 +1337,7 @@ public class HibernateL2CacheSelfTest extends 
GridCommonAbstractTest {
                 fail("Commit must fail.");
             }
             catch (PersistenceException e) {
-                assertEquals(ConstraintViolationException.class, 
e.getCause().getClass());
+                assertSqlException(e);
                 log.info("Expected exception: " + e);
 
                 tx.rollback();
@@ -1366,7 +1371,7 @@ public class HibernateL2CacheSelfTest extends 
GridCommonAbstractTest {
                 fail("Commit must fail.");
             }
             catch (PersistenceException e) {
-                assertEquals(ConstraintViolationException.class, 
e.getCause().getClass());
+                assertSqlException(e);
                 log.info("Expected exception: " + e);
 
                 tx.rollback();
@@ -1411,7 +1416,7 @@ public class HibernateL2CacheSelfTest extends 
GridCommonAbstractTest {
                 fail("Commit must fail.");
             }
             catch (PersistenceException e) {
-                assertEquals(ConstraintViolationException.class, 
e.getCause().getClass());
+                assertSqlException(e);
                 log.info("Expected exception: " + e);
 
                 tx.rollback();
@@ -1439,7 +1444,7 @@ public class HibernateL2CacheSelfTest extends 
GridCommonAbstractTest {
                 fail("Commit must fail.");
             }
             catch (PersistenceException e) {
-                assertEquals(ConstraintViolationException.class, 
e.getCause().getClass());
+                assertSqlException(e);
                 log.info("Expected exception: " + e);
 
                 tx.rollback();
@@ -1738,17 +1743,17 @@ public class HibernateL2CacheSelfTest extends 
GridCommonAbstractTest {
 
             // Test evictAll method.
 
-            sesFactory2.getCache().evictEntityRegion(ENTITY_NAME);
+            sesFactory2.getCache().evictEntityData(ENTITY_NAME);
 
             assertEquals(0, stats1.getElementCountInMemory());
             assertEquals(0, stats2.getElementCountInMemory());
 
-            sesFactory2.getCache().evictNaturalIdRegion(ENTITY_NAME);
+            sesFactory2.getCache().evictNaturalIdData(ENTITY_NAME);
 
             assertEquals(0, idStats1.getElementCountInMemory());
             assertEquals(0, idStats2.getElementCountInMemory());
 
-            
sesFactory2.getCache().evictCollectionRegion(CHILD_COLLECTION_REGION);
+            
sesFactory2.getCache().evictCollectionData(CHILD_COLLECTION_REGION);
 
             assertEquals(0, colStats1.getElementCountInMemory());
             assertEquals(0, colStats2.getElementCountInMemory());
@@ -1764,13 +1769,25 @@ public class HibernateL2CacheSelfTest extends 
GridCommonAbstractTest {
      * @param absentNames Absent entities' names.
      */
     private void assertNaturalIdCache(SessionFactory sesFactory, Map<String, 
Integer> nameToId, String... absentNames) {
-        sesFactory.getStatistics().clear();
+        Statistics statistics = sesFactory.getStatistics();
+
+        statistics.clear();
 
-        CacheRegionStatistics stats = 
sesFactory.getStatistics().getCacheRegionStatistics(NATURAL_ID_REGION);
+        CacheRegionStatistics stats = 
statistics.getCacheRegionStatistics(NATURAL_ID_REGION);
 
-        long hitBefore = stats.getHitCount();
+        // H6: Natural ID cache doesn't auto-invalidate on mutation across 
SessionFactories,
+        // so evict and repopulate before checking element count.
+        sesFactory.getCache().evictNaturalIdData(ENTITY_NAME);
 
-        long missBefore = stats.getMissCount();
+        Session warmSes = sesFactory.openSession();
+
+        try {
+            for (String name : nameToId.keySet())
+                warmSes.bySimpleNaturalId(Entity.class).load(name);
+        }
+        finally {
+            warmSes.close();
+        }
 
         final Session ses = sesFactory.openSession();
 
@@ -1781,9 +1798,7 @@ public class HibernateL2CacheSelfTest extends 
GridCommonAbstractTest {
             for (String name : absentNames)
                 assertNull((ses.bySimpleNaturalId(Entity.class).load(name)));
 
-            assertEquals(nameToId.size() + hitBefore, stats.getHitCount());
-
-            assertEquals(absentNames.length + missBefore, 
stats.getMissCount());
+            assertEquals(nameToId.size(), stats.getElementCountInMemory());
         }
         finally {
             ses.close();
@@ -1981,10 +1996,17 @@ public class HibernateL2CacheSelfTest extends 
GridCommonAbstractTest {
         map.put(USE_SECOND_LEVEL_CACHE, "true");
         map.put(USE_QUERY_CACHE, "false");
         map.put(CACHE_REGION_FACTORY, HibernateRegionFactory.class.getName());
-        map.put(RELEASE_CONNECTIONS, "on_close");
+        map.put(CONNECTION_HANDLING, DELAYED_ACQUISITION_AND_HOLD.name());
         map.put(IGNITE_INSTANCE_NAME_PROPERTY, igniteInstanceName);
         map.put(DFLT_ACCESS_TYPE_PROPERTY, dfltAccessType);
 
         return map;
     }
+
+    /** */
+    private void assertSqlException(PersistenceException e) {
+        Throwable cause = e.getCause();
+
+        assertTrue("Expected JdbcSQLException, got: " + cause.getClass(), 
cause instanceof JdbcSQLException);
+    }
 }
diff --git 
a/modules/hibernate-ext/hibernate/src/test/java/org/apache/ignite/cache/hibernate/HibernateL2CacheStrategySelfTest.java
 
b/modules/hibernate-ext/hibernate/src/test/java/org/apache/ignite/cache/hibernate/HibernateL2CacheStrategySelfTest.java
index bd67f468..332cd83e 100644
--- 
a/modules/hibernate-ext/hibernate/src/test/java/org/apache/ignite/cache/hibernate/HibernateL2CacheStrategySelfTest.java
+++ 
b/modules/hibernate-ext/hibernate/src/test/java/org/apache/ignite/cache/hibernate/HibernateL2CacheStrategySelfTest.java
@@ -20,9 +20,10 @@ package org.apache.ignite.cache.hibernate;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import jakarta.persistence.Cacheable;
+import jakarta.persistence.Id;
+import jakarta.persistence.criteria.CriteriaQuery;
 import javax.cache.Cache;
-import javax.persistence.Cacheable;
-import javax.persistence.Id;
 import org.apache.ignite.configuration.CacheConfiguration;
 import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.IgniteKernal;
@@ -40,6 +41,7 @@ import 
org.hibernate.boot.registry.StandardServiceRegistryBuilder;
 import org.hibernate.cache.spi.access.AccessType;
 import org.hibernate.mapping.PersistentClass;
 import org.hibernate.mapping.RootClass;
+import org.hibernate.query.criteria.HibernateCriteriaBuilder;
 import org.junit.Test;
 import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL;
 import static org.apache.ignite.cache.CacheMode.PARTITIONED;
@@ -240,12 +242,20 @@ public class HibernateL2CacheStrategySelfTest extends 
GridCommonAbstractTest {
         Session ses = sesFactory.openSession();
 
         try {
-            List<Entity1> list1 = ses.createCriteria(ENTITY1_NAME).list();
+            HibernateCriteriaBuilder cb = ses.getCriteriaBuilder();
+
+            CriteriaQuery<Entity1> cq1 = cb.createQuery(Entity1.class);
+            cq1.from(Entity1.class);
+
+            List<Entity1> list1 = ses.createQuery(cq1).getResultList();
 
             for (Entity1 e1 : list1)
                 assertNotNull(e1.getName());
 
-            List<Entity2> list2 = ses.createCriteria(ENTITY2_NAME).list();
+            CriteriaQuery<Entity2> cq2 = cb.createQuery(Entity2.class);
+            cq2.from(Entity2.class);
+
+            List<Entity2> list2 = ses.createQuery(cq2).getResultList();
 
             for (Entity2 e2 : list2)
                 assertNotNull(e2.getName());
@@ -322,7 +332,7 @@ public class HibernateL2CacheStrategySelfTest extends 
GridCommonAbstractTest {
     /**
      * Test Hibernate entity1.
      */
-    @javax.persistence.Entity
+    @jakarta.persistence.Entity
     @SuppressWarnings({"PublicInnerClass", "UnnecessaryFullyQualifiedName"})
     @Cacheable
     public static class Entity1 {
@@ -381,7 +391,7 @@ public class HibernateL2CacheStrategySelfTest extends 
GridCommonAbstractTest {
     /**
      * Test Hibernate entity2.
      */
-    @javax.persistence.Entity
+    @jakarta.persistence.Entity
     @SuppressWarnings({"PublicInnerClass", "UnnecessaryFullyQualifiedName"})
     @Cacheable
     public static class Entity2 {
@@ -440,7 +450,7 @@ public class HibernateL2CacheStrategySelfTest extends 
GridCommonAbstractTest {
     /**
      * Test Hibernate entity3.
      */
-    @javax.persistence.Entity
+    @jakarta.persistence.Entity
     @SuppressWarnings({"PublicInnerClass", "UnnecessaryFullyQualifiedName"})
     @Cacheable
     public static class Entity3 {
@@ -499,7 +509,7 @@ public class HibernateL2CacheStrategySelfTest extends 
GridCommonAbstractTest {
     /**
      * Test Hibernate entity4.
      */
-    @javax.persistence.Entity
+    @jakarta.persistence.Entity
     @SuppressWarnings({"PublicInnerClass", "UnnecessaryFullyQualifiedName"})
     @Cacheable
     public static class Entity4 {
diff --git 
a/modules/hibernate-ext/hibernate/src/test/java/org/apache/ignite/cache/hibernate/HibernateL2CacheTransactionalSelfTest.java
 
b/modules/hibernate-ext/hibernate/src/test/java/org/apache/ignite/cache/hibernate/HibernateL2CacheTransactionalSelfTest.java
index 76917e94..94e2d9bb 100644
--- 
a/modules/hibernate-ext/hibernate/src/test/java/org/apache/ignite/cache/hibernate/HibernateL2CacheTransactionalSelfTest.java
+++ 
b/modules/hibernate-ext/hibernate/src/test/java/org/apache/ignite/cache/hibernate/HibernateL2CacheTransactionalSelfTest.java
@@ -18,11 +18,12 @@
 package org.apache.ignite.cache.hibernate;
 
 import java.util.Collections;
+import jakarta.transaction.Synchronization;
+import jakarta.transaction.TransactionManager;
+import jakarta.transaction.UserTransaction;
 import javax.cache.configuration.Factory;
-import javax.transaction.Synchronization;
-import javax.transaction.TransactionManager;
-import javax.transaction.UserTransaction;
-import org.apache.commons.dbcp.managed.BasicManagedDataSource;
+import 
com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple;
+import com.arjuna.ats.internal.jta.transaction.arjunacore.UserTransactionImple;
 import org.apache.ignite.configuration.CacheConfiguration;
 import org.apache.ignite.configuration.IgniteConfiguration;
 import org.h2.jdbcx.JdbcDataSource;
@@ -35,8 +36,6 @@ import 
org.hibernate.engine.transaction.jta.platform.internal.AbstractJtaPlatfor
 import org.hibernate.engine.transaction.jta.platform.spi.JtaPlatform;
 import 
org.hibernate.resource.transaction.backend.jta.internal.JtaTransactionCoordinatorBuilderImpl;
 import org.jetbrains.annotations.Nullable;
-import org.objectweb.jotm.Jotm;
-import org.objectweb.jotm.rmi.RmiLocalConfiguration;
 
 /**
  *
@@ -45,24 +44,25 @@ import org.objectweb.jotm.rmi.RmiLocalConfiguration;
  */
 public class HibernateL2CacheTransactionalSelfTest extends 
HibernateL2CacheSelfTest {
     /** */
-    private static Jotm jotm;
+    private static TransactionManager txMgr;
 
-    /**
-     */
+    /** */
+    private static UserTransaction userTx;
+
+    /** */
     private static class TestJtaPlatform extends AbstractJtaPlatform {
         /** {@inheritDoc} */
         @Override protected TransactionManager locateTransactionManager() {
-            return jotm.getTransactionManager();
+            return txMgr;
         }
 
         /** {@inheritDoc} */
         @Override protected UserTransaction locateUserTransaction() {
-            return jotm.getUserTransaction();
+            return userTx;
         }
     }
 
-    /**
-     */
+    /** */
     @SuppressWarnings("PublicInnerClass")
     public static class TestTmFactory implements Factory<TransactionManager> {
         /** */
@@ -70,13 +70,14 @@ public class HibernateL2CacheTransactionalSelfTest extends 
HibernateL2CacheSelfT
 
         /** {@inheritDoc} */
         @Override public TransactionManager create() {
-            return jotm.getTransactionManager();
+            return txMgr;
         }
     }
 
     /** {@inheritDoc} */
     @Override protected void beforeTestsStarted() throws Exception {
-        jotm = new Jotm(true, false, new RmiLocalConfiguration());
+        txMgr = new TransactionManagerImple();
+        userTx = new UserTransactionImple();
 
         super.beforeTestsStarted();
     }
@@ -85,10 +86,8 @@ public class HibernateL2CacheTransactionalSelfTest extends 
HibernateL2CacheSelfT
     @Override protected void afterTestsStopped() throws Exception {
         super.afterTestsStopped();
 
-        if (jotm != null)
-            jotm.stop();
-
-        jotm = null;
+        txMgr = null;
+        userTx = null;
     }
 
     /** {@inheritDoc} */
@@ -116,17 +115,11 @@ public class HibernateL2CacheTransactionalSelfTest 
extends HibernateL2CacheSelfT
 
         DatasourceConnectionProviderImpl connProvider = new 
DatasourceConnectionProviderImpl();
 
-        BasicManagedDataSource dataSrc = new BasicManagedDataSource(); // 
JTA-aware data source.
-
-        dataSrc.setTransactionManager(jotm.getTransactionManager());
-
-        dataSrc.setDefaultAutoCommit(false);
-
         JdbcDataSource h2DataSrc = new JdbcDataSource();
-
         h2DataSrc.setURL(CONNECTION_URL);
 
-        dataSrc.setXaDataSourceInstance(h2DataSrc);
+        SimpleManagedDataSource dataSrc = new 
SimpleManagedDataSource(h2DataSrc, txMgr); // JTA-aware data source 
(jakarta.transaction).
+        dataSrc.setDefaultAutoCommit(false);
 
         connProvider.setDataSource(dataSrc);
 
diff --git 
a/modules/hibernate-ext/hibernate/src/test/java/org/apache/ignite/cache/hibernate/HibernateL2CacheTransactionalUseSyncSelfTest.java
 
b/modules/hibernate-ext/hibernate/src/test/java/org/apache/ignite/cache/hibernate/HibernateL2CacheTransactionalUseSyncSelfTest.java
index 44899f95..80e16400 100644
--- 
a/modules/hibernate-ext/hibernate/src/test/java/org/apache/ignite/cache/hibernate/HibernateL2CacheTransactionalUseSyncSelfTest.java
+++ 
b/modules/hibernate-ext/hibernate/src/test/java/org/apache/ignite/cache/hibernate/HibernateL2CacheTransactionalUseSyncSelfTest.java
@@ -17,7 +17,7 @@
 
 package org.apache.ignite.cache.hibernate;
 
-import javax.transaction.Synchronization;
+import jakarta.transaction.Synchronization;
 
 /**
  * Tests Hibernate L2 cache with TRANSACTIONAL access mode and {@link 
Synchronization}
diff --git 
a/modules/hibernate-ext/hibernate/src/test/java/org/apache/ignite/cache/hibernate/SimpleManagedDataSource.java
 
b/modules/hibernate-ext/hibernate/src/test/java/org/apache/ignite/cache/hibernate/SimpleManagedDataSource.java
new file mode 100644
index 00000000..30651403
--- /dev/null
+++ 
b/modules/hibernate-ext/hibernate/src/test/java/org/apache/ignite/cache/hibernate/SimpleManagedDataSource.java
@@ -0,0 +1,229 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.cache.hibernate;
+
+import java.io.PrintWriter;
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
+import java.lang.reflect.Proxy;
+import java.sql.Connection;
+import java.sql.SQLException;
+import java.sql.SQLFeatureNotSupportedException;
+import java.util.logging.Logger;
+import jakarta.transaction.RollbackException;
+import jakarta.transaction.Synchronization;
+import jakarta.transaction.SystemException;
+import jakarta.transaction.Transaction;
+import jakarta.transaction.TransactionManager;
+import javax.sql.DataSource;
+import javax.sql.XAConnection;
+import javax.sql.XADataSource;
+
+/**
+ * Minimal managed data source that enlists XA connections in the current JTA 
transaction
+ * ({@code jakarta.transaction} API, compatible with Narayana).
+ * <p>
+ * Wraps an {@link XADataSource} and automatically enlists the XA resource on 
{@code getConnection()}
+ * and closes the XA connection on transaction completion or proxy {@code 
close()}.
+ */
+public class SimpleManagedDataSource implements DataSource {
+    /** */
+    private final XADataSource xaDataSrc;
+
+    /** */
+    private final TransactionManager transactionMgr;
+
+    /** */
+    private boolean dfltAutoCommit = false;
+
+    /** Sets the default auto-commit mode for connections. */
+    public void setDefaultAutoCommit(boolean dfltAutoCommit) {
+        this.dfltAutoCommit = dfltAutoCommit;
+    }
+
+    /**
+     * @param xaDataSrc Data source.
+     * @param transactionMgr Transaction manager.
+     */
+    public SimpleManagedDataSource(XADataSource xaDataSrc, TransactionManager 
transactionMgr) {
+        this.xaDataSrc = xaDataSrc;
+        this.transactionMgr = transactionMgr;
+    }
+
+    /** {@inheritDoc} */
+    @Override public Connection getConnection() throws SQLException {
+        return getConnection(null, null);
+    }
+
+    /** {@inheritDoc} */
+    @Override public Connection getConnection(String username, String pwd) 
throws SQLException {
+        XAConnection xaConn = openXaConnection(username, pwd);
+
+        Connection conn = xaConn.getConnection();
+        conn.setAutoCommit(dfltAutoCommit);
+
+        Transaction tx = currentTransaction();
+
+        if (tx != null) {
+            try {
+                tx.enlistResource(xaConn.getXAResource());
+            }
+            catch (Exception e) {
+                closeQuietly(xaConn);
+
+                throw new SQLException("Failed to enlist XA resource", e);
+            }
+
+            try {
+                tx.registerSynchronization(new Synchronization() {
+                    /** {@inheritDoc} */
+                    @Override public void beforeCompletion() {
+                        // No-op.
+                    }
+
+                    /** {@inheritDoc} */
+                    @Override public void afterCompletion(int status) {
+                        closeQuietly(xaConn);
+                    }
+                });
+            }
+            catch (RollbackException | SystemException e) {
+                throw new RuntimeException(e);
+            }
+        }
+
+        return 
(Connection)Proxy.newProxyInstance(Connection.class.getClassLoader(), new 
Class<?>[]{Connection.class},
+            new CloseHandler(conn, xaConn));
+    }
+
+    /** {@inheritDoc} */
+    @Override public <T> T unwrap(Class<T> iface) throws SQLException {
+        throw new SQLException("Unsupported");
+    }
+
+    /** {@inheritDoc} */
+    @Override public boolean isWrapperFor(Class<?> iface) {
+        return false;
+    }
+
+    /** {@inheritDoc} */
+    @Override public PrintWriter getLogWriter() {
+        return null;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void setLogWriter(PrintWriter out) {
+        // No-op.
+    }
+
+    /** {@inheritDoc} */
+    @Override public void setLoginTimeout(int seconds) {
+        // No-op.
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getLoginTimeout() {
+        return 0;
+    }
+
+    /** {@inheritDoc} */
+    @Override public Logger getParentLogger() throws 
SQLFeatureNotSupportedException {
+        throw new SQLFeatureNotSupportedException("Unsupported");
+    }
+
+    /** */
+    private XAConnection openXaConnection(String username, String pwd) throws 
SQLException {
+        try {
+            return username != null ? xaDataSrc.getXAConnection(username, pwd) 
: xaDataSrc.getXAConnection();
+        }
+        catch (Exception e) {
+            throw new SQLException("Failed to get XA connection", e);
+        }
+    }
+
+    /** */
+    private Transaction currentTransaction() throws SQLException {
+        try {
+            return transactionMgr.getTransaction();
+        }
+        catch (SystemException e) {
+            throw new SQLException("Failed to get current transaction", e);
+        }
+    }
+
+    /** */
+    private static void closeQuietly(XAConnection xaConn) {
+        try {
+            xaConn.close();
+        }
+        catch (SQLException ignore) {
+            // No-op.
+        }
+    }
+
+    /**
+     * Invocation handler that delegates all calls to the real connection,
+     * but closes the XA connection on {@code close()} if it hasn't been 
closed already.
+     */
+    private static final class CloseHandler implements InvocationHandler {
+        /** */
+        private final Connection delegate;
+
+        /** */
+        private XAConnection xaConn;
+
+        /**
+         * @param delegate Delegate.
+         * @param xaConn Connection.
+         */
+        CloseHandler(Connection delegate, XAConnection xaConn) {
+            this.delegate = delegate;
+            this.xaConn = xaConn;
+        }
+
+        /** {@inheritDoc} */
+        @Override public Object invoke(Object proxy, Method method, Object[] 
args) throws Throwable {
+            if ("close".equals(method.getName()) && method.getParameterCount() 
== 0) {
+                XAConnection xa = xaConn;
+                xaConn = null; // prevent double close
+
+                if (xa != null)
+                    closeQuietly(xa);
+
+                return null;
+            }
+
+            switch (method.getName()) {
+                case "equals" -> {
+                    if (args[0] == delegate)
+                        return Boolean.TRUE;
+
+                    return Proxy.isProxyClass(args[0].getClass()) && 
Proxy.getInvocationHandler(args[0]) == this;
+                }
+                case "hashCode" -> {
+                    return System.identityHashCode(delegate);
+                }
+                case "getClass" -> {
+                    return delegate.getClass();
+                }
+            }
+
+            return method.invoke(delegate, args);
+        }
+    }
+}
diff --git 
a/modules/hibernate-ext/hibernate/src/test/java/org/apache/ignite/cache/store/hibernate/CacheHibernateBlobStoreSelfTest.java
 
b/modules/hibernate-ext/hibernate/src/test/java/org/apache/ignite/cache/store/hibernate/CacheHibernateBlobStoreSelfTest.java
index ba048ad8..e8891257 100644
--- 
a/modules/hibernate-ext/hibernate/src/test/java/org/apache/ignite/cache/store/hibernate/CacheHibernateBlobStoreSelfTest.java
+++ 
b/modules/hibernate-ext/hibernate/src/test/java/org/apache/ignite/cache/store/hibernate/CacheHibernateBlobStoreSelfTest.java
@@ -50,7 +50,7 @@ public class CacheHibernateBlobStoreSelfTest extends
 
         try {
             s.createQuery("delete from " + 
CacheHibernateBlobStoreEntry.class.getSimpleName())
-                    .setFlushMode(FlushMode.ALWAYS).executeUpdate();
+                    .setHibernateFlushMode(FlushMode.ALWAYS).executeUpdate();
 
             Transaction hTx = s.getTransaction();
 
@@ -67,11 +67,9 @@ public class CacheHibernateBlobStoreSelfTest extends
         return new CacheHibernateBlobStore<>();
     }
 
-    /**
-     * @throws Exception If failed.
-     */
+    /** */
     @Test
-    public void testConfigurationByUrl() throws Exception {
+    public void testConfigurationByUrl() {
         URL url = 
U.resolveIgniteUrl(CacheHibernateStoreFactorySelfTest.MODULE_PATH +
             
"/src/test/resources/org/apache/ignite/cache/store/hibernate/hibernate.cfg.xml");
 
@@ -101,15 +99,12 @@ public class CacheHibernateBlobStoreSelfTest extends
         store.load("key");
     }
 
-    /**
-     * @throws Exception If failed.
-     */
+    /** */
     @Test
-    public void testConfigurationByResource() throws Exception {
+    public void testConfigurationByResource() {
         
store.setHibernateConfigurationPath("/org/apache/ignite/cache/store/hibernate/hibernate.cfg.xml");
 
         // Store will be implicitly initialized.
         store.load("key");
     }
-
 }
diff --git 
a/modules/hibernate-ext/hibernate/src/test/java/org/apache/ignite/cache/store/hibernate/CacheHibernateStoreFactorySelfTest.java
 
b/modules/hibernate-ext/hibernate/src/test/java/org/apache/ignite/cache/store/hibernate/CacheHibernateStoreFactorySelfTest.java
index 1ff89646..be3257a1 100644
--- 
a/modules/hibernate-ext/hibernate/src/test/java/org/apache/ignite/cache/store/hibernate/CacheHibernateStoreFactorySelfTest.java
+++ 
b/modules/hibernate-ext/hibernate/src/test/java/org/apache/ignite/cache/store/hibernate/CacheHibernateStoreFactorySelfTest.java
@@ -22,14 +22,12 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.Callable;
-import javax.naming.NamingException;
+import jakarta.persistence.EntityGraph;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.PersistenceUnitUtil;
+import jakarta.persistence.Query;
+import jakarta.persistence.SynchronizationType;
 import javax.naming.Reference;
-import javax.persistence.EntityGraph;
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceUnitUtil;
-import javax.persistence.Query;
-import javax.persistence.SynchronizationType;
-import javax.persistence.criteria.CriteriaBuilder;
 import org.apache.ignite.Ignite;
 import org.apache.ignite.IgniteCache;
 import org.apache.ignite.IgniteException;
@@ -45,11 +43,11 @@ import org.hibernate.SessionBuilder;
 import org.hibernate.SessionFactory;
 import org.hibernate.StatelessSession;
 import org.hibernate.StatelessSessionBuilder;
-import org.hibernate.TypeHelper;
 import org.hibernate.boot.spi.SessionFactoryOptions;
 import org.hibernate.engine.spi.FilterDefinition;
-import org.hibernate.metadata.ClassMetadata;
-import org.hibernate.metadata.CollectionMetadata;
+import org.hibernate.graph.RootGraph;
+import org.hibernate.query.criteria.HibernateCriteriaBuilder;
+import org.hibernate.relational.SchemaManager;
 import org.hibernate.stat.Statistics;
 import org.junit.Test;
 
@@ -196,37 +194,18 @@ public class CacheHibernateStoreFactorySelfTest extends 
GridCommonAbstractTest {
         }
 
         /** {@inheritDoc} */
-        @Override public ClassMetadata getClassMetadata(Class entityCls) {
-            return null;
-        }
-
-        /** {@inheritDoc} */
-        @Override public ClassMetadata getClassMetadata(String entityName) {
-            return null;
-        }
-
-        /** {@inheritDoc} */
-        @Override public CollectionMetadata getCollectionMetadata(String 
roleName) {
-            return null;
-        }
-
-        /** {@inheritDoc} */
-        @Override public Map<String, ClassMetadata> getAllClassMetadata() {
-            return null;
-        }
-
-        /** {@inheritDoc} */
-        @Override public Map getAllCollectionMetadata() {
+        @Override public Statistics getStatistics() {
             return null;
         }
 
         /** {@inheritDoc} */
-        @Override public Statistics getStatistics() {
+        @Override public SchemaManager getSchemaManager() {
             return null;
         }
 
         /** {@inheritDoc} */
         @Override public void close() throws HibernateException {
+            // No-op.
         }
 
         /** {@inheritDoc} */
@@ -251,7 +230,7 @@ public class CacheHibernateStoreFactorySelfTest extends 
GridCommonAbstractTest {
 
         /** {@inheritDoc} */
         @Override public void addNamedQuery(String name, Query query) {
-
+            // No-op.
         }
 
         /** {@inheritDoc} */
@@ -261,11 +240,11 @@ public class CacheHibernateStoreFactorySelfTest extends 
GridCommonAbstractTest {
 
         /** {@inheritDoc} */
         @Override public <T> void addNamedEntityGraph(String graphName, 
EntityGraph<T> entityGraph) {
-
+            // No-op.
         }
 
         /** {@inheritDoc} */
-        @Override public Set getDefinedFilterNames() {
+        @Override public Set<String> getDefinedFilterNames() {
             return null;
         }
 
@@ -274,23 +253,28 @@ public class CacheHibernateStoreFactorySelfTest extends 
GridCommonAbstractTest {
             return null;
         }
 
+        /** {@inheritDoc} */
+        @Override public Set<String> getDefinedFetchProfileNames() {
+            return null;
+        }
+
         /** {@inheritDoc} */
         @Override public boolean containsFetchProfileDefinition(String name) {
             return false;
         }
 
         /** {@inheritDoc} */
-        @Override public TypeHelper getTypeHelper() {
+        @Override public Reference getReference() {
             return null;
         }
 
         /** {@inheritDoc} */
-        @Override public Reference getReference() throws NamingException {
+        @Override public <T> List<EntityGraph<? super T>> 
findEntityGraphsByType(Class<T> aClass) {
             return null;
         }
 
         /** {@inheritDoc} */
-        @Override public <T> List<EntityGraph<? super T>> 
findEntityGraphsByType(Class<T> aClass) {
+        @Override public RootGraph<?> findEntityGraphByName(String name) {
             return null;
         }
 
@@ -315,7 +299,7 @@ public class CacheHibernateStoreFactorySelfTest extends 
GridCommonAbstractTest {
         }
 
         /** {@inheritDoc} */
-        @Override public CriteriaBuilder getCriteriaBuilder() {
+        @Override public HibernateCriteriaBuilder getCriteriaBuilder() {
             return null;
         }
 
diff --git 
a/modules/hibernate-ext/hibernate/src/test/java/org/apache/ignite/cache/store/hibernate/CacheHibernateStoreSessionListenerSelfTest.java
 
b/modules/hibernate-ext/hibernate/src/test/java/org/apache/ignite/cache/store/hibernate/CacheHibernateStoreSessionListenerSelfTest.java
index ef9dbe9e..4db54c78 100644
--- 
a/modules/hibernate-ext/hibernate/src/test/java/org/apache/ignite/cache/store/hibernate/CacheHibernateStoreSessionListenerSelfTest.java
+++ 
b/modules/hibernate-ext/hibernate/src/test/java/org/apache/ignite/cache/store/hibernate/CacheHibernateStoreSessionListenerSelfTest.java
@@ -19,16 +19,16 @@ package org.apache.ignite.cache.store.hibernate;
 
 import java.io.Serializable;
 import java.util.Map;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.Table;
 import javax.cache.Cache;
 import javax.cache.configuration.Factory;
 import javax.cache.integration.CacheLoaderException;
 import javax.cache.integration.CacheWriterException;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.Table;
 import org.apache.ignite.cache.store.CacheStore;
 import org.apache.ignite.cache.store.CacheStoreAdapter;
 import org.apache.ignite.cache.store.CacheStoreSession;
diff --git 
a/modules/hibernate-ext/hibernate/src/test/java/org/apache/ignite/cache/store/hibernate/hibernate.cfg.xml
 
b/modules/hibernate-ext/hibernate/src/test/java/org/apache/ignite/cache/store/hibernate/hibernate.cfg.xml
index 62405997..8874ad94 100644
--- 
a/modules/hibernate-ext/hibernate/src/test/java/org/apache/ignite/cache/store/hibernate/hibernate.cfg.xml
+++ 
b/modules/hibernate-ext/hibernate/src/test/java/org/apache/ignite/cache/store/hibernate/hibernate.cfg.xml
@@ -27,10 +27,13 @@
         <property name="show_sql">true</property>
 
         <!-- Database connection settings (private in-memory database). -->
-        <property 
name="connection.url">jdbc:h2:mem:example;DB_CLOSE_DELAY=-1</property>
+        <!-- H2 1.x: create table via INIT to avoid hbm2ddl.auto=update 
(sequence metadata extraction fails on H2 1.x). -->
+        <property name="connection.url">
+            jdbc:h2:mem:example;DB_CLOSE_DELAY=-1;INIT=CREATE TABLE IF NOT 
EXISTS ENTRIES (key VARBINARY PRIMARY KEY, val VARBINARY)
+        </property>
 
-        <!-- Only validate the database schema on startup in production mode. 
-->
-        <property name="hbm2ddl.auto">update</property>
+        <!-- H2 1.x: disable all schema management to avoid sequence metadata 
extraction ('start_value' missing). -->
+        <property name="hbm2ddl.auto">none</property>
 
         <!-- H2 dialect. -->
         <property 
name="hibernate.dialect">org.hibernate.dialect.H2Dialect</property>
diff --git 
a/modules/hibernate-ext/hibernate/src/test/resources/org/apache/ignite/cache/store/hibernate/hibernate.cfg.xml
 
b/modules/hibernate-ext/hibernate/src/test/resources/org/apache/ignite/cache/store/hibernate/hibernate.cfg.xml
index 62405997..8874ad94 100644
--- 
a/modules/hibernate-ext/hibernate/src/test/resources/org/apache/ignite/cache/store/hibernate/hibernate.cfg.xml
+++ 
b/modules/hibernate-ext/hibernate/src/test/resources/org/apache/ignite/cache/store/hibernate/hibernate.cfg.xml
@@ -27,10 +27,13 @@
         <property name="show_sql">true</property>
 
         <!-- Database connection settings (private in-memory database). -->
-        <property 
name="connection.url">jdbc:h2:mem:example;DB_CLOSE_DELAY=-1</property>
+        <!-- H2 1.x: create table via INIT to avoid hbm2ddl.auto=update 
(sequence metadata extraction fails on H2 1.x). -->
+        <property name="connection.url">
+            jdbc:h2:mem:example;DB_CLOSE_DELAY=-1;INIT=CREATE TABLE IF NOT 
EXISTS ENTRIES (key VARBINARY PRIMARY KEY, val VARBINARY)
+        </property>
 
-        <!-- Only validate the database schema on startup in production mode. 
-->
-        <property name="hbm2ddl.auto">update</property>
+        <!-- H2 1.x: disable all schema management to avoid sequence metadata 
extraction ('start_value' missing). -->
+        <property name="hbm2ddl.auto">none</property>
 
         <!-- H2 dialect. -->
         <property 
name="hibernate.dialect">org.hibernate.dialect.H2Dialect</property>
diff --git a/modules/hibernate-ext/pom.xml b/modules/hibernate-ext/pom.xml
index 549c546d..882b655e 100644
--- a/modules/hibernate-ext/pom.xml
+++ b/modules/hibernate-ext/pom.xml
@@ -34,7 +34,7 @@
     <version>5.3.0-SNAPSHOT</version>
 
     <properties>
-        <hibernate.core.version>5.3.22.Final</hibernate.core.version>
+        <hibernate.core.version>6.6.54.Final</hibernate.core.version>
     </properties>
 
     <modules>
diff --git 
a/modules/mesos-ext/src/main/java/org/apache/ignite/mesos/resource/ResourceHandler.java
 
b/modules/mesos-ext/src/main/java/org/apache/ignite/mesos/resource/ResourceHandler.java
index a3fed296..850a174d 100644
--- 
a/modules/mesos-ext/src/main/java/org/apache/ignite/mesos/resource/ResourceHandler.java
+++ 
b/modules/mesos-ext/src/main/java/org/apache/ignite/mesos/resource/ResourceHandler.java
@@ -17,23 +17,21 @@
 
 package org.apache.ignite.mesos.resource;
 
-import java.io.IOException;
 import java.io.InputStream;
-import java.nio.channels.FileChannel;
 import java.nio.file.Path;
 import java.nio.file.Paths;
-import java.nio.file.StandardOpenOption;
-import jakarta.servlet.ServletException;
-import jakarta.servlet.http.HttpServletRequest;
-import jakarta.servlet.http.HttpServletResponse;
-import org.eclipse.jetty.server.HttpOutput;
+import org.eclipse.jetty.http.HttpHeader;
+import org.eclipse.jetty.io.Content;
+import org.eclipse.jetty.io.Content.Source;
+import org.eclipse.jetty.server.Handler;
 import org.eclipse.jetty.server.Request;
-import org.eclipse.jetty.server.handler.AbstractHandler;
+import org.eclipse.jetty.server.Response;
+import org.eclipse.jetty.util.Callback;
 
 /**
  * HTTP controller which provides on slave resources.
  */
-public class ResourceHandler extends AbstractHandler {
+public class ResourceHandler extends Handler.Abstract {
     /** */
     public static final String IGNITE_PREFIX = "/ignite/";
 
@@ -66,14 +64,9 @@ public class ResourceHandler extends AbstractHandler {
         this.igniteDir = igniteDir;
     }
 
-    /**
-     * {@inheritDoc}
-     */
-    @Override public void handle(
-        String url,
-        Request request,
-        HttpServletRequest httpServletRequest,
-        HttpServletResponse response) throws IOException, ServletException {
+    /** {@inheritDoc} */
+    @Override public boolean handle(Request req, Response res, Callback 
callback) {
+        String url = req.getHttpURI().getPath();
 
         String[] path = url.split("/");
 
@@ -83,64 +76,68 @@ public class ResourceHandler extends AbstractHandler {
 
         switch (srvcPath) {
             case IGNITE_PREFIX:
-                handleRequest(response, "application/zip-archive", igniteDir + 
"/" + fileName);
+                handleFileRequest(res, callback, "application/zip-archive", 
igniteDir + "/" + fileName);
 
-                request.setHandled(true);
-                break;
+                return true;
 
             case LIBS_PREFIX:
-                handleRequest(response, "application/java-archive", libsDir + 
"/" + fileName);
+                handleFileRequest(res, callback, "application/java-archive", 
libsDir + "/" + fileName);
 
-                request.setHandled(true);
-                break;
+                return true;
 
             case CONFIG_PREFIX:
-                handleRequest(response, "application/xml", cfgPath);
+                handleFileRequest(res, callback, "application/xml", cfgPath);
 
-                request.setHandled(true);
-                break;
+                return true;
 
             case DEFAULT_CONFIG:
-                handleRequest(response, "application/xml",
+                handleStreamRequest(res, callback, "application/xml",
                     
Thread.currentThread().getContextClassLoader().getResourceAsStream(fileName),
                     fileName);
 
-                request.setHandled(true);
-                break;
+                return true;
+
+            default:
+                res.setStatus(404);
+                callback.succeeded();
+
+                return true;
         }
     }
 
     /**
-     * @param response Http response.
-     * @param type Type.
+     * @param res Jetty response.
+     * @param callback Callback to complete the request.
+     * @param contentType MIME content type.
      * @param path Path to file.
-     * @throws IOException If failed.
      */
-    private static void handleRequest(HttpServletResponse response, String 
type, String path) throws IOException {
+    private void handleFileRequest(Response res, Callback callback, String 
contentType, String path) {
         Path path0 = Paths.get(path);
 
-        response.setContentType(type);
-        response.setHeader("Content-Disposition", "attachment; filename=\"" + 
path0.getFileName() + "\"");
+        res.getHeaders().put(HttpHeader.CONTENT_TYPE, contentType);
+        res.getHeaders().put(HttpHeader.CONTENT_DISPOSITION, "attachment; 
filename=\"" + path0.getFileName() + "\"");
 
-        try (HttpOutput out = (HttpOutput)response.getOutputStream()) {
-            out.sendContent(FileChannel.open(path0, StandardOpenOption.READ));
-        }
+        Content.copy(Source.from(path0), res, 
Callback.from(callback::succeeded, e -> {
+            res.setStatus(500);
+            callback.failed(e);
+        }));
     }
 
     /**
-     * @param response Http response.
-     * @param type Type.
-     * @param stream Stream.
+     * @param res Jetty response.
+     * @param callback Callback to complete the request.
+     * @param contentType MIME content type.
+     * @param stream Input stream.
      * @param attachmentName Attachment name.
-     * @throws IOException If failed.
      */
-    private static void handleRequest(HttpServletResponse response, String 
type, InputStream stream,
-        String attachmentName) throws IOException {
-        response.setContentType(type);
-        response.setHeader("Content-Disposition", "attachment; filename=\"" + 
attachmentName + "\"");
-
-        try (HttpOutput out = (HttpOutput)response.getOutputStream()) {
-            out.sendContent(stream);
-        }
+    private void handleStreamRequest(Response res, Callback callback, String 
contentType,
+        InputStream stream, String attachmentName) {
+        res.getHeaders().put(HttpHeader.CONTENT_TYPE, contentType);
+        res.getHeaders().put(HttpHeader.CONTENT_DISPOSITION, "attachment; 
filename=\"" + attachmentName + "\"");
+
+        Content.copy(Source.from(stream), res, 
Callback.from(callback::succeeded, e -> {
+            res.setStatus(500);
+            callback.failed(e);
+        }));
     }
 }
diff --git a/modules/spring-data-ext/examples/pom.xml 
b/modules/spring-data-ext/examples/pom.xml
index 8e126a19..5bd82621 100644
--- a/modules/spring-data-ext/examples/pom.xml
+++ b/modules/spring-data-ext/examples/pom.xml
@@ -64,13 +64,13 @@
         <dependency>
             <groupId>org.springframework</groupId>
             <artifactId>spring-tx</artifactId>
-            <version>${spring6.version}</version>
+            <version>${spring.version}</version>
         </dependency>
 
         <dependency>
             <groupId>org.springframework</groupId>
             <artifactId>spring-context</artifactId>
-            <version>${spring6.version}</version>
+            <version>${spring.version}</version>
         </dependency>
 
         <dependency>
diff --git a/modules/spring-data-ext/spring-data/pom.xml 
b/modules/spring-data-ext/spring-data/pom.xml
index 8c3c157c..b2f6aa9f 100644
--- a/modules/spring-data-ext/spring-data/pom.xml
+++ b/modules/spring-data-ext/spring-data/pom.xml
@@ -58,14 +58,14 @@
         <dependency>
             <groupId>org.springframework</groupId>
             <artifactId>spring-context</artifactId>
-            <version>${spring6.version}</version>
+            <version>${spring.version}</version>
             <scope>provided</scope>
         </dependency>
 
         <dependency>
             <groupId>org.springframework</groupId>
             <artifactId>spring-tx</artifactId>
-            <version>${spring6.version}</version>
+            <version>${spring.version}</version>
             <scope>provided</scope>
         </dependency>
 
diff --git a/modules/spring-session-ext/pom.xml 
b/modules/spring-session-ext/pom.xml
index 7c6d41db..31c26a4e 100644
--- a/modules/spring-session-ext/pom.xml
+++ b/modules/spring-session-ext/pom.xml
@@ -51,7 +51,7 @@
             <dependency>
                 <groupId>org.springframework</groupId>
                 <artifactId>spring-framework-bom</artifactId>
-                <version>${spring6.version}</version>
+                <version>${spring.version}</version>
                 <type>pom</type>
                 <scope>import</scope>
             </dependency>
diff --git 
a/modules/spring-session-ext/src/main/java/org/apache/ignite/spring/sessions/IgniteIndexedSessionRepository.java
 
b/modules/spring-session-ext/src/main/java/org/apache/ignite/spring/sessions/IgniteIndexedSessionRepository.java
index 636aac0f..727de2e5 100644
--- 
a/modules/spring-session-ext/src/main/java/org/apache/ignite/spring/sessions/IgniteIndexedSessionRepository.java
+++ 
b/modules/spring-session-ext/src/main/java/org/apache/ignite/spring/sessions/IgniteIndexedSessionRepository.java
@@ -22,6 +22,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
+import jakarta.annotation.PreDestroy;
 import javax.cache.configuration.CacheEntryListenerConfiguration;
 import javax.cache.configuration.Factory;
 import javax.cache.event.CacheEntryCreatedListener;
@@ -32,7 +33,6 @@ import javax.cache.event.CacheEntryListener;
 import javax.cache.event.CacheEntryListenerException;
 import javax.cache.event.CacheEntryRemovedListener;
 import javax.cache.expiry.TouchedExpiryPolicy;
-import jakarta.annotation.PreDestroy;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.ignite.cache.query.QueryCursor;
diff --git a/modules/spring-tx-ext/examples/pom.xml 
b/modules/spring-tx-ext/examples/pom.xml
index 4d057f7d..bea74a0a 100644
--- a/modules/spring-tx-ext/examples/pom.xml
+++ b/modules/spring-tx-ext/examples/pom.xml
@@ -69,19 +69,19 @@
         <dependency>
             <groupId>org.springframework</groupId>
             <artifactId>spring-context</artifactId>
-            <version>${spring6.version}</version>
+            <version>${spring.version}</version>
         </dependency>
 
         <dependency>
             <groupId>org.springframework</groupId>
             <artifactId>spring-jdbc</artifactId>
-            <version>${spring6.version}</version>
+            <version>${spring.version}</version>
         </dependency>
 
         <dependency>
             <groupId>org.springframework</groupId>
             <artifactId>spring-tx</artifactId>
-            <version>${spring6.version}</version>
+            <version>${spring.version}</version>
         </dependency>
 
         <dependency>
diff --git a/modules/spring-tx-ext/spring-tx/pom.xml 
b/modules/spring-tx-ext/spring-tx/pom.xml
index c17c88fb..5d1290d8 100644
--- a/modules/spring-tx-ext/spring-tx/pom.xml
+++ b/modules/spring-tx-ext/spring-tx/pom.xml
@@ -57,21 +57,21 @@
         <dependency>
             <groupId>org.springframework</groupId>
             <artifactId>spring-context</artifactId>
-            <version>${spring6.version}</version>
+            <version>${spring.version}</version>
             <scope>provided</scope>
         </dependency>
 
         <dependency>
             <groupId>org.springframework</groupId>
             <artifactId>spring-tx</artifactId>
-            <version>${spring6.version}</version>
+            <version>${spring.version}</version>
             <scope>provided</scope>
         </dependency>
 
         <dependency>
             <groupId>org.springframework</groupId>
             <artifactId>spring-jdbc</artifactId>
-            <version>${spring6.version}</version>
+            <version>${spring.version}</version>
             <optional>true</optional>
         </dependency>
 
diff --git a/parent-internal/pom.xml b/parent-internal/pom.xml
index a73f14e9..80931b65 100644
--- a/parent-internal/pom.xml
+++ b/parent-internal/pom.xml
@@ -35,14 +35,14 @@
     <version>1</version>
 
     <properties>
-        <spring-boot.version>3.5.9</spring-boot.version>
-        <spring.data.version>3.5.7</spring.data.version>
-        <spring6.version>6.2.15</spring6.version>
+        <spring-boot.version>3.5.16</spring-boot.version>
+        <spring.data.version>3.5.13</spring.data.version>
         <activemq.version>5.12.0</activemq.version>
         <aspectj.version>1.9.21</aspectj.version>
         <embedded.postgres.version>2.0.3</embedded.postgres.version>
         <commons.dbcp2.version>2.13.0</commons.dbcp2.version>
         <commons.lang3.version>3.20.0</commons.lang3.version>
+        
<jakarta.transaction-api.version>2.0.1</jakarta.transaction-api.version>
 
         <!--
             NOTE: The dependency versions below must be changed in the release 
branch up to

Reply via email to