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 2009/10/12 19:52:41 UTC
svn commit: r824442 - in /camel/trunk/camel-core/src:
main/java/org/apache/camel/model/ test/java/org/apache/camel/management/
test/java/org/apache/camel/processor/intercept/
Author: davsclaus
Date: Mon Oct 12 17:52:41 2009
New Revision: 824442
URL: http://svn.apache.org/viewvc?rev=824442&view=rev
Log:
CAMEL-2064: Fixed send to interceptor. Thanks to Martin Krasser for the patch.
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/model/InterceptSendToEndpointDefinition.java
camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedErrorHandlerOptionsTest.java
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/intercept/InterceptSendToEndpointTest.java
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/InterceptSendToEndpointDefinition.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/InterceptSendToEndpointDefinition.java?rev=824442&r1=824441&r2=824442&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/model/InterceptSendToEndpointDefinition.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/InterceptSendToEndpointDefinition.java Mon Oct 12 17:52:41 2009
@@ -82,10 +82,12 @@
// register endpoint callback so we can proxy the endpoint
routeContext.getCamelContext().addRegisterEndpointCallback(new EndpointStrategy() {
public Endpoint registerEndpoint(String uri, Endpoint endpoint) {
- // only proxy if the uri is matched
- boolean match = getUri() == null || EndpointHelper.matchEndpoint(uri, getUri());
- if (match) {
- // decorate endpoint with our proxy
+
+ if (endpoint instanceof InterceptSendToEndpoint) {
+ // endpoint already decorated
+ return endpoint;
+ } else if (getUri() == null || EndpointHelper.matchEndpoint(uri, getUri())) {
+ // only proxy if the uri is matched decorate endpoint with our proxy
boolean skip = skipSendToOriginalEndpoint != null ? skipSendToOriginalEndpoint : false;
InterceptSendToEndpoint proxy = new InterceptSendToEndpoint(endpoint, skip);
proxy.setDetour(detour);
Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedErrorHandlerOptionsTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedErrorHandlerOptionsTest.java?rev=824442&r1=824441&r2=824442&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedErrorHandlerOptionsTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedErrorHandlerOptionsTest.java Mon Oct 12 17:52:41 2009
@@ -73,6 +73,8 @@
Double backoff = (Double) mbeanServer.getAttribute(on, "BackOffMultiplier");
assertNotNull(backoff);
+ // TODO continue from here
+
Double cf = (Double) mbeanServer.getAttribute(on, "CollisionAvoidanceFactor");
assertNotNull(cf);
Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/processor/intercept/InterceptSendToEndpointTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/intercept/InterceptSendToEndpointTest.java?rev=824442&r1=824441&r2=824442&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/processor/intercept/InterceptSendToEndpointTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/processor/intercept/InterceptSendToEndpointTest.java Mon Oct 12 17:52:41 2009
@@ -16,7 +16,11 @@
*/
package org.apache.camel.processor.intercept;
+import java.util.concurrent.atomic.AtomicInteger;
+
import org.apache.camel.ContextTestSupport;
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
import org.apache.camel.builder.RouteBuilder;
/**
@@ -180,4 +184,26 @@
assertMockEndpointsSatisfied();
}
+ public void testInterceptEndpointOnce() throws Exception {
+ context.addRoutes(new RouteBuilder() {
+ @Override
+ public void configure() throws Exception {
+ interceptSendToEndpoint("direct:intercept1").to("mock:detour1");
+ interceptSendToEndpoint("direct:intercept2").to("mock:detour2");
+
+ from("direct:input1").to("direct:intercept1");
+ from("direct:input2").to("direct:intercept2");
+ }
+ });
+ context.start();
+
+ getMockEndpoint("mock:detour1").expectedBodiesReceived("Hello World");
+ getMockEndpoint("mock:detour2").expectedBodiesReceived("Hello World");
+
+ template.sendBody("direct:input1", "Hello World");
+ template.sendBody("direct:input2", "Hello World");
+
+ assertMockEndpointsSatisfied();
+ }
+
}