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