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 sa...@apache.org on 2006/09/29 10:48:44 UTC

svn commit: r451168 - in /webservices/axis2/trunk/java/modules: codegen/src/org/apache/axis2/wsdl/codegen/emitter/ codegen/src/org/apache/axis2/wsdl/codegen/extension/ codegen/src/org/apache/axis2/wsdl/template/java/ kernel/src/org/apache/axis2/descrip...

Author: sanka
Date: Fri Sep 29 01:48:43 2006
New Revision: 451168

URL: http://svn.apache.org/viewvc?view=rev&rev=451168
Log:
(1) Modified InterfaceImplementationTemplate to use the new Neethi2 code 

(2) Added the processing of Policies defined in an import of a WSDL

(3) Minor bug fixes



Modified:
    webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/AxisServiceBasedMultiLanguageEmitter.java
    webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/extension/PolicyEvaluator.java
    webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/PolicyInclude.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/PolicyUtil.java
    webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/ProtectionTokenBuilder.java
    webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/Trust10.java
    webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/Rampart.java
    webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/policy/model/RampartConfig.java

Modified: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/AxisServiceBasedMultiLanguageEmitter.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/AxisServiceBasedMultiLanguageEmitter.java?view=diff&rev=451168&r1=451167&r2=451168
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/AxisServiceBasedMultiLanguageEmitter.java (original)
+++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/AxisServiceBasedMultiLanguageEmitter.java Fri Sep 29 01:48:43 2006
@@ -547,6 +547,7 @@
 
         if (servicePolicy != null) {
             String policyString = PolicyUtil.policyComponentToString(servicePolicy);
+            policyString = PolicyUtil.getSafeString(policyString);
             addAttribute(doc, "policy", policyString, rootElement);
         }
 
@@ -1471,7 +1472,7 @@
         if (policy != null) {
             try  {
             addAttribute(doc, "policy",
-                    PolicyUtil.policyComponentToString(policy),
+                    PolicyUtil.getSafeString(PolicyUtil.policyComponentToString(policy)),
                     methodElement);
             } catch (Exception ex) {
                 throw new RuntimeException("can't serialize the policy ..");

Modified: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/extension/PolicyEvaluator.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/extension/PolicyEvaluator.java?view=diff&rev=451168&r1=451167&r2=451168
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/extension/PolicyEvaluator.java (original)
+++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/extension/PolicyEvaluator.java Fri Sep 29 01:48:43 2006
@@ -155,7 +155,8 @@
             List assertionList;
             
             for (Iterator assertions = ((List) iterator.next()).iterator(); assertions.hasNext();) {
-                assertion = (Assertion) iterator.next();
+              
+                assertion = (Assertion) assertions.next();
                 targetNamesapce = assertion.getName().getNamespaceURI();
                 
                 if ((assertionList = (List) map.get(targetNamesapce)) == null)  {

Modified: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl?view=diff&rev=451168&r1=451167&r2=451168
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl (original)
+++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl Fri Sep 29 01:48:43 2006
@@ -44,20 +44,15 @@
         private java.util.HashMap faultMessageMap = new java.util.HashMap();
 
     
-    private void populateAxisService(){
+    private void populateAxisService() throws org.apache.axis2.AxisFault {
 
      //creating the Service with a unique name
      _service = new org.apache.axis2.description.AxisService("<xsl:value-of select="@servicename"/>" + this.hashCode());
-    <xsl:if test="@policy">
-    /*
-     * setting the endpont policy
-     */
+     
+    <xsl:if test="@policy">     
      java.lang.String _service_policy_string = "<xsl:value-of select="@policy"/>";
-     org.apache.axis2.description.PolicyInclude servicePolicyInclude
-         = _service.getPolicyInclude();
-     servicePolicyInclude.addPolicyElement(
-             org.apache.axis2.description.PolicyInclude.SERVICE_POLICY,
-             getPolicyFromString(_service_policy_string));
+     org.apache.neethi.Policy _endpoint_policy = getPolicy(_service_policy_string);
+     _service.applyPolicy(_endpoint_policy);
     </xsl:if>
 
         //creating the operations
@@ -82,12 +77,8 @@
 
         <xsl:if test="@policy">
         __operation_policy_string = "<xsl:value-of select="@policy"/>";
-        org.apache.ws.policy.Policy __operation_policy
-                = getPolicyFromString(__operation_policy_string);
-        org.apache.axis2.description.PolicyInclude include
-                = __operation.getPolicyInclude();
-        include.addPolicyElement(org.apache.axis2.description.PolicyInclude.ANON_POLICY,
-                __operation_policy);
+	org.apache.neethi.Policy __operation_policy =  getPolicyFromString(__operation_policy_string);
+	__operation.applyPolicy(__operation_policy);
 
         </xsl:if>
 
@@ -133,29 +124,6 @@
         _serviceClient = new org.apache.axis2.client.ServiceClient(configurationContext,_service);
         configurationContext = _serviceClient.getServiceContext().getConfigurationContext();
 
-    <xsl:if test="//@policy">
-    
-    ////////////////////////////////////////////////////////////////////////
-        
-    org.apache.axis2.engine.AxisConfiguration axisConfiguration = configurationContext.getAxisConfiguration();
-    java.util.Collection modules = axisConfiguration.getModules().values();
-        
-    for (java.util.Iterator iterator = modules.iterator(); iterator.hasNext();) {
-        org.apache.axis2.description.AxisModule axisModule = (org.apache.axis2.description.AxisModule) iterator.next();
-        java.lang.String[] namespaces = axisModule.getSupportedPolicyNamespaces();
-            
-        if (namespaces != null) {
-            for (int i = 0; i &lt; namespaces.length; i++) {
-                ns2Modules.put(namespaces[i], axisModule);
-            }
-        }
-    }
-                
-    ////////////////////////////////////////////////////////////////////////
-        
-    </xsl:if>
-    
-
         _serviceClient.getOptions().setTo(new org.apache.axis2.addressing.EndpointReference(
                 targetEndpoint));
         <xsl:if test="$soapVersion='1.2'">
@@ -163,19 +131,6 @@
             _serviceClient.getOptions().setSoapVersionURI(org.apache.axiom.soap.SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI);
         </xsl:if>
     
-    <xsl:if test="//@policy">
-    ////////////////////////////////////////////////////////////////////////
-    
-    org.apache.axis2.description.AxisOperation axisOperation;
-        
-    for (java.util.Iterator iterator = _service.getChildren(); iterator.hasNext(); ){
-            // Engaging the modules per AxisOperation 
-        axisOperation = (org.apache.axis2.description.AxisOperation) iterator.next();
-        engage(axisOperation, configurationContext.getAxisConfiguration());
-    }    
-    
-    ///////////////////////////////////////////////////////////////////////
-    </xsl:if>
     }
 
     /**
@@ -721,91 +676,14 @@
     }
 
     <xsl:if test="//@policy">
-    
-    /** */
-    private java.util.HashMap ns2Modules = new java.util.HashMap();
-    
     ////////////////////////////////////////////////////////////////////////
     
-    private static org.apache.ws.policy.Policy getPolicyFromString (java.lang.String policyString) {
-        org.apache.ws.policy.util.PolicyReader prdr 
-            = org.apache.ws.policy.util.PolicyFactory.getPolicyReader(
-                    org.apache.ws.policy.util.PolicyFactory.OM_POLICY_READER);
-        try {
-            if (policyString != null 
-                &amp;&amp; !policyString.trim().equals("")) {
-                    return prdr.readPolicy(
-                        new java.io.ByteArrayInputStream(
-                        policyString.getBytes()));
-            }
-        
-        } catch (Exception e) {
-            throw new RuntimeException(
-                "cannot convert "+ policyString    + " to policy", e);
-        }
-        return null;
-    }
-    
-    private static org.apache.ws.policy.Policy merge(java.lang.String policyString1,
-        java.lang.String policyString2) {
-        return (org.apache.ws.policy.Policy) getPolicyFromString(policyString1)
-            .merge(getPolicyFromString(policyString2));
+    private static org.apache.neethi.Policy getPolicy (java.lang.String policyString) {
+    	java.io.ByteArrayInputStream bais = new java.io.ByteArrayInputStream(policyString.getBytes());
+    	return org.apache.neethi.PolicyEngine.getPolicy(bais);
     }
     
-
-    private java.util.ArrayList getModules(java.util.List termsList) {
-        java.util.ArrayList arrayList = new java.util.ArrayList();
-        java.util.Iterator iterator = termsList.iterator();
-        
-        org.apache.ws.policy.PrimitiveAssertion pa;
-        java.lang.String namespace;
-        org.apache.axis2.description.AxisModule axisModule;
-        
-        while (iterator.hasNext()) {
-            pa = (org.apache.ws.policy.PrimitiveAssertion) iterator.next();
-            namespace = pa.getName().getNamespaceURI();
-            axisModule = (org.apache.axis2.description.AxisModule) ns2Modules.get(namespace);
-            
-            if (axisModule == null) {
-                // TODO
-                System.err.println("Warning: cannot find a module for process PrimitiveAssertion - " + pa.getName());
-            }            
-            arrayList.add(axisModule);
-        }
-        
-        return arrayList;
-    }
-    private void engage(org.apache.axis2.description.AxisDescription axisDescription, org.apache.axis2.engine.AxisConfiguration axisConfiguration) throws org.apache.axis2.AxisFault {
-        
-        org.apache.axis2.description.PolicyInclude policyInclude = axisDescription.getPolicyInclude();
-        org.apache.ws.policy.Policy policy = policyInclude.getEffectivePolicy();
-        
-        if (policy == null) {
-            return;
-        }
-        
-        if (! policy.isNormalized()) {
-            policy = (org.apache.ws.policy.Policy) policy.normalize();
-        }
-        
-        org.apache.ws.policy.ExactlyOne xor = (org.apache.ws.policy.ExactlyOne) policy.getTerms().get(0);
-        if (xor.isEmpty()) {
-            // TODO
-            throw new RuntimeException("No policy alternative found");
-        }
-        org.apache.ws.policy.All anAlternative = (org.apache.ws.policy.All) xor.getTerms().get(0);
-        java.util.List moduleList = getModules(anAlternative.getTerms());
-        
-        if (axisDescription instanceof org.apache.axis2.description.AxisService) {
-            for (java.util.Iterator iterator = moduleList.iterator(); iterator.hasNext();) {
-                ((org.apache.axis2.description.AxisService) axisDescription).engageModule((org.apache.axis2.description.AxisModule) iterator.next(), axisConfiguration);
-            }
-        } else if (axisDescription instanceof org.apache.axis2.description.AxisOperation) {
-            for (java.util.Iterator iterator = moduleList.iterator(); iterator.hasNext();) {
-                ((org.apache.axis2.description.AxisOperation) axisDescription).engageModule((org.apache.axis2.description.AxisModule) iterator.next(), axisConfiguration);
-            }
-        }
-    }
+    /////////////////////////////////////////////////////////////////////////
 
     </xsl:if>
     

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/PolicyInclude.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/PolicyInclude.java?view=diff&rev=451168&r1=451167&r2=451168
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/PolicyInclude.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/PolicyInclude.java Fri Sep 29 01:48:43 2006
@@ -163,6 +163,7 @@
 			Policy p;
 
 			if (policyElement instanceof PolicyReference) {
+                PolicyRegistry r = getPolicyRegistry();
 				p = (Policy) ((PolicyReference) policyElement)
 						.normalize(getPolicyRegistry(), false);
 

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java?view=diff&rev=451168&r1=451167&r2=451168
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java Fri Sep 29 01:48:43 2006
@@ -185,6 +185,7 @@
             if (wsdl4jDefinition == null) {
                 return null;
             }
+            
             //setting target name space
             axisService.setTargetNamespace(wsdl4jDefinition
                     .getTargetNamespace());
@@ -262,13 +263,16 @@
         if (wsdl4jDefinition == null) {
             return; // can't continue without wsdl
         }
-        // adding ns in the original WSDL
-        processPoliciesInDefintion(wsdl4jDefinition);
-
+        
         // process the imports
         //send an empty list as the processed namespace list since this
         //is the first call
         processImports(wsdl4jDefinition,new ArrayList());
+        
+
+        // Adding the policies in the Definition to the the PolicyRegistry 
+        processPoliciesInDefintion(wsdl4jDefinition);
+
 
         // setup the schemaMap
         schemaMap = populateSchemaMap(wsdl4jDefinition.getTypes());
@@ -1452,6 +1456,9 @@
                             //add services
                             Map serviceMap = importedDef.getServices();
                             wsdl4JDefinition.getServices().putAll(serviceMap);
+                            
+                            List extElementList = importedDef.getExtensibilityElements();
+                            wsdl4JDefinition.getExtensibilityElements().addAll(extElementList);
 
                         }
 

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/PolicyUtil.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/PolicyUtil.java?view=diff&rev=451168&r1=451167&r2=451168
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/PolicyUtil.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/PolicyUtil.java Fri Sep 29 01:48:43 2006
@@ -38,7 +38,7 @@
 
 public class PolicyUtil {
 
-    private static String getSafeString(String unsafeString) {
+    public static String getSafeString(String unsafeString) {
         StringBuffer sbuf = new StringBuffer();
 
         char[] chars = unsafeString.toCharArray();

Modified: webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/ProtectionTokenBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/ProtectionTokenBuilder.java?view=diff&rev=451168&r1=451167&r2=451168
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/ProtectionTokenBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/builders/ProtectionTokenBuilder.java Fri Sep 29 01:48:43 2006
@@ -51,7 +51,10 @@
     }
 
     private void processAlternative(List assertions, ProtectionToken parent) {
-        Token token = (Token) assertions.get(0);
-        parent.setToken(token);
+        Object token = assertions.get(0);
+        
+        if (token instanceof Token) {
+            parent.setToken((Token) token);
+        }
     }
 }

Modified: webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/Trust10.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/Trust10.java?view=diff&rev=451168&r1=451167&r2=451168
==============================================================================
--- webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/Trust10.java (original)
+++ webservices/axis2/trunk/java/modules/secpolicy/src/org/apache/ws/secpolicy/model/Trust10.java Fri Sep 29 01:48:43 2006
@@ -124,8 +124,7 @@
     }
 
     public void serialize(XMLStreamWriter writer) throws XMLStreamException {
-        // TODO TODO Sanka
-        throw new UnsupportedOperationException("TODO Sanka");
+        
     }
 
     public short getType() {

Modified: webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/Rampart.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/Rampart.java?view=diff&rev=451168&r1=451167&r2=451168
==============================================================================
--- webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/Rampart.java (original)
+++ webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/Rampart.java Fri Sep 29 01:48:43 2006
@@ -49,11 +49,11 @@
     }
 
     public void applyPolicy(Policy policy, AxisDescription axisDescription) throws AxisFault {
-        // TODO 
+        // TODO Ruchith
     }
 
     public boolean canSupportAssertion(Assertion assertion) {
-        // TODO
+        // TODO Ruchith
         return true;
     }
 }

Modified: webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/policy/model/RampartConfig.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/policy/model/RampartConfig.java?view=diff&rev=451168&r1=451167&r2=451168
==============================================================================
--- webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/policy/model/RampartConfig.java (original)
+++ webservices/axis2/trunk/java/modules/security/src/org/apache/rampart/policy/model/RampartConfig.java Fri Sep 29 01:48:43 2006
@@ -240,9 +240,6 @@
             writer.writeEndElement();
         }
         
-        
-        
-
         writer.writeEndElement();
 
     }



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