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

jamesnetherton pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/main by this push:
     new edeff6f8fa04 CAMEL-22692: Upgrade Infinispan to 16.0.1
edeff6f8fa04 is described below

commit edeff6f8fa044b9532a32c8273fa775ca53f2c94
Author: James Netherton <[email protected]>
AuthorDate: Fri Nov 21 08:46:25 2025 +0000

    CAMEL-22692: Upgrade Infinispan to 16.0.1
    
    * CAMEL-22692: Upgrade Infinispan to 16.0.1
    
    * CAMEL-22692: Add 4.17.0 migration guide notes for Infinispan 16.x upgrade
---
 .../camel-infinispan-common/pom.xml                |  2 +-
 .../embedded/InfinispanEmbeddedConsumer.java       |  7 ++-
 .../embedded/InfinispanEmbeddedManager.java        | 27 ++++++----
 .../InfinispanEmbeddedConfigurationTest.java       |  1 -
 .../embedded/InfinispanEmbeddedConsumerTest.java   | 60 +++++++++-------------
 .../camel-infinispan/camel-infinispan/pom.xml      | 13 +----
 .../remote/InfinispanRemoteConsumer.java           |  9 ++--
 .../infinispan/remote/InfinispanRemoteManager.java |  5 ++
 .../remote/embeddingstore/EmbeddingStoreUtil.java  | 12 ++---
 .../DefaultExchangeHolderProtoAdapter.java         |  2 +-
 .../remote/InfinispanRemoteEmbeddingStoreIT.java   | 24 ++++-----
 .../remote/InfinispanRemoteProducerIT.java         |  2 +-
 .../remote/InfinispanRemoteQueryConsumerIT.java    | 10 ++--
 .../remote/InfinispanRemoteQueryProducerIT.java    | 10 ++--
 .../ROOT/pages/camel-4x-upgrade-guide-4_17.adoc    |  8 +++
 parent/pom.xml                                     |  4 +-
 .../src/main/resources/infinispan.xml              | 10 ++--
 .../infra/infinispan/services/container.properties |  2 +-
 18 files changed, 97 insertions(+), 111 deletions(-)

diff --git a/components/camel-infinispan/camel-infinispan-common/pom.xml 
b/components/camel-infinispan/camel-infinispan-common/pom.xml
index 704aab94da37..cb730c7b0d13 100644
--- a/components/camel-infinispan/camel-infinispan-common/pom.xml
+++ b/components/camel-infinispan/camel-infinispan-common/pom.xml
@@ -52,7 +52,7 @@
         </dependency>
         <dependency>
             <groupId>org.infinispan</groupId>
-            <artifactId>infinispan-query-dsl</artifactId>
+            <artifactId>infinispan-query</artifactId>
             <version>${infinispan-version}</version>
         </dependency>
 
diff --git 
a/components/camel-infinispan/camel-infinispan-embedded/src/main/java/org/apache/camel/component/infinispan/embedded/InfinispanEmbeddedConsumer.java
 
b/components/camel-infinispan/camel-infinispan-embedded/src/main/java/org/apache/camel/component/infinispan/embedded/InfinispanEmbeddedConsumer.java
index 5a6037cadd8d..0bd7aeecaf52 100644
--- 
a/components/camel-infinispan/camel-infinispan-embedded/src/main/java/org/apache/camel/component/infinispan/embedded/InfinispanEmbeddedConsumer.java
+++ 
b/components/camel-infinispan/camel-infinispan-embedded/src/main/java/org/apache/camel/component/infinispan/embedded/InfinispanEmbeddedConsumer.java
@@ -28,12 +28,11 @@ import 
org.apache.camel.component.infinispan.InfinispanEventListener;
 import org.apache.camel.support.service.ServiceHelper;
 import org.apache.camel.support.service.ServiceSupport;
 import org.infinispan.Cache;
+import org.infinispan.commons.api.query.ContinuousQuery;
+import org.infinispan.commons.api.query.ContinuousQueryListener;
 import org.infinispan.commons.api.query.Query;
 import org.infinispan.manager.EmbeddedCacheManager;
 import org.infinispan.notifications.cachelistener.event.Event;
-import org.infinispan.query.Search;
-import org.infinispan.query.api.continuous.ContinuousQuery;
-import org.infinispan.query.api.continuous.ContinuousQueryListener;
 
 public class InfinispanEmbeddedConsumer
         extends InfinispanConsumer<EmbeddedCacheManager, 
InfinispanEmbeddedManager, InfinispanEmbeddedConfiguration> {
@@ -97,7 +96,7 @@ public class InfinispanEmbeddedConsumer
             Cache<Object, Object> remoteCache = getCache(Cache.class);
             Query<?> query = 
InfinispanEmbeddedUtil.buildQuery(getConfiguration().getQueryBuilder(), 
remoteCache);
 
-            continuousQuery = Search.getContinuousQuery(remoteCache);
+            continuousQuery = remoteCache.continuousQuery();
             continuousQuery.addContinuousQueryListener(query, this);
         }
 
diff --git 
a/components/camel-infinispan/camel-infinispan-embedded/src/main/java/org/apache/camel/component/infinispan/embedded/InfinispanEmbeddedManager.java
 
b/components/camel-infinispan/camel-infinispan-embedded/src/main/java/org/apache/camel/component/infinispan/embedded/InfinispanEmbeddedManager.java
index bf176594a82c..6df87f4e5dcb 100644
--- 
a/components/camel-infinispan/camel-infinispan-embedded/src/main/java/org/apache/camel/component/infinispan/embedded/InfinispanEmbeddedManager.java
+++ 
b/components/camel-infinispan/camel-infinispan-embedded/src/main/java/org/apache/camel/component/infinispan/embedded/InfinispanEmbeddedManager.java
@@ -29,7 +29,7 @@ import org.infinispan.Cache;
 import org.infinispan.commons.api.BasicCache;
 import org.infinispan.configuration.cache.Configuration;
 import org.infinispan.configuration.cache.ConfigurationBuilder;
-import org.infinispan.configuration.global.GlobalConfigurationBuilder;
+import org.infinispan.configuration.parsing.ConfigurationBuilderHolder;
 import org.infinispan.context.Flag;
 import org.infinispan.manager.DefaultCacheManager;
 import org.infinispan.manager.EmbeddedCacheManager;
@@ -74,19 +74,21 @@ public class InfinispanEmbeddedManager extends 
ServiceSupport implements Infinis
             // Check if a container configuration object has been provided so 
use
             // it and discard any other additional configuration.
             if (containerConf != null) {
-                cacheContainer = new DefaultCacheManager(
-                        new 
GlobalConfigurationBuilder().defaultCacheName("default").build(),
-                        containerConf,
-                        true);
+                ConfigurationBuilderHolder holder = new 
ConfigurationBuilderHolder();
+                
holder.getGlobalConfigurationBuilder().defaultCacheName("default");
+                holder.getNamedConfigurationBuilders().put("default", new 
ConfigurationBuilder());
+
+                cacheContainer = new DefaultCacheManager(holder);
+                cacheContainer.defineConfiguration("default", containerConf);
             } else {
                 if 
(ObjectHelper.isNotEmpty(configuration.getConfigurationUri())) {
                     cacheContainer = new DefaultCacheManager(
-                            InfinispanUtil.openInputStream(camelContext, 
configuration.getConfigurationUri()),
-                            true);
+                            InfinispanUtil.openInputStream(camelContext, 
configuration.getConfigurationUri()));
                 } else {
-                    cacheContainer = new DefaultCacheManager(
-                            new 
GlobalConfigurationBuilder().defaultCacheName("default").build(),
-                            new ConfigurationBuilder().build());
+                    ConfigurationBuilderHolder holder = new 
ConfigurationBuilderHolder();
+                    
holder.getGlobalConfigurationBuilder().defaultCacheName("default");
+                    holder.getNamedConfigurationBuilders().put("default", new 
ConfigurationBuilder());
+                    cacheContainer = new DefaultCacheManager(holder);
                 }
             }
 
@@ -144,4 +146,9 @@ public class InfinispanEmbeddedManager extends 
ServiceSupport implements Infinis
     public Set<String> getCacheNames() {
         return cacheContainer.getCacheNames();
     }
+
+    @Override
+    public void stopCache(String cacheName) {
+        cacheContainer.stopCache(cacheName);
+    }
 }
diff --git 
a/components/camel-infinispan/camel-infinispan-embedded/src/test/java/org/apache/camel/component/infinispan/embedded/InfinispanEmbeddedConfigurationTest.java
 
b/components/camel-infinispan/camel-infinispan-embedded/src/test/java/org/apache/camel/component/infinispan/embedded/InfinispanEmbeddedConfigurationTest.java
index 1e1eba2e74ac..2898de1162f6 100644
--- 
a/components/camel-infinispan/camel-infinispan-embedded/src/test/java/org/apache/camel/component/infinispan/embedded/InfinispanEmbeddedConfigurationTest.java
+++ 
b/components/camel-infinispan/camel-infinispan-embedded/src/test/java/org/apache/camel/component/infinispan/embedded/InfinispanEmbeddedConfigurationTest.java
@@ -35,7 +35,6 @@ public class InfinispanEmbeddedConfigurationTest {
 
         try (InfinispanEmbeddedManager manager = new 
InfinispanEmbeddedManager(configuration)) {
             manager.start();
-
             BasicCache<Object, Object> cache = manager.getCache("default");
             assertNotNull(cache);
 
diff --git 
a/components/camel-infinispan/camel-infinispan-embedded/src/test/java/org/apache/camel/component/infinispan/embedded/InfinispanEmbeddedConsumerTest.java
 
b/components/camel-infinispan/camel-infinispan-embedded/src/test/java/org/apache/camel/component/infinispan/embedded/InfinispanEmbeddedConsumerTest.java
index 6709462ad6f0..86ff99cb446d 100644
--- 
a/components/camel-infinispan/camel-infinispan-embedded/src/test/java/org/apache/camel/component/infinispan/embedded/InfinispanEmbeddedConsumerTest.java
+++ 
b/components/camel-infinispan/camel-infinispan-embedded/src/test/java/org/apache/camel/component/infinispan/embedded/InfinispanEmbeddedConsumerTest.java
@@ -34,15 +34,12 @@ public class InfinispanEmbeddedConsumerTest extends 
InfinispanEmbeddedTestSuppor
         MockEndpoint mock = getMockEndpoint("mock:created");
         mock.expectedMessageCount(2);
 
-        
mock.message(0).header(InfinispanConstants.EVENT_TYPE).isEqualTo("CACHE_ENTRY_CREATED");
-        mock.message(0).header(InfinispanConstants.IS_PRE).isEqualTo(true);
-        mock.message(0).header(InfinispanConstants.CACHE_NAME).isNotNull();
-        
mock.message(0).header(InfinispanConstants.KEY).isEqualTo(InfinispanConsumerTestSupport.KEY_ONE);
-
-        
mock.message(1).header(InfinispanConstants.EVENT_TYPE).isEqualTo("CACHE_ENTRY_CREATED");
-        mock.message(1).header(InfinispanConstants.IS_PRE).isEqualTo(false);
-        mock.message(1).header(InfinispanConstants.CACHE_NAME).isNotNull();
-        
mock.message(1).header(InfinispanConstants.KEY).isEqualTo(InfinispanConsumerTestSupport.KEY_ONE);
+        
mock.expectedHeaderValuesReceivedInAnyOrder(InfinispanConstants.EVENT_TYPE, 
"CACHE_ENTRY_CREATED",
+                "CACHE_ENTRY_CREATED");
+        
mock.expectedHeaderValuesReceivedInAnyOrder(InfinispanConstants.IS_PRE, false, 
true);
+        
mock.expectedHeaderValuesReceivedInAnyOrder(InfinispanConstants.CACHE_NAME, 
getCacheName(), getCacheName());
+        mock.expectedHeaderValuesReceivedInAnyOrder(InfinispanConstants.KEY, 
InfinispanConsumerTestSupport.KEY_ONE,
+                InfinispanConsumerTestSupport.KEY_ONE);
 
         getCache().put(InfinispanConsumerTestSupport.KEY_ONE, 
InfinispanConsumerTestSupport.VALUE_ONE);
         mock.assertIsSatisfied();
@@ -55,15 +52,12 @@ public class InfinispanEmbeddedConsumerTest extends 
InfinispanEmbeddedTestSuppor
         MockEndpoint mock = getMockEndpoint("mock:removed");
         mock.expectedMessageCount(2);
 
-        
mock.message(0).header(InfinispanConstants.EVENT_TYPE).isEqualTo("CACHE_ENTRY_REMOVED");
-        mock.message(0).header(InfinispanConstants.IS_PRE).isEqualTo(true);
-        mock.message(0).header(InfinispanConstants.CACHE_NAME).isNotNull();
-        
mock.message(0).header(InfinispanConstants.KEY).isEqualTo(InfinispanConsumerTestSupport.KEY_ONE);
-
-        
mock.message(1).header(InfinispanConstants.EVENT_TYPE).isEqualTo("CACHE_ENTRY_REMOVED");
-        mock.message(1).header(InfinispanConstants.IS_PRE).isEqualTo(false);
-        mock.message(1).header(InfinispanConstants.CACHE_NAME).isNotNull();
-        
mock.message(1).header(InfinispanConstants.KEY).isEqualTo(InfinispanConsumerTestSupport.KEY_ONE);
+        
mock.expectedHeaderValuesReceivedInAnyOrder(InfinispanConstants.EVENT_TYPE, 
"CACHE_ENTRY_REMOVED",
+                "CACHE_ENTRY_REMOVED");
+        
mock.expectedHeaderValuesReceivedInAnyOrder(InfinispanConstants.IS_PRE, false, 
true);
+        
mock.expectedHeaderValuesReceivedInAnyOrder(InfinispanConstants.CACHE_NAME, 
getCacheName(), getCacheName());
+        mock.expectedHeaderValuesReceivedInAnyOrder(InfinispanConstants.KEY, 
InfinispanConsumerTestSupport.KEY_ONE,
+                InfinispanConsumerTestSupport.KEY_ONE);
 
         getCache().remove(InfinispanConsumerTestSupport.KEY_ONE);
 
@@ -77,15 +71,12 @@ public class InfinispanEmbeddedConsumerTest extends 
InfinispanEmbeddedTestSuppor
         MockEndpoint mock = getMockEndpoint("mock:modified");
         mock.expectedMessageCount(2);
 
-        
mock.message(0).header(InfinispanConstants.EVENT_TYPE).isEqualTo("CACHE_ENTRY_MODIFIED");
-        mock.message(0).header(InfinispanConstants.IS_PRE).isEqualTo(true);
-        mock.message(0).header(InfinispanConstants.CACHE_NAME).isNotNull();
-        
mock.message(0).header(InfinispanConstants.KEY).isEqualTo(InfinispanConsumerTestSupport.KEY_ONE);
-
-        
mock.message(1).header(InfinispanConstants.EVENT_TYPE).isEqualTo("CACHE_ENTRY_MODIFIED");
-        mock.message(1).header(InfinispanConstants.IS_PRE).isEqualTo(false);
-        mock.message(1).header(InfinispanConstants.CACHE_NAME).isNotNull();
-        
mock.message(1).header(InfinispanConstants.KEY).isEqualTo(InfinispanConsumerTestSupport.KEY_ONE);
+        
mock.expectedHeaderValuesReceivedInAnyOrder(InfinispanConstants.EVENT_TYPE, 
"CACHE_ENTRY_MODIFIED",
+                "CACHE_ENTRY_MODIFIED");
+        
mock.expectedHeaderValuesReceivedInAnyOrder(InfinispanConstants.IS_PRE, false, 
true);
+        
mock.expectedHeaderValuesReceivedInAnyOrder(InfinispanConstants.CACHE_NAME, 
getCacheName(), getCacheName());
+        mock.expectedHeaderValuesReceivedInAnyOrder(InfinispanConstants.KEY, 
InfinispanConsumerTestSupport.KEY_ONE,
+                InfinispanConsumerTestSupport.KEY_ONE);
 
         getCache().replace(InfinispanConsumerTestSupport.KEY_ONE, 
InfinispanConsumerTestSupport.VALUE_TWO);
 
@@ -99,15 +90,12 @@ public class InfinispanEmbeddedConsumerTest extends 
InfinispanEmbeddedTestSuppor
         MockEndpoint mock = getMockEndpoint("mock:visited");
         mock.expectedMessageCount(2);
 
-        
mock.message(0).header(InfinispanConstants.EVENT_TYPE).isEqualTo("CACHE_ENTRY_VISITED");
-        mock.message(0).header(InfinispanConstants.IS_PRE).isEqualTo(true);
-        mock.message(0).header(InfinispanConstants.CACHE_NAME).isNotNull();
-        
mock.message(0).header(InfinispanConstants.KEY).isEqualTo(InfinispanConsumerTestSupport.KEY_ONE);
-
-        
mock.message(1).header(InfinispanConstants.EVENT_TYPE).isEqualTo("CACHE_ENTRY_VISITED");
-        mock.message(1).header(InfinispanConstants.IS_PRE).isEqualTo(false);
-        mock.message(1).header(InfinispanConstants.CACHE_NAME).isNotNull();
-        
mock.message(1).header(InfinispanConstants.KEY).isEqualTo(InfinispanConsumerTestSupport.KEY_ONE);
+        
mock.expectedHeaderValuesReceivedInAnyOrder(InfinispanConstants.EVENT_TYPE, 
"CACHE_ENTRY_VISITED",
+                "CACHE_ENTRY_VISITED");
+        
mock.expectedHeaderValuesReceivedInAnyOrder(InfinispanConstants.IS_PRE, false, 
true);
+        
mock.expectedHeaderValuesReceivedInAnyOrder(InfinispanConstants.CACHE_NAME, 
getCacheName(), getCacheName());
+        mock.expectedHeaderValuesReceivedInAnyOrder(InfinispanConstants.KEY, 
InfinispanConsumerTestSupport.KEY_ONE,
+                InfinispanConsumerTestSupport.KEY_ONE);
 
         getCache().get(InfinispanConsumerTestSupport.KEY_ONE);
 
diff --git a/components/camel-infinispan/camel-infinispan/pom.xml 
b/components/camel-infinispan/camel-infinispan/pom.xml
index da302309f40f..c66f3df12d4e 100644
--- a/components/camel-infinispan/camel-infinispan/pom.xml
+++ b/components/camel-infinispan/camel-infinispan/pom.xml
@@ -45,25 +45,14 @@
             <groupId>org.apache.camel</groupId>
             <artifactId>camel-infinispan-common</artifactId>
         </dependency>
-        <dependency>
-            <groupId>org.apache.sshd</groupId>
-            <artifactId>sshd-common</artifactId>
-            <version>${sshd-version}</version>
-        </dependency>
         <dependency>
             <groupId>org.infinispan</groupId>
             <artifactId>infinispan-client-hotrod</artifactId>
             <version>${infinispan-version}</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.apache.sshd</groupId>
-                    <artifactId>sshd-common</artifactId>
-                </exclusion>
-            </exclusions>
         </dependency>
         <dependency>
             <groupId>org.infinispan</groupId>
-            <artifactId>infinispan-remote-query-client</artifactId>
+            <artifactId>infinispan-query</artifactId>
             <version>${infinispan-version}</version>
         </dependency>
         <dependency>
diff --git 
a/components/camel-infinispan/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteConsumer.java
 
b/components/camel-infinispan/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteConsumer.java
index 64582cbec3c0..7a79246e3808 100644
--- 
a/components/camel-infinispan/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteConsumer.java
+++ 
b/components/camel-infinispan/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteConsumer.java
@@ -29,12 +29,11 @@ import org.apache.camel.support.service.ServiceHelper;
 import org.apache.camel.support.service.ServiceSupport;
 import org.infinispan.client.hotrod.RemoteCache;
 import org.infinispan.client.hotrod.RemoteCacheManager;
-import org.infinispan.client.hotrod.Search;
 import org.infinispan.client.hotrod.event.ClientEvent;
 import 
org.infinispan.client.hotrod.exceptions.RemoteCacheManagerNotStartedException;
+import org.infinispan.commons.api.query.ContinuousQuery;
+import org.infinispan.commons.api.query.ContinuousQueryListener;
 import org.infinispan.commons.api.query.Query;
-import org.infinispan.query.api.continuous.ContinuousQuery;
-import org.infinispan.query.api.continuous.ContinuousQueryListener;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -103,7 +102,7 @@ public class InfinispanRemoteConsumer
             RemoteCache<Object, Object> remoteCache = 
getCache(RemoteCache.class);
             Query<?> query = 
InfinispanRemoteUtil.buildQuery(getConfiguration().getQueryBuilder(), 
remoteCache);
 
-            continuousQuery = Search.getContinuousQuery(remoteCache);
+            continuousQuery = remoteCache.continuousQuery();
             continuousQuery.addContinuousQueryListener(query, this);
         }
 
@@ -146,7 +145,7 @@ public class InfinispanRemoteConsumer
         @SuppressWarnings("unchecked")
         @Override
         public void doStop() {
-            final RemoteCache cache = getCache(RemoteCache.class);
+            final RemoteCache<Object, Object> cache = 
getCache(RemoteCache.class);
             if (cache != null) {
                 try {
                     cache.removeClientListener(listener);
diff --git 
a/components/camel-infinispan/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteManager.java
 
b/components/camel-infinispan/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteManager.java
index c64334a3f4c8..dc87c45ad31e 100644
--- 
a/components/camel-infinispan/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteManager.java
+++ 
b/components/camel-infinispan/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteManager.java
@@ -170,4 +170,9 @@ public class InfinispanRemoteManager extends ServiceSupport 
implements Infinispa
     public Set<String> getCacheNames() {
         return cacheContainer.getCacheNames();
     }
+
+    @Override
+    public void stopCache(String cacheName) {
+        cacheContainer.stopCache(cacheName);
+    }
 }
diff --git 
a/components/camel-infinispan/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/remote/embeddingstore/EmbeddingStoreUtil.java
 
b/components/camel-infinispan/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/remote/embeddingstore/EmbeddingStoreUtil.java
index e645274e422c..ae0bc9d22106 100644
--- 
a/components/camel-infinispan/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/remote/embeddingstore/EmbeddingStoreUtil.java
+++ 
b/components/camel-infinispan/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/remote/embeddingstore/EmbeddingStoreUtil.java
@@ -20,7 +20,6 @@ import org.apache.camel.CamelContext;
 import 
org.apache.camel.component.infinispan.remote.InfinispanRemoteConfiguration;
 import org.apache.camel.util.ObjectHelper;
 import org.infinispan.api.annotations.indexing.option.VectorSimilarity;
-import org.infinispan.client.hotrod.RemoteCache;
 import org.infinispan.client.hotrod.RemoteCacheManager;
 import org.infinispan.client.hotrod.configuration.ConfigurationBuilder;
 import org.infinispan.commons.marshall.ProtoStreamMarshaller;
@@ -28,7 +27,6 @@ import org.infinispan.protostream.FileDescriptorSource;
 import org.infinispan.protostream.SerializationContext;
 import org.infinispan.protostream.schema.Schema;
 import org.infinispan.protostream.schema.Type;
-import org.infinispan.query.remote.client.ProtobufMetadataManagerConstants;
 
 import static 
org.apache.camel.impl.engine.DefaultComponentResolver.RESOURCE_PATH;
 
@@ -67,7 +65,7 @@ public final class EmbeddingStoreUtil {
                 .addRepeatedField(Type.Scalar.STRING, FIELD_METADATA_KEYS, 4)
                 .addRepeatedField(Type.Scalar.STRING, FIELD_METADATA_VALUES, 5)
                 .build()
-                .toString();
+                .getContent();
     }
 
     public static String getSchemeFileName(InfinispanRemoteConfiguration 
configuration) {
@@ -88,9 +86,11 @@ public final class EmbeddingStoreUtil {
     }
 
     public static void registerSchema(InfinispanRemoteConfiguration 
configuration, RemoteCacheManager cacheContainer) {
-        RemoteCache<Object, Object> metadataCache
-                = 
cacheContainer.getCache(ProtobufMetadataManagerConstants.PROTOBUF_METADATA_CACHE_NAME);
-        metadataCache.put(getSchemeFileName(configuration), 
getSchema(configuration));
+        FileDescriptorSource fileDescriptorSource
+                = 
FileDescriptorSource.fromString(getSchemeFileName(configuration), 
getSchema(configuration));
+        cacheContainer.administration()
+                .schemas()
+                .create(fileDescriptorSource);
     }
 
     public static String getTypeName(InfinispanRemoteConfiguration 
configuration) {
diff --git 
a/components/camel-infinispan/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/remote/protostream/DefaultExchangeHolderProtoAdapter.java
 
b/components/camel-infinispan/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/remote/protostream/DefaultExchangeHolderProtoAdapter.java
index 623af277553b..e86a1083430c 100644
--- 
a/components/camel-infinispan/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/remote/protostream/DefaultExchangeHolderProtoAdapter.java
+++ 
b/components/camel-infinispan/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/remote/protostream/DefaultExchangeHolderProtoAdapter.java
@@ -31,7 +31,7 @@ final class DefaultExchangeHolderProtoAdapter {
         return 
DefaultExchangeHolderUtils.deserialize(serializedExchangeHolderBytes);
     }
 
-    @ProtoField(number = 1, required = true)
+    @ProtoField(number = 1)
     public byte[] serializedExchangeHolderBytes(DefaultExchangeHolder 
defaultExchangeHolder) {
         return DefaultExchangeHolderUtils.serialize(defaultExchangeHolder);
     }
diff --git 
a/components/camel-infinispan/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteEmbeddingStoreIT.java
 
b/components/camel-infinispan/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteEmbeddingStoreIT.java
index def07758e120..1c226598e6d5 100644
--- 
a/components/camel-infinispan/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteEmbeddingStoreIT.java
+++ 
b/components/camel-infinispan/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteEmbeddingStoreIT.java
@@ -18,6 +18,7 @@ package org.apache.camel.component.infinispan.remote;
 
 import java.time.Duration;
 import java.util.List;
+import java.util.Optional;
 
 import dev.langchain4j.data.embedding.Embedding;
 import org.apache.camel.CamelContext;
@@ -34,7 +35,7 @@ import org.infinispan.client.hotrod.RemoteCacheManager;
 import org.infinispan.client.hotrod.configuration.ConfigurationBuilder;
 import org.infinispan.commons.api.BasicCache;
 import org.infinispan.commons.configuration.StringConfiguration;
-import org.infinispan.query.remote.client.ProtobufMetadataManagerConstants;
+import org.infinispan.protostream.schema.Schema;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.params.ParameterizedTest;
@@ -43,8 +44,8 @@ import 
org.testcontainers.shaded.org.apache.commons.lang3.SystemUtils;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertNull;
 import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 public class InfinispanRemoteEmbeddingStoreIT extends 
InfinispanRemoteTestSupport {
     private static final String CACHE_NAME = "camel-infinispan-embeddings";
@@ -87,10 +88,9 @@ public class InfinispanRemoteEmbeddingStoreIT extends 
InfinispanRemoteTestSuppor
         try {
             manager.start();
 
-            BasicCache<Object, Object> metadataCache
-                    = 
manager.getCache(ProtobufMetadataManagerConstants.PROTOBUF_METADATA_CACHE_NAME);
-            Object metadata = 
metadataCache.get(EmbeddingStoreUtil.getSchemeFileName(configuration));
-            assertNull(metadata);
+            Optional<Schema> metadata
+                    = 
cacheContainer.administration().schemas().get(EmbeddingStoreUtil.getSchemeFileName(configuration));
+            assertTrue(metadata.isEmpty());
         } finally {
             manager.stop();
         }
@@ -106,10 +106,9 @@ public class InfinispanRemoteEmbeddingStoreIT extends 
InfinispanRemoteTestSuppor
         try {
             manager.start();
 
-            BasicCache<Object, Object> metadataCache
-                    = 
manager.getCache(ProtobufMetadataManagerConstants.PROTOBUF_METADATA_CACHE_NAME);
-            Object metadata = 
metadataCache.get(EmbeddingStoreUtil.getSchemeFileName(configuration));
-            assertNull(metadata);
+            Optional<Schema> metadata
+                    = 
cacheContainer.administration().schemas().get(EmbeddingStoreUtil.getSchemeFileName(configuration));
+            assertTrue(metadata.isEmpty());
         } finally {
             manager.stop();
         }
@@ -131,8 +130,9 @@ public class InfinispanRemoteEmbeddingStoreIT extends 
InfinispanRemoteTestSuppor
         try {
             manager.start();
 
-            metadataCache = 
manager.getCache(ProtobufMetadataManagerConstants.PROTOBUF_METADATA_CACHE_NAME);
-            Object metadata = 
metadataCache.get(EmbeddingStoreUtil.getSchemeFileName(configuration));
+            Optional<Schema> metadata
+                    = 
cacheContainer.administration().schemas().get(EmbeddingStoreUtil.getSchemeFileName(configuration));
+            assertTrue(metadata.isPresent());
             assertNotNull(metadata);
         } finally {
             if (metadataCache != null) {
diff --git 
a/components/camel-infinispan/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteProducerIT.java
 
b/components/camel-infinispan/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteProducerIT.java
index 996e0f5cbb9f..b26484a61c18 100644
--- 
a/components/camel-infinispan/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteProducerIT.java
+++ 
b/components/camel-infinispan/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteProducerIT.java
@@ -65,7 +65,7 @@ public class InfinispanRemoteProducerIT extends 
InfinispanRemoteTestSupport impl
                         .to("direct:start")
                         .withHeader(InfinispanConstants.OPERATION, 
InfinispanOperation.STATS)
                         .request(ServerStatistics.class)
-                        
.getIntStatistic(ServerStatistics.CURRENT_NR_OF_ENTRIES));
+                        
.getIntStatistic(ServerStatistics.APPROXIMATE_ENTRIES));
     }
 
     // *****************************
diff --git 
a/components/camel-infinispan/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteQueryConsumerIT.java
 
b/components/camel-infinispan/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteQueryConsumerIT.java
index a4619dcae070..779f075ae004 100644
--- 
a/components/camel-infinispan/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteQueryConsumerIT.java
+++ 
b/components/camel-infinispan/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteQueryConsumerIT.java
@@ -26,15 +26,12 @@ import org.apache.camel.component.mock.MockEndpoint;
 import org.awaitility.Awaitility;
 import org.infinispan.client.hotrod.configuration.ConfigurationBuilder;
 import org.infinispan.client.hotrod.marshall.MarshallerUtil;
-import org.infinispan.commons.api.BasicCache;
 import org.infinispan.commons.marshall.ProtoStreamMarshaller;
-import org.infinispan.commons.util.Util;
 import org.infinispan.protostream.FileDescriptorSource;
 import org.infinispan.protostream.SerializationContext;
 import org.infinispan.protostream.domain.User;
 import org.infinispan.protostream.domain.marshallers.GenderMarshaller;
 import org.infinispan.protostream.domain.marshallers.UserMarshaller;
-import org.infinispan.query.remote.client.ProtobufMetadataManagerConstants;
 import org.infinispan.query.remote.client.impl.MarshallerRegistration;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -110,10 +107,9 @@ public class InfinispanRemoteQueryConsumerIT extends 
InfinispanRemoteQueryTestSu
     protected void setupResources() throws Exception {
         super.setupResources();
 
-        String proto = 
Util.read(getClass().getResourceAsStream("/sample_bank_account/bank.proto"));
-
-        BasicCache<Object, Object> cache = 
getCache(ProtobufMetadataManagerConstants.PROTOBUF_METADATA_CACHE_NAME);
-        cache.put("sample_bank_account/bank.proto", proto);
+        cacheContainer.administration()
+                .schemas()
+                
.create(FileDescriptorSource.fromResources("sample_bank_account/bank.proto"));
 
         
MarshallerRegistration.init(MarshallerUtil.getSerializationContext(cacheContainer));
         SerializationContext serCtx = 
MarshallerUtil.getSerializationContext(cacheContainer);
diff --git 
a/components/camel-infinispan/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteQueryProducerIT.java
 
b/components/camel-infinispan/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteQueryProducerIT.java
index f7620fab582d..0b5203e67feb 100644
--- 
a/components/camel-infinispan/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteQueryProducerIT.java
+++ 
b/components/camel-infinispan/camel-infinispan/src/test/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteQueryProducerIT.java
@@ -26,15 +26,12 @@ import 
org.apache.camel.component.infinispan.InfinispanOperation;
 import org.apache.camel.component.infinispan.InfinispanQueryBuilder;
 import org.infinispan.client.hotrod.configuration.ConfigurationBuilder;
 import org.infinispan.client.hotrod.marshall.MarshallerUtil;
-import org.infinispan.commons.api.BasicCache;
 import org.infinispan.commons.marshall.ProtoStreamMarshaller;
-import org.infinispan.commons.util.Util;
 import org.infinispan.protostream.FileDescriptorSource;
 import org.infinispan.protostream.SerializationContext;
 import org.infinispan.protostream.domain.User;
 import org.infinispan.protostream.domain.marshallers.GenderMarshaller;
 import org.infinispan.protostream.domain.marshallers.UserMarshaller;
-import org.infinispan.query.remote.client.ProtobufMetadataManagerConstants;
 import org.infinispan.query.remote.client.impl.MarshallerRegistration;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -108,10 +105,9 @@ public class InfinispanRemoteQueryProducerIT extends 
InfinispanRemoteQueryTestSu
     protected void setupResources() throws Exception {
         super.setupResources();
 
-        String proto = 
Util.read(getClass().getResourceAsStream("/sample_bank_account/bank.proto"));
-
-        BasicCache<Object, Object> cache = 
getCache(ProtobufMetadataManagerConstants.PROTOBUF_METADATA_CACHE_NAME);
-        cache.put("sample_bank_account/bank.proto", proto);
+        cacheContainer.administration()
+                .schemas()
+                
.create(FileDescriptorSource.fromResources("sample_bank_account/bank.proto"));
 
         
MarshallerRegistration.init(MarshallerUtil.getSerializationContext(cacheContainer));
         SerializationContext serCtx = 
MarshallerUtil.getSerializationContext(cacheContainer);
diff --git 
a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_17.adoc 
b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_17.adoc
index ea63708867c0..b885b9ff1eff 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_17.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_17.adoc
@@ -22,6 +22,14 @@ The following option is no longer in use 
`-Dcamel-kamelets.version`.
 Removed automatic fallback to download Kamelet YAML files from GitHub. 
Instead, kamelets are
 now only loaded from embedded `camel-kamelets` JAR.
 
+=== camel-infinispan
+
+`camel-infinispan` has been upgraded to 
https://infinispan.org/blog/2025/11/10/infinispan-16-0[Infinispan 16].
+Virtual threads are enabled by default for embedded mode with 
`camel-infinispan-embedded`.
+
+If you choose to listen for cache events on the `infinispan-embedded` 
consumer, it is possible that events are not processed in a predicatable order.
+Disabling virtual threads by setting system property 
`org.infinispan.threads.virtual` to `false` leads to more predicatable event 
order processing.
+
 === Component deprecation
 
 The `camel-stomp` component is deprecated.
diff --git a/parent/pom.xml b/parent/pom.xml
index edf447e114aa..1d6623a7517e 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -252,8 +252,8 @@
         <icu4j-version>78.1</icu4j-version>
         <ignite-version>2.17.0</ignite-version>
         <impsort-maven-plugin-version>1.12.0</impsort-maven-plugin-version>
-        <infinispan-version>15.2.5.Final</infinispan-version>
-        
<infinispan-protostream-version>15.0.13.Final</infinispan-protostream-version>
+        <infinispan-version>16.0.1</infinispan-version>
+        <infinispan-protostream-version>6.0.2</infinispan-protostream-version>
         <influx-java-driver-version>2.25</influx-java-driver-version>
         
<influx-client-java-driver-version>7.4.0</influx-client-java-driver-version>
         <irclib-version>1.10</irclib-version>
diff --git 
a/test-infra/camel-test-infra-infinispan/src/main/resources/infinispan.xml 
b/test-infra/camel-test-infra-infinispan/src/main/resources/infinispan.xml
index 13aa3f117ca1..755dc6030dd7 100644
--- a/test-infra/camel-test-infra-infinispan/src/main/resources/infinispan.xml
+++ b/test-infra/camel-test-infra-infinispan/src/main/resources/infinispan.xml
@@ -19,10 +19,10 @@
 -->
 <infinispan
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-      xsi:schemaLocation="urn:infinispan:config:15.0 
https://infinispan.org/schemas/infinispan-config-15.0.xsd
-                            urn:infinispan:server:15.0 
https://infinispan.org/schemas/infinispan-server-15.0.xsd";
-      xmlns="urn:infinispan:config:15.0"
-      xmlns:server="urn:infinispan:server:15.0">
+      xsi:schemaLocation="urn:infinispan:config:16.0 
https://infinispan.org/schemas/infinispan-config-16.0.xsd
+                            urn:infinispan:server:16.0 
https://infinispan.org/schemas/infinispan-server-16.0.xsd";
+      xmlns="urn:infinispan:config:16.0"
+      xmlns:server="urn:infinispan:server:16.0">
 
    <cache-container name="default" statistics="true">
       <transport cluster="${infinispan.cluster.name:cluster}" 
stack="${infinispan.cluster.stack:tcp}" node-name="${infinispan.node.name:}"/>
@@ -31,7 +31,7 @@
       </security>
    </cache-container>
 
-   <server xmlns="urn:infinispan:server:15.0">
+   <server xmlns="urn:infinispan:server:16.0">
       <interfaces>
          <interface name="public">
             <inet-address value="${infinispan.bind.address:127.0.0.1}"/>
diff --git 
a/test-infra/camel-test-infra-infinispan/src/main/resources/org/apache/camel/test/infra/infinispan/services/container.properties
 
b/test-infra/camel-test-infra-infinispan/src/main/resources/org/apache/camel/test/infra/infinispan/services/container.properties
index 26aea1925fa1..732373019df2 100644
--- 
a/test-infra/camel-test-infra-infinispan/src/main/resources/org/apache/camel/test/infra/infinispan/services/container.properties
+++ 
b/test-infra/camel-test-infra-infinispan/src/main/resources/org/apache/camel/test/infra/infinispan/services/container.properties
@@ -14,4 +14,4 @@
 ## See the License for the specific language governing permissions and
 ## limitations under the License.
 ## ---------------------------------------------------------------------------
-infinispan.container=quay.io/infinispan/server:15.2.5.Final
+infinispan.container=quay.io/infinispan/server:16.0.1


Reply via email to