You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by he...@apache.org on 2006/04/13 19:34:45 UTC

svn commit: r393863 - /webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/client/WSDLBasedPolicyProcessor.java

Author: hemapani
Date: Thu Apr 13 10:34:44 2006
New Revision: 393863

URL: http://svn.apache.org/viewcvs?rev=393863&view=rev
Log:
add policy based enagedment, enage only if not already engaed.. with policy things it is very hard to do this witout this

Modified:
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/client/WSDLBasedPolicyProcessor.java

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/client/WSDLBasedPolicyProcessor.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/client/WSDLBasedPolicyProcessor.java?rev=393863&r1=393862&r2=393863&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/client/WSDLBasedPolicyProcessor.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/client/WSDLBasedPolicyProcessor.java Thu Apr 13 10:34:44 2006
@@ -79,40 +79,58 @@
 	}
 	
 	
-	public void configureOperationPolices(AxisOperation op)throws AxisFault{
-		PolicyInclude policyInclude = op.getPolicyInclude();
-		
-		if(policyInclude != null ){
-			Policy policy = policyInclude.getEffectivePolicy();
-			if(policy != null){
-				if (!policy.isNormalized()) {
-					policy = (Policy) policy.normalize();
-				}
+	public void configureOperationPolices(AxisOperation op) throws AxisFault {
+        PolicyInclude policyInclude = op.getPolicyInclude();
 
-				XorCompositeAssertion XOR = (XorCompositeAssertion) policy.getTerms()
-						.get(0);
-				AndCompositeAssertion AND = (AndCompositeAssertion) XOR.getTerms().get(
-						0);
-				
-				Iterator pAsserations = AND.getTerms().iterator();
-				while(pAsserations.hasNext()){
-					PrimitiveAssertion pa = (PrimitiveAssertion) pAsserations.next();
-					String namespace = pa.getName().getNamespaceURI();
-					ArrayList moduleList = (ArrayList)ns2modules.get(namespace);
-					
-					if (moduleList == null) {
-						System.err.println("cannot find a module to process "
-								+ namespace + "type assertions");
-						continue;
-					}else{
-						for(int i = 0;i<moduleList.size();i++){
-							AxisModule axisModule = (AxisModule) moduleList.get(i);
-							op.engageModule(axisModule,configctx.getAxisConfiguration());
-							axisModule.getModule().engageNotify(op);
-						}
-					}
-				}
-			}
-		}
-	} 
+        if (policyInclude != null) {
+            Policy policy = policyInclude.getEffectivePolicy();
+            if (policy != null) {
+                if (!policy.isNormalized()) {
+                    policy = (Policy) policy.normalize();
+                }
+
+                XorCompositeAssertion XOR = (XorCompositeAssertion) policy
+                        .getTerms().get(0);
+                AndCompositeAssertion AND = (AndCompositeAssertion) XOR
+                        .getTerms().get(0);
+
+                Iterator pAsserations = AND.getTerms().iterator();
+                while (pAsserations.hasNext()) {
+                    PrimitiveAssertion pa = (PrimitiveAssertion) pAsserations
+                            .next();
+                    String namespace = pa.getName().getNamespaceURI();
+                    ArrayList moduleList = (ArrayList) ns2modules
+                            .get(namespace);
+
+                    if (moduleList == null) {
+                        System.err.println("cannot find a module to process "
+                                + namespace + "type assertions");
+                        continue;
+                    } else {
+                        for (int i = 0; i < moduleList.size(); i++) {
+                            AxisModule axisModule = (AxisModule) moduleList
+                                    .get(i);
+                            Iterator engagedModules = op.getEngagedModules()
+                                    .iterator();
+                            boolean found = false;
+                            while (engagedModules.hasNext()) {
+                                AxisModule module = (AxisModule) engagedModules
+                                        .next();
+                                if (module.getName().equals(
+                                        axisModule.getName())) {
+                                    found = true;
+                                    break;
+                                }
+                            }
+                            if (!found) {
+                                op.engageModule(axisModule, configctx
+                                        .getAxisConfiguration());
+                                axisModule.getModule().engageNotify(op);
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
 }