You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ja...@apache.org on 2023/04/27 10:04:10 UTC
[camel-quarkus] 03/03: Add workaround for RemoteCacheManager bean discovery #4841
This is an automated email from the ASF dual-hosted git repository.
jamesnetherton pushed a commit to branch quarkus-main
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
commit 255cf9c76223b1996990e707fb3f00e28ffdb33f
Author: James Netherton <ja...@gmail.com>
AuthorDate: Thu Apr 27 11:03:48 2023 +0100
Add workaround for RemoteCacheManager bean discovery #4841
---
.../pages/reference/extensions/infinispan.adoc | 23 ++++++++++++++++++++++
.../runtime/src/main/doc/configuration.adoc | 23 ++++++++++++++++++++++
.../infinispan/InfinispanQuarkusClientRoutes.java | 7 +++++++
3 files changed, 53 insertions(+)
diff --git a/docs/modules/ROOT/pages/reference/extensions/infinispan.adoc b/docs/modules/ROOT/pages/reference/extensions/infinispan.adoc
index 20cfea3021..8df287b537 100644
--- a/docs/modules/ROOT/pages/reference/extensions/infinispan.adoc
+++ b/docs/modules/ROOT/pages/reference/extensions/infinispan.adoc
@@ -54,6 +54,29 @@ endif::[]
You can either configure the Infinispan client via the relevant Camel Infinispan component & endpoint options, or you
may use the https://quarkus.io/guides/infinispan-client#configuration-reference[Quarkus Infinispan extension configuration properties].
+Note that if you choose to use Quarkus Infinispan configuration properties, you *must* add an injection point for the `RemoteCacheClient` in order for it to be discoverable by the Camel Infinispan component. For example:
+
+[source,java]
+----
+public class Routes extends RouteBuilder {
+ // Injects the default unnamed RemoteCacheManager
+ @Inject
+ RemoteCacheManager cacheManager;
+
+ // If configured, injects an optional named RemoteCacheManager
+ @Inject
+ @InfinispanClientName("myNamedClient")
+ RemoteCacheManager namedCacheManager;
+
+ @Override
+ public void configure() {
+ // Route configuration here...
+ }
+}
+
+----
+
+
[id="extensions-infinispan-configuration-camel-infinispan-infinispanremoteaggregationrepository-in-native-mode"]
=== Camel Infinispan `InfinispanRemoteAggregationRepository` in native mode
diff --git a/extensions/infinispan/runtime/src/main/doc/configuration.adoc b/extensions/infinispan/runtime/src/main/doc/configuration.adoc
index f4bd4fac58..d30b5b4108 100644
--- a/extensions/infinispan/runtime/src/main/doc/configuration.adoc
+++ b/extensions/infinispan/runtime/src/main/doc/configuration.adoc
@@ -3,6 +3,29 @@
You can either configure the Infinispan client via the relevant Camel Infinispan component & endpoint options, or you
may use the https://quarkus.io/guides/infinispan-client#configuration-reference[Quarkus Infinispan extension configuration properties].
+Note that if you choose to use Quarkus Infinispan configuration properties, you *must* add an injection point for the `RemoteCacheClient` in order for it to be discoverable by the Camel Infinispan component. For example:
+
+[source,java]
+----
+public class Routes extends RouteBuilder {
+ // Injects the default unnamed RemoteCacheManager
+ @Inject
+ RemoteCacheManager cacheManager;
+
+ // If configured, injects an optional named RemoteCacheManager
+ @Inject
+ @InfinispanClientName("myNamedClient")
+ RemoteCacheManager namedCacheManager;
+
+ @Override
+ public void configure() {
+ // Route configuration here...
+ }
+}
+
+----
+
+
=== Camel Infinispan `InfinispanRemoteAggregationRepository` in native mode
If you chose to use the `InfinispanRemoteAggregationRepository` in native mode, then you must xref:extensions/core.adoc#quarkus.camel.native.reflection.serialization-enabled[enable native serialization support].
diff --git a/integration-tests/infinispan-quarkus-client/src/main/java/org/apache/camel/quarkus/component/infinispan/InfinispanQuarkusClientRoutes.java b/integration-tests/infinispan-quarkus-client/src/main/java/org/apache/camel/quarkus/component/infinispan/InfinispanQuarkusClientRoutes.java
index 7f4c291606..4baa067bf7 100644
--- a/integration-tests/infinispan-quarkus-client/src/main/java/org/apache/camel/quarkus/component/infinispan/InfinispanQuarkusClientRoutes.java
+++ b/integration-tests/infinispan-quarkus-client/src/main/java/org/apache/camel/quarkus/component/infinispan/InfinispanQuarkusClientRoutes.java
@@ -18,6 +18,8 @@ package org.apache.camel.quarkus.component.infinispan;
import java.util.Set;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
import org.apache.camel.CamelContext;
import org.apache.camel.component.infinispan.remote.InfinispanRemoteComponent;
import org.apache.camel.component.infinispan.remote.InfinispanRemoteConfiguration;
@@ -29,8 +31,13 @@ import org.infinispan.client.hotrod.configuration.Configuration;
import org.infinispan.client.hotrod.configuration.ConfigurationBuilder;
import org.infinispan.commons.marshall.ProtoStreamMarshaller;
+@ApplicationScoped
public class InfinispanQuarkusClientRoutes extends InfinispanCommonRoutes {
+ // TODO: This should not be required: https://github.com/apache/camel-quarkus/issues/4841
+ @Inject
+ RemoteCacheManager cacheManager;
+
@Override
protected Configuration getConfigurationBuilder() {
Config config = ConfigProvider.getConfig();