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-quarkus.git
The following commit(s) were added to refs/heads/main by this push:
new 96fc274979 Add support for InfinispanRemoteAggregationRepository
96fc274979 is described below
commit 96fc274979685fe5fd71fbb19a768e5c9858ee8b
Author: James Netherton <[email protected]>
AuthorDate: Thu Jul 7 11:09:26 2022 +0100
Add support for InfinispanRemoteAggregationRepository
Fixes #3657
---
.../pages/reference/extensions/infinispan.adoc | 13 ++++----
extensions/infinispan/runtime/pom.xml | 6 ----
.../runtime/src/main/doc/configuration.adoc | 6 ++++
.../runtime/src/main/doc/limitations.adoc | 3 --
...anRemoteAggregationRepositorySubstitutions.java | 31 -------------------
.../component/infinispan/InfinispanRoutes.java | 35 ++++++++++------------
.../src/main/resources/application.properties | 3 ++
.../component/infinispan/InfinispanTest.java | 2 --
8 files changed, 31 insertions(+), 68 deletions(-)
diff --git a/docs/modules/ROOT/pages/reference/extensions/infinispan.adoc
b/docs/modules/ROOT/pages/reference/extensions/infinispan.adoc
index 67c5aa5534..b71ecaaecc 100644
--- a/docs/modules/ROOT/pages/reference/extensions/infinispan.adoc
+++ b/docs/modules/ROOT/pages/reference/extensions/infinispan.adoc
@@ -39,15 +39,14 @@ Or add the coordinates to your existing project:
Check the xref:user-guide/index.adoc[User guide] for more information about
writing Camel Quarkus applications.
-== Camel Quarkus limitations
-
-=== InfinispanRemoteAggregationRepository is unsupported
-
-At present the `InfinispanRemoteAggregationRepository` is not supported. The
are some planned https://github.com/apache/camel-quarkus/issues/3657[future
enhancements] to make this possible.
-
-
== Additional Camel Quarkus configuration
+=== Infinispan Client Configuration
+
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].
+=== 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/extensions/infinispan/runtime/pom.xml
b/extensions/infinispan/runtime/pom.xml
index d8bf30cac1..c26a379262 100644
--- a/extensions/infinispan/runtime/pom.xml
+++ b/extensions/infinispan/runtime/pom.xml
@@ -51,12 +51,6 @@
<groupId>org.apache.camel</groupId>
<artifactId>camel-infinispan</artifactId>
</dependency>
-
- <dependency>
- <groupId>org.graalvm.nativeimage</groupId>
- <artifactId>svm</artifactId>
- <scope>provided</scope>
- </dependency>
</dependencies>
<build>
diff --git a/extensions/infinispan/runtime/src/main/doc/configuration.adoc
b/extensions/infinispan/runtime/src/main/doc/configuration.adoc
index 000b2d0bb4..f4bd4fac58 100644
--- a/extensions/infinispan/runtime/src/main/doc/configuration.adoc
+++ b/extensions/infinispan/runtime/src/main/doc/configuration.adoc
@@ -1,2 +1,8 @@
+=== Infinispan Client Configuration
+
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].
+
+=== 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/extensions/infinispan/runtime/src/main/doc/limitations.adoc
b/extensions/infinispan/runtime/src/main/doc/limitations.adoc
deleted file mode 100644
index c404a66ca9..0000000000
--- a/extensions/infinispan/runtime/src/main/doc/limitations.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-=== InfinispanRemoteAggregationRepository is unsupported
-
-At present the `InfinispanRemoteAggregationRepository` is not supported. The
are some planned https://github.com/apache/camel-quarkus/issues/3657[future
enhancements] to make this possible.
diff --git
a/extensions/infinispan/runtime/src/main/java/org/apache/camel/quarkus/component/infinispan/graal/InfinispanRemoteAggregationRepositorySubstitutions.java
b/extensions/infinispan/runtime/src/main/java/org/apache/camel/quarkus/component/infinispan/graal/InfinispanRemoteAggregationRepositorySubstitutions.java
deleted file mode 100644
index 0d162a6a8f..0000000000
---
a/extensions/infinispan/runtime/src/main/java/org/apache/camel/quarkus/component/infinispan/graal/InfinispanRemoteAggregationRepositorySubstitutions.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.quarkus.component.infinispan.graal;
-
-import com.oracle.svm.core.annotate.Substitute;
-import com.oracle.svm.core.annotate.TargetClass;
-import
org.apache.camel.component.infinispan.remote.InfinispanRemoteAggregationRepository;
-
-// TODO: Remove this when https://github.com/apache/camel-quarkus/issues/3657
is solved
-@TargetClass(InfinispanRemoteAggregationRepository.class)
-final class InfinispanRemoteAggregationRepositorySubstitutions {
-
- @Substitute
- public void doStart() {
- throw new
UnsupportedOperationException("InfinispanRemoteAggregationRepository is not
supported");
- }
-}
diff --git
a/integration-tests/infinispan/src/main/java/org/apache/camel/quarkus/component/infinispan/InfinispanRoutes.java
b/integration-tests/infinispan/src/main/java/org/apache/camel/quarkus/component/infinispan/InfinispanRoutes.java
index 8c1171c739..5b0b5797f6 100644
---
a/integration-tests/infinispan/src/main/java/org/apache/camel/quarkus/component/infinispan/InfinispanRoutes.java
+++
b/integration-tests/infinispan/src/main/java/org/apache/camel/quarkus/component/infinispan/InfinispanRoutes.java
@@ -166,20 +166,19 @@ public class InfinispanRoutes extends RouteBuilder {
.autoStartup(false)
.to("mock:camelResultCreated");
- // TODO: Reinstate aggregationRepository routes this
https://github.com/apache/camel-quarkus/issues/3657
- //from("direct:camelAggregation")
- // .aggregate(header(CORRELATOR_HEADER))
- //
.aggregationRepository(createAggregationRepository("infinispan"))
- // .aggregationStrategy(createAggregationStrategy())
- // .completionSize(COMPLETION_SIZE)
- // .to("mock:camelAggregationResult");
-
- //from("direct:quarkusAggregation")
- // .aggregate(header(CORRELATOR_HEADER))
- //
.aggregationRepository(createAggregationRepository("infinispan-quarkus"))
- // .aggregationStrategy(createAggregationStrategy())
- // .completionSize(COMPLETION_SIZE)
- // .to("mock:quarkusAggregationResult");
+ from("direct:camelAggregation")
+ .aggregate(header(CORRELATOR_HEADER))
+
.aggregationRepository(createAggregationRepository("infinispan"))
+ .aggregationStrategy(createAggregationStrategy())
+ .completionSize(COMPLETION_SIZE)
+ .to("mock:camelAggregationResult");
+
+ from("direct:quarkusAggregation")
+ .aggregate(header(CORRELATOR_HEADER))
+
.aggregationRepository(createAggregationRepository("infinispan-quarkus"))
+ .aggregationStrategy(createAggregationStrategy())
+ .completionSize(COMPLETION_SIZE)
+ .to("mock:quarkusAggregationResult");
from("direct:camelIdempotent")
.idempotentConsumer(header("MessageID"),
createIdempotentRepository("infinispan"))
@@ -247,11 +246,9 @@ public class InfinispanRoutes extends RouteBuilder {
InfinispanRemoteComponent component =
camelContext.getComponent(componentName, InfinispanRemoteComponent.class);
InfinispanRemoteConfiguration configuration =
component.getConfiguration().clone();
configuration.setCacheContainerConfiguration(getConfigurationBuilder());
- if (componentName.equals("infinispan-quarkus")) {
- Set<RemoteCacheManager> beans =
camelContext.getRegistry().findByType(RemoteCacheManager.class);
- RemoteCacheManager cacheManager = beans.iterator().next();
- configuration.setCacheContainer(cacheManager);
- }
+ Set<RemoteCacheManager> beans =
camelContext.getRegistry().findByType(RemoteCacheManager.class);
+ RemoteCacheManager cacheManager = beans.iterator().next();
+ configuration.setCacheContainer(cacheManager);
return configuration;
}
diff --git
a/integration-tests/infinispan/src/main/resources/application.properties
b/integration-tests/infinispan/src/main/resources/application.properties
index 5c1d502480..d07b4f4fef 100644
--- a/integration-tests/infinispan/src/main/resources/application.properties
+++ b/integration-tests/infinispan/src/main/resources/application.properties
@@ -15,3 +15,6 @@
## limitations under the License.
## ---------------------------------------------------------------------------
quarkus.infinispan-client.devservices.enabled=false
+
+# Required by InfinispanRemoteAggregationRepository
+quarkus.camel.native.reflection.serialization-enabled=true
diff --git
a/integration-tests/infinispan/src/test/java/org/apache/camel/quarkus/component/infinispan/InfinispanTest.java
b/integration-tests/infinispan/src/test/java/org/apache/camel/quarkus/component/infinispan/InfinispanTest.java
index 34aff1e430..4e27f05239 100644
---
a/integration-tests/infinispan/src/test/java/org/apache/camel/quarkus/component/infinispan/InfinispanTest.java
+++
b/integration-tests/infinispan/src/test/java/org/apache/camel/quarkus/component/infinispan/InfinispanTest.java
@@ -22,7 +22,6 @@ import io.quarkus.test.common.QuarkusTestResource;
import io.quarkus.test.junit.QuarkusTest;
import io.restassured.RestAssured;
import org.junit.jupiter.api.AfterEach;
-import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
@@ -52,7 +51,6 @@ public class InfinispanTest {
}
}
- @Disabled("https://github.com/apache/camel-quarkus/issues/3657")
@ParameterizedTest
@MethodSource("componentNames")
public void aggregate(String componentName) {