This is an automated email from the ASF dual-hosted git repository.
jamesnetherton pushed a commit to branch camel-main
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
The following commit(s) were added to refs/heads/camel-main by this push:
new f6f25d0652 Adapt to Camel switching to SmallRye Fault Tolerance
programmatic APIs
f6f25d0652 is described below
commit f6f25d0652e34686190b43f5c43defc85299c225
Author: James Netherton <[email protected]>
AuthorDate: Tue Apr 29 08:36:33 2025 +0100
Adapt to Camel switching to SmallRye Fault Tolerance programmatic APIs
---
.../microprofile-fault-tolerance/runtime/pom.xml | 4 ++
.../MicroProfileFaultToleranceRoutes.java | 2 +-
.../MicroprofileFaultToleranceProducers.java | 50 +++++-----------------
.../MicroprofileFaultToleranceResource.java | 17 ++++----
...icroProfileFaultToleranceConfigurationTest.java | 2 +-
...fileFaultToleranceConfigurationTestProfile.java | 4 +-
pom.xml | 1 +
poms/bom/pom.xml | 11 +++++
poms/bom/src/main/generated/flattened-full-pom.xml | 11 +++++
.../src/main/generated/flattened-reduced-pom.xml | 11 +++++
.../generated/flattened-reduced-verbose-pom.xml | 11 +++++
11 files changed, 72 insertions(+), 52 deletions(-)
diff --git a/extensions/microprofile-fault-tolerance/runtime/pom.xml
b/extensions/microprofile-fault-tolerance/runtime/pom.xml
index 13613102c0..04fee06a0f 100644
--- a/extensions/microprofile-fault-tolerance/runtime/pom.xml
+++ b/extensions/microprofile-fault-tolerance/runtime/pom.xml
@@ -40,6 +40,10 @@
<groupId>io.quarkus</groupId>
<artifactId>quarkus-smallrye-fault-tolerance</artifactId>
</dependency>
+ <dependency>
+ <groupId>io.smallrye</groupId>
+ <artifactId>smallrye-fault-tolerance-standalone</artifactId>
+ </dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-core</artifactId>
diff --git
a/integration-tests/microprofile-fault-tolerance/src/main/java/org/apache/camel/quarkus/component/microprofile/it/faulttolerance/MicroProfileFaultToleranceRoutes.java
b/integration-tests/microprofile-fault-tolerance/src/main/java/org/apache/camel/quarkus/component/microprofile/it/faulttolerance/MicroProfileFaultToleranceRoutes.java
index 267fa2ea24..ec9dd5ba30 100644
---
a/integration-tests/microprofile-fault-tolerance/src/main/java/org/apache/camel/quarkus/component/microprofile/it/faulttolerance/MicroProfileFaultToleranceRoutes.java
+++
b/integration-tests/microprofile-fault-tolerance/src/main/java/org/apache/camel/quarkus/component/microprofile/it/faulttolerance/MicroProfileFaultToleranceRoutes.java
@@ -97,7 +97,7 @@ public class MicroProfileFaultToleranceRoutes extends
RouteBuilder {
from("direct:faultToleranceWithTimeoutCustomExecutor")
.circuitBreaker()
-
.faultToleranceConfiguration().timeoutEnabled(true).timeoutScheduledExecutorService("myThreadPool")
+
.faultToleranceConfiguration().timeoutEnabled(true).threadOffloadExecutorService("customExecutorService")
.timeoutDuration(500).end()
.process(exchange -> {
AtomicInteger counter =
MicroProfileFaultToleranceHelper.getCounter("timeoutCustomExecutor");
diff --git
a/integration-tests/microprofile-fault-tolerance/src/main/java/org/apache/camel/quarkus/component/microprofile/it/faulttolerance/MicroprofileFaultToleranceProducers.java
b/integration-tests/microprofile-fault-tolerance/src/main/java/org/apache/camel/quarkus/component/microprofile/it/faulttolerance/MicroprofileFaultToleranceProducers.java
index 6939276a63..ec284a6345 100644
---
a/integration-tests/microprofile-fault-tolerance/src/main/java/org/apache/camel/quarkus/component/microprofile/it/faulttolerance/MicroprofileFaultToleranceProducers.java
+++
b/integration-tests/microprofile-fault-tolerance/src/main/java/org/apache/camel/quarkus/component/microprofile/it/faulttolerance/MicroprofileFaultToleranceProducers.java
@@ -20,61 +20,31 @@ import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
-import io.smallrye.faulttolerance.core.FaultToleranceStrategy;
-import io.smallrye.faulttolerance.core.circuit.breaker.CircuitBreaker;
-import io.smallrye.faulttolerance.core.stopwatch.SystemStopwatch;
-import io.smallrye.faulttolerance.core.timer.ThreadTimer;
-import io.smallrye.faulttolerance.core.util.ExceptionDecision;
+import io.smallrye.faulttolerance.api.TypedGuard;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.enterprise.inject.Disposes;
import jakarta.inject.Named;
import jakarta.inject.Singleton;
+import org.apache.camel.Exchange;
@ApplicationScoped
public class MicroprofileFaultToleranceProducers {
-
@Singleton
- @Named("customCircuitBreaker")
- CircuitBreaker<Integer> produceCustomCircuitBreaker(ThreadTimer
threadTimer) {
- FaultToleranceStrategy<Integer> delegate = ctx -> null;
- return new CircuitBreaker<>(delegate, "description",
ExceptionDecision.ALWAYS_FAILURE, 10, 40, 0.1,
- 2, SystemStopwatch.INSTANCE, threadTimer) {
- @Override
- public String toString() {
- return "customCircuitBreaker";
- }
- };
+ @Named("customTypedGuard")
+ TypedGuard<Exchange> produceCustomTypedGuard() {
+ return TypedGuard.create(Exchange.class).build();
}
@ApplicationScoped
- @Named("customBulkheadExecutorService")
- ExecutorService produceCustomBulkheadExecutorService() {
+ @Named("customExecutorService")
+ ExecutorService produceCustomExecutorService() {
return Executors.newFixedThreadPool(2);
}
- @Singleton
- @Named("threadTimer")
- ThreadTimer threadTimer(@Named("threadTimerExecutor") ExecutorService
executorService) {
- return new ThreadTimer(executorService);
- }
-
- @ApplicationScoped
- @Named("threadTimerExecutor")
- ExecutorService threadTimerExecutor() {
- return Executors.newSingleThreadExecutor();
- }
-
- void disposeThreadTimerExecutor(
- @Disposes @Named("threadTimerExecutor") ExecutorService
threadTimerExecutor,
- ThreadTimer timer) {
- try {
- timer.shutdown();
- } catch (InterruptedException e) {
- Thread.currentThread().interrupt();
- }
-
+ void disposeCustomExecutorService(
+ @Disposes @Named("customExecutorService") ExecutorService
executorService) {
try {
- threadTimerExecutor.awaitTermination(10, TimeUnit.SECONDS);
+ executorService.awaitTermination(10, TimeUnit.SECONDS);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
diff --git
a/integration-tests/microprofile-fault-tolerance/src/main/java/org/apache/camel/quarkus/component/microprofile/it/faulttolerance/MicroprofileFaultToleranceResource.java
b/integration-tests/microprofile-fault-tolerance/src/main/java/org/apache/camel/quarkus/component/microprofile/it/faulttolerance/MicroprofileFaultToleranceResource.java
index 713829f886..baa8d828d0 100644
---
a/integration-tests/microprofile-fault-tolerance/src/main/java/org/apache/camel/quarkus/component/microprofile/it/faulttolerance/MicroprofileFaultToleranceResource.java
+++
b/integration-tests/microprofile-fault-tolerance/src/main/java/org/apache/camel/quarkus/component/microprofile/it/faulttolerance/MicroprofileFaultToleranceResource.java
@@ -19,7 +19,7 @@ package
org.apache.camel.quarkus.component.microprofile.it.faulttolerance;
import java.util.concurrent.ExecutorService;
import io.quarkus.arc.ClientProxy;
-import io.smallrye.faulttolerance.core.circuit.breaker.CircuitBreaker;
+import io.smallrye.faulttolerance.api.TypedGuard;
import jakarta.inject.Inject;
import jakarta.inject.Named;
import jakarta.json.Json;
@@ -32,6 +32,7 @@ import jakarta.ws.rs.PathParam;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.core.MediaType;
import org.apache.camel.CamelContext;
+import org.apache.camel.Exchange;
import org.apache.camel.ProducerTemplate;
import
org.apache.camel.component.microprofile.faulttolerance.FaultToleranceProcessor;
import org.apache.camel.component.mock.MockEndpoint;
@@ -45,11 +46,11 @@ public class MicroprofileFaultToleranceResource {
@Inject
CamelContext context;
- @Named("customCircuitBreaker")
- CircuitBreaker<Integer> customCircuitBreaker;
+ @Named("customTypedGuard")
+ TypedGuard<Exchange> customTypedGuard;
- @Named("customBulkheadExecutorService")
- ExecutorService customBulkheadExecutorService;
+ @Named("customExecutorService")
+ ExecutorService customExecutorService;
@Path("/route/{route}")
@POST
@@ -94,7 +95,7 @@ public class MicroprofileFaultToleranceResource {
public JsonObject faultToleranceConfigurations() {
FaultToleranceProcessor processor = context.getProcessor("ftp",
FaultToleranceProcessor.class);
JsonObjectBuilder objectBuilder = Json.createObjectBuilder();
- objectBuilder.add("isCustomCircuitBreakerRef",
processor.getCircuitBreaker().equals(customCircuitBreaker));
+ objectBuilder.add("isCustomTypedGuardRef",
processor.getTypedGuard().equals(customTypedGuard));
objectBuilder.add("delay", processor.getDelay());
objectBuilder.add("successThreshold", processor.getSuccessThreshold());
objectBuilder.add("requestVolumeThreshold",
processor.getRequestVolumeThreshold());
@@ -105,8 +106,8 @@ public class MicroprofileFaultToleranceResource {
objectBuilder.add("bulkheadEnabled", processor.isBulkheadEnabled());
objectBuilder.add("bulkheadMaxConcurrentCalls",
processor.getBulkheadMaxConcurrentCalls());
objectBuilder.add("bulkheadWaitingTaskQueue",
processor.getBulkheadWaitingTaskQueue());
- objectBuilder.add("isCustomBulkheadExecutorServiceRef",
-
processor.getExecutorService().equals(ClientProxy.unwrap(customBulkheadExecutorService)));
+ objectBuilder.add("isCustomExecutorServiceRef",
+
processor.getExecutorService().equals(ClientProxy.unwrap(customExecutorService)));
return objectBuilder.build();
}
diff --git
a/integration-tests/microprofile-fault-tolerance/src/test/java/org/apache/camel/quarkus/component/microprofile/it/faulttolerance/MicroProfileFaultToleranceConfigurationTest.java
b/integration-tests/microprofile-fault-tolerance/src/test/java/org/apache/camel/quarkus/component/microprofile/it/faulttolerance/MicroProfileFaultToleranceConfigurationTest.java
index ea1a3c3398..0304409138 100644
---
a/integration-tests/microprofile-fault-tolerance/src/test/java/org/apache/camel/quarkus/component/microprofile/it/faulttolerance/MicroProfileFaultToleranceConfigurationTest.java
+++
b/integration-tests/microprofile-fault-tolerance/src/test/java/org/apache/camel/quarkus/component/microprofile/it/faulttolerance/MicroProfileFaultToleranceConfigurationTest.java
@@ -31,7 +31,7 @@ class MicroProfileFaultToleranceConfigurationTest {
RestAssured.get("/microprofile-fault-tolerance/configuration")
.then()
.body(
- "isCustomCircuitBreakerRef", is(true),
+ "isCustomTypedGuardRef", is(true),
"delay", is(15),
"successThreshold", is(4),
"requestVolumeThreshold", is(60),
diff --git
a/integration-tests/microprofile-fault-tolerance/src/test/java/org/apache/camel/quarkus/component/microprofile/it/faulttolerance/MicroProfileFaultToleranceConfigurationTestProfile.java
b/integration-tests/microprofile-fault-tolerance/src/test/java/org/apache/camel/quarkus/component/microprofile/it/faulttolerance/MicroProfileFaultToleranceConfigurationTestProfile.java
index ffb7d2827b..f042e4c03d 100644
---
a/integration-tests/microprofile-fault-tolerance/src/test/java/org/apache/camel/quarkus/component/microprofile/it/faulttolerance/MicroProfileFaultToleranceConfigurationTestProfile.java
+++
b/integration-tests/microprofile-fault-tolerance/src/test/java/org/apache/camel/quarkus/component/microprofile/it/faulttolerance/MicroProfileFaultToleranceConfigurationTestProfile.java
@@ -26,9 +26,9 @@ public class
MicroProfileFaultToleranceConfigurationTestProfile implements Quark
public Map<String, String> getConfigOverrides() {
return CollectionHelper.mapOf(
"load.config.test.route", "true",
- "camel.faulttolerance.circuitBreaker", "customCircuitBreaker",
+ "camel.faulttolerance.typedGuard", "customTypedGuard",
"camel.faulttolerance.bulkheadEnabled", "true",
- "camel.faulttolerance.bulkheadExecutorService",
"customBulkheadExecutorService",
+ "camel.faulttolerance.threadOffloadExecutorService",
"customExecutorService",
"camel.faulttolerance.delay", "15",
"camel.faulttolerance.successThreshold", "4",
"camel.faulttolerance.requestVolumeThreshold", "60",
diff --git a/pom.xml b/pom.xml
index 1ec70ea6b6..c99fb8cd18 100644
--- a/pom.xml
+++ b/pom.xml
@@ -162,6 +162,7 @@
<reactor-netty.version>${reactor-netty-version}</reactor-netty.version>
<retrofit.version>2.9.0</retrofit.version><!-- @sync
org.influxdb:influxdb-java:${influxdb.version}
dep:com.squareup.retrofit2:retrofit -->
<rxjava3.version>3.1.8</rxjava3.version><!-- Used by
amazon-kinesis-client and infinispan-client-hotrod-jakarta -->
+
<smallrye-fault-tolerance-standalone.version>6.9.1</smallrye-fault-tolerance-standalone.version><!--
@sync io.quarkus:quarkus-bom:${quarkus.version}
dep:io.smallrye:smallrye-fault-tolerance -->
<smallrye.reactive.messaging.camel.version>4.27.0</smallrye.reactive.messaging.camel.version><!--
@sync io.quarkus:quarkus-bom:${quarkus.version}
dep:io.smallrye.reactive:smallrye-reactive-messaging-provider -->
<smooks.version>${smooks-version}</smooks.version>
<snakeyaml.version>2.4</snakeyaml.version><!-- @sync
io.quarkus:quarkus-bom:${quarkus.version} dep:org.yaml:snakeyaml -->
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 7aa0ec8120..acaac84bbb 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -2019,6 +2019,12 @@
<groupId>org.apache.camel</groupId>
<artifactId>camel-microprofile-fault-tolerance</artifactId>
<version>${camel.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>io.smallrye</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
@@ -7242,6 +7248,11 @@
<artifactId>rxjava</artifactId>
<version>${rxjava3.version}</version>
</dependency>
+ <dependency>
+ <groupId>io.smallrye</groupId>
+ <artifactId>smallrye-fault-tolerance-standalone</artifactId>
+
<version>${smallrye-fault-tolerance-standalone.version}</version>
+ </dependency>
<dependency>
<groupId>io.smallrye.reactive</groupId>
<artifactId>smallrye-reactive-messaging-camel</artifactId>
diff --git a/poms/bom/src/main/generated/flattened-full-pom.xml
b/poms/bom/src/main/generated/flattened-full-pom.xml
index 53bda205ef..c4539f0629 100644
--- a/poms/bom/src/main/generated/flattened-full-pom.xml
+++ b/poms/bom/src/main/generated/flattened-full-pom.xml
@@ -1936,6 +1936,12 @@
<groupId>org.apache.camel</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<artifactId>camel-microprofile-fault-tolerance</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<version>4.12.0-SNAPSHOT</version><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <exclusions>
+ <exclusion>
+ <groupId>io.smallrye</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <artifactId>*</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
@@ -7143,6 +7149,11 @@
<artifactId>rxjava</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<version>3.1.8</version><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
</dependency>
+ <dependency>
+ <groupId>io.smallrye</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <artifactId>smallrye-fault-tolerance-standalone</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <version>6.9.1</version><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ </dependency>
<dependency>
<groupId>io.smallrye.reactive</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<artifactId>smallrye-reactive-messaging-camel</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
diff --git a/poms/bom/src/main/generated/flattened-reduced-pom.xml
b/poms/bom/src/main/generated/flattened-reduced-pom.xml
index d2498ed931..a4e209cc2c 100644
--- a/poms/bom/src/main/generated/flattened-reduced-pom.xml
+++ b/poms/bom/src/main/generated/flattened-reduced-pom.xml
@@ -1931,6 +1931,12 @@
<groupId>org.apache.camel</groupId>
<artifactId>camel-microprofile-fault-tolerance</artifactId>
<version>4.12.0-SNAPSHOT</version>
+ <exclusions>
+ <exclusion>
+ <groupId>io.smallrye</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
@@ -7098,6 +7104,11 @@
<artifactId>rxjava</artifactId>
<version>3.1.8</version>
</dependency>
+ <dependency>
+ <groupId>io.smallrye</groupId>
+ <artifactId>smallrye-fault-tolerance-standalone</artifactId>
+ <version>6.9.1</version>
+ </dependency>
<dependency>
<groupId>io.smallrye.reactive</groupId>
<artifactId>smallrye-reactive-messaging-camel</artifactId>
diff --git a/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml
b/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml
index d77437c232..dc53bb3570 100644
--- a/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml
+++ b/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml
@@ -1931,6 +1931,12 @@
<groupId>org.apache.camel</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<artifactId>camel-microprofile-fault-tolerance</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<version>4.12.0-SNAPSHOT</version><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <exclusions>
+ <exclusion>
+ <groupId>io.smallrye</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <artifactId>*</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
@@ -7098,6 +7104,11 @@
<artifactId>rxjava</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<version>3.1.8</version><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
</dependency>
+ <dependency>
+ <groupId>io.smallrye</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <artifactId>smallrye-fault-tolerance-standalone</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <version>6.9.1</version><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ </dependency>
<dependency>
<groupId>io.smallrye.reactive</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<artifactId>smallrye-reactive-messaging-camel</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->