You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ha...@apache.org on 2010/07/07 19:46:51 UTC

svn commit: r961439 - in /camel/trunk: camel-core/src/main/java/org/apache/camel/model/ camel-core/src/main/java/org/apache/camel/spi/ camel-core/src/test/java/org/apache/camel/processor/ camel-core/src/test/java/org/apache/camel/processor/async/ compo...

Author: hadrian
Date: Wed Jul  7 17:46:50 2010
New Revision: 961439

URL: http://svn.apache.org/viewvc?rev=961439&view=rev
Log:
CAMEL-2914. Move beforeWrap() to Policy

Removed:
    camel/trunk/camel-core/src/main/java/org/apache/camel/spi/DefinitionAwarePolicy.java
Modified:
    camel/trunk/camel-core/src/main/java/org/apache/camel/model/PolicyDefinition.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/model/TransactedDefinition.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/spi/Policy.java
    camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DefinitionPolicyPerProcessorTest.java
    camel/trunk/camel-core/src/test/java/org/apache/camel/processor/PolicyPerProcessorTest.java
    camel/trunk/camel-core/src/test/java/org/apache/camel/processor/PolicyPerRouteTest.java
    camel/trunk/camel-core/src/test/java/org/apache/camel/processor/async/AsyncEndpointPolicyTest.java
    camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/TransactedJmsRouteTest.java
    camel/trunk/components/camel-spring-security/src/main/java/org/apache/camel/component/spring/security/SpringSecurityAuthorizationPolicy.java
    camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/spi/SpringTransactionPolicy.java

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/PolicyDefinition.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/PolicyDefinition.java?rev=961439&r1=961438&r2=961439&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/model/PolicyDefinition.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/PolicyDefinition.java Wed Jul  7 17:46:50 2010
@@ -24,7 +24,6 @@ import javax.xml.bind.annotation.XmlTran
 
 import org.apache.camel.Processor;
 import org.apache.camel.processor.WrapProcessor;
-import org.apache.camel.spi.DefinitionAwarePolicy;
 import org.apache.camel.spi.Policy;
 import org.apache.camel.spi.RouteContext;
 import org.apache.camel.spi.TransactedPolicy;
@@ -125,10 +124,7 @@ public class PolicyDefinition extends Ou
         ObjectHelper.notNull(policy, "policy", this);
 
         // before wrap
-        if (policy instanceof DefinitionAwarePolicy) {
-            DefinitionAwarePolicy aware = (DefinitionAwarePolicy) policy;
-            aware.beforeWrap(routeContext, this);
-        }
+        policy.beforeWrap(routeContext, this);
 
         // create processor after the before wrap
         Processor childProcessor = this.createChildProcessor(routeContext, true);

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/TransactedDefinition.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/TransactedDefinition.java?rev=961439&r1=961438&r2=961439&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/model/TransactedDefinition.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/TransactedDefinition.java Wed Jul  7 17:46:50 2010
@@ -18,6 +18,7 @@ package org.apache.camel.model;
 
 import java.lang.reflect.Method;
 import java.util.Map;
+
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlAttribute;
@@ -27,7 +28,6 @@ import javax.xml.bind.annotation.XmlTran
 import org.apache.camel.Processor;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.processor.WrapProcessor;
-import org.apache.camel.spi.DefinitionAwarePolicy;
 import org.apache.camel.spi.Policy;
 import org.apache.camel.spi.RouteContext;
 import org.apache.camel.spi.TransactedPolicy;
@@ -135,10 +135,7 @@ public class TransactedDefinition extend
         ObjectHelper.notNull(policy, "policy", this);
 
         // before wrap
-        if (policy instanceof DefinitionAwarePolicy) {
-            DefinitionAwarePolicy aware = (DefinitionAwarePolicy) policy;
-            aware.beforeWrap(routeContext, this);
-        }
+        policy.beforeWrap(routeContext, this);
 
         // create processor after the before wrap
         Processor childProcessor = this.createChildProcessor(routeContext, true);

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/spi/Policy.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/spi/Policy.java?rev=961439&r1=961438&r2=961439&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/spi/Policy.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/spi/Policy.java Wed Jul  7 17:46:50 2010
@@ -17,6 +17,7 @@
 package org.apache.camel.spi;
 
 import org.apache.camel.Processor;
+import org.apache.camel.model.ProcessorDefinition;
 
 /**
  * A strategy capable of applying interceptors to a processor
@@ -37,6 +38,17 @@ import org.apache.camel.Processor;
 public interface Policy {
 
     /**
+     * Hook invoked before the wrap.
+     * <p/>
+     * This allows you to do any custom logic before the processor is wrapped. For example to
+     * manipulate the {@link org.apache.camel.model.ProcessorDefinition definiton}
+     *
+     * @param routeContext   the route context
+     * @param definition     the processor definition
+     */
+    void beforeWrap(RouteContext routeContext, ProcessorDefinition<?> definition);
+
+    /**
      * Wraps any applicable interceptors around the given processor.
      *
      * @param routeContext the route context

Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DefinitionPolicyPerProcessorTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DefinitionPolicyPerProcessorTest.java?rev=961439&r1=961438&r2=961439&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DefinitionPolicyPerProcessorTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DefinitionPolicyPerProcessorTest.java Wed Jul  7 17:46:50 2010
@@ -24,7 +24,7 @@ import org.apache.camel.impl.JndiRegistr
 import org.apache.camel.model.ProcessorDefinition;
 import org.apache.camel.model.SetBodyDefinition;
 import org.apache.camel.model.language.ConstantExpression;
-import org.apache.camel.spi.DefinitionAwarePolicy;
+import org.apache.camel.spi.Policy;
 import org.apache.camel.spi.RouteContext;
 
 /**
@@ -65,7 +65,7 @@ public class DefinitionPolicyPerProcesso
         };
     }
 
-    public static class MyPolicy implements DefinitionAwarePolicy {
+    public static class MyPolicy implements Policy {
 
         private final String name;
         private int invoked;
@@ -92,6 +92,5 @@ public class DefinitionPolicyPerProcesso
                 }
             };
         }
-
     }
 }

Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/processor/PolicyPerProcessorTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/PolicyPerProcessorTest.java?rev=961439&r1=961438&r2=961439&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/processor/PolicyPerProcessorTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/processor/PolicyPerProcessorTest.java Wed Jul  7 17:46:50 2010
@@ -21,6 +21,7 @@ import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.impl.JndiRegistry;
+import org.apache.camel.model.ProcessorDefinition;
 import org.apache.camel.spi.Policy;
 import org.apache.camel.spi.RouteContext;
 
@@ -85,6 +86,11 @@ public class PolicyPerProcessorTest exte
             this.name = name;
         }
 
+        public void beforeWrap(RouteContext routeContext,
+                ProcessorDefinition<?> definition) {
+            // no need to modify the route
+        }
+
         public Processor wrap(RouteContext routeContext, final Processor processor) {
             return new Processor() {
                 public void process(Exchange exchange) throws Exception {

Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/processor/PolicyPerRouteTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/PolicyPerRouteTest.java?rev=961439&r1=961438&r2=961439&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/processor/PolicyPerRouteTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/processor/PolicyPerRouteTest.java Wed Jul  7 17:46:50 2010
@@ -21,6 +21,7 @@ import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.impl.JndiRegistry;
+import org.apache.camel.model.ProcessorDefinition;
 import org.apache.camel.spi.Policy;
 import org.apache.camel.spi.RouteContext;
 
@@ -85,6 +86,11 @@ public class PolicyPerRouteTest extends 
             this.name = name;
         }
 
+        public void beforeWrap(RouteContext routeContext,
+                ProcessorDefinition<?> definition) {
+            // no need to modify the route
+        }
+
         public Processor wrap(RouteContext routeContext, final Processor processor) {
             return new Processor() {
                 public void process(Exchange exchange) throws Exception {

Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/processor/async/AsyncEndpointPolicyTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/async/AsyncEndpointPolicyTest.java?rev=961439&r1=961438&r2=961439&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/processor/async/AsyncEndpointPolicyTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/processor/async/AsyncEndpointPolicyTest.java Wed Jul  7 17:46:50 2010
@@ -24,6 +24,7 @@ import org.apache.camel.Processor;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.impl.JndiRegistry;
 import org.apache.camel.impl.converter.AsyncProcessorTypeConverter;
+import org.apache.camel.model.ProcessorDefinition;
 import org.apache.camel.spi.Policy;
 import org.apache.camel.spi.RouteContext;
 import org.apache.camel.util.AsyncProcessorHelper;
@@ -109,6 +110,11 @@ public class AsyncEndpointPolicyTest ext
             this.name = name;
         }
 
+        public void beforeWrap(RouteContext routeContext,
+                ProcessorDefinition<?> definition) {
+            // no need to modify the route
+        }
+
         public Processor wrap(RouteContext routeContext, final Processor processor) {
             return new AsyncProcessor() {
                 public boolean process(final Exchange exchange, final AsyncCallback callback) {

Modified: camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/TransactedJmsRouteTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/TransactedJmsRouteTest.java?rev=961439&r1=961438&r2=961439&view=diff
==============================================================================
--- camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/TransactedJmsRouteTest.java (original)
+++ camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/TransactedJmsRouteTest.java Wed Jul  7 17:46:50 2010
@@ -27,6 +27,7 @@ import org.apache.camel.Processor;
 import org.apache.camel.Route;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.model.ProcessorDefinition;
 import org.apache.camel.processor.DelegateProcessor;
 import org.apache.camel.spi.Policy;
 import org.apache.camel.spi.RouteContext;
@@ -68,6 +69,9 @@ public class TransactedJmsRouteTest exte
                 SpringTransactionPolicy requirenew = new SpringTransactionPolicy(lookup("PROPAGATION_REQUIRES_NEW", TransactionTemplate.class));
 
                 Policy rollback = new Policy() {
+                    public void beforeWrap(RouteContext routeContext, ProcessorDefinition<?> definition) {
+                    }
+
                     public Processor wrap(RouteContext routeContext, Processor processor) {
                         return new DelegateProcessor(processor) {
                             @Override
@@ -85,6 +89,9 @@ public class TransactedJmsRouteTest exte
                 };
 
                 Policy catchRollback = new Policy() {
+                    public void beforeWrap(RouteContext routeContext, ProcessorDefinition<?> definition) {
+                    }
+
                     public Processor wrap(RouteContext routeContext, Processor processor) {
                         return new DelegateProcessor(processor) {
                             @Override
@@ -305,5 +312,4 @@ public class TransactedJmsRouteTest exte
 
         assertIsSatisfied(mockEndpointA, mockEndpointB);
     }
-
 }

Modified: camel/trunk/components/camel-spring-security/src/main/java/org/apache/camel/component/spring/security/SpringSecurityAuthorizationPolicy.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring-security/src/main/java/org/apache/camel/component/spring/security/SpringSecurityAuthorizationPolicy.java?rev=961439&r1=961438&r2=961439&view=diff
==============================================================================
--- camel/trunk/components/camel-spring-security/src/main/java/org/apache/camel/component/spring/security/SpringSecurityAuthorizationPolicy.java (original)
+++ camel/trunk/components/camel-spring-security/src/main/java/org/apache/camel/component/spring/security/SpringSecurityAuthorizationPolicy.java Wed Jul  7 17:46:50 2010
@@ -23,6 +23,7 @@ import org.apache.camel.Exchange;
 import org.apache.camel.Message;
 import org.apache.camel.Processor;
 import org.apache.camel.model.IdentifiedType;
+import org.apache.camel.model.ProcessorDefinition;
 import org.apache.camel.processor.DelegateProcessor;
 import org.apache.camel.spi.AuthorizationPolicy;
 import org.apache.camel.spi.RouteContext;
@@ -53,6 +54,9 @@ public class SpringSecurityAuthorization
     private boolean alwaysReauthenticate;
     private boolean useThreadSecurityContext = true;
 
+    public void beforeWrap(RouteContext routeContext, ProcessorDefinition<?> definition) {
+    }
+
     public Processor wrap(RouteContext routeContext, Processor processor) {
         // wrap the processor with authorizeDelegateProcessor
         return new AuthorizeDelegateProcess(processor);
@@ -206,5 +210,4 @@ public class SpringSecurityAuthorization
     public void setAccessDecisionManager(AccessDecisionManager accessDecisionManager) {
         this.accessDecisionManager = accessDecisionManager;
     }
-
 }

Modified: camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/spi/SpringTransactionPolicy.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/spi/SpringTransactionPolicy.java?rev=961439&r1=961438&r2=961439&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/spi/SpringTransactionPolicy.java (original)
+++ camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/spi/SpringTransactionPolicy.java Wed Jul  7 17:46:50 2010
@@ -19,6 +19,7 @@ package org.apache.camel.spring.spi;
 import org.apache.camel.Processor;
 import org.apache.camel.builder.ErrorHandlerBuilder;
 import org.apache.camel.builder.ErrorHandlerBuilderRef;
+import org.apache.camel.model.ProcessorDefinition;
 import org.apache.camel.spi.RouteContext;
 import org.apache.camel.spi.TransactedPolicy;
 import org.apache.camel.util.ObjectHelper;
@@ -52,6 +53,9 @@ public class SpringTransactionPolicy imp
         this.transactionManager = transactionManager;
     }
 
+    public void beforeWrap(RouteContext routeContext, ProcessorDefinition<?> definition) {
+    }
+
     public Processor wrap(RouteContext routeContext, Processor processor) {
         TransactionErrorHandler answer;