You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by sv...@apache.org on 2007/12/28 19:29:21 UTC

svn commit: r607306 - /incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/invocation/JavaPolicyHandlingRuntimeWireProcessor.java

Author: svkrish
Date: Fri Dec 28 10:29:21 2007
New Revision: 607306

URL: http://svn.apache.org/viewvc?rev=607306&view=rev
Log:
fixing ordering of policy interceptor addition into invocation chain

Modified:
    incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/invocation/JavaPolicyHandlingRuntimeWireProcessor.java

Modified: incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/invocation/JavaPolicyHandlingRuntimeWireProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/invocation/JavaPolicyHandlingRuntimeWireProcessor.java?rev=607306&r1=607305&r2=607306&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/invocation/JavaPolicyHandlingRuntimeWireProcessor.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/invocation/JavaPolicyHandlingRuntimeWireProcessor.java Fri Dec 28 10:29:21 2007
@@ -27,6 +27,7 @@
 import org.apache.tuscany.sca.assembly.Contract;
 import org.apache.tuscany.sca.assembly.OperationsConfigurator;
 import org.apache.tuscany.sca.implementation.java.JavaImplementation;
+import org.apache.tuscany.sca.invocation.Interceptor;
 import org.apache.tuscany.sca.invocation.InvocationChain;
 import org.apache.tuscany.sca.invocation.Invoker;
 import org.apache.tuscany.sca.policy.Intent;
@@ -56,7 +57,6 @@
         RuntimeComponent component = wire.getTarget().getComponent();
         if ( component != null && component.getImplementation() instanceof JavaImplementation ) {
             JavaImplementation javaImpl = (JavaImplementation)component.getImplementation();
-            
             if ( javaImpl instanceof PolicySetAttachPoint ) {
                 PolicyHandler policyHandler = null;
                 List<PolicyHandler> implPolicyHandlers = new ArrayList<PolicyHandler>();
@@ -101,7 +101,15 @@
                         }
                         
                         if ( !applicablePolicyHandlers.isEmpty() ) {
-                            chain.addInterceptor(1, new PolicyHandlingInterceptor(chain.getTargetOperation(),
+                            int index = 0;
+                            Invoker invoker = chain.getHeadInvoker();
+                            while ( invoker != chain.getTailInvoker()) {
+                                if ( invoker instanceof Interceptor ) {
+                                    invoker = ((Interceptor)invoker).getNext();
+                                    ++index;
+                                }
+                            }
+                            chain.addInterceptor(index, new PolicyHandlingInterceptor(chain.getTargetOperation(),
                                                                                   applicablePolicyHandlers));
                         }
                     }



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org