This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch inf in repository https://gitbox.apache.org/repos/asf/camel.git
commit 94b7a2549f745c3dde13b8b700bdc026738321da Author: Claus Ibsen <[email protected]> AuthorDate: Mon Oct 6 14:36:23 2025 +0200 CAMEL-22496: camel-infinispan - Use the newer Query API instead of old deprecated --- .../infinispan/InfinispanQueryBuilder.java | 9 +++--- .../embedded/InfinispanEmbeddedConsumer.java | 6 ++-- .../embedded/InfinispanEmbeddedProducer.java | 6 ++-- .../embedded/InfinispanEmbeddedUtil.java | 6 ++-- .../remote/InfinispanRemoteConsumer.java | 2 +- .../remote/InfinispanRemoteProducer.java | 6 ++-- .../infinispan/remote/InfinispanRemoteUtil.java | 6 ++-- .../InfinispanVectorQueryBuilder.java | 9 +++--- .../remote/InfinispanRemoteQueryConsumerIT.java | 6 ++-- .../remote/InfinispanRemoteQueryProducerIT.java | 4 +-- .../ROOT/pages/camel-4x-upgrade-guide-4_16.adoc | 35 ++++++++++++++++++++++ .../modules/ROOT/pages/camel-4x-upgrade-guide.adoc | 1 + 12 files changed, 67 insertions(+), 29 deletions(-) diff --git a/components/camel-infinispan/camel-infinispan-common/src/main/java/org/apache/camel/component/infinispan/InfinispanQueryBuilder.java b/components/camel-infinispan/camel-infinispan-common/src/main/java/org/apache/camel/component/infinispan/InfinispanQueryBuilder.java index 7f64d2be99db..13f78940e706 100644 --- a/components/camel-infinispan/camel-infinispan-common/src/main/java/org/apache/camel/component/infinispan/InfinispanQueryBuilder.java +++ b/components/camel-infinispan/camel-infinispan-common/src/main/java/org/apache/camel/component/infinispan/InfinispanQueryBuilder.java @@ -16,14 +16,15 @@ */ package org.apache.camel.component.infinispan; -import org.infinispan.query.dsl.Query; -import org.infinispan.query.dsl.QueryFactory; +import org.infinispan.commons.api.BasicCache; +import org.infinispan.commons.api.query.Query; @FunctionalInterface public interface InfinispanQueryBuilder { - Query build(QueryFactory queryFactory); + + Query<?> build(BasicCache<?, ?> cache); static InfinispanQueryBuilder create(String query) { - return qf -> qf.create(query); + return cache -> cache.query(query); } } 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 398bab6d9916..5a6037cadd8d 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,19 +28,19 @@ 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.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; -import org.infinispan.query.dsl.Query; public class InfinispanEmbeddedConsumer extends InfinispanConsumer<EmbeddedCacheManager, InfinispanEmbeddedManager, InfinispanEmbeddedConfiguration> { + private Service handler; - public InfinispanEmbeddedConsumer( - InfinispanEndpoint endpoint, + public InfinispanEmbeddedConsumer(InfinispanEndpoint endpoint, Processor processor, String cacheName, InfinispanEmbeddedManager manager, diff --git a/components/camel-infinispan/camel-infinispan-embedded/src/main/java/org/apache/camel/component/infinispan/embedded/InfinispanEmbeddedProducer.java b/components/camel-infinispan/camel-infinispan-embedded/src/main/java/org/apache/camel/component/infinispan/embedded/InfinispanEmbeddedProducer.java index 354a2d5649e6..fc2af696866a 100644 --- a/components/camel-infinispan/camel-infinispan-embedded/src/main/java/org/apache/camel/component/infinispan/embedded/InfinispanEmbeddedProducer.java +++ b/components/camel-infinispan/camel-infinispan-embedded/src/main/java/org/apache/camel/component/infinispan/embedded/InfinispanEmbeddedProducer.java @@ -20,11 +20,11 @@ import org.apache.camel.Message; import org.apache.camel.component.infinispan.InfinispanProducer; import org.apache.camel.spi.InvokeOnHeader; import org.infinispan.Cache; -import org.infinispan.query.dsl.Query; +import org.infinispan.commons.api.query.Query; public class InfinispanEmbeddedProducer extends InfinispanProducer<InfinispanEmbeddedManager, InfinispanEmbeddedConfiguration> { - public InfinispanEmbeddedProducer( - InfinispanEmbeddedEndpoint endpoint, + + public InfinispanEmbeddedProducer(InfinispanEmbeddedEndpoint endpoint, String cacheName, InfinispanEmbeddedManager manager, InfinispanEmbeddedConfiguration configuration) { diff --git a/components/camel-infinispan/camel-infinispan-embedded/src/main/java/org/apache/camel/component/infinispan/embedded/InfinispanEmbeddedUtil.java b/components/camel-infinispan/camel-infinispan-embedded/src/main/java/org/apache/camel/component/infinispan/embedded/InfinispanEmbeddedUtil.java index 8d992bbb449f..c8585986a04a 100644 --- a/components/camel-infinispan/camel-infinispan-embedded/src/main/java/org/apache/camel/component/infinispan/embedded/InfinispanEmbeddedUtil.java +++ b/components/camel-infinispan/camel-infinispan-embedded/src/main/java/org/apache/camel/component/infinispan/embedded/InfinispanEmbeddedUtil.java @@ -22,11 +22,11 @@ import org.apache.camel.component.infinispan.InfinispanConstants; import org.apache.camel.component.infinispan.InfinispanQueryBuilder; import org.apache.camel.component.infinispan.InfinispanUtil; import org.infinispan.Cache; +import org.infinispan.commons.api.query.Query; import org.infinispan.context.Flag; -import org.infinispan.query.Search; -import org.infinispan.query.dsl.Query; public final class InfinispanEmbeddedUtil extends InfinispanUtil { + protected InfinispanEmbeddedUtil() { } @@ -53,6 +53,6 @@ public final class InfinispanEmbeddedUtil extends InfinispanUtil { } public static Query<?> buildQuery(InfinispanQueryBuilder queryBuilder, Cache<Object, Object> cache) { - return queryBuilder != null ? queryBuilder.build(Search.getQueryFactory(cache)) : null; + return queryBuilder != null ? queryBuilder.build(cache) : null; } } 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 7e8de630142f..64582cbec3c0 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 @@ -32,9 +32,9 @@ 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.Query; import org.infinispan.query.api.continuous.ContinuousQuery; import org.infinispan.query.api.continuous.ContinuousQueryListener; -import org.infinispan.query.dsl.Query; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/components/camel-infinispan/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteProducer.java b/components/camel-infinispan/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteProducer.java index 33ef40e1d469..925988e478dc 100644 --- a/components/camel-infinispan/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteProducer.java +++ b/components/camel-infinispan/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteProducer.java @@ -21,11 +21,11 @@ import org.apache.camel.component.infinispan.InfinispanEndpoint; import org.apache.camel.component.infinispan.InfinispanProducer; import org.apache.camel.spi.InvokeOnHeader; import org.infinispan.client.hotrod.RemoteCache; -import org.infinispan.query.dsl.Query; +import org.infinispan.commons.api.query.Query; public class InfinispanRemoteProducer extends InfinispanProducer<InfinispanRemoteManager, InfinispanRemoteConfiguration> { - public InfinispanRemoteProducer( - InfinispanEndpoint endpoint, + + public InfinispanRemoteProducer(InfinispanEndpoint endpoint, String cacheName, InfinispanRemoteManager manager, InfinispanRemoteConfiguration configuration) { diff --git a/components/camel-infinispan/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteUtil.java b/components/camel-infinispan/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteUtil.java index 2e77fc76a499..e4a32f7fa772 100644 --- a/components/camel-infinispan/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteUtil.java +++ b/components/camel-infinispan/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/remote/InfinispanRemoteUtil.java @@ -25,10 +25,10 @@ import org.apache.camel.component.infinispan.remote.embeddingstore.EmbeddingStor import org.apache.camel.component.infinispan.remote.embeddingstore.InfinispanVectorQueryBuilder; import org.infinispan.client.hotrod.Flag; import org.infinispan.client.hotrod.RemoteCache; -import org.infinispan.client.hotrod.Search; -import org.infinispan.query.dsl.Query; +import org.infinispan.commons.api.query.Query; public final class InfinispanRemoteUtil extends InfinispanUtil { + protected InfinispanRemoteUtil() { } @@ -60,6 +60,6 @@ public final class InfinispanRemoteUtil extends InfinispanUtil { } public static Query<?> buildQuery(InfinispanQueryBuilder queryBuilder, RemoteCache<Object, Object> cache) { - return queryBuilder != null ? queryBuilder.build(Search.getQueryFactory(cache)) : null; + return queryBuilder != null ? queryBuilder.build(cache) : null; } } diff --git a/components/camel-infinispan/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/remote/embeddingstore/InfinispanVectorQueryBuilder.java b/components/camel-infinispan/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/remote/embeddingstore/InfinispanVectorQueryBuilder.java index ceecc9bb1c12..76f1f75003b8 100644 --- a/components/camel-infinispan/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/remote/embeddingstore/InfinispanVectorQueryBuilder.java +++ b/components/camel-infinispan/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/remote/embeddingstore/InfinispanVectorQueryBuilder.java @@ -17,8 +17,8 @@ package org.apache.camel.component.infinispan.remote.embeddingstore; import org.apache.camel.component.infinispan.InfinispanQueryBuilder; -import org.infinispan.query.dsl.Query; -import org.infinispan.query.dsl.QueryFactory; +import org.infinispan.commons.api.BasicCache; +import org.infinispan.commons.api.query.Query; public class InfinispanVectorQueryBuilder implements InfinispanQueryBuilder { private static final String QUERY_TEMPLATE = "select i, score(i) from %s i where i.embedding <-> [:vector]~:distance"; @@ -31,8 +31,9 @@ public class InfinispanVectorQueryBuilder implements InfinispanQueryBuilder { } @Override - public Query<?> build(QueryFactory queryFactory) { - Query<?> query = InfinispanQueryBuilder.create(QUERY_TEMPLATE.formatted(typeName)).build(queryFactory); + public Query<?> build(BasicCache<?, ?> cache) { + cache.query(QUERY_TEMPLATE.formatted(typeName)); + Query<?> query = cache.query(QUERY_TEMPLATE.formatted(typeName)); query.setParameter("vector", vector); query.setParameter("distance", distance); return query; 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 c71fbce54a56..a4619dcae070 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 @@ -45,15 +45,15 @@ import static org.junit.jupiter.api.Assertions.assertTrue; public class InfinispanRemoteQueryConsumerIT extends InfinispanRemoteQueryTestSupport { @BindToRegistry("continuousQueryBuilder") private InfinispanQueryBuilder continuousQueryBuilder - = qf -> qf.from(User.class).having("name").like("CQ%").build(); + = qf -> qf.query("FROM sample_bank_account.User WHERE name LIKE 'CQ%'"); @BindToRegistry("continuousQueryBuilderNoMatch") private InfinispanQueryBuilder continuousQueryBuilderNoMatch - = qf -> qf.from(User.class).having("name").like("%TEST%").build(); + = qf -> qf.query("FROM sample_bank_account.User WHERE name LIKE '%TEST%'"); @BindToRegistry("continuousQueryBuilderAll") private InfinispanQueryBuilder continuousQueryBuilderAll - = qf -> qf.from(User.class).having("name").like("%Q0%").build(); + = qf -> qf.query("FROM sample_bank_account.User WHERE name LIKE '%Q0%'"); // ***************************** // 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 3ecb817d0e13..f7620fab582d 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 @@ -50,11 +50,11 @@ public class InfinispanRemoteQueryProducerIT extends InfinispanRemoteQueryTestSu @BindToRegistry("noResultQueryBuilder") private InfinispanQueryBuilder noResultQueryBuilder - = qf -> qf.from(User.class).having("name").like("%abc%").build(); + = qf -> qf.query("FROM sample_bank_account.User WHERE name LIKE '%abc%'"); @BindToRegistry("withResultQueryBuilder") private InfinispanQueryBuilder withResultQueryBuilder - = qf -> qf.from(User.class).having("name").like("%A").build(); + = qf -> qf.query("FROM sample_bank_account.User WHERE name LIKE '%A'"); // ***************************** // diff --git a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_16.adoc b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_16.adoc new file mode 100644 index 000000000000..e9eea83f3f0c --- /dev/null +++ b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_16.adoc @@ -0,0 +1,35 @@ += Apache Camel 4.x Upgrade Guide + +This document is for helping you upgrade your Apache Camel application +from Camel 4.x to 4.y. For example, if you are upgrading Camel 4.0 to 4.2, then you should follow the guides +from both 4.0 to 4.1 and 4.1 to 4.2. + +[NOTE] +==== +https://github.com/apache/camel-upgrade-recipes/[The Camel Upgrade Recipes project] provides automated assistance for some common migration tasks. +Note that manual migration is still required. +See the xref:camel-upgrade-recipes-tool.adoc[documentation] page for details. +==== + +== Upgrading Camel 4.15 to 4.16 + +=== camel-infinispan + +The `queryBuilder` option on `camel-infinispan` endpoint has been migrated to no longer use the deprecated query factory +`org.infinispan.query.dsl.QueryFactory` to the new query API that is based on ickle query syntax. + +This means old code such: + +[source,java] +---- + private InfinispanQueryBuilder continuousQueryBuilder + = qf -> qf.from(User.class).having("name").like("CQ%").build(); +---- + +Should use the https://infinispan.org/docs/stable/titles/query/query.html#ickle-query-language[ickle] query syntax: + +[source,java] +---- + private InfinispanQueryBuilder continuousQueryBuilder + = qf -> qf.query("FROM sample_bank_account.User WHERE name LIKE 'CQ%'"); +---- \ No newline at end of file diff --git a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide.adoc b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide.adoc index 601f0a47721e..c46de3e86fd0 100644 --- a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide.adoc +++ b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide.adoc @@ -24,6 +24,7 @@ You can find the upgrade guide for each release in the following pages: - xref:camel-4x-upgrade-guide-4_13.adoc[Upgrade guide 4.12 -> 4.13] - xref:camel-4x-upgrade-guide-4_14.adoc[Upgrade guide 4.13 -> 4.14] - xref:camel-4x-upgrade-guide-4_15.adoc[Upgrade guide 4.14 -> 4.15] +- xref:camel-4x-upgrade-guide-4_15.adoc[Upgrade guide 4.15 -> 4.16] [NOTE] ====
