You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2015/08/07 17:12:59 UTC
[1/2] camel git commit: CAMEL-7974: Circuit break store state on
exchange
Repository: camel
Updated Branches:
refs/heads/master 805db35b4 -> 98e8657e2
CAMEL-7974: Circuit break store state on exchange
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/68c6c1ad
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/68c6c1ad
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/68c6c1ad
Branch: refs/heads/master
Commit: 68c6c1ad9606c5dd911b3e6978c9bb84d6505c6e
Parents: 805db35
Author: Claus Ibsen <da...@apache.org>
Authored: Fri Aug 7 17:15:19 2015 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Fri Aug 7 17:15:32 2015 +0200
----------------------------------------------------------------------
.../src/main/java/org/apache/camel/Exchange.java | 17 +++++++++--------
.../loadbalancer/CircuitBreakerLoadBalancer.java | 14 ++++++++++++++
2 files changed, 23 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/68c6c1ad/camel-core/src/main/java/org/apache/camel/Exchange.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/Exchange.java b/camel-core/src/main/java/org/apache/camel/Exchange.java
index 8e7cc84..1780b65 100644
--- a/camel-core/src/main/java/org/apache/camel/Exchange.java
+++ b/camel-core/src/main/java/org/apache/camel/Exchange.java
@@ -94,12 +94,13 @@ public interface Exchange {
// used across other Apache products such as AMQ, SMX etc.
String BREADCRUMB_ID = "breadcrumbId";
- String CHARSET_NAME = "CamelCharsetName";
- String CREATED_TIMESTAMP = "CamelCreatedTimestamp";
- String CONTENT_ENCODING = "Content-Encoding";
- String CONTENT_LENGTH = "Content-Length";
- String CONTENT_TYPE = "Content-Type";
- String CORRELATION_ID = "CamelCorrelationId";
+ String CHARSET_NAME = "CamelCharsetName";
+ String CIRCUIT_BREAKER_STATE = "CamelCircuitBreakerState";
+ String CREATED_TIMESTAMP = "CamelCreatedTimestamp";
+ String CONTENT_ENCODING = "Content-Encoding";
+ String CONTENT_LENGTH = "Content-Length";
+ String CONTENT_TYPE = "Content-Type";
+ String CORRELATION_ID = "CamelCorrelationId";
String DATASET_INDEX = "CamelDataSetIndex";
String DEFAULT_CHARSET_PROPERTY = "org.apache.camel.default.charset";
@@ -118,7 +119,6 @@ public interface Exchange {
String FAILURE_HANDLED = "CamelFailureHandled";
String FAILURE_ENDPOINT = "CamelFailureEndpoint";
String FAILURE_ROUTE_ID = "CamelFailureRouteId";
- String FILTER_NON_XML_CHARS = "CamelFilterNonXmlChars";
String FILE_CONTENT_TYPE = "CamelFileContentType";
String FILE_LOCAL_WORK_PATH = "CamelFileLocalWorkPath";
String FILE_NAME = "CamelFileName";
@@ -129,11 +129,12 @@ public interface Exchange {
String FILE_PARENT = "CamelFileParent";
String FILE_LAST_MODIFIED = "CamelFileLastModified";
String FILE_LENGTH = "CamelFileLength";
- String FILTER_MATCHED = "CamelFilterMatched";
String FILE_LOCK_FILE_ACQUIRED = "CamelFileLockFileAcquired";
String FILE_LOCK_FILE_NAME = "CamelFileLockFileName";
String FILE_LOCK_EXCLUSIVE_LOCK = "CamelFileLockExclusiveLock";
String FILE_LOCK_RANDOM_ACCESS_FILE = "CamelFileLockRandomAccessFile";
+ String FILTER_MATCHED = "CamelFilterMatched";
+ String FILTER_NON_XML_CHARS = "CamelFilterNonXmlChars";
String GROUPED_EXCHANGE = "CamelGroupedExchange";
http://git-wip-us.apache.org/repos/asf/camel/blob/68c6c1ad/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/CircuitBreakerLoadBalancer.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/CircuitBreakerLoadBalancer.java b/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/CircuitBreakerLoadBalancer.java
index abb2758..3f3c484 100644
--- a/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/CircuitBreakerLoadBalancer.java
+++ b/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/CircuitBreakerLoadBalancer.java
@@ -225,6 +225,9 @@ public class CircuitBreakerLoadBalancer extends LoadBalancerSupport implements T
throw new IllegalStateException("No processors could be chosen to process CircuitBreaker");
}
+ // store state as exchange property
+ exchange.setProperty(Exchange.CIRCUIT_BREAKER_STATE, stateAsString());
+
AsyncProcessor albp = AsyncProcessorConverterHelper.convert(processor);
// Added a callback for processing the exchange in the callback
boolean sync = albp.process(exchange, new CircuitBreakerCallback(exchange, callback));
@@ -256,6 +259,17 @@ public class CircuitBreakerLoadBalancer extends LoadBalancerSupport implements T
return true;
}
+ private String stateAsString() {
+ int num = state.get();
+ if (num == STATE_CLOSED) {
+ return "closed";
+ } else if (num == STATE_HALF_OPEN) {
+ return "halfOpen";
+ } else {
+ return "open";
+ }
+ }
+
public String toString() {
return "CircuitBreakerLoadBalancer[" + getProcessors() + "]";
}
[2/2] camel git commit: CAMEL-7974: Circuit break store state on
exchange
Posted by da...@apache.org.
CAMEL-7974: Circuit break store state on exchange
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/98e8657e
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/98e8657e
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/98e8657e
Branch: refs/heads/master
Commit: 98e8657e25bc08987252dddca292cbbe4c59e2f3
Parents: 68c6c1a
Author: Claus Ibsen <da...@apache.org>
Authored: Fri Aug 7 17:20:08 2015 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Fri Aug 7 17:20:08 2015 +0200
----------------------------------------------------------------------
.../loadbalancer/CircuitBreakerLoadBalancer.java | 18 +++++-------------
1 file changed, 5 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/98e8657e/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/CircuitBreakerLoadBalancer.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/CircuitBreakerLoadBalancer.java b/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/CircuitBreakerLoadBalancer.java
index 3f3c484..7445a57 100644
--- a/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/CircuitBreakerLoadBalancer.java
+++ b/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/CircuitBreakerLoadBalancer.java
@@ -204,14 +204,7 @@ public class CircuitBreakerLoadBalancer extends LoadBalancerSupport implements T
public String dumpState() {
int num = state.get();
- String state;
- if (num == 0) {
- state = "closed";
- } else if (num == 1) {
- state = "half open";
- } else {
- state = "open";
- }
+ String state = stateAsString(num);
if (lastFailure > 0) {
return String.format("State %s, failures %d, closed since %d", state, failures.get(), System.currentTimeMillis() - lastFailure);
} else {
@@ -226,7 +219,7 @@ public class CircuitBreakerLoadBalancer extends LoadBalancerSupport implements T
}
// store state as exchange property
- exchange.setProperty(Exchange.CIRCUIT_BREAKER_STATE, stateAsString());
+ exchange.setProperty(Exchange.CIRCUIT_BREAKER_STATE, stateAsString(state.get()));
AsyncProcessor albp = AsyncProcessorConverterHelper.convert(processor);
// Added a callback for processing the exchange in the callback
@@ -259,14 +252,13 @@ public class CircuitBreakerLoadBalancer extends LoadBalancerSupport implements T
return true;
}
- private String stateAsString() {
- int num = state.get();
+ private static String stateAsString(int num) {
if (num == STATE_CLOSED) {
return "closed";
} else if (num == STATE_HALF_OPEN) {
- return "halfOpen";
+ return "half opened";
} else {
- return "open";
+ return "opened";
}
}