This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch CAMEL-13691
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 1960eee0552ba7025aa37518fa16f625ebc650f2
Author: Claus Ibsen <[email protected]>
AuthorDate: Sun Nov 17 13:25:07 2019 +0100

    CAMEL-13691: camel-resilience4j - WIP
---
 .../hystrix/processor/HystrixConstants.java        |  7 -------
 .../hystrix/processor/HystrixProcessor.java        | 11 ++++++-----
 .../BlueprintHystrixRouteFallbackTest.java         |  5 +++--
 .../processor/BlueprintHystrixRouteOkTest.java     |  5 +++--
 .../processor/HystrixBadRequestExceptionTest.java  |  5 +++--
 .../hystrix/processor/HystrixCircuitOpenTest.java  | 12 +++++-------
 .../processor/HystrixRouteFallbackTest.java        |  5 +++--
 .../HystrixRouteFallbackViaNetworkTest.java        |  5 +++--
 .../hystrix/processor/HystrixRouteOkTest.java      |  5 +++--
 .../processor/SpringHystrixRouteFallbackTest.java  |  5 +++--
 .../processor/SpringHystrixRouteOkTest.java        |  5 +++--
 components/camel-resilience4j/pom.xml              | 22 +++++++++++++++++++---
 .../resilience4j/ResilienceProcessor.java          |  2 +-
 .../BlueprintResilienceRouteFallbackTest.java      |  1 +
 .../BlueprintResilienceRouteOkTest.java            |  1 +
 .../ResilienceRouteBulkheadFallbackTest.java       |  1 +
 .../ResilienceRouteBulkheadOkTest.java             |  1 +
 .../resilience4j/ResilienceRouteFallbackTest.java  |  1 +
 .../resilience4j/ResilienceRouteOkTest.java        |  1 +
 .../SpringResilienceRouteFallbackTest.java         |  1 +
 .../resilience4j/SpringResilienceRouteOkTest.java  |  1 +
 .../apache/camel/spi}/CircuitBreakerConstants.java |  4 +---
 parent/pom.xml                                     |  2 ++
 .../karaf/features/src/main/resources/features.xml | 11 +++++++++++
 .../apache/camel/itest/karaf/CamelHystrixTest.java | 20 ++++++++++++--------
 .../camel/itest/karaf/CamelResilience4jTest.java   | 22 ++++++++++++++--------
 26 files changed, 103 insertions(+), 58 deletions(-)

diff --git 
a/components/camel-hystrix/src/main/java/org/apache/camel/component/hystrix/processor/HystrixConstants.java
 
b/components/camel-hystrix/src/main/java/org/apache/camel/component/hystrix/processor/HystrixConstants.java
index e9bcdfd..06fbb59 100644
--- 
a/components/camel-hystrix/src/main/java/org/apache/camel/component/hystrix/processor/HystrixConstants.java
+++ 
b/components/camel-hystrix/src/main/java/org/apache/camel/component/hystrix/processor/HystrixConstants.java
@@ -19,11 +19,4 @@ package org.apache.camel.component.hystrix.processor;
 public interface HystrixConstants {
     String DEFAULT_HYSTRIX_CONFIGURATION_ID = "hystrix-configuration";
 
-    // Hystrix EIP response properties
-    String HYSTRIX_RESPONSE_SUCCESSFUL_EXECUTION = 
"CamelHystrixSuccessfulExecution";
-    String HYSTRIX_RESPONSE_FROM_FALLBACK = "CamelHystrixResponseFromFallback";
-    String HYSTRIX_RESPONSE_SHORT_CIRCUITED = 
"CamelHystrixResponseShortCircuited";
-    String HYSTRIX_RESPONSE_TIMED_OUT = "CamelHystrixResponseTimedOut";
-    String HYSTRIX_RESPONSE_REJECTED = "CamelHystrixResponseRejected";
-
 }
diff --git 
a/components/camel-hystrix/src/main/java/org/apache/camel/component/hystrix/processor/HystrixProcessor.java
 
b/components/camel-hystrix/src/main/java/org/apache/camel/component/hystrix/processor/HystrixProcessor.java
index b4c78cf..49c2425 100644
--- 
a/components/camel-hystrix/src/main/java/org/apache/camel/component/hystrix/processor/HystrixProcessor.java
+++ 
b/components/camel-hystrix/src/main/java/org/apache/camel/component/hystrix/processor/HystrixProcessor.java
@@ -30,6 +30,7 @@ import org.apache.camel.Navigate;
 import org.apache.camel.Processor;
 import org.apache.camel.api.management.ManagedAttribute;
 import org.apache.camel.api.management.ManagedResource;
+import org.apache.camel.spi.CircuitBreakerConstants;
 import org.apache.camel.spi.IdAware;
 import org.apache.camel.support.AsyncProcessorSupport;
 
@@ -208,11 +209,11 @@ public class HystrixProcessor extends 
AsyncProcessorSupport implements Navigate<
     }
 
     private void commandResponse(Exchange exchange, HystrixCommand command) {
-        
exchange.setProperty(HystrixConstants.HYSTRIX_RESPONSE_SUCCESSFUL_EXECUTION, 
command.isSuccessfulExecution());
-        exchange.setProperty(HystrixConstants.HYSTRIX_RESPONSE_FROM_FALLBACK, 
command.isResponseFromFallback());
-        
exchange.setProperty(HystrixConstants.HYSTRIX_RESPONSE_SHORT_CIRCUITED, 
command.isResponseShortCircuited());
-        exchange.setProperty(HystrixConstants.HYSTRIX_RESPONSE_TIMED_OUT, 
command.isResponseTimedOut());
-        exchange.setProperty(HystrixConstants.HYSTRIX_RESPONSE_REJECTED, 
command.isResponseRejected());
+        
exchange.setProperty(CircuitBreakerConstants.RESPONSE_SUCCESSFUL_EXECUTION, 
command.isSuccessfulExecution());
+        exchange.setProperty(CircuitBreakerConstants.RESPONSE_FROM_FALLBACK, 
command.isResponseFromFallback());
+        exchange.setProperty(CircuitBreakerConstants.RESPONSE_SHORT_CIRCUITED, 
command.isResponseShortCircuited());
+        exchange.setProperty(CircuitBreakerConstants.RESPONSE_TIMED_OUT, 
command.isResponseTimedOut());
+        exchange.setProperty(CircuitBreakerConstants.RESPONSE_REJECTED, 
command.isResponseRejected());
     }
 
     @Override
diff --git 
a/components/camel-hystrix/src/test/java/org/apache/camel/component/hystrix/processor/BlueprintHystrixRouteFallbackTest.java
 
b/components/camel-hystrix/src/test/java/org/apache/camel/component/hystrix/processor/BlueprintHystrixRouteFallbackTest.java
index 60f192a..05de4ff 100644
--- 
a/components/camel-hystrix/src/test/java/org/apache/camel/component/hystrix/processor/BlueprintHystrixRouteFallbackTest.java
+++ 
b/components/camel-hystrix/src/test/java/org/apache/camel/component/hystrix/processor/BlueprintHystrixRouteFallbackTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.component.hystrix.processor;
 
+import org.apache.camel.spi.CircuitBreakerConstants;
 import org.apache.camel.test.blueprint.CamelBlueprintTestSupport;
 import org.junit.Test;
 
@@ -29,8 +30,8 @@ public class BlueprintHystrixRouteFallbackTest extends 
CamelBlueprintTestSupport
     @Test
     public void testHystrix() throws Exception {
         getMockEndpoint("mock:result").expectedBodiesReceived("Fallback 
message");
-        
getMockEndpoint("mock:result").expectedPropertyReceived(HystrixConstants.HYSTRIX_RESPONSE_SUCCESSFUL_EXECUTION,
 false);
-        
getMockEndpoint("mock:result").expectedPropertyReceived(HystrixConstants.HYSTRIX_RESPONSE_FROM_FALLBACK,
 true);
+        
getMockEndpoint("mock:result").expectedPropertyReceived(CircuitBreakerConstants.RESPONSE_SUCCESSFUL_EXECUTION,
 false);
+        
getMockEndpoint("mock:result").expectedPropertyReceived(CircuitBreakerConstants.RESPONSE_FROM_FALLBACK,
 true);
 
         template.sendBody("direct:start", "Hello World");
 
diff --git 
a/components/camel-hystrix/src/test/java/org/apache/camel/component/hystrix/processor/BlueprintHystrixRouteOkTest.java
 
b/components/camel-hystrix/src/test/java/org/apache/camel/component/hystrix/processor/BlueprintHystrixRouteOkTest.java
index 16a1ddd..e6333b2 100644
--- 
a/components/camel-hystrix/src/test/java/org/apache/camel/component/hystrix/processor/BlueprintHystrixRouteOkTest.java
+++ 
b/components/camel-hystrix/src/test/java/org/apache/camel/component/hystrix/processor/BlueprintHystrixRouteOkTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.component.hystrix.processor;
 
+import org.apache.camel.spi.CircuitBreakerConstants;
 import org.apache.camel.test.blueprint.CamelBlueprintTestSupport;
 import org.junit.Test;
 
@@ -29,8 +30,8 @@ public class BlueprintHystrixRouteOkTest extends 
CamelBlueprintTestSupport {
     @Test
     public void testHystrix() throws Exception {
         getMockEndpoint("mock:result").expectedBodiesReceived("Bye World");
-        
getMockEndpoint("mock:result").expectedPropertyReceived(HystrixConstants.HYSTRIX_RESPONSE_SUCCESSFUL_EXECUTION,
 true);
-        
getMockEndpoint("mock:result").expectedPropertyReceived(HystrixConstants.HYSTRIX_RESPONSE_FROM_FALLBACK,
 false);
+        
getMockEndpoint("mock:result").expectedPropertyReceived(CircuitBreakerConstants.RESPONSE_SUCCESSFUL_EXECUTION,
 true);
+        
getMockEndpoint("mock:result").expectedPropertyReceived(CircuitBreakerConstants.RESPONSE_FROM_FALLBACK,
 false);
 
         template.sendBody("direct:start", "Hello World");
 
diff --git 
a/components/camel-hystrix/src/test/java/org/apache/camel/component/hystrix/processor/HystrixBadRequestExceptionTest.java
 
b/components/camel-hystrix/src/test/java/org/apache/camel/component/hystrix/processor/HystrixBadRequestExceptionTest.java
index fc5abaf..fb37a4b 100644
--- 
a/components/camel-hystrix/src/test/java/org/apache/camel/component/hystrix/processor/HystrixBadRequestExceptionTest.java
+++ 
b/components/camel-hystrix/src/test/java/org/apache/camel/component/hystrix/processor/HystrixBadRequestExceptionTest.java
@@ -19,6 +19,7 @@ package org.apache.camel.component.hystrix.processor;
 import com.netflix.hystrix.exception.HystrixBadRequestException;
 import org.apache.camel.Exchange;
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.spi.CircuitBreakerConstants;
 import org.apache.camel.test.junit4.CamelTestSupport;
 import org.junit.Test;
 
@@ -31,8 +32,8 @@ public class HystrixBadRequestExceptionTest extends 
CamelTestSupport {
 
         Exchange out = template.send("direct:start", e -> 
e.getMessage().setBody("Hello World"));
         assertTrue(out.isFailed());
-        
assertFalse(out.getProperty(HystrixConstants.HYSTRIX_RESPONSE_SUCCESSFUL_EXECUTION,
 boolean.class));
-        
assertFalse(out.getProperty(HystrixConstants.HYSTRIX_RESPONSE_FROM_FALLBACK, 
boolean.class));
+        
assertFalse(out.getProperty(CircuitBreakerConstants.RESPONSE_SUCCESSFUL_EXECUTION,
 boolean.class));
+        
assertFalse(out.getProperty(CircuitBreakerConstants.RESPONSE_FROM_FALLBACK, 
boolean.class));
         assertTrue(out.getException() instanceof HystrixBadRequestException);
 
         assertMockEndpointsSatisfied();
diff --git 
a/components/camel-hystrix/src/test/java/org/apache/camel/component/hystrix/processor/HystrixCircuitOpenTest.java
 
b/components/camel-hystrix/src/test/java/org/apache/camel/component/hystrix/processor/HystrixCircuitOpenTest.java
index c362f76..2b793cc 100644
--- 
a/components/camel-hystrix/src/test/java/org/apache/camel/component/hystrix/processor/HystrixCircuitOpenTest.java
+++ 
b/components/camel-hystrix/src/test/java/org/apache/camel/component/hystrix/processor/HystrixCircuitOpenTest.java
@@ -23,14 +23,12 @@ import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.RoutesBuilder;
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.spi.CircuitBreakerConstants;
 import org.apache.camel.test.junit4.CamelTestSupport;
 import org.junit.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import static 
org.apache.camel.component.hystrix.processor.HystrixConstants.HYSTRIX_RESPONSE_SHORT_CIRCUITED;
-import static 
org.apache.camel.component.hystrix.processor.HystrixConstants.HYSTRIX_RESPONSE_SUCCESSFUL_EXECUTION;
-
 public class HystrixCircuitOpenTest extends CamelTestSupport {
     public static final Integer REQUEST_VOLUME_THRESHOLD = 4;
     private static final Logger LOG = 
LoggerFactory.getLogger(HystrixCircuitOpenTest.class);
@@ -54,7 +52,7 @@ public class HystrixCircuitOpenTest extends CamelTestSupport {
         resetMocks();
 
         // notice this can be flaky due timing when using thread sleeps in 
unit tests
-        
getMockEndpoint("mock:result").expectedPropertyReceived(HYSTRIX_RESPONSE_SHORT_CIRCUITED,
 true);
+        
getMockEndpoint("mock:result").expectedPropertyReceived(CircuitBreakerConstants.RESPONSE_SHORT_CIRCUITED,
 true);
 
         route.throwException = false;
         try {
@@ -80,8 +78,8 @@ public class HystrixCircuitOpenTest extends CamelTestSupport {
 
         resetMocks();
 
-        
getMockEndpoint("mock:result").expectedPropertyReceived(HYSTRIX_RESPONSE_SHORT_CIRCUITED,
 false);
-        
getMockEndpoint("mock:result").expectedPropertyReceived(HYSTRIX_RESPONSE_SUCCESSFUL_EXECUTION,
 true);
+        
getMockEndpoint("mock:result").expectedPropertyReceived(CircuitBreakerConstants.RESPONSE_SHORT_CIRCUITED,
 false);
+        
getMockEndpoint("mock:result").expectedPropertyReceived(CircuitBreakerConstants.RESPONSE_SUCCESSFUL_EXECUTION,
 true);
 
         template.requestBody("direct:start", "Request Body");
 
@@ -120,7 +118,7 @@ public class HystrixCircuitOpenTest extends 
CamelTestSupport {
                     })
                     .log("Hystrix processing end: ${threadName}")
                 .end()
-                .log(HYSTRIX_RESPONSE_SHORT_CIRCUITED + " = 
${exchangeProperty." + HYSTRIX_RESPONSE_SHORT_CIRCUITED + "}")
+                .log(CircuitBreakerConstants.RESPONSE_SHORT_CIRCUITED + " = 
${exchangeProperty." + CircuitBreakerConstants.RESPONSE_SHORT_CIRCUITED + "}")
                 .to("mock:result");
         }
     }
diff --git 
a/components/camel-hystrix/src/test/java/org/apache/camel/component/hystrix/processor/HystrixRouteFallbackTest.java
 
b/components/camel-hystrix/src/test/java/org/apache/camel/component/hystrix/processor/HystrixRouteFallbackTest.java
index ee97733..04fcb0b 100644
--- 
a/components/camel-hystrix/src/test/java/org/apache/camel/component/hystrix/processor/HystrixRouteFallbackTest.java
+++ 
b/components/camel-hystrix/src/test/java/org/apache/camel/component/hystrix/processor/HystrixRouteFallbackTest.java
@@ -17,6 +17,7 @@
 package org.apache.camel.component.hystrix.processor;
 
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.spi.CircuitBreakerConstants;
 import org.apache.camel.test.junit4.CamelTestSupport;
 import org.junit.Test;
 
@@ -25,8 +26,8 @@ public class HystrixRouteFallbackTest extends 
CamelTestSupport {
     @Test
     public void testHystrix() throws Exception {
         getMockEndpoint("mock:result").expectedBodiesReceived("Fallback 
message");
-        
getMockEndpoint("mock:result").expectedPropertyReceived(HystrixConstants.HYSTRIX_RESPONSE_SUCCESSFUL_EXECUTION,
 false);
-        
getMockEndpoint("mock:result").expectedPropertyReceived(HystrixConstants.HYSTRIX_RESPONSE_FROM_FALLBACK,
 true);
+        
getMockEndpoint("mock:result").expectedPropertyReceived(CircuitBreakerConstants.RESPONSE_SUCCESSFUL_EXECUTION,
 false);
+        
getMockEndpoint("mock:result").expectedPropertyReceived(CircuitBreakerConstants.RESPONSE_FROM_FALLBACK,
 true);
 
         template.sendBody("direct:start", "Hello World");
 
diff --git 
a/components/camel-hystrix/src/test/java/org/apache/camel/component/hystrix/processor/HystrixRouteFallbackViaNetworkTest.java
 
b/components/camel-hystrix/src/test/java/org/apache/camel/component/hystrix/processor/HystrixRouteFallbackViaNetworkTest.java
index 7a5e683..7040ce4 100644
--- 
a/components/camel-hystrix/src/test/java/org/apache/camel/component/hystrix/processor/HystrixRouteFallbackViaNetworkTest.java
+++ 
b/components/camel-hystrix/src/test/java/org/apache/camel/component/hystrix/processor/HystrixRouteFallbackViaNetworkTest.java
@@ -17,6 +17,7 @@
 package org.apache.camel.component.hystrix.processor;
 
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.spi.CircuitBreakerConstants;
 import org.apache.camel.test.junit4.CamelTestSupport;
 import org.junit.Test;
 
@@ -25,8 +26,8 @@ public class HystrixRouteFallbackViaNetworkTest extends 
CamelTestSupport {
     @Test
     public void testHystrix() throws Exception {
         getMockEndpoint("mock:result").expectedBodiesReceived("Fallback 
message");
-        
getMockEndpoint("mock:result").expectedPropertyReceived(HystrixConstants.HYSTRIX_RESPONSE_SUCCESSFUL_EXECUTION,
 false);
-        
getMockEndpoint("mock:result").expectedPropertyReceived(HystrixConstants.HYSTRIX_RESPONSE_FROM_FALLBACK,
 true);
+        
getMockEndpoint("mock:result").expectedPropertyReceived(CircuitBreakerConstants.RESPONSE_SUCCESSFUL_EXECUTION,
 false);
+        
getMockEndpoint("mock:result").expectedPropertyReceived(CircuitBreakerConstants.RESPONSE_FROM_FALLBACK,
 true);
 
         template.sendBody("direct:start", "Hello World");
 
diff --git 
a/components/camel-hystrix/src/test/java/org/apache/camel/component/hystrix/processor/HystrixRouteOkTest.java
 
b/components/camel-hystrix/src/test/java/org/apache/camel/component/hystrix/processor/HystrixRouteOkTest.java
index e7faf1c..19a7f88 100644
--- 
a/components/camel-hystrix/src/test/java/org/apache/camel/component/hystrix/processor/HystrixRouteOkTest.java
+++ 
b/components/camel-hystrix/src/test/java/org/apache/camel/component/hystrix/processor/HystrixRouteOkTest.java
@@ -17,6 +17,7 @@
 package org.apache.camel.component.hystrix.processor;
 
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.spi.CircuitBreakerConstants;
 import org.apache.camel.test.junit4.CamelTestSupport;
 import org.junit.Test;
 
@@ -25,8 +26,8 @@ public class HystrixRouteOkTest extends CamelTestSupport {
     @Test
     public void testHystrix() throws Exception {
         getMockEndpoint("mock:result").expectedBodiesReceived("Bye World");
-        
getMockEndpoint("mock:result").expectedPropertyReceived(HystrixConstants.HYSTRIX_RESPONSE_SUCCESSFUL_EXECUTION,
 true);
-        
getMockEndpoint("mock:result").expectedPropertyReceived(HystrixConstants.HYSTRIX_RESPONSE_FROM_FALLBACK,
 false);
+        
getMockEndpoint("mock:result").expectedPropertyReceived(CircuitBreakerConstants.RESPONSE_SUCCESSFUL_EXECUTION,
 true);
+        
getMockEndpoint("mock:result").expectedPropertyReceived(CircuitBreakerConstants.RESPONSE_FROM_FALLBACK,
 false);
 
         template.sendBody("direct:start", "Hello World");
 
diff --git 
a/components/camel-hystrix/src/test/java/org/apache/camel/component/hystrix/processor/SpringHystrixRouteFallbackTest.java
 
b/components/camel-hystrix/src/test/java/org/apache/camel/component/hystrix/processor/SpringHystrixRouteFallbackTest.java
index b42d2cc..93346ef 100644
--- 
a/components/camel-hystrix/src/test/java/org/apache/camel/component/hystrix/processor/SpringHystrixRouteFallbackTest.java
+++ 
b/components/camel-hystrix/src/test/java/org/apache/camel/component/hystrix/processor/SpringHystrixRouteFallbackTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.component.hystrix.processor;
 
+import org.apache.camel.spi.CircuitBreakerConstants;
 import org.apache.camel.test.spring.CamelSpringTestSupport;
 import org.junit.Test;
 import org.springframework.context.support.AbstractApplicationContext;
@@ -33,8 +34,8 @@ public class SpringHystrixRouteFallbackTest extends 
CamelSpringTestSupport {
     @Test
     public void testHystrix() throws Exception {
         getMockEndpoint("mock:result").expectedBodiesReceived("Fallback 
message");
-        
getMockEndpoint("mock:result").expectedPropertyReceived(HystrixConstants.HYSTRIX_RESPONSE_SUCCESSFUL_EXECUTION,
 false);
-        
getMockEndpoint("mock:result").expectedPropertyReceived(HystrixConstants.HYSTRIX_RESPONSE_FROM_FALLBACK,
 true);
+        
getMockEndpoint("mock:result").expectedPropertyReceived(CircuitBreakerConstants.RESPONSE_SUCCESSFUL_EXECUTION,
 false);
+        
getMockEndpoint("mock:result").expectedPropertyReceived(CircuitBreakerConstants.RESPONSE_FROM_FALLBACK,
 true);
 
         template.sendBody("direct:start", "Hello World");
 
diff --git 
a/components/camel-hystrix/src/test/java/org/apache/camel/component/hystrix/processor/SpringHystrixRouteOkTest.java
 
b/components/camel-hystrix/src/test/java/org/apache/camel/component/hystrix/processor/SpringHystrixRouteOkTest.java
index 8e41820..c685dcf 100644
--- 
a/components/camel-hystrix/src/test/java/org/apache/camel/component/hystrix/processor/SpringHystrixRouteOkTest.java
+++ 
b/components/camel-hystrix/src/test/java/org/apache/camel/component/hystrix/processor/SpringHystrixRouteOkTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.component.hystrix.processor;
 
+import org.apache.camel.spi.CircuitBreakerConstants;
 import org.apache.camel.test.spring.CamelSpringTestSupport;
 import org.junit.Test;
 import org.springframework.context.support.AbstractApplicationContext;
@@ -33,8 +34,8 @@ public class SpringHystrixRouteOkTest extends 
CamelSpringTestSupport {
     @Test
     public void testHystrix() throws Exception {
         getMockEndpoint("mock:result").expectedBodiesReceived("Bye World");
-        
getMockEndpoint("mock:result").expectedPropertyReceived(HystrixConstants.HYSTRIX_RESPONSE_SUCCESSFUL_EXECUTION,
 true);
-        
getMockEndpoint("mock:result").expectedPropertyReceived(HystrixConstants.HYSTRIX_RESPONSE_FROM_FALLBACK,
 false);
+        
getMockEndpoint("mock:result").expectedPropertyReceived(CircuitBreakerConstants.RESPONSE_SUCCESSFUL_EXECUTION,
 true);
+        
getMockEndpoint("mock:result").expectedPropertyReceived(CircuitBreakerConstants.RESPONSE_FROM_FALLBACK,
 false);
 
         template.sendBody("direct:start", "Hello World");
 
diff --git a/components/camel-resilience4j/pom.xml 
b/components/camel-resilience4j/pom.xml
index 71f185f..a8e941e 100644
--- a/components/camel-resilience4j/pom.xml
+++ b/components/camel-resilience4j/pom.xml
@@ -48,17 +48,33 @@
         <dependency>
             <groupId>io.github.resilience4j</groupId>
             <artifactId>resilience4j-circuitbreaker</artifactId>
-            <version>1.1.0</version>
+            <version>${resilience4j-version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>io.vavr</groupId>
+                    <artifactId>vavr</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
         <dependency>
             <groupId>io.github.resilience4j</groupId>
             <artifactId>resilience4j-bulkhead</artifactId>
-            <version>1.1.0</version>
+            <version>${resilience4j-version}</version>
         </dependency>
         <dependency>
             <groupId>io.github.resilience4j</groupId>
             <artifactId>resilience4j-timelimiter</artifactId>
-            <version>1.1.0</version>
+            <version>${resilience4j-version}</version>
+        </dependency>
+        <dependency>
+            <groupId>io.vavr</groupId>
+            <artifactId>vavr</artifactId>
+            <version>${vavr-version}</version>
+        </dependency>
+        <dependency>
+            <groupId>io.vavr</groupId>
+            <artifactId>vavr-match</artifactId>
+            <version>${vavr-version}</version>
         </dependency>
 
         <!-- for testing -->
diff --git 
a/components/camel-resilience4j/src/main/java/org/apache/camel/component/resilience4j/ResilienceProcessor.java
 
b/components/camel-resilience4j/src/main/java/org/apache/camel/component/resilience4j/ResilienceProcessor.java
index 1f6dbe3..c936a9e 100644
--- 
a/components/camel-resilience4j/src/main/java/org/apache/camel/component/resilience4j/ResilienceProcessor.java
+++ 
b/components/camel-resilience4j/src/main/java/org/apache/camel/component/resilience4j/ResilienceProcessor.java
@@ -21,7 +21,6 @@ import java.util.List;
 import java.util.concurrent.Callable;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Future;
 import java.util.concurrent.TimeoutException;
 import java.util.function.Function;
 import java.util.function.Supplier;
@@ -44,6 +43,7 @@ import org.apache.camel.RuntimeExchangeException;
 import org.apache.camel.api.management.ManagedAttribute;
 import org.apache.camel.api.management.ManagedOperation;
 import org.apache.camel.api.management.ManagedResource;
+import org.apache.camel.spi.CircuitBreakerConstants;
 import org.apache.camel.spi.IdAware;
 import org.apache.camel.support.AsyncProcessorSupport;
 import org.apache.camel.support.ExchangeHelper;
diff --git 
a/components/camel-resilience4j/src/test/java/org/apache/camel/component/resilience4j/BlueprintResilienceRouteFallbackTest.java
 
b/components/camel-resilience4j/src/test/java/org/apache/camel/component/resilience4j/BlueprintResilienceRouteFallbackTest.java
index 0dac4de..8a9bf1b 100644
--- 
a/components/camel-resilience4j/src/test/java/org/apache/camel/component/resilience4j/BlueprintResilienceRouteFallbackTest.java
+++ 
b/components/camel-resilience4j/src/test/java/org/apache/camel/component/resilience4j/BlueprintResilienceRouteFallbackTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.component.resilience4j;
 
+import org.apache.camel.spi.CircuitBreakerConstants;
 import org.apache.camel.test.blueprint.CamelBlueprintTestSupport;
 import org.junit.Test;
 
diff --git 
a/components/camel-resilience4j/src/test/java/org/apache/camel/component/resilience4j/BlueprintResilienceRouteOkTest.java
 
b/components/camel-resilience4j/src/test/java/org/apache/camel/component/resilience4j/BlueprintResilienceRouteOkTest.java
index 5f064b3..62f71f9 100644
--- 
a/components/camel-resilience4j/src/test/java/org/apache/camel/component/resilience4j/BlueprintResilienceRouteOkTest.java
+++ 
b/components/camel-resilience4j/src/test/java/org/apache/camel/component/resilience4j/BlueprintResilienceRouteOkTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.component.resilience4j;
 
+import org.apache.camel.spi.CircuitBreakerConstants;
 import org.apache.camel.test.blueprint.CamelBlueprintTestSupport;
 import org.junit.Test;
 
diff --git 
a/components/camel-resilience4j/src/test/java/org/apache/camel/component/resilience4j/ResilienceRouteBulkheadFallbackTest.java
 
b/components/camel-resilience4j/src/test/java/org/apache/camel/component/resilience4j/ResilienceRouteBulkheadFallbackTest.java
index 69833b9..8591c36 100644
--- 
a/components/camel-resilience4j/src/test/java/org/apache/camel/component/resilience4j/ResilienceRouteBulkheadFallbackTest.java
+++ 
b/components/camel-resilience4j/src/test/java/org/apache/camel/component/resilience4j/ResilienceRouteBulkheadFallbackTest.java
@@ -17,6 +17,7 @@
 package org.apache.camel.component.resilience4j;
 
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.spi.CircuitBreakerConstants;
 import org.apache.camel.test.junit4.CamelTestSupport;
 import org.junit.Test;
 
diff --git 
a/components/camel-resilience4j/src/test/java/org/apache/camel/component/resilience4j/ResilienceRouteBulkheadOkTest.java
 
b/components/camel-resilience4j/src/test/java/org/apache/camel/component/resilience4j/ResilienceRouteBulkheadOkTest.java
index 3368884..d85c463 100644
--- 
a/components/camel-resilience4j/src/test/java/org/apache/camel/component/resilience4j/ResilienceRouteBulkheadOkTest.java
+++ 
b/components/camel-resilience4j/src/test/java/org/apache/camel/component/resilience4j/ResilienceRouteBulkheadOkTest.java
@@ -17,6 +17,7 @@
 package org.apache.camel.component.resilience4j;
 
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.spi.CircuitBreakerConstants;
 import org.apache.camel.test.junit4.CamelTestSupport;
 import org.junit.Test;
 
diff --git 
a/components/camel-resilience4j/src/test/java/org/apache/camel/component/resilience4j/ResilienceRouteFallbackTest.java
 
b/components/camel-resilience4j/src/test/java/org/apache/camel/component/resilience4j/ResilienceRouteFallbackTest.java
index 6ae5c36..b3bb081 100644
--- 
a/components/camel-resilience4j/src/test/java/org/apache/camel/component/resilience4j/ResilienceRouteFallbackTest.java
+++ 
b/components/camel-resilience4j/src/test/java/org/apache/camel/component/resilience4j/ResilienceRouteFallbackTest.java
@@ -17,6 +17,7 @@
 package org.apache.camel.component.resilience4j;
 
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.spi.CircuitBreakerConstants;
 import org.apache.camel.test.junit4.CamelTestSupport;
 import org.junit.Test;
 
diff --git 
a/components/camel-resilience4j/src/test/java/org/apache/camel/component/resilience4j/ResilienceRouteOkTest.java
 
b/components/camel-resilience4j/src/test/java/org/apache/camel/component/resilience4j/ResilienceRouteOkTest.java
index 891d504..dc1d23d 100644
--- 
a/components/camel-resilience4j/src/test/java/org/apache/camel/component/resilience4j/ResilienceRouteOkTest.java
+++ 
b/components/camel-resilience4j/src/test/java/org/apache/camel/component/resilience4j/ResilienceRouteOkTest.java
@@ -17,6 +17,7 @@
 package org.apache.camel.component.resilience4j;
 
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.spi.CircuitBreakerConstants;
 import org.apache.camel.test.junit4.CamelTestSupport;
 import org.junit.Test;
 
diff --git 
a/components/camel-resilience4j/src/test/java/org/apache/camel/component/resilience4j/SpringResilienceRouteFallbackTest.java
 
b/components/camel-resilience4j/src/test/java/org/apache/camel/component/resilience4j/SpringResilienceRouteFallbackTest.java
index 12792ad..53bff6c 100644
--- 
a/components/camel-resilience4j/src/test/java/org/apache/camel/component/resilience4j/SpringResilienceRouteFallbackTest.java
+++ 
b/components/camel-resilience4j/src/test/java/org/apache/camel/component/resilience4j/SpringResilienceRouteFallbackTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.component.resilience4j;
 
+import org.apache.camel.spi.CircuitBreakerConstants;
 import org.apache.camel.test.spring.CamelSpringTestSupport;
 import org.junit.Test;
 import org.springframework.context.support.AbstractApplicationContext;
diff --git 
a/components/camel-resilience4j/src/test/java/org/apache/camel/component/resilience4j/SpringResilienceRouteOkTest.java
 
b/components/camel-resilience4j/src/test/java/org/apache/camel/component/resilience4j/SpringResilienceRouteOkTest.java
index c305804..07313b3 100644
--- 
a/components/camel-resilience4j/src/test/java/org/apache/camel/component/resilience4j/SpringResilienceRouteOkTest.java
+++ 
b/components/camel-resilience4j/src/test/java/org/apache/camel/component/resilience4j/SpringResilienceRouteOkTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.component.resilience4j;
 
+import org.apache.camel.spi.CircuitBreakerConstants;
 import org.apache.camel.test.spring.CamelSpringTestSupport;
 import org.junit.Test;
 import org.springframework.context.support.AbstractApplicationContext;
diff --git 
a/components/camel-resilience4j/src/main/java/org/apache/camel/component/resilience4j/CircuitBreakerConstants.java
 
b/core/camel-api/src/main/java/org/apache/camel/spi/CircuitBreakerConstants.java
similarity index 90%
copy from 
components/camel-resilience4j/src/main/java/org/apache/camel/component/resilience4j/CircuitBreakerConstants.java
copy to 
core/camel-api/src/main/java/org/apache/camel/spi/CircuitBreakerConstants.java
index 0dcbb0c..dbaf377 100644
--- 
a/components/camel-resilience4j/src/main/java/org/apache/camel/component/resilience4j/CircuitBreakerConstants.java
+++ 
b/core/camel-api/src/main/java/org/apache/camel/spi/CircuitBreakerConstants.java
@@ -14,9 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.component.resilience4j;
-
-// TODO: Make these as generic constants so we can use it for hystrix and 
resilience4j
+package org.apache.camel.spi;
 
 public interface CircuitBreakerConstants {
 
diff --git a/parent/pom.xml b/parent/pom.xml
index 4c02d65..78fb184 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -540,6 +540,7 @@
         <reflections-bundle-version>0.9.11_1</reflections-bundle-version>
         <regexp-bundle-version>1.4_1</regexp-bundle-version>
         <rescu-version>2.0.2</rescu-version>
+        <resilience4j-version>1.1.0</resilience4j-version>
         <rest-assured-version>4.1.2</rest-assured-version>
         <revapi-java-version>0.20.0</revapi-java-version>
         <revapi-maven-plugin-version>0.11.2</revapi-maven-plugin-version>
@@ -635,6 +636,7 @@
         
<unix-socket-factory-bundle-version>1.0.0</unix-socket-factory-bundle-version>
         <validation-1-api-version>1.1.0.Final</validation-1-api-version>
         <validation-api-version>2.0.1.Final</validation-api-version>
+        <vavr-version>0.10.2</vavr-version>
         <velocity-bundle-version>1.7_6</velocity-bundle-version>
         <velocity-tools-version>2.0</velocity-tools-version>
         <velocity-version>2.0</velocity-version>
diff --git a/platforms/karaf/features/src/main/resources/features.xml 
b/platforms/karaf/features/src/main/resources/features.xml
index 2952094..759dacc 100644
--- a/platforms/karaf/features/src/main/resources/features.xml
+++ b/platforms/karaf/features/src/main/resources/features.xml
@@ -2067,6 +2067,17 @@
     <bundle 
dependency='true'>wrap:mvn:io.micrometer/micrometer-core/${micrometer-version}</bundle>
     <bundle>mvn:org.apache.camel/camel-reactor/${project.version}</bundle>
   </feature>
+  <!-- does not work in OSGi: 
https://github.com/resilience4j/resilience4j/issues/750
+  <feature name='camel-resilience4j' version='${project.version}' 
start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle 
dependency='true'>mvn:io.github.resilience4j/resilience4j-core/${resilience4j-version}</bundle>
+    <bundle 
dependency='true'>mvn:io.github.resilience4j/resilience4j-circuitbreaker/${resilience4j-version}</bundle>
+    <bundle 
dependency='true'>mvn:io.github.resilience4j/resilience4j-bulkhead/${resilience4j-version}</bundle>
+    <bundle 
dependency='true'>mvn:io.github.resilience4j/resilience4j-timelimiter/${resilience4j-version}</bundle>
+    <bundle dependency='true'>mvn:io.vavr/vavr/${vavr-version}</bundle>
+    <bundle dependency='true'>mvn:io.vavr/vavr-match/${vavr-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-resilience4j/${project.version}</bundle>
+  </feature> -->
   <feature name='camel-rest-swagger' version='${project.version}' 
start-level='50'>
     <feature version='${project.version}'>camel-core</feature>
     <bundle 
dependency='true'>mvn:org.yaml/snakeyaml/${snakeyaml-version}</bundle>
diff --git 
a/components/camel-resilience4j/src/main/java/org/apache/camel/component/resilience4j/CircuitBreakerConstants.java
 
b/tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/CamelHystrixTest.java
similarity index 58%
copy from 
components/camel-resilience4j/src/main/java/org/apache/camel/component/resilience4j/CircuitBreakerConstants.java
copy to 
tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/CamelHystrixTest.java
index 0dcbb0c..79f8a50 100644
--- 
a/components/camel-resilience4j/src/main/java/org/apache/camel/component/resilience4j/CircuitBreakerConstants.java
+++ 
b/tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/CamelHystrixTest.java
@@ -14,16 +14,20 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.component.resilience4j;
+package org.apache.camel.itest.karaf;
 
-// TODO: Make these as generic constants so we can use it for hystrix and 
resilience4j
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.ops4j.pax.exam.junit.PaxExam;
 
-public interface CircuitBreakerConstants {
+@RunWith(PaxExam.class)
+public class CamelHystrixTest extends BaseKarafTest {
 
-    String RESPONSE_SUCCESSFUL_EXECUTION = 
"CamelCircuitBreakerSuccessfulExecution";
-    String RESPONSE_FROM_FALLBACK = "CamelCircuitBreakerResponseFromFallback";
-    String RESPONSE_SHORT_CIRCUITED = 
"CamelCircuitBreakerResponseShortCircuited";
-    String RESPONSE_TIMED_OUT = "CamelCircuitBreakerResponseTimedOut";
-    String RESPONSE_REJECTED = "CamelCircuitBreakerResponseRejected";
+    public static final String COMPONENT = extractName(CamelHystrixTest.class);
+
+    @Test
+    public void test() throws Exception {
+        installCamelFeature(COMPONENT);
+    }
 
 }
diff --git 
a/components/camel-resilience4j/src/main/java/org/apache/camel/component/resilience4j/CircuitBreakerConstants.java
 
b/tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/CamelResilience4jTest.java
similarity index 58%
rename from 
components/camel-resilience4j/src/main/java/org/apache/camel/component/resilience4j/CircuitBreakerConstants.java
rename to 
tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/CamelResilience4jTest.java
index 0dcbb0c..d641fc7 100644
--- 
a/components/camel-resilience4j/src/main/java/org/apache/camel/component/resilience4j/CircuitBreakerConstants.java
+++ 
b/tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/CamelResilience4jTest.java
@@ -14,16 +14,22 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.component.resilience4j;
+package org.apache.camel.itest.karaf;
 
-// TODO: Make these as generic constants so we can use it for hystrix and 
resilience4j
+import org.junit.Ignore;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.ops4j.pax.exam.junit.PaxExam;
 
-public interface CircuitBreakerConstants {
+@RunWith(PaxExam.class)
+@Ignore("Does not work in OSGi")
+public class CamelResilience4jTest extends BaseKarafTest {
 
-    String RESPONSE_SUCCESSFUL_EXECUTION = 
"CamelCircuitBreakerSuccessfulExecution";
-    String RESPONSE_FROM_FALLBACK = "CamelCircuitBreakerResponseFromFallback";
-    String RESPONSE_SHORT_CIRCUITED = 
"CamelCircuitBreakerResponseShortCircuited";
-    String RESPONSE_TIMED_OUT = "CamelCircuitBreakerResponseTimedOut";
-    String RESPONSE_REJECTED = "CamelCircuitBreakerResponseRejected";
+    public static final String COMPONENT = 
extractName(CamelResilience4jTest.class);
+
+    @Test
+    public void test() throws Exception {
+        installCamelFeature(COMPONENT);
+    }
 
 }

Reply via email to