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 2008/03/29 10:25:47 UTC

svn commit: r642522 [1/2] - in /webservices/axis2/trunk/java/modules: integration/test/org/apache/axis2/deployment/ integration/test/org/tempuri/ java2wsdl/src/org/apache/ws/java2wsdl/ kernel/src/org/apache/axis2/ kernel/src/org/apache/axis2/addressing...

Author: sanka
Date: Sat Mar 29 02:25:45 2008
New Revision: 642522

URL: http://svn.apache.org/viewvc?rev=642522&view=rev
Log:
Applied the patch with minor fixes to resolve test failures.
see:
https://issues.apache.org/jira/browse/AXIS2-3677

Modified:
    webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/deployment/WSDL11ToAxisServiceBuilderTest.java
    webservices/axis2/trunk/java/modules/integration/test/org/tempuri/BaseDataTypesTest.java
    webservices/axis2/trunk/java/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2WSDLBuilder.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/Constants.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/addressing/AddressingConstants.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/addressing/EndpointReferenceHelper.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/MessageContext.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/AxisConfigBuilder.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentConstants.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DescriptionBuilder.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ModuleBuilder.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/util/Utils.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisBindingOperation.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisDescription.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisEndpoint.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisMessage.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisModule.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService2WSDL11.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/PolicySubject.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/WSDL20ToAxisServiceBuilder.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/AbstractDispatcher.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/PolicyUtil.java
    webservices/axis2/trunk/java/modules/kernel/test/org/apache/axis2/engine/EnginePausingTest.java

Modified: webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/deployment/WSDL11ToAxisServiceBuilderTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/deployment/WSDL11ToAxisServiceBuilderTest.java?rev=642522&r1=642521&r2=642522&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/deployment/WSDL11ToAxisServiceBuilderTest.java (original)
+++ webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/deployment/WSDL11ToAxisServiceBuilderTest.java Sat Mar 29 02:25:45 2008
@@ -19,8 +19,11 @@
 
 package org.apache.axis2.deployment;
 
+import org.apache.axis2.context.ConfigurationContext;
+import org.apache.axis2.context.ConfigurationContextFactory;
 import org.apache.axis2.description.AxisService;
 import org.apache.axis2.description.WSDL11ToAllAxisServicesBuilder;
+import org.apache.axis2.engine.AxisConfiguration;
 import org.custommonkey.xmlunit.XMLTestCase;
 import org.custommonkey.xmlunit.XMLUnit;
 
@@ -44,13 +47,15 @@
             WSDL11ToAllAxisServicesBuilder builder = new WSDL11ToAllAxisServicesBuilder(
                     new FileInputStream(testResourceFile));
             AxisService axisService = builder.populateService();
+            ConfigurationContext configContext = ConfigurationContextFactory.createDefaultConfigurationContext();
+            AxisConfiguration axisConfig = configContext.getAxisConfiguration();
+            axisConfig.addService(axisService);
             ByteArrayOutputStream baos = new ByteArrayOutputStream();
             axisService.printWSDL(baos);
             assertXMLEqual(new FileReader(testResourceFile), new StringReader(new String(baos.toByteArray())));
         } catch (Exception e) {
             System.out.println("Error in WSDL : " + testResourceFile.getName());
             System.out.println("Exception: " + e.toString());
-            e.printStackTrace();
             fail("Caught exception " + e.toString());
         } finally {
             XMLUnit.setIgnoreWhitespace(false);

Modified: webservices/axis2/trunk/java/modules/integration/test/org/tempuri/BaseDataTypesTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/integration/test/org/tempuri/BaseDataTypesTest.java?rev=642522&r1=642521&r2=642522&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/integration/test/org/tempuri/BaseDataTypesTest.java (original)
+++ webservices/axis2/trunk/java/modules/integration/test/org/tempuri/BaseDataTypesTest.java Sat Mar 29 02:25:45 2008
@@ -41,7 +41,10 @@
             ByteArrayOutputStream out = new ByteArrayOutputStream();
             Java2WSDLBuilder builder = new Java2WSDLBuilder(out, BaseDataTypes.class.getName(), BaseDataTypes.class.getClassLoader());
             builder.generateWSDL();
+            out.flush();
+            
             FileReader control = new FileReader(wsdlLocation);
+            
             StringReader test = new StringReader(new String(out.toByteArray()));
             Diff myDiff = new Diff(XMLUnit.buildDocument(XMLUnit.getControlParser(), control), 
 		               XMLUnit.buildDocument(XMLUnit.getControlParser(), test), 

Modified: webservices/axis2/trunk/java/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2WSDLBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2WSDLBuilder.java?rev=642522&r1=642521&r2=642522&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2WSDLBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2WSDLBuilder.java Sat Mar 29 02:25:45 2008
@@ -256,7 +256,6 @@
 					+ (serviceName == null ? Java2WSDLUtils
 							.getSimpleClassName(className) : serviceName);
 		}
-		// axisService.setEPRs(new String[]{uri});
 		setServiceEPR(axisService, uri);
 		axisConfig.addService(axisService);
 

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/Constants.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/Constants.java?rev=642522&r1=642521&r2=642522&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/Constants.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/Constants.java Sat Mar 29 02:25:45 2008
@@ -71,6 +71,9 @@
     public static final String MESSAGE_SCOPE = "message";
 
     public static final String AXIS_BINDING_OPERATION = "AxisBindingOperation";
+    
+    public static final String AXIS_BINDING_MESSAGE = "AxisBindingMessage";
+
 
     /**
      * To chenge the conetext path from axis2/service to something else

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/addressing/AddressingConstants.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/addressing/AddressingConstants.java?rev=642522&r1=642521&r2=642522&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/addressing/AddressingConstants.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/addressing/AddressingConstants.java Sat Mar 29 02:25:45 2008
@@ -221,6 +221,9 @@
                 "http://schemas.xmlsoap.org/ws/2004/08/addressing/fault";
         static final String WSA_SERVICE_NAME_ENDPOINT_NAME = "PortName";
         static final String WSA_INTERFACE_NAME = "PortType";
+        
+        static final String MEX_NS_URL = "http://schemas.xmlsoap.org/ws/2004/09/mex";
+        static final String MEX_METADATA = "Metadata";
 
         // fault information
         static final String FAULT_INVALID_HEADER = "InvalidMessageInformationHeader";

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/addressing/EndpointReferenceHelper.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/addressing/EndpointReferenceHelper.java?rev=642522&r1=642521&r2=642522&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/addressing/EndpointReferenceHelper.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/addressing/EndpointReferenceHelper.java Sat Mar 29 02:25:45 2008
@@ -340,8 +340,12 @@
                     OMElement element = (OMElement) iterator.next();
                     epr.addReferenceParameter(element);
                 }
-            } else {
-                epr.addExtensibleElement(eprChildElement);
+            }else if (!isFinalAddressingNamespace &&
+                    map.get(AddressingConstants.Submission.MEX_METADATA).equals(qname)) {
+            	epr.addMetaData(eprChildElement);
+            	
+            }	else {
+            	epr.addExtensibleElement(eprChildElement);
             }
         }
 
@@ -544,5 +548,7 @@
         submissionQNames.put(AddressingConstants.Submission.EPR_REFERENCE_PROPERTIES, new QName(
                 AddressingConstants.Submission.WSA_NAMESPACE,
                 AddressingConstants.Submission.EPR_REFERENCE_PROPERTIES));
+        submissionQNames.put(AddressingConstants.Submission.MEX_METADATA, new QName(
+                AddressingConstants.Submission.MEX_NS_URL, AddressingConstants.Submission.MEX_METADATA));
     }
 }

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/MessageContext.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/MessageContext.java?rev=642522&r1=642521&r2=642522&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/MessageContext.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/MessageContext.java Sat Mar 29 02:25:45 2008
@@ -26,6 +26,7 @@
 import org.apache.axiom.soap.SOAP12Constants;
 import org.apache.axiom.soap.SOAPEnvelope;
 import org.apache.axis2.AxisFault;
+import org.apache.axis2.Constants;
 import org.apache.axis2.Constants.Configuration;
 import org.apache.axis2.addressing.EndpointReference;
 import org.apache.axis2.addressing.RelatesTo;
@@ -36,6 +37,7 @@
 import org.apache.axis2.context.externalize.SafeObjectInputStream;
 import org.apache.axis2.context.externalize.SafeObjectOutputStream;
 import org.apache.axis2.context.externalize.SafeSerializable;
+import org.apache.axis2.description.AxisBindingMessage;
 import org.apache.axis2.description.AxisMessage;
 import org.apache.axis2.description.AxisModule;
 import org.apache.axis2.description.AxisOperation;
@@ -1539,16 +1541,19 @@
         if (LoggingControl.debugLoggingAllowed) {
             checkActivateWarning("getEffectivePolicy");
         }
-        if (axisMessage != null) {
-            return axisMessage.getPolicyInclude().getEffectivePolicy();
-        }
-        if (axisOperation != null) {
-            return axisOperation.getPolicyInclude().getEffectivePolicy();
-        }
-        if (axisService != null) {
-            return axisService.getPolicyInclude().getEffectivePolicy();
+        
+        AxisBindingMessage bindingMessage = 
+        	(AxisBindingMessage) getProperty(Constants.AXIS_BINDING_MESSAGE);
+        
+        if (bindingMessage != null) {
+        	return bindingMessage.getEffectivePolicy();
+        } else {
+        	if (axisMessage != null) {
+        		return axisMessage.getEffectivePolicy();        		
+        	} else {
+        		return null;
+        	}
         }
-        return configurationContext.getAxisConfiguration().getPolicyInclude().getEffectivePolicy();
     }
 
 

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/AxisConfigBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/AxisConfigBuilder.java?rev=642522&r1=642521&r2=642522&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/AxisConfigBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/AxisConfigBuilder.java Sat Mar 29 02:25:45 2008
@@ -154,8 +154,8 @@
                                                                                    TAG_POLICY));
 
             if (policyElements != null && policyElements.hasNext()) {
-                processPolicyElements(PolicyInclude.AXIS_POLICY, policyElements,
-                                      axisConfig.getPolicyInclude());
+                processPolicyElements(policyElements,
+                                      axisConfig.getPolicySubject());
             }
 
             // processing <wsp:PolicyReference> .. </..> elements
@@ -163,8 +163,8 @@
                                                                                       TAG_POLICY_REF));
 
             if (policyRefElements != null && policyRefElements.hasNext()) {
-                processPolicyRefElements(PolicyInclude.AXIS_POLICY, policyElements,
-                                         axisConfig.getPolicyInclude());
+                processPolicyRefElements(policyElements,
+                                         axisConfig.getPolicySubject());
             }
 
             //to process default module versions

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentConstants.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentConstants.java?rev=642522&r1=642521&r2=642522&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentConstants.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentConstants.java Sat Mar 29 02:25:45 2008
@@ -158,5 +158,7 @@
     String POLICY_NS_URI = Constants.URI_POLICY;
     String TAG_POLICY = "Policy";
     String TAG_POLICY_REF = "PolicyReference";
-
+    
+    String TAG_POLICY_ATTACHMENT = "PolicyAttachment";
+    String TAG_APPLIES_TO = "AppliesTo";
 }

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DescriptionBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DescriptionBuilder.java?rev=642522&r1=642521&r2=642522&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DescriptionBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DescriptionBuilder.java Sat Mar 29 02:25:45 2008
@@ -33,6 +33,7 @@
 import org.apache.axis2.description.ParameterInclude;
 import org.apache.axis2.description.PhaseRule;
 import org.apache.axis2.description.PolicyInclude;
+import org.apache.axis2.description.PolicySubject;
 import org.apache.axis2.description.WSDL2Constants;
 import org.apache.axis2.engine.AxisConfiguration;
 import org.apache.axis2.engine.MessageReceiver;
@@ -631,23 +632,21 @@
         }
     }
 
-    protected void processPolicyElements(int type, Iterator policyElements,
-                                         PolicyInclude policyInclude) {
+    protected void processPolicyElements(Iterator policyElements,
+                                         PolicySubject policySubject) {
         while (policyElements.hasNext()) {
             Policy p = PolicyEngine
                     .getPolicy((OMElement) policyElements.next());
-            policyInclude.addPolicyElement(type, p);
+            policySubject.attachPolicy(p);
         }
     }
 
-    protected void processPolicyRefElements(int type,
-                                            Iterator policyRefElements,
-                                            PolicyInclude policyInclude) {
-
+    protected void processPolicyRefElements(Iterator policyRefElements,
+                                            PolicySubject policySubject) {
         while (policyRefElements.hasNext()) {
             PolicyReference policyReference = PolicyEngine
                     .getPolicyReference((OMElement) policyRefElements.next());
-            policyInclude.addPolicyRefElement(type, policyReference);
+            policySubject.attachPolicyReference(policyReference);
         }
     }
 

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ModuleBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ModuleBuilder.java?rev=642522&r1=642521&r2=642522&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ModuleBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ModuleBuilder.java Sat Mar 29 02:25:45 2008
@@ -147,8 +147,7 @@
                     moduleElement.getChildrenWithName(new QName(POLICY_NS_URI, TAG_POLICY));
 
             if (policyElements != null && policyElements.hasNext()) {
-                processPolicyElements(PolicyInclude.AXIS_MODULE_POLICY, policyElements,
-                                      module.getPolicyInclude());
+                processPolicyElements(policyElements, module.getPolicySubject());
             }
 
             // processing <wsp:PolicyReference> .. </..> elements
@@ -156,8 +155,7 @@
                     moduleElement.getChildrenWithName(new QName(POLICY_NS_URI, TAG_POLICY_REF));
 
             if (policyRefElements != null && policyElements.hasNext()) {
-                processPolicyRefElements(PolicyInclude.AXIS_MODULE_POLICY, policyRefElements,
-                                         module.getPolicyInclude());
+                processPolicyRefElements(policyRefElements, module.getPolicySubject());
             }
 
             // process INFLOW
@@ -297,14 +295,14 @@
             Iterator policyElements = operation.getChildrenWithName(new QName(POLICY_NS_URI, TAG_POLICY));
 
             if (policyElements != null && policyElements.hasNext()) {
-                processPolicyElements(PolicyInclude.AXIS_MODULE_OPERATION_POLICY, policyElements, op_descrip.getPolicyInclude());
+                processPolicyElements(policyElements, op_descrip.getPolicySubject());
             }
 
             // processing <wsp:PolicyReference> .. </..> elements
             Iterator policyRefElements = operation.getChildrenWithName(new QName(POLICY_NS_URI, TAG_POLICY_REF));
 
             if (policyRefElements != null && policyRefElements.hasNext()) {
-                processPolicyRefElements(PolicyInclude.AXIS_MODULE_OPERATION_POLICY, policyRefElements, module.getPolicyInclude());
+                processPolicyRefElements(policyRefElements, module.getPolicySubject());
             }
 
             // setting Operation phase

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.java?rev=642522&r1=642521&r2=642522&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.java Sat Mar 29 02:25:45 2008
@@ -48,6 +48,9 @@
 import org.apache.commons.logging.LogFactory;
 
 import javax.xml.namespace.QName;
+import javax.xml.stream.FactoryConfigurationError;
+import javax.xml.stream.XMLStreamException;
+
 import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -298,8 +301,7 @@
 					.getChildrenWithName(new QName(POLICY_NS_URI, TAG_POLICY));
 
 			if (policyElements != null && policyElements.hasNext()) {
-				processPolicyElements(PolicyInclude.AXIS_SERVICE_POLICY,
-						policyElements, service.getPolicyInclude());
+				processPolicyElements(policyElements, service.getPolicySubject());
 			}
 
 			// processing <wsp:PolicyReference> .. </..> elements
@@ -308,8 +310,7 @@
 							TAG_POLICY_REF));
 
 			if (policyRefElements != null && policyRefElements.hasNext()) {
-				processPolicyRefElements(PolicyInclude.AXIS_SERVICE_POLICY,
-						policyRefElements, service.getPolicyInclude());
+				processPolicyRefElements(policyRefElements, service.getPolicySubject());
 			}
 
 			// processing service scope
@@ -423,6 +424,8 @@
 			}
 
 			processEndpoints(service);
+			processPolicyAttachments(service_element, service);
+			
 
 		} catch (AxisFault axisFault) {
 			throw new DeploymentException(axisFault);
@@ -627,8 +630,7 @@
 					.getChildrenWithName(new QName(POLICY_NS_URI, TAG_POLICY));
 
 			if (policyElements != null) {
-				processPolicyElements(PolicyInclude.AXIS_MESSAGE_POLICY,
-						policyElements, message.getPolicyInclude());
+				processPolicyElements(policyElements, message.getPolicySubject());
 			}
 
 			// processing <wsp:PolicyReference> .. </..> elements
@@ -637,8 +639,7 @@
 							TAG_POLICY_REF));
 
 			if (policyRefElements != null) {
-				processPolicyRefElements(PolicyInclude.AXIS_MESSAGE_POLICY,
-						policyRefElements, message.getPolicyInclude());
+				processPolicyRefElements(policyRefElements, message.getPolicySubject());
 			}
 
 			processParameters(parameters, message, operation);
@@ -789,8 +790,7 @@
 					POLICY_NS_URI, TAG_POLICY));
 
 			if (policyElements != null && policyElements.hasNext()) {
-				processPolicyElements(PolicyInclude.AXIS_OPERATION_POLICY,
-						policyElements, op_descrip.getPolicyInclude());
+				processPolicyElements(policyElements, op_descrip.getPolicySubject());
 			}
 
 			// processing <wsp:PolicyReference> .. </..> elements
@@ -799,8 +799,7 @@
 							TAG_POLICY_REF));
 
 			if (policyRefElements != null && policyRefElements.hasNext()) {
-				processPolicyRefElements(PolicyInclude.AXIS_OPERATION_POLICY,
-						policyRefElements, op_descrip.getPolicyInclude());
+				processPolicyRefElements(policyRefElements, op_descrip.getPolicySubject());
 			}
 
 			// Operation Parameters
@@ -913,7 +912,16 @@
 	private void processEndpoints(AxisService axisService) throws AxisFault {
 		String endpointName = axisService.getEndpointName();
 		if (endpointName == null || endpointName.length() == 0) {
-			Utils.addEndpointsToService(axisService);
+			Utils.addEndpointsToService(axisService, service.getAxisConfiguration());
+		}
+	}
+	
+	private void processPolicyAttachments(OMElement serviceElement, AxisService service) throws DeploymentException {
+		Iterator attachmentElements = serviceElement.getChildrenWithName(new QName(POLICY_NS_URI, TAG_POLICY_ATTACHMENT));
+		try {
+			Utils.processPolicyAttachments(attachmentElements, service);
+		} catch (Exception e) {
+			throw new DeploymentException(e);
 		}
 	}
 

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/util/Utils.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/util/Utils.java?rev=642522&r1=642521&r2=642522&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/util/Utils.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/util/Utils.java Sat Mar 29 02:25:45 2008
@@ -19,6 +19,44 @@
 
 package org.apache.axis2.deployment.util;
 
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStreamWriter;
+import java.io.UnsupportedEncodingException;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.net.URLDecoder;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+import java.security.PrivilegedActionException;
+import java.security.PrivilegedExceptionAction;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Stack;
+import java.util.StringTokenizer;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipInputStream;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.FactoryConfigurationError;
+import javax.xml.stream.XMLStreamException;
+
 import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMFactory;
@@ -56,51 +94,18 @@
 import org.apache.axis2.engine.Handler;
 import org.apache.axis2.engine.MessageReceiver;
 import org.apache.axis2.util.Loader;
+import org.apache.axis2.util.PolicyUtil;
 import org.apache.axis2.wsdl.WSDLConstants;
 import org.apache.axis2.wsdl.WSDLUtil;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.neethi.PolicyComponent;
 import org.apache.ws.commons.schema.utils.NamespaceMap;
 import org.codehaus.jam.JAnnotation;
 import org.codehaus.jam.JMethod;
 
-import javax.xml.namespace.QName;
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.OutputStreamWriter;
-import java.io.UnsupportedEncodingException;
-import java.io.FileNotFoundException;
-import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
-import java.lang.reflect.InvocationTargetException;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.URLClassLoader;
-import java.net.URLDecoder;
-import java.security.AccessController;
-import java.security.PrivilegedAction;
-import java.security.PrivilegedExceptionAction;
-import java.security.PrivilegedActionException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Stack;
-import java.util.StringTokenizer;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipInputStream;
-
 public class Utils {
 
-
 	public static String defaultEncoding = new OutputStreamWriter(System.out)
 			.getEncoding();
 
@@ -114,23 +119,24 @@
 			HandlerDescription handlermd = flow.getHandler(j);
 			Handler handler;
 
-			final Class handlerClass = getHandlerClass(handlermd.getClassName(), clsLoader);
+			final Class handlerClass = getHandlerClass(
+					handlermd.getClassName(), clsLoader);
 
-            try {
-                handler = (Handler) org.apache.axis2.java.security.AccessController.doPrivileged(
-                        new PrivilegedExceptionAction() {
-                            public Object run() throws InstantiationException, IllegalAccessException {
-                                return handlerClass.newInstance();
-                            }
-                        }
-                );
-                handler.init(handlermd);
-                handlermd.setHandler(handler);
-            } catch (PrivilegedActionException e) {
-                throw AxisFault.makeFault(e);
-            }
-        }
-    }
+			try {
+				handler = (Handler) org.apache.axis2.java.security.AccessController
+						.doPrivileged(new PrivilegedExceptionAction() {
+							public Object run() throws InstantiationException,
+									IllegalAccessException {
+								return handlerClass.newInstance();
+							}
+						});
+				handler.init(handlermd);
+				handlermd.setHandler(handler);
+			} catch (PrivilegedActionException e) {
+				throw AxisFault.makeFault(e);
+			}
+		}
+	}
 
 	public static boolean loadHandler(ClassLoader loader1, HandlerDescription desc)
 			throws DeploymentException {
@@ -138,15 +144,14 @@
 		Handler handler;
 		try {
 			final Class handlerClass = Loader.loadClass(loader1, handlername);
-            Package aPackage = (Package) org.apache.axis2.java.security.AccessController.doPrivileged(
-                    new PrivilegedAction() {
-                        public Object run() {
-                            return handlerClass.getPackage();
-                        }
-                    }
-            );
-            if (aPackage != null && aPackage.getName().equals(
-					"org.apache.axis2.engine")) {
+			Package aPackage = (Package) org.apache.axis2.java.security.AccessController
+					.doPrivileged(new PrivilegedAction() {
+						public Object run() {
+							return handlerClass.getPackage();
+						}
+					});
+			if (aPackage != null
+					&& aPackage.getName().equals("org.apache.axis2.engine")) {
 				String name = handlerClass.getName();
 				log.warn("Dispatcher " + name + " is now deprecated.");
 				if (name.indexOf("InstanceDispatcher") != -1) {
@@ -158,13 +163,13 @@
 									+ "and replace with the same class in org.apache.axis2.dispatchers package");
 				}
 			}
-			handler = (Handler) org.apache.axis2.java.security.AccessController.doPrivileged(
-                    new PrivilegedExceptionAction() {
-                        public Object run() throws InstantiationException, IllegalAccessException {
-                            return handlerClass.newInstance();
-                        }
-                    }
-            );
+			handler = (Handler) org.apache.axis2.java.security.AccessController
+					.doPrivileged(new PrivilegedExceptionAction() {
+						public Object run() throws InstantiationException,
+								IllegalAccessException {
+							return handlerClass.newInstance();
+						}
+					});
 			handler.init(desc);
 			desc.setHandler(handler);
 		} catch (ClassNotFoundException e) {
@@ -178,237 +183,239 @@
 		}
         return true;
     }
-	
+
 	public static URL[] getURLsForAllJars(URL url, File tmpDir) {
-        FileInputStream fin = null;
-        InputStream in = null;
-        ZipInputStream zin = null;
-        try {
-            ArrayList array = new ArrayList();
-            in = url.openStream();
-            String fileName = url.getFile();
-            int index = fileName.lastIndexOf('/');
-            if (index != -1) {
-                fileName = fileName.substring(index + 1);
-            }
-            final File f = createTempFile(fileName, in, tmpDir);
-            
-            fin = (FileInputStream) org.apache.axis2.java.security.AccessController.doPrivileged(
-                    new PrivilegedExceptionAction() {
-                        public Object run() throws FileNotFoundException {
-                            return new FileInputStream(f);
-                        }
-                    }
-            );
-            array.add(f.toURL());
-            zin = new ZipInputStream(fin);
-
-            ZipEntry entry;
-            String entryName;
-            while ((entry = zin.getNextEntry()) != null) {
-                entryName = entry.getName();
-                /**
-                 * id the entry name start with /lib and end with .jar
-                 * then those entry name will be added to the arraylist
-                 */
-                if ((entryName != null) && entryName.toLowerCase().startsWith("lib/")
-                        && entryName.toLowerCase().endsWith(".jar")) {
-                    String suffix = entryName.substring(4);
-                    File f2 = createTempFile(suffix, zin, tmpDir);
-                    array.add(f2.toURL());
-                }
-            }
-            return (URL[]) array.toArray(new URL[array.size()]);
-        } catch (Exception e) {
-            throw new RuntimeException(e);
-        } finally {
-            if (fin != null) {
-                try {
-                    fin.close();
-                } catch (IOException e) {
-                    //
-                }
-            }
-            if (in != null) {
-                try {
-                    in.close();
-                } catch (IOException e) {
-                    //
-                }
-            }
-            if (zin != null) {
-                try {
-                    zin.close();
-                } catch (IOException e) {
-                    //
-                }
-            }
-        }
+		FileInputStream fin = null;
+		InputStream in = null;
+		ZipInputStream zin = null;
+		try {
+			ArrayList array = new ArrayList();
+			in = url.openStream();
+			String fileName = url.getFile();
+			int index = fileName.lastIndexOf('/');
+			if (index != -1) {
+				fileName = fileName.substring(index + 1);
+			}
+			final File f = createTempFile(fileName, in, tmpDir);
+
+			fin = (FileInputStream) org.apache.axis2.java.security.AccessController
+					.doPrivileged(new PrivilegedExceptionAction() {
+						public Object run() throws FileNotFoundException {
+							return new FileInputStream(f);
+						}
+					});
+			array.add(f.toURL());
+			zin = new ZipInputStream(fin);
+
+			ZipEntry entry;
+			String entryName;
+			while ((entry = zin.getNextEntry()) != null) {
+				entryName = entry.getName();
+				/**
+				 * id the entry name start with /lib and end with .jar then
+				 * those entry name will be added to the arraylist
+				 */
+				if ((entryName != null)
+						&& entryName.toLowerCase().startsWith("lib/")
+						&& entryName.toLowerCase().endsWith(".jar")) {
+					String suffix = entryName.substring(4);
+					File f2 = createTempFile(suffix, zin, tmpDir);
+					array.add(f2.toURL());
+				}
+			}
+			return (URL[]) array.toArray(new URL[array.size()]);
+		} catch (Exception e) {
+			throw new RuntimeException(e);
+		} finally {
+			if (fin != null) {
+				try {
+					fin.close();
+				} catch (IOException e) {
+					//
+				}
+			}
+			if (in != null) {
+				try {
+					in.close();
+				} catch (IOException e) {
+					//
+				}
+			}
+			if (zin != null) {
+				try {
+					zin.close();
+				} catch (IOException e) {
+					//
+				}
+			}
+		}
 	}
-	
-	public static File createTempFile(final String suffix, InputStream in, final File tmpDir) throws IOException {
-        byte data[] = new byte[2048];
-        int count;
-        File f;
-        if (tmpDir == null) {
-            String directory = (String) org.apache.axis2.java.security.AccessController.doPrivileged(
-                    new PrivilegedAction() {
-                        public Object run() {
-                            return System.getProperty("java.io.tmpdir");
-                        }
-                    }
-            );
-            final File tempFile = new File(directory, "_axis2");
-            Boolean exists = (Boolean) org.apache.axis2.java.security.AccessController.doPrivileged(
-                    new PrivilegedAction() {
-                        public Object run() {
-                            return new Boolean(tempFile.exists());
-                        }
-                    }
-            );
-            if (!exists.booleanValue()) {
-                Boolean mkdirs = (Boolean) org.apache.axis2.java.security.AccessController.doPrivileged(
-                        new PrivilegedAction() {
-                            public Object run() {
-                                return new Boolean(tempFile.mkdirs());
-                            }
-                        }
-                );
-                if (!mkdirs.booleanValue()) {
-                    throw new IOException("Unable to create the directory");
-                }
-            }
-            try {
-                f = (File) org.apache.axis2.java.security.AccessController.doPrivileged(
-                        new PrivilegedExceptionAction() {
-                            public Object run() throws IOException {
-                                return File.createTempFile("axis2", suffix, tempFile);
-                            }
-                        }
-                );
-            } catch (PrivilegedActionException e) {
-                throw (IOException) e.getException();
-            }
-        } else {
-            try {
-                f = (File) org.apache.axis2.java.security.AccessController.doPrivileged(
-                        new PrivilegedExceptionAction() {
-                            public Object run() throws IOException {
-                                return File.createTempFile("axis2", suffix, tmpDir);
-                            }
-                        }
-                );
-            } catch (PrivilegedActionException e) {
-                throw (IOException) e.getException();
-            }
-        }
-        if (log.isDebugEnabled()) {
-            log.debug("Created temporary file : " + f.getAbsolutePath());//$NON-SEC-4
-        }
-        final File f2 = f;
-        org.apache.axis2.java.security.AccessController.doPrivileged(
-                new PrivilegedAction() {
-                    public Object run() {
-                        f2.deleteOnExit();
-                        return null;
-                    }
-                }
-        );
-        FileOutputStream out = null;
-        try {
-            out = (FileOutputStream) org.apache.axis2.java.security.AccessController.doPrivileged(
-                    new PrivilegedExceptionAction() {
-                        public Object run() throws FileNotFoundException {
-                            return new FileOutputStream(f2);
-                        }
-                    }
-            );
-        } catch (PrivilegedActionException e) {
-            throw (FileNotFoundException) e.getException();
-        }
-        while ((count = in.read(data, 0, 2048)) != -1) {
-            out.write(data, 0, count);
-        }
-        out.close();
-        return f;
-    }
-	
+
+	public static File createTempFile(final String suffix, InputStream in,
+			final File tmpDir) throws IOException {
+		byte data[] = new byte[2048];
+		int count;
+		File f;
+		if (tmpDir == null) {
+			String directory = (String) org.apache.axis2.java.security.AccessController
+					.doPrivileged(new PrivilegedAction() {
+						public Object run() {
+							return System.getProperty("java.io.tmpdir");
+						}
+					});
+			final File tempFile = new File(directory, "_axis2");
+			Boolean exists = (Boolean) org.apache.axis2.java.security.AccessController
+					.doPrivileged(new PrivilegedAction() {
+						public Object run() {
+							return new Boolean(tempFile.exists());
+						}
+					});
+			if (!exists.booleanValue()) {
+				Boolean mkdirs = (Boolean) org.apache.axis2.java.security.AccessController
+						.doPrivileged(new PrivilegedAction() {
+							public Object run() {
+								return new Boolean(tempFile.mkdirs());
+							}
+						});
+				if (!mkdirs.booleanValue()) {
+					throw new IOException("Unable to create the directory");
+				}
+			}
+			try {
+				f = (File) org.apache.axis2.java.security.AccessController
+						.doPrivileged(new PrivilegedExceptionAction() {
+							public Object run() throws IOException {
+								return File.createTempFile("axis2", suffix,
+										tempFile);
+							}
+						});
+			} catch (PrivilegedActionException e) {
+				throw (IOException) e.getException();
+			}
+		} else {
+			try {
+				f = (File) org.apache.axis2.java.security.AccessController
+						.doPrivileged(new PrivilegedExceptionAction() {
+							public Object run() throws IOException {
+								return File.createTempFile("axis2", suffix,
+										tmpDir);
+							}
+						});
+			} catch (PrivilegedActionException e) {
+				throw (IOException) e.getException();
+			}
+		}
+		if (log.isDebugEnabled()) {
+			log.debug("Created temporary file : " + f.getAbsolutePath());// $NON-SEC-4
+		}
+		final File f2 = f;
+		org.apache.axis2.java.security.AccessController
+				.doPrivileged(new PrivilegedAction() {
+					public Object run() {
+						f2.deleteOnExit();
+						return null;
+					}
+				});
+		FileOutputStream out = null;
+		try {
+			out = (FileOutputStream) org.apache.axis2.java.security.AccessController
+					.doPrivileged(new PrivilegedExceptionAction() {
+						public Object run() throws FileNotFoundException {
+							return new FileOutputStream(f2);
+						}
+					});
+		} catch (PrivilegedActionException e) {
+			throw (FileNotFoundException) e.getException();
+		}
+		while ((count = in.read(data, 0, 2048)) != -1) {
+			out.write(data, 0, count);
+		}
+		out.close();
+		return f;
+	}
+
 	public static ClassLoader getClassLoader(ClassLoader parent, String path)
 			throws DeploymentException {
 		return getClassLoader(parent, new File(path));
 	}
-	
+
 	/**
-     * Get a ClassLoader which contains a classpath of a) the passed directory and b) any jar
-     * files inside the "lib/" or "Lib/" subdirectory of the passed directory.
-     *
-     * @param parent parent ClassLoader which will be the parent of the result of this method
-     * @param file   a File which must be a directory for this to be useful
-     * @return a new ClassLoader pointing to both the passed dir and jar files under lib/
-     * @throws DeploymentException if problems occur
-     */
-    public static ClassLoader getClassLoader(final ClassLoader parent, File file)
-            throws DeploymentException {
-        URLClassLoader classLoader;
-
-        if (file == null) return null; // Shouldn't this just return the parent?
-
-        try {
-            ArrayList urls = new ArrayList();
-            urls.add(file.toURL());
-
-            // lower case directory name
-            File libfiles = new File(file, "lib");
-            if (!addFiles(urls, libfiles)) {
-                // upper case directory name
-                libfiles = new File(file, "Lib");
-                addFiles(urls, libfiles);
-            }
+	 * Get a ClassLoader which contains a classpath of a) the passed directory
+	 * and b) any jar files inside the "lib/" or "Lib/" subdirectory of the
+	 * passed directory.
+	 * 
+	 * @param parent
+	 *            parent ClassLoader which will be the parent of the result of
+	 *            this method
+	 * @param file
+	 *            a File which must be a directory for this to be useful
+	 * @return a new ClassLoader pointing to both the passed dir and jar files
+	 *         under lib/
+	 * @throws DeploymentException
+	 *             if problems occur
+	 */
+	public static ClassLoader getClassLoader(final ClassLoader parent, File file)
+			throws DeploymentException {
+		URLClassLoader classLoader;
 
-            final URL urllist[] = new URL[urls.size()];
-            for (int i = 0; i < urls.size(); i++) {
-                urllist[i] = (URL) urls.get(i);
-            }
-            classLoader = 
-                (URLClassLoader) AccessController.doPrivileged(new PrivilegedAction() {
-                    public Object run() {
-                        return new URLClassLoader(urllist, parent);
-                    }
-                });
-            return classLoader;
-        } catch (MalformedURLException e) {
-            throw new DeploymentException(e);
-        }
-    }
+		if (file == null)
+			return null; // Shouldn't this just return the parent?
 
-    private static boolean addFiles(ArrayList urls, final File libfiles) throws MalformedURLException {
-        Boolean exists = (Boolean) org.apache.axis2.java.security.AccessController.doPrivileged(
-                new PrivilegedAction() {
-                    public Object run() {
-                        return new Boolean(libfiles.exists());
-                    }
-                }
-        );
-        if (exists.booleanValue()) {
-            urls.add(libfiles.toURL());
-            File jarfiles[] = (File[]) org.apache.axis2.java.security.AccessController.doPrivileged(
-                    new PrivilegedAction() {
-                        public Object run() {
-                            return libfiles.listFiles();
-                        }
-                    }
-            );
-            for (int i = 0; i < jarfiles.length; i++) {
-                File jarfile = jarfiles[i];
-                if (jarfile.getName().endsWith(".jar")) {
-                    urls.add(jarfile.toURL());
-                }
-            }
-        }
-        return exists.booleanValue();
-    }
+		try {
+			ArrayList urls = new ArrayList();
+			urls.add(file.toURL());
+
+			// lower case directory name
+			File libfiles = new File(file, "lib");
+			if (!addFiles(urls, libfiles)) {
+				// upper case directory name
+				libfiles = new File(file, "Lib");
+				addFiles(urls, libfiles);
+			}
+
+			final URL urllist[] = new URL[urls.size()];
+			for (int i = 0; i < urls.size(); i++) {
+				urllist[i] = (URL) urls.get(i);
+			}
+			classLoader = (URLClassLoader) AccessController
+					.doPrivileged(new PrivilegedAction() {
+						public Object run() {
+							return new URLClassLoader(urllist, parent);
+						}
+					});
+			return classLoader;
+		} catch (MalformedURLException e) {
+			throw new DeploymentException(e);
+		}
+	}
+
+	private static boolean addFiles(ArrayList urls, final File libfiles)
+			throws MalformedURLException {
+		Boolean exists = (Boolean) org.apache.axis2.java.security.AccessController
+				.doPrivileged(new PrivilegedAction() {
+					public Object run() {
+						return new Boolean(libfiles.exists());
+					}
+				});
+		if (exists.booleanValue()) {
+			urls.add(libfiles.toURL());
+			File jarfiles[] = (File[]) org.apache.axis2.java.security.AccessController
+					.doPrivileged(new PrivilegedAction() {
+						public Object run() {
+							return libfiles.listFiles();
+						}
+					});
+			for (int i = 0; i < jarfiles.length; i++) {
+				File jarfile = jarfiles[i];
+				if (jarfile.getName().endsWith(".jar")) {
+					urls.add(jarfile.toURL());
+				}
+			}
+		}
+		return exists.booleanValue();
+	}
 
-    private static Class getHandlerClass(String className, ClassLoader loader1)
+	private static Class getHandlerClass(String className, ClassLoader loader1)
 			throws AxisFault {
 		Class handlerClass;
 
@@ -455,35 +462,39 @@
 					.getParameter(Constants.SERVICE_OBJECT_SUPPLIER);
 			if (implInfoParam != null) {
 				String className = ((String) implInfoParam.getValue()).trim();
-				final Class serviceObjectMaker = Loader.loadClass(serviceClassLoader,
-						className);
+				final Class serviceObjectMaker = Loader.loadClass(
+						serviceClassLoader, className);
 				if (serviceObjectMaker.getModifiers() != Modifier.PUBLIC) {
 					throw new AxisFault("Service class " + className
 							+ " must have public as access Modifier");
 				}
 
-                // Find static getServiceObject() method, call it if there
-                final Method method = (Method) org.apache.axis2.java.security.AccessController.doPrivileged(
-                        new PrivilegedExceptionAction() {
-                            public Object run() throws NoSuchMethodException {
-                                return serviceObjectMaker.getMethod(
-                                        "getServiceObject", new Class[]{AxisService.class});
-                            }
-                        }
-                );
-                Object obj = null;
+				// Find static getServiceObject() method, call it if there
+				final Method method = (Method) org.apache.axis2.java.security.AccessController
+						.doPrivileged(new PrivilegedExceptionAction() {
+							public Object run() throws NoSuchMethodException {
+								return serviceObjectMaker.getMethod(
+										"getServiceObject",
+										new Class[] { AxisService.class });
+							}
+						});
+				Object obj = null;
 				if (method != null) {
-                    obj = org.apache.axis2.java.security.AccessController.doPrivileged(
-                            new PrivilegedExceptionAction() {
-                                public Object run() throws InstantiationException, IllegalAccessException, InvocationTargetException {
-                                    return method.invoke(serviceObjectMaker.newInstance(),
-                                            new Object[]{axisService});
-                                }
-                            }
-                    );
-                }
+					obj = org.apache.axis2.java.security.AccessController
+							.doPrivileged(new PrivilegedExceptionAction() {
+								public Object run()
+										throws InstantiationException,
+										IllegalAccessException,
+										InvocationTargetException {
+									return method.invoke(serviceObjectMaker
+											.newInstance(),
+											new Object[] { axisService });
+								}
+							});
+				}
 				if (obj == null) {
-					log.warn("ServiceObjectSupplier implmentation Object could not be found");
+					log
+							.warn("ServiceObjectSupplier implmentation Object could not be found");
 					throw new DeploymentException(
 							"ServiceClass or ServiceObjectSupplier implmentation Object could not be found");
 				}
@@ -563,32 +574,35 @@
 			}
 		}
 	}
-	
-	public static AxisOperation getAxisOperationForJmethod(JMethod jmethod) throws AxisFault {
-        AxisOperation operation;
-        if (jmethod.getReturnType().isVoidType()) {
-            if (jmethod.getExceptionTypes().length > 0) {
-                operation = AxisOperationFactory.getAxisOperation(
-                        WSDLConstants.MEP_CONSTANT_ROBUST_IN_ONLY);
-            } else {
-                operation = AxisOperationFactory.getAxisOperation(
-                        WSDLConstants.MEP_CONSTANT_IN_ONLY);
-            }
-        } else {
-            operation = AxisOperationFactory.getAxisOperation(
-                    WSDLConstants.MEP_CONSTANT_IN_OUT);
-        }
-        String opName = getSimpleName(jmethod);
-        operation.setName(new QName(opName));
-        JAnnotation methodAnnon = jmethod.getAnnotation(AnnotationConstants.WEB_METHOD);
-        if (methodAnnon != null) {
-            String action = methodAnnon.getValue(AnnotationConstants.ACTION).asString();
-            if (action != null && !"".equals(action)) {
-                operation.setSoapAction(action);
-            }
-        }
-        return operation;
-    }
+
+	public static AxisOperation getAxisOperationForJmethod(JMethod jmethod)
+			throws AxisFault {
+		AxisOperation operation;
+		if (jmethod.getReturnType().isVoidType()) {
+			if (jmethod.getExceptionTypes().length > 0) {
+				operation = AxisOperationFactory
+						.getAxisOperation(WSDLConstants.MEP_CONSTANT_ROBUST_IN_ONLY);
+			} else {
+				operation = AxisOperationFactory
+						.getAxisOperation(WSDLConstants.MEP_CONSTANT_IN_ONLY);
+			}
+		} else {
+			operation = AxisOperationFactory
+					.getAxisOperation(WSDLConstants.MEP_CONSTANT_IN_OUT);
+		}
+		String opName = getSimpleName(jmethod);
+		operation.setName(new QName(opName));
+		JAnnotation methodAnnon = jmethod
+				.getAnnotation(AnnotationConstants.WEB_METHOD);
+		if (methodAnnon != null) {
+			String action = methodAnnon.getValue(AnnotationConstants.ACTION)
+					.asString();
+			if (action != null && !"".equals(action)) {
+				operation.setSoapAction(action);
+			}
+		}
+		return operation;
+	}
 
 	public static String getSimpleName(JMethod method) {
 		JAnnotation methodAnnon = method
@@ -634,25 +648,24 @@
 			PhasesInfo phasesInfo = axisConfig.getPhasesInfo();
 			final ClassLoader moduleClassLoader = module.getModuleClassLoader();
 			ArrayList services = new ArrayList();
-			final InputStream in = (InputStream) org.apache.axis2.java.security.AccessController.doPrivileged(
-                    new PrivilegedAction() {
-                        public Object run() {
-                            return moduleClassLoader.getResourceAsStream("aars/aars.list");
-                        }
-                    }
-            );
+			final InputStream in = (InputStream) org.apache.axis2.java.security.AccessController
+					.doPrivileged(new PrivilegedAction() {
+						public Object run() {
+							return moduleClassLoader
+									.getResourceAsStream("aars/aars.list");
+						}
+					});
 			if (in != null) {
 				BufferedReader input;
 				try {
-                    input = new BufferedReader((InputStreamReader) org.apache.axis2.java.security.AccessController.doPrivileged(
-                                    new PrivilegedAction() {
-                                        public Object run() {
-                                            return new InputStreamReader(in);
-                                        }
-                                    }
-                                )
-                            );
-                    String line;
+					input = new BufferedReader(
+							(InputStreamReader) org.apache.axis2.java.security.AccessController
+									.doPrivileged(new PrivilegedAction() {
+										public Object run() {
+											return new InputStreamReader(in);
+										}
+									}));
+					String line;
 					while ((line = input.readLine()) != null) {
 						line = line.trim();
 						if (line.length() > 0 && line.charAt(0) != '#') {
@@ -670,15 +683,15 @@
 					if (servicename == null || "".equals(servicename)) {
 						continue;
 					}
-                    InputStream fin = (InputStream) org.apache.axis2.java.security.AccessController.doPrivileged(
-                            new PrivilegedAction() {
-                                public Object run() {
-                                    return moduleClassLoader
-                                            .getResourceAsStream("aars/" + servicename);
-                                }
-                            }
-                    );
-                    if (fin == null) {
+					InputStream fin = (InputStream) org.apache.axis2.java.security.AccessController
+							.doPrivileged(new PrivilegedAction() {
+								public Object run() {
+									return moduleClassLoader
+											.getResourceAsStream("aars/"
+													+ servicename);
+								}
+							});
+					if (fin == null) {
 						throw new AxisFault("No service archive found : "
 								+ servicename);
 					}
@@ -735,56 +748,57 @@
 			throw AxisFault.makeFault(e);
 		}
 	}
-	
+
 	/**
-     * Normalize a uri containing ../ and ./ paths.
-     *
-     * @param uri The uri path to normalize
-     * @return The normalized uri
-     */
-    public static String normalize(String uri) {
-        if ("".equals(uri)) {
-            return uri;
-        }
-        int leadingSlashes = 0;
-        for (leadingSlashes = 0; leadingSlashes < uri.length()
-                && uri.charAt(leadingSlashes) == '/'; ++leadingSlashes) {
-            //FIXME: this block is empty!!
-        }
-        boolean isDir = (uri.charAt(uri.length() - 1) == '/');
-        StringTokenizer st = new StringTokenizer(uri, "/");
-        LinkedList clean = new LinkedList();
-        while (st.hasMoreTokens()) {
-            String token = st.nextToken();
-            if ("..".equals(token)) {
-                if (!clean.isEmpty() && !"..".equals(clean.getLast())) {
-                    clean.removeLast();
-                    if (!st.hasMoreTokens()) {
-                        isDir = true;
-                    }
-                } else {
-                    clean.add("..");
-                }
-            } else if (!".".equals(token) && !"".equals(token)) {
-                clean.add(token);
-            }
-        }
-        StringBuffer sb = new StringBuffer();
-        while (leadingSlashes-- > 0) {
-            sb.append('/');
-        }
-        for (Iterator it = clean.iterator(); it.hasNext();) {
-            sb.append(it.next());
-            if (it.hasNext()) {
-                sb.append('/');
-            }
-        }
-        if (isDir && sb.length() > 0 && sb.charAt(sb.length() - 1) != '/') {
-            sb.append('/');
-        }
-        return sb.toString();
-    }
-    
+	 * Normalize a uri containing ../ and ./ paths.
+	 * 
+	 * @param uri
+	 *            The uri path to normalize
+	 * @return The normalized uri
+	 */
+	public static String normalize(String uri) {
+		if ("".equals(uri)) {
+			return uri;
+		}
+		int leadingSlashes = 0;
+		for (leadingSlashes = 0; leadingSlashes < uri.length()
+				&& uri.charAt(leadingSlashes) == '/'; ++leadingSlashes) {
+			// FIXME: this block is empty!!
+		}
+		boolean isDir = (uri.charAt(uri.length() - 1) == '/');
+		StringTokenizer st = new StringTokenizer(uri, "/");
+		LinkedList clean = new LinkedList();
+		while (st.hasMoreTokens()) {
+			String token = st.nextToken();
+			if ("..".equals(token)) {
+				if (!clean.isEmpty() && !"..".equals(clean.getLast())) {
+					clean.removeLast();
+					if (!st.hasMoreTokens()) {
+						isDir = true;
+					}
+				} else {
+					clean.add("..");
+				}
+			} else if (!".".equals(token) && !"".equals(token)) {
+				clean.add(token);
+			}
+		}
+		StringBuffer sb = new StringBuffer();
+		while (leadingSlashes-- > 0) {
+			sb.append('/');
+		}
+		for (Iterator it = clean.iterator(); it.hasNext();) {
+			sb.append(it.next());
+			if (it.hasNext()) {
+				sb.append('/');
+			}
+		}
+		if (isDir && sb.length() > 0 && sb.charAt(sb.length() - 1) != '/') {
+			sb.append('/');
+		}
+		return sb.toString();
+	}
+
 	public static String getPath(String parent, String childPath) {
 		Stack parentStack = new Stack();
 		Stack childStack = new Stack();
@@ -825,62 +839,62 @@
 		}
 		return filepath;
 	}
-	
+
 	/**
-     * Searches for jar files inside /lib dirctory. If there are any, the
-     * names of those jar files will be added to the array list
-     */
-    public static List findLibJars(URL url) {
-        ArrayList embedded_jars = new ArrayList();
-        try {
-            ZipInputStream zin = new ZipInputStream(url.openStream());
-            ZipEntry entry;
-            String entryName = "";
-            while ((entry = zin.getNextEntry()) != null) {
-                entryName = entry.getName();
-                /**
-                 * if the entry name start with /lib and ends with .jar
-                 * add it to the the arraylist
-                 */
-                if (entryName != null && (entryName.startsWith("lib/") ||
-                        entryName.startsWith("Lib/")) &&
-                        entryName.endsWith(".jar")) {
-                    embedded_jars.add(entryName);
-                }
-            }
-            zin.close();
-        } catch (Exception e) {
-            throw new RuntimeException(e);
-        }
-        return embedded_jars;
-    }
-    
-    /**
-     * To add the exclude method when generating schemas , here the exclude methods
-     * will be session releated axis2 methods
-     */
-    public static void addExcludeMethods(ArrayList excludeList) {
-        excludeList.add("init");
-        excludeList.add("setOperationContext");
-        excludeList.add("startUp");
-        excludeList.add("destroy");
-        excludeList.add("shutDown");
-    }
+	 * Searches for jar files inside /lib dirctory. If there are any, the names
+	 * of those jar files will be added to the array list
+	 */
+	public static List findLibJars(URL url) {
+		ArrayList embedded_jars = new ArrayList();
+		try {
+			ZipInputStream zin = new ZipInputStream(url.openStream());
+			ZipEntry entry;
+			String entryName = "";
+			while ((entry = zin.getNextEntry()) != null) {
+				entryName = entry.getName();
+				/**
+				 * if the entry name start with /lib and ends with .jar add it
+				 * to the the arraylist
+				 */
+				if (entryName != null
+						&& (entryName.startsWith("lib/") || entryName
+								.startsWith("Lib/"))
+						&& entryName.endsWith(".jar")) {
+					embedded_jars.add(entryName);
+				}
+			}
+			zin.close();
+		} catch (Exception e) {
+			throw new RuntimeException(e);
+		}
+		return embedded_jars;
+	}
 
-    public static DeploymentClassLoader createClassLoader(File serviceFile) throws MalformedURLException {
-        ClassLoader contextClassLoader = (ClassLoader) org.apache.axis2.java.security.AccessController.doPrivileged(
-                new PrivilegedAction() {
-                    public Object run() {
-                        return Thread.currentThread().getContextClassLoader();
-                    }
-                }
-        );
-        return createDeploymentClassLoader(new URL[]{serviceFile.toURL()},
-                contextClassLoader,
-                new ArrayList());
-    }
+	/**
+	 * To add the exclude method when generating schemas , here the exclude
+	 * methods will be session releated axis2 methods
+	 */
+	public static void addExcludeMethods(ArrayList excludeList) {
+		excludeList.add("init");
+		excludeList.add("setOperationContext");
+		excludeList.add("startUp");
+		excludeList.add("destroy");
+		excludeList.add("shutDown");
+	}
 
-    public static ClassLoader createClassLoader(ArrayList urls,
+	public static DeploymentClassLoader createClassLoader(File serviceFile)
+			throws MalformedURLException {
+		ClassLoader contextClassLoader = (ClassLoader) org.apache.axis2.java.security.AccessController
+				.doPrivileged(new PrivilegedAction() {
+					public Object run() {
+						return Thread.currentThread().getContextClassLoader();
+					}
+				});
+		return createDeploymentClassLoader(new URL[] { serviceFile.toURL() },
+				contextClassLoader, new ArrayList());
+	}
+
+	public static ClassLoader createClassLoader(ArrayList urls,
 			ClassLoader serviceClassLoader, boolean extractJars, File tmpDir) {
 		URL url = (URL) urls.get(0);
 		if (extractJars) {
@@ -889,8 +903,9 @@
 				urls.remove(0);
 				urls.addAll(0, Arrays.asList(urls1));
 				URL[] urls2 = (URL[]) urls.toArray(new URL[urls.size()]);
-                return createDeploymentClassLoader(urls2, serviceClassLoader, null);
-            } catch (Exception e) {
+				return createDeploymentClassLoader(urls2, serviceClassLoader,
+						null);
+			} catch (Exception e) {
 				log
 						.warn("Exception extracting jars into temporary directory : "
 								+ e.getMessage()
@@ -900,39 +915,48 @@
 		}
 		List embedded_jars = Utils.findLibJars(url);
 		URL[] urls2 = (URL[]) urls.toArray(new URL[urls.size()]);
-        return createDeploymentClassLoader(urls2, serviceClassLoader, embedded_jars);
-    }
+		return createDeploymentClassLoader(urls2, serviceClassLoader,
+				embedded_jars);
+	}
 
 	public static File toFile(URL url) throws UnsupportedEncodingException {
-	    String path = URLDecoder.decode(url.getPath(), defaultEncoding);
-	    File file =
-	            new File(path.replace('/', File.separatorChar).replace('|', ':'));
-	    return file;
-	}
-    
-    public static ClassLoader createClassLoader(URL[] urls, ClassLoader serviceClassLoader,
-                                                boolean extractJars, File tmpDir) {
-        if (extractJars) {
-            try {
-                URL[] urls1 = Utils.getURLsForAllJars(urls[0], tmpDir);
-                return createDeploymentClassLoader(urls1, serviceClassLoader, null);
-            } catch (Exception e){
-                log.warn("Exception extracting jars into temporary directory : " + e.getMessage() + " : switching to alternate class loading mechanism");
-                log.debug(e.getMessage(), e);
-            }
-        }
-        List embedded_jars = Utils.findLibJars(urls[0]);
-        return createDeploymentClassLoader(urls, serviceClassLoader, embedded_jars);
-    }
-    
-    
-    private static DeploymentClassLoader createDeploymentClassLoader(final URL[] urls, final ClassLoader serviceClassLoader, final List embeddedJars) {
-        return (DeploymentClassLoader) AccessController.doPrivileged(new PrivilegedAction() {
-            public Object run() {
-                return new DeploymentClassLoader(urls, embeddedJars, serviceClassLoader);
-            }
-        });
-    }
+		String path = URLDecoder.decode(url.getPath(), defaultEncoding);
+		File file = new File(path.replace('/', File.separatorChar).replace('|',
+				':'));
+		return file;
+	}
+
+	public static ClassLoader createClassLoader(URL[] urls,
+			ClassLoader serviceClassLoader, boolean extractJars, File tmpDir) {
+		if (extractJars) {
+			try {
+				URL[] urls1 = Utils.getURLsForAllJars(urls[0], tmpDir);
+				return createDeploymentClassLoader(urls1, serviceClassLoader,
+						null);
+			} catch (Exception e) {
+				log
+						.warn("Exception extracting jars into temporary directory : "
+								+ e.getMessage()
+								+ " : switching to alternate class loading mechanism");
+				log.debug(e.getMessage(), e);
+			}
+		}
+		List embedded_jars = Utils.findLibJars(urls[0]);
+		return createDeploymentClassLoader(urls, serviceClassLoader,
+				embedded_jars);
+	}
+
+	private static DeploymentClassLoader createDeploymentClassLoader(
+			final URL[] urls, final ClassLoader serviceClassLoader,
+			final List embeddedJars) {
+		return (DeploymentClassLoader) AccessController
+				.doPrivileged(new PrivilegedAction() {
+					public Object run() {
+						return new DeploymentClassLoader(urls, embeddedJars,
+								serviceClassLoader);
+					}
+				});
+	}
 
 	/**
 	 * This method is to process bean exclude parameter and the XML format of
@@ -1026,18 +1050,90 @@
 					.getAxisConfiguration();
 			if (axisConfiguration != null) {
 				ArrayList transports = new ArrayList();
-				for (Iterator iterator = axisConfiguration.getTransportsIn().values().iterator(); iterator.hasNext(); ){
-					TransportInDescription transportInDescription = (TransportInDescription) iterator.next();
+				for (Iterator iterator = axisConfiguration.getTransportsIn()
+						.values().iterator(); iterator.hasNext();) {
+					TransportInDescription transportInDescription = (TransportInDescription) iterator
+							.next();
 					transports.add(transportInDescription.getName());
 				}
-				transportInValues = transports.iterator(); 
+				transportInValues = transports.iterator();
 			}
 		} else {
 			transportInValues = axisService.getExposedTransports().iterator();
 		}
 
 		if (transportInValues != null) {
-			for (; transportInValues.hasNext();) {			
+			for (; transportInValues.hasNext();) {
+				String transportName = (String) transportInValues.next();
+				String protocol = transportName.substring(0, 1).toUpperCase()
+						+ transportName.substring(1, transportName.length())
+								.toLowerCase();
+				/*
+				 * populates soap11 endpoint
+				 */
+				String soap11EndpointName = serviceName + protocol
+						+ "Soap11Endpoint";
+
+				AxisEndpoint httpSoap11Endpoint = new AxisEndpoint();
+				httpSoap11Endpoint.setName(soap11EndpointName);
+				httpSoap11Endpoint.setParent(axisService);
+				httpSoap11Endpoint.setTransportInDescription(transportName);
+				populateSoap11Endpoint(axisService, httpSoap11Endpoint);
+				axisService.addEndpoint(httpSoap11Endpoint.getName(),
+						httpSoap11Endpoint);
+				// setting soap11 endpoint as the default endpoint
+				axisService.setEndpointName(soap11EndpointName);
+
+				/*
+				 * generating Soap12 endpoint
+				 */
+				String soap12EndpointName = serviceName + protocol
+						+ "Soap12Endpoint";
+				AxisEndpoint httpSoap12Endpoint = new AxisEndpoint();
+				httpSoap12Endpoint.setName(soap12EndpointName);
+				httpSoap12Endpoint.setParent(axisService);
+				httpSoap12Endpoint.setTransportInDescription(transportName);
+				populateSoap12Endpoint(axisService, httpSoap12Endpoint);
+				axisService.addEndpoint(httpSoap12Endpoint.getName(),
+						httpSoap12Endpoint);
+
+				/*
+				 * generating Http endpoint
+				 */
+				if ("http".equals(transportName)) {
+					String httpEndpointName = serviceName + protocol
+							+ "Endpoint";
+					AxisEndpoint httpEndpoint = new AxisEndpoint();
+					httpEndpoint.setName(httpEndpointName);
+					httpEndpoint.setParent(axisService);
+					httpEndpoint.setTransportInDescription(transportName);
+					populateHttpEndpoint(axisService, httpEndpoint);
+					axisService.addEndpoint(httpEndpoint.getName(),
+							httpEndpoint);
+				}
+			}
+		}
+	}
+
+	public static void addEndpointsToService(AxisService axisService,
+			AxisConfiguration axisConfiguration) throws AxisFault {
+
+		String serviceName = axisService.getName();
+		Iterator transportInValues = null;
+
+		if (axisConfiguration != null) {
+			ArrayList transports = new ArrayList();
+			for (Iterator iterator = axisConfiguration.getTransportsIn()
+					.values().iterator(); iterator.hasNext();) {
+				TransportInDescription transportInDescription = (TransportInDescription) iterator
+						.next();
+				transports.add(transportInDescription.getName());
+			}
+			transportInValues = transports.iterator();
+		}
+
+		if (transportInValues != null) {
+			for (; transportInValues.hasNext();) {
 				String transportName = (String) transportInValues.next();
 				String protocol = transportName.substring(0, 1).toUpperCase()
 						+ transportName.substring(1, transportName.length())
@@ -1102,6 +1198,7 @@
 		httpSoap11Endpoint.setName(soap11EndpointName);
 		httpSoap11Endpoint.setParent(axisService);
 		httpSoap11Endpoint.setEndpointURL(url.toString());
+		httpSoap11Endpoint.setTransportInDescription(url.getProtocol());
 
 		populateSoap11Endpoint(axisService, httpSoap11Endpoint);
 		axisService.addEndpoint(httpSoap11Endpoint.getName(),
@@ -1123,6 +1220,7 @@
 		httpSoap12Endpoint.setName(soap12EndpointName);
 		httpSoap12Endpoint.setParent(axisService);
 		httpSoap12Endpoint.setEndpointURL(url.toString());
+		httpSoap12Endpoint.setTransportInDescription(url.getProtocol());
 
 		populateSoap12Endpoint(axisService, httpSoap12Endpoint);
 		axisService.addEndpoint(httpSoap12Endpoint.getName(),
@@ -1140,10 +1238,74 @@
 		httpEndpoint.setName(httpEndpointName);
 		httpEndpoint.setParent(axisService);
 		httpEndpoint.setEndpointURL(url.toString());
+		httpEndpoint.setTransportInDescription(url.getProtocol());
 		populateHttpEndpoint(axisService, httpEndpoint);
 		axisService.addEndpoint(httpEndpoint.getName(), httpEndpoint);
 	}
 
+	public static void processPolicyAttachments(Iterator attachmentElements,
+			AxisService service) throws XMLStreamException,
+			FactoryConfigurationError {
+		OMElement attachmentElement;
+		HashMap attachmentsMap = new HashMap();
+
+		for (; attachmentElements.hasNext();) {
+			attachmentElement = (OMElement) attachmentElements.next();
+			OMElement appliesToElem = attachmentElement
+					.getFirstChildWithName(new QName(
+							DeploymentConstants.POLICY_NS_URI,
+							DeploymentConstants.TAG_APPLIES_TO));
+			ArrayList policyComponents = new ArrayList();
+
+			// process <wsp:Policy> elements ..
+			for (Iterator policyElements = attachmentElement
+					.getChildrenWithName(new QName(
+							DeploymentConstants.POLICY_NS_URI,
+							DeploymentConstants.TAG_POLICY)); policyElements
+					.hasNext();) {
+				PolicyComponent policy = PolicyUtil
+						.getPolicyFromOMElement((OMElement) policyElements
+								.next());
+				policyComponents.add(policy);
+			}
+
+			// process <wsp:PolicyReference> elements ..
+			for (Iterator policyRefElements = attachmentElement
+					.getChildrenWithName(new QName(
+							DeploymentConstants.POLICY_NS_URI,
+							DeploymentConstants.TAG_POLICY_REF)); policyRefElements
+					.hasNext();) {
+				PolicyComponent policyRef = PolicyUtil
+						.getPolicyReferenceFromOMElement((OMElement) policyRefElements
+								.next());
+				policyComponents.add(policyRef);
+			}
+
+			for (Iterator policySubjects = appliesToElem
+					.getChildrenWithName(new QName("policy-subject")); policySubjects
+					.hasNext();) {
+				OMElement policySubject = (OMElement) policySubjects.next();
+				String identifier = policySubject.getAttributeValue(new QName(
+						"identifier"));
+
+				ArrayList values = (ArrayList) attachmentsMap.get(identifier);
+				if (values == null) {
+					values = new ArrayList();
+					attachmentsMap.put(identifier, values);
+				}
+				values.addAll(policyComponents);
+			}
+		}
+
+		for (Iterator keys = attachmentsMap.keySet().iterator(); keys.hasNext();) {
+			String identifier = (String) keys.next();
+			if (identifier.startsWith("binding:soap")) {
+				processSoapAttachments(identifier, (List) attachmentsMap
+						.get(identifier), service);
+			}
+		}
+	}
+
 	private static void populateSoap11Endpoint(AxisService axisService,
 			AxisEndpoint axisEndpoint) {
 		String endpointName = axisEndpoint.getName();
@@ -1307,5 +1469,66 @@
 
 		axisBindingOperation.setAxisOperation(axisOperation);
 		axisBindingOperation.setParent(axisBinding);
+	}
+
+	private static void processSoapAttachments(String identifier,
+			List policyComponents, AxisService service) {
+		Map map = service.getEndpoints();
+		String soapVersion = (identifier.indexOf("soap12") > -1) ? SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI
+				: SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI;
+
+		for (Iterator iterator = map.values().iterator(); iterator.hasNext();) {
+			AxisEndpoint axisEndpoint = (AxisEndpoint) iterator.next();
+			AxisBinding axisBinding = axisEndpoint.getBinding();
+			String wsoap = (String) axisBinding
+					.getProperty(WSDL2Constants.ATTR_WSOAP_VERSION);
+			if (soapVersion.equals(wsoap)) {
+				String[] identifiers = identifier.split("/");
+				int key = identifiers.length;
+				if (key == 1) {
+					axisBinding.getPolicySubject().attachPolicyComponents(
+							policyComponents);
+				} else if (key == 2 || key == 3) {
+					String opName = identifiers[1];
+					opName = opName.substring(opName.indexOf(":") + 1, opName
+							.length());
+					AxisBindingOperation bindingOperation = null;
+					boolean found = false;
+					for (Iterator i = axisBinding.getChildren(); i.hasNext();) {
+						bindingOperation = (AxisBindingOperation) i.next();
+						if (opName.equals(bindingOperation.getName()
+								.getLocalPart())) {
+							found = true;
+							break;
+						}
+					}
+					if (!found) {
+						throw new IllegalArgumentException(
+								"Invalid binding operation " + opName);
+					}
+
+					if (key == 2) {
+						bindingOperation.getPolicySubject()
+								.attachPolicyComponents(policyComponents);
+					} else {
+						if ("in".equals(identifiers[2])) {
+							AxisBindingMessage bindingInMessage = (AxisBindingMessage) bindingOperation
+									.getChild(WSDLConstants.MESSAGE_LABEL_IN_VALUE);
+							bindingInMessage.getPolicySubject()
+									.attachPolicyComponents(policyComponents);
+
+						} else if ("out".equals(identifiers[2])) {
+							AxisBindingMessage bindingOutMessage = (AxisBindingMessage) bindingOperation
+									.getChild(WSDLConstants.MESSAGE_LABEL_OUT_VALUE);
+							bindingOutMessage.getPolicySubject()
+									.attachPolicyComponents(policyComponents);
+						} else {
+							// FIXME faults
+						}
+					}
+				}
+				break;
+			}
+		}
 	}
 }

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisBindingOperation.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisBindingOperation.java?rev=642522&r1=642521&r2=642522&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisBindingOperation.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisBindingOperation.java Sat Mar 29 02:25:45 2008
@@ -103,7 +103,7 @@
 	}
 
 	public Object getKey() {
-		return null;
+		return name;
 	}
 
 	public void engageModule(AxisModule axisModule) throws AxisFault {

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisDescription.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisDescription.java?rev=642522&r1=642521&r2=642522&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisDescription.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisDescription.java Sat Mar 29 02:25:45 2008
@@ -230,7 +230,7 @@
     // NOTE - These are NOT typesafe!
     public void addChild(AxisDescription child) {
         if (child.getKey() == null) {
-        // FIXME: Several classes that extend AxisDescription pass null in their getKey method.    
+        	
 //            throw new IllegalArgumentException("Please specify a key in the child");
         } else {
             children.put(child.getKey(), child);

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisEndpoint.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisEndpoint.java?rev=642522&r1=642521&r2=642522&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisEndpoint.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisEndpoint.java Sat Mar 29 02:25:45 2008
@@ -181,8 +181,11 @@
 							.getTransportIn(transportInDescName);
 					TransportListener listener = in.getReceiver();
 					String ip = HttpUtils.getIpAddress(axisConfiguration);
+					// we should pass [serviceName].[endpointName] instead of
+					// [endpointName]
+					String sDOTe = serviceName + "." + name;
 					EndpointReference[] eprsForService = listener
-							.getEPRsForService(serviceName, ip);
+							.getEPRsForService(sDOTe, ip);
 					// we consider only the first address return by the listener
 					if (eprsForService != null && eprsForService.length > 0) {
 						return eprsForService[0].getAddress();
@@ -190,11 +193,28 @@
 				} catch (SocketException e) {
 					logger.warn("", e);
 				} catch (AxisFault e) {
-					logger.warn("", e);
+					logger.warn(e.getMessage());
 				}
 			}
 		}
-		
+
 		return null;
+	}
+
+	public boolean isActive() {
+		if (transportInDescName != null && parent != null) {
+			AxisConfiguration axisConfiguration = getAxisConfiguration();
+			if (axisConfiguration != null) {
+				AxisService service = (AxisService) parent;
+				if (service.isEnableAllTransports()) {
+					return axisConfiguration.getTransportsIn().containsKey(
+							transportInDescName);
+				} else {
+					return service.getExposedTransports().contains(
+							transportInDescName);
+				}
+			}
+		}
+		return false;
 	}
 }

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisMessage.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisMessage.java?rev=642522&r1=642521&r2=642522&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisMessage.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisMessage.java Sat Mar 29 02:25:45 2008
@@ -21,8 +21,11 @@
 
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.description.java2wsdl.Java2WSDLConstants;
+import org.apache.axis2.engine.AxisConfiguration;
 import org.apache.axis2.phaseresolver.PhaseResolver;
+import org.apache.axis2.util.PolicyUtil;
 import org.apache.axis2.wsdl.SOAPHeaderMessage;
+import org.apache.neethi.Policy;
 import org.apache.ws.commons.schema.XmlSchema;
 import org.apache.ws.commons.schema.XmlSchemaElement;
 import org.apache.ws.commons.schema.XmlSchemaImport;
@@ -59,6 +62,10 @@
 
     //To chcek whether the message is wrapped or unwrapped
     private boolean wrapped = true;
+    
+    private Policy effectivePolicy = null;
+    
+	private boolean policyCalculated = false;
 
     public String getMessagePartName() {
 		return messagePartName;
@@ -231,4 +238,46 @@
     public void setWrapped(boolean wrapped) {
         this.wrapped = wrapped;
     }
+    
+	public Policy getEffectivePolicy() {
+		if (effectivePolicy == null && !policyCalculated) {
+			effectivePolicy = calculateEffectivePolicy();
+			policyCalculated = true;
+		}
+		return effectivePolicy;
+	}
+
+	public Policy calculateEffectivePolicy() {
+		PolicySubject policySubject = null;
+		ArrayList policyList = new ArrayList();
+
+		// AxisBindingMessage
+		policySubject = getPolicySubject();
+		policyList.addAll(policySubject.getAttachPolicyComponents());
+		
+		// AxisOperation
+		AxisOperation axisOperation = getAxisOperation();
+		if (axisOperation != null) {
+			policyList.addAll(axisOperation.getPolicySubject()
+					.getAttachPolicyComponents());
+		}
+
+		// AxisService
+		AxisService axisService = (axisOperation == null) ? null
+				: axisOperation.getAxisService();
+		if (axisService != null) {
+			policyList.addAll(axisService.getPolicySubject()
+					.getAttachPolicyComponents());
+		}
+
+		// AxisConfiguration
+		AxisConfiguration axisConfiguration = (axisService == null) ? null
+				: axisService.getAxisConfiguration();
+		if (axisConfiguration != null) {
+			policyList.addAll(axisConfiguration.getPolicySubject()
+					.getAttachPolicyComponents());
+		}
+
+		return PolicyUtil.getMergedPolicy(policyList, axisService);
+	}
 }

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisModule.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisModule.java?rev=642522&r1=642521&r2=642522&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisModule.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisModule.java Sat Mar 29 02:25:45 2008
@@ -83,6 +83,7 @@
     public static final String VERSION_SNAPSHOT = "SNAPSHOT";
     public static final String MODULE_SERVICE = "moduleService";
 
+    private PolicySubject policySubject = new PolicySubject();
 
     /**
      * Constructor ModuleDescription.
@@ -261,6 +262,10 @@
             policyInclude = new PolicyInclude();
         }
         return policyInclude;
+    }
+    
+    public PolicySubject getPolicySubject() {
+    	return policySubject;
     }
 
     public String getModuleDescription() {

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService.java?rev=642522&r1=642521&r2=642522&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService.java Sat Mar 29 02:25:45 2008
@@ -2239,7 +2239,7 @@
 		String endpointName = axisService.getEndpointName();
 		if ((endpointName == null || endpointName.length() == 0)
 				&& axisService.getAxisConfiguration() != null) {
-			Utils.addEndpointsToService(axisService);
+			Utils.addEndpointsToService(axisService, axisService.getAxisConfiguration());
 		}
 
 		return axisService;



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


Re: svn commit: r642522 [1/2] - in /webservices/axis2/trunk/java/modules: integration/test/org/apache/axis2/deployment/ integration/test/org/tempuri/ java2wsdl/src/org/apache/ws/java2wsdl/ kernel/src/org/apache/axis2/ kernel/src/org/apache/axis2/addressing...

Posted by Davanum Srinivas <da...@gmail.com>.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Sanka,

I've reverted this change. Let's work on it after RC3.

http://svn.apache.org/viewvc?view=rev&revision=642545

*PLEASE* upload a diff in JIRA for review.

thanks,
dims

Brian De Pradine wrote:
| Hi Sanka,
|
| The change that you made to EndpointReferenceHelper does not follow the
| existing model. Metadata from an endpoint reference that complies with the
| Submission spec is not stored in a wsa:Metadata element and so the
| metadata field of the EndpointReference class is not used. Instead the
| metadata gets stored as extensibility elements. If you want to be able to
| treat endpoint references from the Submission and Final specs in the same
| manner, in your code, then you will need to write some helper methods in
| EndpointReferenceHelper to hide the distinction. See the existing methods
| setServiceNameMetadata() and getServiceNameMetadata() for an example.
|
| Cheers
|
| Brian DePradine
| Web Services Development
| IBM Hursley
| External  +44 (0) 1962 816319         Internal 246319
|
| If you can't find the time to do it right the first time, where will you
| find the time to do it again?
|
|
| sanka@apache.org wrote on 29/03/2008 09:25:47:
|
|> Author: sanka
|> Date: Sat Mar 29 02:25:45 2008
|> New Revision: 642522
|>
|> URL: http://svn.apache.org/viewvc?rev=642522&view=rev
|> Log:
|> Applied the patch with minor fixes to resolve test failures.
|> see:
|> https://issues.apache.org/jira/browse/AXIS2-3677
|>
|> Modified:
|>
|>
| webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/deployment/WSDL11ToAxisServiceBuilderTest.
|> java
|>
|>
| webservices/axis2/trunk/java/modules/integration/test/org/tempuri/BaseDataTypesTest.
|> java
|>
|>
| webservices/axis2/trunk/java/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2WSDLBuilder.
|> java
|>
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/Constants.
|> java
|>
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/addressing/AddressingConstants.
|> java
|>
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/addressing/EndpointReferenceHelper.
|> java
|>
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/MessageContext.
|> java
|>
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/AxisConfigBuilder.
|> java
|>
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentConstants.
|> java
|>
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DescriptionBuilder.
|> java
|>
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ModuleBuilder.
|> java
|>
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.
|> java
|>
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/util/Utils.
|> java
|>
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisBindingOperation.
|> java
|>
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisDescription.
|> java
|>
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisEndpoint.
|> java
|>
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisMessage.
|> java
|>
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisModule.
|> java
|>
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService.
|> java
|>
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService2WSDL11.
|> java
|>
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/PolicySubject.
|> java
|>
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.
|> java
|>
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/WSDL20ToAxisServiceBuilder.
|> java
|>
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/AbstractDispatcher.
|> java
|>
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.
|> java
|>
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/PolicyUtil.
|> java
|>
|>
| webservices/axis2/trunk/java/modules/kernel/test/org/apache/axis2/engine/EnginePausingTest.
|> java
|>
|> Modified:
|>
| webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/deployment/WSDL11ToAxisServiceBuilderTest.
|> java
|> URL: http://svn.apache.
|>
|
org/viewvc/webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/deployment/WSDL11ToAxisServiceBuilderTest.
|> java?rev=642522&r1=642521&r2=642522&view=diff
|>
| ==============================================================================
|> ---
|>
| webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/deployment/WSDL11ToAxisServiceBuilderTest.
|> java (original)
|> +++
|>
| webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/deployment/WSDL11ToAxisServiceBuilderTest.
|> java Sat Mar 29 02:25:45 2008
|> @@ -19,8 +19,11 @@
|>
|>  package org.apache.axis2.deployment;
|>
|> +import org.apache.axis2.context.ConfigurationContext;
|> +import org.apache.axis2.context.ConfigurationContextFactory;
|>  import org.apache.axis2.description.AxisService;
|>  import org.apache.axis2.description.WSDL11ToAllAxisServicesBuilder;
|> +import org.apache.axis2.engine.AxisConfiguration;
|>  import org.custommonkey.xmlunit.XMLTestCase;
|>  import org.custommonkey.xmlunit.XMLUnit;
|>
|> @@ -44,13 +47,15 @@
|>              WSDL11ToAllAxisServicesBuilder builder = new
|> WSDL11ToAllAxisServicesBuilder(
|>                      new FileInputStream(testResourceFile));
|>              AxisService axisService = builder.populateService();
|> +            ConfigurationContext configContext =
|> ConfigurationContextFactory.createDefaultConfigurationContext();
|> +            AxisConfiguration axisConfig = configContext.
|> getAxisConfiguration();
|> +            axisConfig.addService(axisService);
|>              ByteArrayOutputStream baos = new ByteArrayOutputStream();
|>              axisService.printWSDL(baos);
|>              assertXMLEqual(new FileReader(testResourceFile), new
|> StringReader(new String(baos.toByteArray())));
|>          } catch (Exception e) {
|>              System.out.println("Error in WSDL : " +
|> testResourceFile.getName());
|
|>              System.out.println("Exception: " + e.toString());
|> -            e.printStackTrace();
|>              fail("Caught exception " + e.toString());
|>          } finally {
|>              XMLUnit.setIgnoreWhitespace(false);
|>
|> Modified:
|>
| webservices/axis2/trunk/java/modules/integration/test/org/tempuri/BaseDataTypesTest.
|> java
|> URL: http://svn.apache.
|>
| org/viewvc/webservices/axis2/trunk/java/modules/integration/test/org/tempuri/BaseDataTypesTest.
|> java?rev=642522&r1=642521&r2=642522&view=diff
|>
| ==============================================================================
|> ---
|>
| webservices/axis2/trunk/java/modules/integration/test/org/tempuri/BaseDataTypesTest.
|> java (original)
|> +++
|>
| webservices/axis2/trunk/java/modules/integration/test/org/tempuri/BaseDataTypesTest.
|> java Sat Mar 29 02:25:45 2008
|> @@ -41,7 +41,10 @@
|>              ByteArrayOutputStream out = new ByteArrayOutputStream();
|>              Java2WSDLBuilder builder = new Java2WSDLBuilder(out,
|> BaseDataTypes.class.getName(), BaseDataTypes.class.getClassLoader());
|>              builder.generateWSDL();
|> +            out.flush();
|> +
|>              FileReader control = new FileReader(wsdlLocation);
|> +
|>              StringReader test = new StringReader(new String(out.
|> toByteArray()));
|>              Diff myDiff = new Diff(XMLUnit.buildDocument(XMLUnit.
|> getControlParser(), control),
|>                       XMLUnit.buildDocument(XMLUnit.
|> getControlParser(), test),
|>
|> Modified:
|>
| webservices/axis2/trunk/java/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2WSDLBuilder.
|> java
|> URL: http://svn.apache.
|>
| org/viewvc/webservices/axis2/trunk/java/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2WSDLBuilder.
|> java?rev=642522&r1=642521&r2=642522&view=diff
|>
| ==============================================================================
|> ---
|>
| webservices/axis2/trunk/java/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2WSDLBuilder.
|> java (original)
|> +++
|>
| webservices/axis2/trunk/java/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2WSDLBuilder.
|> java Sat Mar 29 02:25:45 2008
|> @@ -256,7 +256,6 @@
|>                 + (serviceName == null ? Java2WSDLUtils
|>                       .getSimpleClassName(className) : serviceName);
|>        }
|> -      // axisService.setEPRs(new String[]{uri});
|>        setServiceEPR(axisService, uri);
|>        axisConfig.addService(axisService);
|>
|>
|> Modified:
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/Constants.
|> java
|> URL: http://svn.apache.
|>
| org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/Constants.
|> java?rev=642522&r1=642521&r2=642522&view=diff
|>
| ==============================================================================
|> ---
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/Constants.
|> java (original)
|> +++
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/Constants.
|> java Sat Mar 29 02:25:45 2008
|> @@ -71,6 +71,9 @@
|>      public static final String MESSAGE_SCOPE = "message";
|>
|>      public static final String AXIS_BINDING_OPERATION =
|> "AxisBindingOperation";
|> +
|> +    public static final String AXIS_BINDING_MESSAGE =
| "AxisBindingMessage";
|> +
|>
|>      /**
|>       * To chenge the conetext path from axis2/service to something else
|>
|> Modified:
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/addressing/AddressingConstants.
|> java
|> URL: http://svn.apache.
|>
| org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/addressing/AddressingConstants.
|> java?rev=642522&r1=642521&r2=642522&view=diff
|>
| ==============================================================================
|> ---
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/addressing/AddressingConstants.
|> java (original)
|> +++
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/addressing/AddressingConstants.
|> java Sat Mar 29 02:25:45 2008
|> @@ -221,6 +221,9 @@
|> "http://schemas.xmlsoap.org/ws/2004/08/addressing/fault";
|>          static final String WSA_SERVICE_NAME_ENDPOINT_NAME =
| "PortName";
|>          static final String WSA_INTERFACE_NAME = "PortType";
|> +
|> +        static final String MEX_NS_URL = "http://schemas.xmlsoap.
|> org/ws/2004/09/mex";
|> +        static final String MEX_METADATA = "Metadata";
|>
|>          // fault information
|>          static final String FAULT_INVALID_HEADER =
|> "InvalidMessageInformationHeader";
|>
|> Modified:
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/addressing/EndpointReferenceHelper.
|> java
|> URL: http://svn.apache.
|>
| org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/addressing/EndpointReferenceHelper.
|> java?rev=642522&r1=642521&r2=642522&view=diff
|>
| ==============================================================================
|> ---
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/addressing/EndpointReferenceHelper.
|> java (original)
|> +++
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/addressing/EndpointReferenceHelper.
|> java Sat Mar 29 02:25:45 2008
|> @@ -340,8 +340,12 @@
|>                      OMElement element = (OMElement) iterator.next();
|>                      epr.addReferenceParameter(element);
|>                  }
|> -            } else {
|> -                epr.addExtensibleElement(eprChildElement);
|> +            }else if (!isFinalAddressingNamespace &&
|> +                    map.get(AddressingConstants.Submission.
|> MEX_METADATA).equals(qname)) {
|> +               epr.addMetaData(eprChildElement);
|> +
|> +            }   else {
|> +               epr.addExtensibleElement(eprChildElement);
|>              }
|>          }
|>
|> @@ -544,5 +548,7 @@
|>          submissionQNames.put(AddressingConstants.Submission.
|> EPR_REFERENCE_PROPERTIES, new QName(
|>                  AddressingConstants.Submission.WSA_NAMESPACE,
|> AddressingConstants.Submission.EPR_REFERENCE_PROPERTIES));
|> +        submissionQNames.put(AddressingConstants.Submission.
|> MEX_METADATA, new QName(
|> +                AddressingConstants.Submission.MEX_NS_URL,
|> AddressingConstants.Submission.MEX_METADATA));
|>      }
|>  }
|>
|> Modified:
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/MessageContext.
|> java
|> URL: http://svn.apache.
|>
| org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/MessageContext.
|> java?rev=642522&r1=642521&r2=642522&view=diff
|>
| ==============================================================================
|> ---
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/MessageContext.
|> java (original)
|> +++
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/MessageContext.
|> java Sat Mar 29 02:25:45 2008
|> @@ -26,6 +26,7 @@
|>  import org.apache.axiom.soap.SOAP12Constants;
|>  import org.apache.axiom.soap.SOAPEnvelope;
|>  import org.apache.axis2.AxisFault;
|> +import org.apache.axis2.Constants;
|>  import org.apache.axis2.Constants.Configuration;
|>  import org.apache.axis2.addressing.EndpointReference;
|>  import org.apache.axis2.addressing.RelatesTo;
|> @@ -36,6 +37,7 @@
|>  import org.apache.axis2.context.externalize.SafeObjectInputStream;
|>  import org.apache.axis2.context.externalize.SafeObjectOutputStream;
|>  import org.apache.axis2.context.externalize.SafeSerializable;
|> +import org.apache.axis2.description.AxisBindingMessage;
|>  import org.apache.axis2.description.AxisMessage;
|>  import org.apache.axis2.description.AxisModule;
|>  import org.apache.axis2.description.AxisOperation;
|> @@ -1539,16 +1541,19 @@
|>          if (LoggingControl.debugLoggingAllowed) {
|>              checkActivateWarning("getEffectivePolicy");
|>          }
|> -        if (axisMessage != null) {
|> -            return axisMessage.getPolicyInclude().getEffectivePolicy();
|> -        }
|> -        if (axisOperation != null) {
|> -            return
| axisOperation.getPolicyInclude().getEffectivePolicy();
|> -        }
|> -        if (axisService != null) {
|> -            return axisService.getPolicyInclude().getEffectivePolicy();
|> +
|> +        AxisBindingMessage bindingMessage =
|> +           (AxisBindingMessage)
| getProperty(Constants.AXIS_BINDING_MESSAGE);
|> +
|> +        if (bindingMessage != null) {
|> +           return bindingMessage.getEffectivePolicy();
|> +        } else {
|> +           if (axisMessage != null) {
|> +              return axisMessage.getEffectivePolicy();
|> +           } else {
|> +              return null;
|> +           }
|>          }
|> -        return configurationContext.getAxisConfiguration().
|> getPolicyInclude().getEffectivePolicy();
|>      }
|>
|>
|>
|> Modified:
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/AxisConfigBuilder.
|> java
|> URL: http://svn.apache.
|>
| org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/AxisConfigBuilder.
|> java?rev=642522&r1=642521&r2=642522&view=diff
|>
| ==============================================================================
|> ---
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/AxisConfigBuilder.
|> java (original)
|> +++
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/AxisConfigBuilder.
|> java Sat Mar 29 02:25:45 2008
|> @@ -154,8 +154,8 @@
|>
|> TAG_POLICY));
|>
|>              if (policyElements != null && policyElements.hasNext()) {
|> -                processPolicyElements(PolicyInclude.AXIS_POLICY,
|> policyElements,
|> -                                      axisConfig.getPolicyInclude());
|> +                processPolicyElements(policyElements,
|> +                                      axisConfig.getPolicySubject());
|>              }
|>
|>              // processing <wsp:PolicyReference> .. </..> elements
|> @@ -163,8 +163,8 @@
|>
|> TAG_POLICY_REF));
|>
|>              if (policyRefElements != null &&
| policyRefElements.hasNext()) {
|> -                processPolicyRefElements(PolicyInclude.AXIS_POLICY,
|> policyElements,
|> - axisConfig.getPolicyInclude());
|> +                processPolicyRefElements(policyElements,
|> + axisConfig.getPolicySubject());
|>              }
|>
|>              //to process default module versions
|>
|> Modified:
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentConstants.
|> java
|> URL: http://svn.apache.
|>
| org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentConstants.
|> java?rev=642522&r1=642521&r2=642522&view=diff
|>
| ==============================================================================
|> ---
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentConstants.
|> java (original)
|> +++
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentConstants.
|> java Sat Mar 29 02:25:45 2008
|> @@ -158,5 +158,7 @@
|>      String POLICY_NS_URI = Constants.URI_POLICY;
|>      String TAG_POLICY = "Policy";
|>      String TAG_POLICY_REF = "PolicyReference";
|> -
|> +
|> +    String TAG_POLICY_ATTACHMENT = "PolicyAttachment";
|> +    String TAG_APPLIES_TO = "AppliesTo";
|>  }
|>
|> Modified:
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DescriptionBuilder.
|> java
|> URL: http://svn.apache.
|>
| org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DescriptionBuilder.
|> java?rev=642522&r1=642521&r2=642522&view=diff
|>
| ==============================================================================
|> ---
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DescriptionBuilder.
|> java (original)
|> +++
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DescriptionBuilder.
|> java Sat Mar 29 02:25:45 2008
|> @@ -33,6 +33,7 @@
|>  import org.apache.axis2.description.ParameterInclude;
|>  import org.apache.axis2.description.PhaseRule;
|>  import org.apache.axis2.description.PolicyInclude;
|> +import org.apache.axis2.description.PolicySubject;
|>  import org.apache.axis2.description.WSDL2Constants;
|>  import org.apache.axis2.engine.AxisConfiguration;
|>  import org.apache.axis2.engine.MessageReceiver;
|> @@ -631,23 +632,21 @@
|>          }
|>      }
|>
|> -    protected void processPolicyElements(int type, Iterator
| policyElements,
|> -                                         PolicyInclude policyInclude) {
|> +    protected void processPolicyElements(Iterator policyElements,
|> +                                         PolicySubject policySubject) {
|>          while (policyElements.hasNext()) {
|>              Policy p = PolicyEngine
|>                      .getPolicy((OMElement) policyElements.next());
|> -            policyInclude.addPolicyElement(type, p);
|> +            policySubject.attachPolicy(p);
|>          }
|>      }
|>
|> -    protected void processPolicyRefElements(int type,
|> -                                            Iterator policyRefElements,
|> -                                            PolicyInclude
| policyInclude) {
|> -
|> +    protected void processPolicyRefElements(Iterator policyRefElements,
|> +                                            PolicySubject
| policySubject) {
|>          while (policyRefElements.hasNext()) {
|>              PolicyReference policyReference = PolicyEngine
|>                      .getPolicyReference((OMElement)
|> policyRefElements.next());
|> -            policyInclude.addPolicyRefElement(type, policyReference);
|> +            policySubject.attachPolicyReference(policyReference);
|>          }
|>      }
|>
|>
|> Modified:
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ModuleBuilder.
|> java
|> URL: http://svn.apache.
|>
| org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ModuleBuilder.
|> java?rev=642522&r1=642521&r2=642522&view=diff
|>
| ==============================================================================
|> ---
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ModuleBuilder.
|> java (original)
|> +++
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ModuleBuilder.
|> java Sat Mar 29 02:25:45 2008
|> @@ -147,8 +147,7 @@
|>                      moduleElement.getChildrenWithName(new
|> QName(POLICY_NS_URI, TAG_POLICY));
|>
|>              if (policyElements != null && policyElements.hasNext()) {
|> -                processPolicyElements(PolicyInclude.
|> AXIS_MODULE_POLICY, policyElements,
|> -                                      module.getPolicyInclude());
|> +                processPolicyElements(policyElements, module.
|> getPolicySubject());
|>              }
|>
|>              // processing <wsp:PolicyReference> .. </..> elements
|> @@ -156,8 +155,7 @@
|>                      moduleElement.getChildrenWithName(new
|> QName(POLICY_NS_URI, TAG_POLICY_REF));
|>
|>              if (policyRefElements != null && policyElements.hasNext())
| {
|> -                processPolicyRefElements(PolicyInclude.
|> AXIS_MODULE_POLICY, policyRefElements,
|> -                                         module.getPolicyInclude());
|> +                processPolicyRefElements(policyRefElements, module.
|> getPolicySubject());
|>              }
|>
|>              // process INFLOW
|> @@ -297,14 +295,14 @@
|>              Iterator policyElements = operation.
|> getChildrenWithName(new QName(POLICY_NS_URI, TAG_POLICY));
|>
|>              if (policyElements != null && policyElements.hasNext()) {
|> -                processPolicyElements(PolicyInclude.
|> AXIS_MODULE_OPERATION_POLICY, policyElements,
| op_descrip.getPolicyInclude());
|> +                processPolicyElements(policyElements, op_descrip.
|> getPolicySubject());
|>              }
|>
|>              // processing <wsp:PolicyReference> .. </..> elements
|>              Iterator policyRefElements = operation.
|> getChildrenWithName(new QName(POLICY_NS_URI, TAG_POLICY_REF));
|>
|>              if (policyRefElements != null &&
| policyRefElements.hasNext()) {
|> -                processPolicyRefElements(PolicyInclude.
|> AXIS_MODULE_OPERATION_POLICY, policyRefElements,
| module.getPolicyInclude());
|> +                processPolicyRefElements(policyRefElements, module.
|> getPolicySubject());
|>              }
|>
|>              // setting Operation phase
|>
|> Modified:
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.
|> java
|> URL: http://svn.apache.
|>
| org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.
|> java?rev=642522&r1=642521&r2=642522&view=diff
|>
| ==============================================================================
|> ---
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.
|> java (original)
|> +++
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.
|> java Sat Mar 29 02:25:45 2008
|> @@ -48,6 +48,9 @@
|>  import org.apache.commons.logging.LogFactory;
|>
|>  import javax.xml.namespace.QName;
|> +import javax.xml.stream.FactoryConfigurationError;
|> +import javax.xml.stream.XMLStreamException;
|> +
|>  import java.io.InputStream;
|>  import java.util.ArrayList;
|>  import java.util.HashMap;
|> @@ -298,8 +301,7 @@
|>                 .getChildrenWithName(new QName(POLICY_NS_URI,
| TAG_POLICY));
|>           if (policyElements != null && policyElements.hasNext()) {
|> -            processPolicyElements(PolicyInclude.AXIS_SERVICE_POLICY,
|> -                  policyElements, service.getPolicyInclude());
|> +            processPolicyElements(policyElements, service.
|> getPolicySubject());
|>           }
|>
|>           // processing <wsp:PolicyReference> .. </..> elements
|> @@ -308,8 +310,7 @@
|>                       TAG_POLICY_REF));
|>
|>           if (policyRefElements != null && policyRefElements.hasNext())
| {
|> -            processPolicyRefElements(PolicyInclude.AXIS_SERVICE_POLICY,
|> -                  policyRefElements, service.getPolicyInclude());
|> +            processPolicyRefElements(policyRefElements, service.
|> getPolicySubject());
|>           }
|>
|>           // processing service scope
|> @@ -423,6 +424,8 @@
|>           }
|>
|>           processEndpoints(service);
|> +         processPolicyAttachments(service_element, service);
|> +
|>
|>        } catch (AxisFault axisFault) {
|>           throw new DeploymentException(axisFault);
|> @@ -627,8 +630,7 @@
|>                 .getChildrenWithName(new QName(POLICY_NS_URI,
| TAG_POLICY));
|>           if (policyElements != null) {
|> -            processPolicyElements(PolicyInclude.AXIS_MESSAGE_POLICY,
|> -                  policyElements, message.getPolicyInclude());
|> +            processPolicyElements(policyElements, message.
|> getPolicySubject());
|>           }
|>
|>           // processing <wsp:PolicyReference> .. </..> elements
|> @@ -637,8 +639,7 @@
|>                       TAG_POLICY_REF));
|>
|>           if (policyRefElements != null) {
|> -            processPolicyRefElements(PolicyInclude.AXIS_MESSAGE_POLICY,
|> -                  policyRefElements, message.getPolicyInclude());
|> +            processPolicyRefElements(policyRefElements, message.
|> getPolicySubject());
|>           }
|>
|>           processParameters(parameters, message, operation);
|> @@ -789,8 +790,7 @@
|>                 POLICY_NS_URI, TAG_POLICY));
|>
|>           if (policyElements != null && policyElements.hasNext()) {
|> -            processPolicyElements(PolicyInclude.AXIS_OPERATION_POLICY,
|> -                  policyElements, op_descrip.getPolicyInclude());
|> +            processPolicyElements(policyElements, op_descrip.
|> getPolicySubject());
|>           }
|>
|>           // processing <wsp:PolicyReference> .. </..> elements
|> @@ -799,8 +799,7 @@
|>                       TAG_POLICY_REF));
|>
|>           if (policyRefElements != null && policyRefElements.hasNext())
| {
|
|> - processPolicyRefElements(PolicyInclude.AXIS_OPERATION_POLICY,
|> -                  policyRefElements, op_descrip.getPolicyInclude());
|> +            processPolicyRefElements(policyRefElements, op_descrip.
|> getPolicySubject());
|>           }
|>
|>           // Operation Parameters
|> @@ -913,7 +912,16 @@
|>     private void processEndpoints(AxisService axisService) throws
| AxisFault {
|>        String endpointName = axisService.getEndpointName();
|>        if (endpointName == null || endpointName.length() == 0) {
|> -         Utils.addEndpointsToService(axisService);
|> +         Utils.addEndpointsToService(axisService, service.
|> getAxisConfiguration());
|> +      }
|> +   }
|> +
|> +   private void processPolicyAttachments(OMElement serviceElement,
|> AxisService service) throws DeploymentException {
|> +      Iterator attachmentElements = serviceElement.
|> getChildrenWithName(new QName(POLICY_NS_URI, TAG_POLICY_ATTACHMENT));
|> +      try {
|> +         Utils.processPolicyAttachments(attachmentElements, service);
|> +      } catch (Exception e) {
|> +         throw new DeploymentException(e);
|>        }
|>     }
|>
|>
|> Modified:
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/util/Utils.
|> java
|> URL: http://svn.apache.
|>
| org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/util/Utils.
|> java?rev=642522&r1=642521&r2=642522&view=diff
|>
| ==============================================================================
|> ---
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/util/Utils.
|> java (original)
|> +++
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/util/Utils.
|> java Sat Mar 29 02:25:45 2008
|> @@ -19,6 +19,44 @@
|>
|>  package org.apache.axis2.deployment.util;
|>
|> +import java.io.BufferedReader;
|> +import java.io.File;
|> +import java.io.FileInputStream;
|> +import java.io.FileNotFoundException;
|> +import java.io.FileOutputStream;
|> +import java.io.IOException;
|> +import java.io.InputStream;
|> +import java.io.InputStreamReader;
|> +import java.io.OutputStreamWriter;
|> +import java.io.UnsupportedEncodingException;
|> +import java.lang.reflect.InvocationTargetException;
|> +import java.lang.reflect.Method;
|> +import java.lang.reflect.Modifier;
|> +import java.net.MalformedURLException;
|> +import java.net.URL;
|> +import java.net.URLClassLoader;
|> +import java.net.URLDecoder;
|> +import java.security.AccessController;
|> +import java.security.PrivilegedAction;
|> +import java.security.PrivilegedActionException;
|> +import java.security.PrivilegedExceptionAction;
|> +import java.util.ArrayList;
|> +import java.util.Arrays;
|> +import java.util.Collection;
|> +import java.util.HashMap;
|> +import java.util.Iterator;
|> +import java.util.LinkedList;
|> +import java.util.List;
|> +import java.util.Map;
|> +import java.util.Stack;
|> +import java.util.StringTokenizer;
|> +import java.util.zip.ZipEntry;
|> +import java.util.zip.ZipInputStream;
|> +
|> +import javax.xml.namespace.QName;
|> +import javax.xml.stream.FactoryConfigurationError;
|> +import javax.xml.stream.XMLStreamException;
|> +
|>  import org.apache.axiom.om.OMAbstractFactory;
|>  import org.apache.axiom.om.OMElement;
|>  import org.apache.axiom.om.OMFactory;
|> @@ -56,51 +94,18 @@
|>  import org.apache.axis2.engine.Handler;
|>  import org.apache.axis2.engine.MessageReceiver;
|>  import org.apache.axis2.util.Loader;
|> +import org.apache.axis2.util.PolicyUtil;
|>  import org.apache.axis2.wsdl.WSDLConstants;
|>  import org.apache.axis2.wsdl.WSDLUtil;
|>  import org.apache.commons.logging.Log;
|>  import org.apache.commons.logging.LogFactory;
|> +import org.apache.neethi.PolicyComponent;
|>  import org.apache.ws.commons.schema.utils.NamespaceMap;
|>  import org.codehaus.jam.JAnnotation;
|>  import org.codehaus.jam.JMethod;
|>
|> -import javax.xml.namespace.QName;
|> -import java.io.BufferedReader;
|> -import java.io.File;
|> -import java.io.FileInputStream;
|> -import java.io.FileOutputStream;
|> -import java.io.IOException;
|> -import java.io.InputStream;
|> -import java.io.InputStreamReader;
|> -import java.io.OutputStreamWriter;
|> -import java.io.UnsupportedEncodingException;
|> -import java.io.FileNotFoundException;
|> -import java.lang.reflect.Method;
|> -import java.lang.reflect.Modifier;
|> -import java.lang.reflect.InvocationTargetException;
|> -import java.net.MalformedURLException;
|> -import java.net.URL;
|> -import java.net.URLClassLoader;
|> -import java.net.URLDecoder;
|> -import java.security.AccessController;
|> -import java.security.PrivilegedAction;
|> -import java.security.PrivilegedExceptionAction;
|> -import java.security.PrivilegedActionException;
|> -import java.util.ArrayList;
|> -import java.util.Arrays;
|> -import java.util.Collection;
|> -import java.util.HashMap;
|> -import java.util.Iterator;
|> -import java.util.LinkedList;
|> -import java.util.List;
|> -import java.util.Stack;
|> -import java.util.StringTokenizer;
|> -import java.util.zip.ZipEntry;
|> -import java.util.zip.ZipInputStream;
|> -
|>  public class Utils {
|>
|> -
|>     public static String defaultEncoding = new
| OutputStreamWriter(System.out)
|>           .getEncoding();
|>
|> @@ -114,23 +119,24 @@
|>           HandlerDescription handlermd = flow.getHandler(j);
|>           Handler handler;
|>
|> -         final Class handlerClass = getHandlerClass(handlermd.
|> getClassName(), clsLoader);
|> +         final Class handlerClass = getHandlerClass(
|> +               handlermd.getClassName(), clsLoader);
|>
|> -            try {
|> -                handler = (Handler) org.apache.axis2.java.security.
|> AccessController.doPrivileged(
|> -                        new PrivilegedExceptionAction() {
|> -                            public Object run() throws
|> InstantiationException, IllegalAccessException {
|> -                                return handlerClass.newInstance();
|> -                            }
|> -                        }
|> -                );
|> -                handler.init(handlermd);
|> -                handlermd.setHandler(handler);
|> -            } catch (PrivilegedActionException e) {
|> -                throw AxisFault.makeFault(e);
|> -            }
|> -        }
|> -    }
|> +         try {
|> +            handler = (Handler) org.apache.axis2.java.security.
|> AccessController
|> +                  .doPrivileged(new PrivilegedExceptionAction() {
|> +                     public Object run() throws InstantiationException,
|> +                           IllegalAccessException {
|> +                        return handlerClass.newInstance();
|> +                     }
|> +                  });
|> +            handler.init(handlermd);
|> +            handlermd.setHandler(handler);
|> +         } catch (PrivilegedActionException e) {
|> +            throw AxisFault.makeFault(e);
|> +         }
|> +      }
|> +   }
|>
|>     public static boolean loadHandler(ClassLoader loader1,
|> HandlerDescription desc)
|>           throws DeploymentException {
|> @@ -138,15 +144,14 @@
|>        Handler handler;
|>        try {
|>           final Class handlerClass = Loader.loadClass(loader1,
| handlername);
|> -            Package aPackage = (Package) org.apache.axis2.java.
|> security.AccessController.doPrivileged(
|> -                    new PrivilegedAction() {
|> -                        public Object run() {
|> -                            return handlerClass.getPackage();
|> -                        }
|> -                    }
|> -            );
|> -            if (aPackage != null && aPackage.getName().equals(
|> -               "org.apache.axis2.engine")) {
|> +         Package aPackage = (Package) org.apache.axis2.java.
|> security.AccessController
|> +               .doPrivileged(new PrivilegedAction() {
|> +                  public Object run() {
|> +                     return handlerClass.getPackage();
|> +                  }
|> +               });
|> +         if (aPackage != null
|> +               && aPackage.getName().equals("org.apache.axis2.engine"))
| {
|>              String name = handlerClass.getName();
|>              log.warn("Dispatcher " + name + " is now deprecated.");
|>              if (name.indexOf("InstanceDispatcher") != -1) {
|> @@ -158,13 +163,13 @@
|>                             + "and replace with the same class in
|> org.apache.axis2.dispatchers package");
|>              }
|>           }
|> -         handler = (Handler) org.apache.axis2.java.security.
|> AccessController.doPrivileged(
|> -                    new PrivilegedExceptionAction() {
|> -                        public Object run() throws
|> InstantiationException, IllegalAccessException {
|> -                            return handlerClass.newInstance();
|> -                        }
|> -                    }
|> -            );
|> +         handler = (Handler)
| org.apache.axis2.java.security.AccessController
|> +               .doPrivileged(new PrivilegedExceptionAction() {
|> +                  public Object run() throws InstantiationException,
|> +                        IllegalAccessException {
|> +                     return handlerClass.newInstance();
|> +                  }
|> +               });
|>           handler.init(desc);
|>           desc.setHandler(handler);
|>        } catch (ClassNotFoundException e) {
|> @@ -178,237 +183,239 @@
|>        }
|>          return true;
|>      }
|> -
|> +
|>     public static URL[] getURLsForAllJars(URL url, File tmpDir) {
|> -        FileInputStream fin = null;
|> -        InputStream in = null;
|> -        ZipInputStream zin = null;
|> -        try {
|> -            ArrayList array = new ArrayList();
|> -            in = url.openStream();
|> -            String fileName = url.getFile();
|> -            int index = fileName.lastIndexOf('/');
|> -            if (index != -1) {
|> -                fileName = fileName.substring(index + 1);
|> -            }
|> -            final File f = createTempFile(fileName, in, tmpDir);
|> -
|> -            fin = (FileInputStream) org.apache.axis2.java.security.
|> AccessController.doPrivileged(
|> -                    new PrivilegedExceptionAction() {
|> -                        public Object run() throws
| FileNotFoundException {
|> -                            return new FileInputStream(f);
|> -                        }
|> -                    }
|> -            );
|> -            array.add(f.toURL());
|> -            zin = new ZipInputStream(fin);
|> -
|> -            ZipEntry entry;
|> -            String entryName;
|> -            while ((entry = zin.getNextEntry()) != null) {
|> -                entryName = entry.getName();
|> -                /**
|> -                 * id the entry name start with /lib and end with .jar
|> -                 * then those entry name will be added to the arraylist
|> -                 */
|> -                if ((entryName != null) && entryName.toLowerCase().
|> startsWith("lib/")
|> -                        && entryName.toLowerCase().endsWith(".jar")) {
|> -                    String suffix = entryName.substring(4);
|> -                    File f2 = createTempFile(suffix, zin, tmpDir);
|> -                    array.add(f2.toURL());
|> -                }
|> -            }
|> -            return (URL[]) array.toArray(new URL[array.size()]);
|> -        } catch (Exception e) {
|> -            throw new RuntimeException(e);
|> -        } finally {
|> -            if (fin != null) {
|> -                try {
|> -                    fin.close();
|> -                } catch (IOException e) {
|> -                    //
|> -                }
|> -            }
|> -            if (in != null) {
|> -                try {
|> -                    in.close();
|> -                } catch (IOException e) {
|> -                    //
|> -                }
|> -            }
|> -            if (zin != null) {
|> -                try {
|> -                    zin.close();
|> -                } catch (IOException e) {
|> -                    //
|> -                }
|> -            }
|> -        }
|> +      FileInputStream fin = null;
|> +      InputStream in = null;
|> +      ZipInputStream zin = null;
|> +      try {
|> +         ArrayList array = new ArrayList();
|> +         in = url.openStream();
|> +         String fileName = url.getFile();
|> +         int index = fileName.lastIndexOf('/');
|> +         if (index != -1) {
|> +            fileName = fileName.substring(index + 1);
|> +         }
|> +         final File f = createTempFile(fileName, in, tmpDir);
|> +
|> +         fin = (FileInputStream) org.apache.axis2.java.security.
|> AccessController
|> +               .doPrivileged(new PrivilegedExceptionAction() {
|> +                  public Object run() throws FileNotFoundException {
|> +                     return new FileInputStream(f);
|> +                  }
|> +               });
|> +         array.add(f.toURL());
|> +         zin = new ZipInputStream(fin);
|> +
|> +         ZipEntry entry;
|> +         String entryName;
|> +         while ((entry = zin.getNextEntry()) != null) {
|> +            entryName = entry.getName();
|> +            /**
|> +             * id the entry name start with /lib and end with .jar then
|> +             * those entry name will be added to the arraylist
|> +             */
|> +            if ((entryName != null)
|> +                  && entryName.toLowerCase().startsWith("lib/")
|> +                  && entryName.toLowerCase().endsWith(".jar")) {
|> +               String suffix = entryName.substring(4);
|> +               File f2 = createTempFile(suffix, zin, tmpDir);
|> +               array.add(f2.toURL());
|> +            }
|> +         }
|> +         return (URL[]) array.toArray(new URL[array.size()]);
|> +      } catch (Exception e) {
|> +         throw new RuntimeException(e);
|> +      } finally {
|> +         if (fin != null) {
|> +            try {
|> +               fin.close();
|> +            } catch (IOException e) {
|> +               //
|> +            }
|> +         }
|> +         if (in != null) {
|> +            try {
|> +               in.close();
|> +            } catch (IOException e) {
|> +               //
|> +            }
|> +         }
|> +         if (zin != null) {
|> +            try {
|> +               zin.close();
|> +            } catch (IOException e) {
|> +               //
|> +            }
|> +         }
|> +      }
|>     }
|> -
|> -   public static File createTempFile(final String suffix,
|> InputStream in, final File tmpDir) throws IOException {
|> -        byte data[] = new byte[2048];
|> -        int count;
|> -        File f;
|> -        if (tmpDir == null) {
|> -            String directory = (String) org.apache.axis2.java.
|> security.AccessController.doPrivileged(
|> -                    new PrivilegedAction() {
|> -                        public Object run() {
|> -                            return
| System.getProperty("java.io.tmpdir");
|> -                        }
|> -                    }
|> -            );
|> -            final File tempFile = new File(directory, "_axis2");
|> -            Boolean exists = (Boolean) org.apache.axis2.java.
|> security.AccessController.doPrivileged(
|> -                    new PrivilegedAction() {
|> -                        public Object run() {
|> -                            return new Boolean(tempFile.exists());
|> -                        }
|> -                    }
|> -            );
|> -            if (!exists.booleanValue()) {
|> -                Boolean mkdirs = (Boolean) org.apache.axis2.java.
|> security.AccessController.doPrivileged(
|> -                        new PrivilegedAction() {
|> -                            public Object run() {
|> -                                return new Boolean(tempFile.mkdirs());
|> -                            }
|> -                        }
|> -                );
|> -                if (!mkdirs.booleanValue()) {
|> -                    throw new IOException("Unable to create the
| directory");
|> -                }
|> -            }
|> -            try {
|> -                f = (File) org.apache.axis2.java.security.
|> AccessController.doPrivileged(
|> -                        new PrivilegedExceptionAction() {
|> -                            public Object run() throws IOException {
|> -                                return File.createTempFile("axis2",
|> suffix, tempFile);
|> -                            }
|> -                        }
|> -                );
|> -            } catch (PrivilegedActionException e) {
|> -                throw (IOException) e.getException();
|> -            }
|> -        } else {
|> -            try {
|> -                f = (File) org.apache.axis2.java.security.
|> AccessController.doPrivileged(
|> -                        new PrivilegedExceptionAction() {
|> -                            public Object run() throws IOException {
|> -                                return File.createTempFile("axis2",
|> suffix, tmpDir);
|> -                            }
|> -                        }
|> -                );
|> -            } catch (PrivilegedActionException e) {
|> -                throw (IOException) e.getException();
|> -            }
|> -        }
|> -        if (log.isDebugEnabled()) {
|> -            log.debug("Created temporary file : " + f.
|> getAbsolutePath());//$NON-SEC-4
|> -        }
|> -        final File f2 = f;
|> -        org.apache.axis2.java.security.AccessController.doPrivileged(
|> -                new PrivilegedAction() {
|> -                    public Object run() {
|> -                        f2.deleteOnExit();
|> -                        return null;
|> -                    }
|> -                }
|> -        );
|> -        FileOutputStream out = null;
|> -        try {
|> -            out = (FileOutputStream) org.apache.axis2.java.
|> security.AccessController.doPrivileged(
|> -                    new PrivilegedExceptionAction() {
|> -                        public Object run() throws
| FileNotFoundException {
|> -                            return new FileOutputStream(f2);
|> -                        }
|> -                    }
|> -            );
|> -        } catch (PrivilegedActionException e) {
|> -            throw (FileNotFoundException) e.getException();
|> -        }
|> -        while ((count = in.read(data, 0, 2048)) != -1) {
|> -            out.write(data, 0, count);
|> -        }
|> -        out.close();
|> -        return f;
|> -    }
|> -
|> +
|> +   public static File createTempFile(final String suffix, InputStream
| in,
|> +         final File tmpDir) throws IOException {
|> +      byte data[] = new byte[2048];
|> +      int count;
|> +      File f;
|> +      if (tmpDir == null) {
|> +         String directory = (String) org.apache.axis2.java.
|> security.AccessController
|> +               .doPrivileged(new PrivilegedAction() {
|> +                  public Object run() {
|> +                     return System.getProperty("java.io.tmpdir");
|> +                  }
|> +               });
|> +         final File tempFile = new File(directory, "_axis2");
|> +         Boolean exists = (Boolean) org.apache.axis2.java.security.
|> AccessController
|> +               .doPrivileged(new PrivilegedAction() {
|> +                  public Object run() {
|> +                     return new Boolean(tempFile.exists());
|> +                  }
|> +               });
|> +         if (!exists.booleanValue()) {
|> +            Boolean mkdirs = (Boolean) org.apache.axis2.java.
|> security.AccessController
|> +                  .doPrivileged(new PrivilegedAction() {
|> +                     public Object run() {
|> +                        return new Boolean(tempFile.mkdirs());
|> +                     }
|> +                  });
|> +            if (!mkdirs.booleanValue()) {
|> +               throw new IOException("Unable to create the directory");
|> +            }
|> +         }
|> +         try {
|> +            f = (File) org.apache.axis2.java.security.AccessController
|> +                  .doPrivileged(new PrivilegedExceptionAction() {
|> +                     public Object run() throws IOException {
|> +                        return File.createTempFile("axis2", suffix,
|> +                              tempFile);
|> +                     }
|> +                  });
|> +         } catch (PrivilegedActionException e) {
|> +            throw (IOException) e.getException();
|> +         }
|> +      } else {
|> +         try {
|> +            f = (File) org.apache.axis2.java.security.AccessController
|> +                  .doPrivileged(new PrivilegedExceptionAction() {
|> +                     public Object run() throws IOException {
|> +                        return File.createTempFile("axis2", suffix,
|> +                              tmpDir);
|> +                     }
|> +                  });
|> +         } catch (PrivilegedActionException e) {
|> +            throw (IOException) e.getException();
|> +         }
|> +      }
|> +      if (log.isDebugEnabled()) {
|> +         log.debug("Created temporary file : " + f.
|> getAbsolutePath());// $NON-SEC-4
|> +      }
|> +      final File f2 = f;
|> +      org.apache.axis2.java.security.AccessController
|> +            .doPrivileged(new PrivilegedAction() {
|> +               public Object run() {
|> +                  f2.deleteOnExit();
|> +                  return null;
|> +               }
|> +            });
|> +      FileOutputStream out = null;
|> +      try {
|> +         out = (FileOutputStream) org.apache.axis2.java.security.
|> AccessController
|> +               .doPrivileged(new PrivilegedExceptionAction() {
|> +                  public Object run() throws FileNotFoundException {
|> +                     return new FileOutputStream(f2);
|> +                  }
|> +               });
|> +      } catch (PrivilegedActionException e) {
|> +         throw (FileNotFoundException) e.getException();
|> +      }
|> +      while ((count = in.read(data, 0, 2048)) != -1) {
|> +         out.write(data, 0, count);
|> +      }
|> +      out.close();
|> +      return f;
|> +   }
|> +
|>     public static ClassLoader getClassLoader(ClassLoader parent, String
| path)
|>           throws DeploymentException {
|>        return getClassLoader(parent, new File(path));
|>     }
|> -
|> +
|>     /**
|> -     * Get a ClassLoader which contains a classpath of a) the
|> passed directory and b) any jar
|> -     * files inside the "lib/" or "Lib/" subdirectory of the
| passeddirectory.
|> -     *
|> -     * @param parent parent ClassLoader which will be the parent of
|> the result of this method
|> -     * @param file   a File which must be a directory for this to be
| useful
|> -     * @return a new ClassLoader pointing to both the passed dir
|> and jar files under lib/
|> -     * @throws DeploymentException if problems occur
|> -     */
|> -    public static ClassLoader getClassLoader(final ClassLoader
|> parent, File file)
|> -            throws DeploymentException {
|> -        URLClassLoader classLoader;
|> -
|> -        if (file == null) return null; // Shouldn't this just
|> return the parent?
|> -
|> -        try {
|> -            ArrayList urls = new ArrayList();
|> -            urls.add(file.toURL());
|> -
|> -            // lower case directory name
|> -            File libfiles = new File(file, "lib");
|> -            if (!addFiles(urls, libfiles)) {
|> -                // upper case directory name
|> -                libfiles = new File(file, "Lib");
|> -                addFiles(urls, libfiles);
|> -            }
|> +    * Get a ClassLoader which contains a classpath of a) the
| passeddirectory
|> +    * and b) any jar files inside the "lib/" or "Lib/" subdirectory of
| the
|> +    * passed directory.
|> +    *
|> +    * @param parent
|> +    *            parent ClassLoader which will be the parent of
| theresult of
|> +    *            this method
|> +    * @param file
|> +    *            a File which must be a directory for this to be useful
|> +    * @return a new ClassLoader pointing to both the passed dir andjar
| files
|> +    *         under lib/
|> +    * @throws DeploymentException
|> +    *             if problems occur
|> +    */
|> +   public static ClassLoader getClassLoader(final ClassLoader
|> parent, File file)
|> +         throws DeploymentException {
|> +      URLClassLoader classLoader;
|>
|> -            final URL urllist[] = new URL[urls.size()];
|> -            for (int i = 0; i < urls.size(); i++) {
|> -                urllist[i] = (URL) urls.get(i);
|> -            }
|> -            classLoader =
|> -                (URLClassLoader) AccessController.doPrivileged(new
|> PrivilegedAction() {
|> -                    public Object run() {
|> -                        return new URLClassLoader(urllist, parent);
|> -                    }
|> -                });
|> -            return classLoader;
|> -        } catch (MalformedURLException e) {
|> -            throw new DeploymentException(e);
|> -        }
|> -    }
|> +      if (file == null)
|> +         return null; // Shouldn't this just return the parent?
|>
|> -    private static boolean addFiles(ArrayList urls, final File
|> libfiles) throws MalformedURLException {
|> -        Boolean exists = (Boolean) org.apache.axis2.java.security.
|> AccessController.doPrivileged(
|> -                new PrivilegedAction() {
|> -                    public Object run() {
|> -                        return new Boolean(libfiles.exists());
|> -                    }
|> -                }
|> -        );
|> -        if (exists.booleanValue()) {
|> -            urls.add(libfiles.toURL());
|> -            File jarfiles[] = (File[]) org.apache.axis2.java.
|> security.AccessController.doPrivileged(
|> -                    new PrivilegedAction() {
|> -                        public Object run() {
|> -                            return libfiles.listFiles();
|> -                        }
|> -                    }
|> -            );
|> -            for (int i = 0; i < jarfiles.length; i++) {
|> -                File jarfile = jarfiles[i];
|> -                if (jarfile.getName().endsWith(".jar")) {
|> -                    urls.add(jarfile.toURL());
|> -                }
|> -            }
|> -        }
|> -        return exists.booleanValue();
|> -    }
|> +      try {
|> +         ArrayList urls = new ArrayList();
|> +         urls.add(file.toURL());
|> +
|> +         // lower case directory name
|> +         File libfiles = new File(file, "lib");
|> +         if (!addFiles(urls, libfiles)) {
|> +            // upper case directory name
|> +            libfiles = new File(file, "Lib");
|> +            addFiles(urls, libfiles);
|> +         }
|> +
|> +         final URL urllist[] = new URL[urls.size()];
|> +         for (int i = 0; i < urls.size(); i++) {
|> +            urllist[i] = (URL) urls.get(i);
|> +         }
|> +         classLoader = (URLClassLoader) AccessController
|> +               .doPrivileged(new PrivilegedAction() {
|> +                  public Object run() {
|> +                     return new URLClassLoader(urllist, parent);
|> +                  }
|> +               });
|> +         return classLoader;
|> +      } catch (MalformedURLException e) {
|> +         throw new DeploymentException(e);
|> +      }
|> +   }
|> +
|> +   private static boolean addFiles(ArrayList urls, final File libfiles)
|> +         throws MalformedURLException {
|> +      Boolean exists = (Boolean) org.apache.axis2.java.security.
|> AccessController
|> +            .doPrivileged(new PrivilegedAction() {
|> +               public Object run() {
|> +                  return new Boolean(libfiles.exists());
|> +               }
|> +            });
|> +      if (exists.booleanValue()) {
|> +         urls.add(libfiles.toURL());
|> +         File jarfiles[] = (File[]) org.apache.axis2.java.security.
|> AccessController
|> +               .doPrivileged(new PrivilegedAction() {
|> +                  public Object run() {
|> +                     return libfiles.listFiles();
|> +                  }
|> +               });
|> +         for (int i = 0; i < jarfiles.length; i++) {
|> +            File jarfile = jarfiles[i];
|> +            if (jarfile.getName().endsWith(".jar")) {
|> +               urls.add(jarfile.toURL());
|> +            }
|> +         }
|> +      }
|> +      return exists.booleanValue();
|> +   }
|>
|> -    private static Class getHandlerClass(String className,
|> ClassLoader loader1)
|> +   private static Class getHandlerClass(String className,
|> ClassLoader loader1)
|>           throws AxisFault {
|>        Class handlerClass;
|>
|> @@ -455,35 +462,39 @@
|>                 .getParameter(Constants.SERVICE_OBJECT_SUPPLIER);
|>           if (implInfoParam != null) {
|>              String className = ((String)
| implInfoParam.getValue()).trim();
|> -            final Class serviceObjectMaker = Loader.
|> loadClass(serviceClassLoader,
|> -                  className);
|> +            final Class serviceObjectMaker = Loader.loadClass(
|> +                  serviceClassLoader, className);
|>              if (serviceObjectMaker.getModifiers() != Modifier.PUBLIC) {
|>                 throw new AxisFault("Service class " + className
|>                       + " must have public as access Modifier");
|>              }
|>
|> -                // Find static getServiceObject() method, call it if
| there
|> -                final Method method = (Method) org.apache.axis2.
|> java.security.AccessController.doPrivileged(
|> -                        new PrivilegedExceptionAction() {
|> -                            public Object run() throws
|> NoSuchMethodException {
|> -                                return serviceObjectMaker.getMethod(
|> -                                        "getServiceObject", new
|> Class[]{AxisService.class});
|> -                            }
|> -                        }
|> -                );
|> -                Object obj = null;
|> +            // Find static getServiceObject() method, call it if there
|> +            final Method method = (Method) org.apache.axis2.java.
|> security.AccessController
|> +                  .doPrivileged(new PrivilegedExceptionAction() {
|> +                     public Object run() throws NoSuchMethodException {
|> +                        return serviceObjectMaker.getMethod(
|> +                              "getServiceObject",
|> +                              new Class[] { AxisService.class });
|> +                     }
|> +                  });
|> +            Object obj = null;
|>              if (method != null) {
|> -                    obj = org.apache.axis2.java.security.
|> AccessController.doPrivileged(
|> -                            new PrivilegedExceptionAction() {
|> -                                public Object run() throws
|> InstantiationException, IllegalAccessException,
| InvocationTargetException {
|> -                                    return method.
|> invoke(serviceObjectMaker.newInstance(),
|> -                                            new Object[]{axisService});
|> -                                }
|> -                            }
|> -                    );
|> -                }
|> +               obj = org.apache.axis2.java.security.AccessController
|> +                     .doPrivileged(new PrivilegedExceptionAction() {
|> +                        public Object run()
|> +                              throws InstantiationException,
|> +                              IllegalAccessException,
|> +                              InvocationTargetException {
|> +                           return method.invoke(serviceObjectMaker
|> +                                 .newInstance(),
|> +                                 new Object[] { axisService });
|> +                        }
|> +                     });
|> +            }
|>              if (obj == null) {
|> -               log.warn("ServiceObjectSupplier implmentation Object
|> could not be found");
|> +               log
|> +                     .warn("ServiceObjectSupplier implmentation
|> Object could not be found");
|>                 throw new DeploymentException(
|>                       "ServiceClass or ServiceObjectSupplier
|> implmentation Object could not be found");
|>              }
|> @@ -563,32 +574,35 @@
|>           }
|>        }
|>     }
|> -
|> -   public static AxisOperation getAxisOperationForJmethod(JMethod
|> jmethod) throws AxisFault {
|> -        AxisOperation operation;
|> -        if (jmethod.getReturnType().isVoidType()) {
|> -            if (jmethod.getExceptionTypes().length > 0) {
|> -                operation = AxisOperationFactory.getAxisOperation(
|> -                        WSDLConstants.MEP_CONSTANT_ROBUST_IN_ONLY);
|> -            } else {
|> -                operation = AxisOperationFactory.getAxisOperation(
|> -                        WSDLConstants.MEP_CONSTANT_IN_ONLY);
|> -            }
|> -        } else {
|> -            operation = AxisOperationFactory.getAxisOperation(
|> -                    WSDLConstants.MEP_CONSTANT_IN_OUT);
|> -        }
|> -        String opName = getSimpleName(jmethod);
|> -        operation.setName(new QName(opName));
|> -        JAnnotation methodAnnon = jmethod.
|> getAnnotation(AnnotationConstants.WEB_METHOD);
|> -        if (methodAnnon != null) {
|> -            String action = methodAnnon.
|> getValue(AnnotationConstants.ACTION).asString();
|> -            if (action != null && !"".equals(action)) {
|> -                operation.setSoapAction(action);
|> -            }
|> -        }
|> -        return operation;
|> -    }
|> +
|> +   public static AxisOperation getAxisOperationForJmethod(JMethod
| jmethod)
|> +         throws AxisFault {
|> +      AxisOperation operation;
|> +      if (jmethod.getReturnType().isVoidType()) {
|> +         if (jmethod.getExceptionTypes().length > 0) {
|> +            operation = AxisOperationFactory
|> +                  .getAxisOperation(WSDLConstants.
|> MEP_CONSTANT_ROBUST_IN_ONLY);
|> +         } else {
|> +            operation = AxisOperationFactory
|> + .getAxisOperation(WSDLConstants.MEP_CONSTANT_IN_ONLY);
|> +         }
|> +      } else {
|> +         operation = AxisOperationFactory
|> +               .getAxisOperation(WSDLConstants.MEP_CONSTANT_IN_OUT);
|> +      }
|> +      String opName = getSimpleName(jmethod);
|> +      operation.setName(new QName(opName));
|> +      JAnnotation methodAnnon = jmethod
|> +            .getAnnotation(AnnotationConstants.WEB_METHOD);
|> +      if (methodAnnon != null) {
|> +         String action =
| methodAnnon.getValue(AnnotationConstants.ACTION)
|> +               .asString();
|> +         if (action != null && !"".equals(action)) {
|> +            operation.setSoapAction(action);
|> +         }
|> +      }
|> +      return operation;
|> +   }
|>
|>     public static String getSimpleName(JMethod method) {
|>        JAnnotation methodAnnon = method
|> @@ -634,25 +648,24 @@
|>           PhasesInfo phasesInfo = axisConfig.getPhasesInfo();
|>           final ClassLoader moduleClassLoader =
| module.getModuleClassLoader();
|>           ArrayList services = new ArrayList();
|> -         final InputStream in = (InputStream) org.apache.axis2.
|> java.security.AccessController.doPrivileged(
|> -                    new PrivilegedAction() {
|> -                        public Object run() {
|> -                            return moduleClassLoader.
|> getResourceAsStream("aars/aars.list");
|> -                        }
|> -                    }
|> -            );
|> +         final InputStream in = (InputStream) org.apache.axis2.
|> java.security.AccessController
|> +               .doPrivileged(new PrivilegedAction() {
|> +                  public Object run() {
|> +                     return moduleClassLoader
|> +                           .getResourceAsStream("aars/aars.list");
|> +                  }
|> +               });
|>           if (in != null) {
|>              BufferedReader input;
|>              try {
|> -                    input = new BufferedReader((InputStreamReader)
|> org.apache.axis2.java.security.AccessController.doPrivileged(
|> -                                    new PrivilegedAction() {
|> -                                        public Object run() {
|> -                                            return new
| InputStreamReader(in);
|> -                                        }
|> -                                    }
|> -                                )
|> -                            );
|> -                    String line;
|> +               input = new BufferedReader(
|> +                     (InputStreamReader) org.apache.axis2.java.
|> security.AccessController
|> +                           .doPrivileged(new PrivilegedAction() {
|> +                              public Object run() {
|> +                                 return new InputStreamReader(in);
|> +                              }
|> +                           }));
|> +               String line;
|>                 while ((line = input.readLine()) != null) {
|>                    line = line.trim();
|>                    if (line.length() > 0 && line.charAt(0) != '#') {
|> @@ -670,15 +683,15 @@
|>                 if (servicename == null || "".equals(servicename)) {
|>                    continue;
|>                 }
|> -                    InputStream fin = (InputStream) org.apache.
|> axis2.java.security.AccessController.doPrivileged(
|> -                            new PrivilegedAction() {
|> -                                public Object run() {
|> -                                    return moduleClassLoader
|> -                                            .
|> getResourceAsStream("aars/" + servicename);
|> -                                }
|> -                            }
|> -                    );
|> -                    if (fin == null) {
|> +               InputStream fin = (InputStream) org.apache.axis2.
|> java.security.AccessController
|> +                     .doPrivileged(new PrivilegedAction() {
|> +                        public Object run() {
|> +                           return moduleClassLoader
|> +                                 .getResourceAsStream("aars/"
|> +                                       + servicename);
|> +                        }
|> +                     });
|> +               if (fin == null) {
|>                    throw new AxisFault("No service archive found : "
|>                          + servicename);
|>                 }
|> @@ -735,56 +748,57 @@
|>           throw AxisFault.makeFault(e);
|>        }
|>     }
|> -
|> +
|>     /**
|> -     * Normalize a uri containing ../ and ./ paths.
|> -     *
|> -     * @param uri The uri path to normalize
|> -     * @return The normalized uri
|> -     */
|> -    public static String normalize(String uri) {
|> -        if ("".equals(uri)) {
|> -            return uri;
|> -        }
|> -        int leadingSlashes = 0;
|> -        for (leadingSlashes = 0; leadingSlashes < uri.length()
|> -                && uri.charAt(leadingSlashes) == '/'; ++leadingSlashes)
| {
|> -            //FIXME: this block is empty!!
|> -        }
|> -        boolean isDir = (uri.charAt(uri.length() - 1) == '/');
|> -        StringTokenizer st = new StringTokenizer(uri, "/");
|> -        LinkedList clean = new LinkedList();
|> -        while (st.hasMoreTokens()) {
|> -            String token = st.nextToken();
|> -            if ("..".equals(token)) {
|> -                if (!clean.isEmpty() && !"..".equals(clean.getLast()))
| {
|> -                    clean.removeLast();
|> -                    if (!st.hasMoreTokens()) {
|> -                        isDir = true;
|> -                    }
|> -                } else {
|> -                    clean.add("..");
|> -                }
|> -            } else if (!".".equals(token) && !"".equals(token)) {
|> -                clean.add(token);
|> -            }
|> -        }
|> -        StringBuffer sb = new StringBuffer();
|> -        while (leadingSlashes-- > 0) {
|> -            sb.append('/');
|> -        }
|> -        for (Iterator it = clean.iterator(); it.hasNext();) {
|> -            sb.append(it.next());
|> -            if (it.hasNext()) {
|> -                sb.append('/');
|> -            }
|> -        }
|> -        if (isDir && sb.length() > 0 && sb.charAt(sb.length() - 1) !=
| '/') {
|> -            sb.append('/');
|> -        }
|> -        return sb.toString();
|> -    }
|> -
|> +    * Normalize a uri containing ../ and ./ paths.
|> +    *
|> +    * @param uri
|> +    *            The uri path to normalize
|> +    * @return The normalized uri
|> +    */
|> +   public static String normalize(String uri) {
|> +      if ("".equals(uri)) {
|> +         return uri;
|> +      }
|> +      int leadingSlashes = 0;
|> +      for (leadingSlashes = 0; leadingSlashes < uri.length()
|> +            && uri.charAt(leadingSlashes) == '/'; ++leadingSlashes) {
|> +         // FIXME: this block is empty!!
|> +      }
|> +      boolean isDir = (uri.charAt(uri.length() - 1) == '/');
|> +      StringTokenizer st = new StringTokenizer(uri, "/");
|> +      LinkedList clean = new LinkedList();
|> +      while (st.hasMoreTokens()) {
|> +         String token = st.nextToken();
|> +         if ("..".equals(token)) {
|> +            if (!clean.isEmpty() && !"..".equals(clean.getLast())) {
|> +               clean.removeLast();
|> +               if (!st.hasMoreTokens()) {
|> +                  isDir = true;
|> +               }
|> +            } else {
|> +               clean.add("..");
|> +            }
|> +         } else if (!".".equals(token) && !"".equals(token)) {
|> +            clean.add(token);
|> +         }
|> +      }
|> +      StringBuffer sb = new StringBuffer();
|> +      while (leadingSlashes-- > 0) {
|> +         sb.append('/');
|> +      }
|> +      for (Iterator it = clean.iterator(); it.hasNext();) {
|> +         sb.append(it.next());
|> +         if (it.hasNext()) {
|> +            sb.append('/');
|> +         }
|> +      }
|> +      if (isDir && sb.length() > 0 && sb.charAt(sb.length() - 1) !=
| '/') {
|> +         sb.append('/');
|> +      }
|> +      return sb.toString();
|> +   }
|> +
|>     public static String getPath(String parent, String childPath) {
|>        Stack parentStack = new Stack();
|>        Stack childStack = new Stack();
|> @@ -825,62 +839,62 @@
|>        }
|>        return filepath;
|>     }
|> -
|> +
|>     /**
|> -     * Searches for jar files inside /lib dirctory. If there are any,
| the
|> -     * names of those jar files will be added to the array list
|> -     */
|> -    public static List findLibJars(URL url) {
|> -        ArrayList embedded_jars = new ArrayList();
|> -        try {
|> -            ZipInputStream zin = new ZipInputStream(url.openStream());
|> -            ZipEntry entry;
|> -            String entryName = "";
|> -            while ((entry = zin.getNextEntry()) != null) {
|> -                entryName = entry.getName();
|> -                /**
|> -                 * if the entry name start with /lib and ends with .jar
|> -                 * add it to the the arraylist
|> -                 */
|> -                if (entryName != null && (entryName.startsWith("lib/")
| ||
|> -                        entryName.startsWith("Lib/")) &&
|> -                        entryName.endsWith(".jar")) {
|> -                    embedded_jars.add(entryName);
|> -                }
|> -            }
|> -            zin.close();
|> -        } catch (Exception e) {
|> -            throw new RuntimeException(e);
|> -        }
|> -        return embedded_jars;
|> -    }
|> -
|> -    /**
|> -     * To add the exclude method when generating schemas , here the
|> exclude methods
|> -     * will be session releated axis2 methods
|> -     */
|> -    public static void addExcludeMethods(ArrayList excludeList) {
|> -        excludeList.add("init");
|> -        excludeList.add("setOperationContext");
|> -        excludeList.add("startUp");
|> -        excludeList.add("destroy");
|> -        excludeList.add("shutDown");
|> -    }
|> +    * Searches for jar files inside /lib dirctory. If there are
|> any, the names
|> +    * of those jar files will be added to the array list
|> +    */
|> +   public static List findLibJars(URL url) {
|> +      ArrayList embedded_jars = new ArrayList();
|> +      try {
|> +         ZipInputStream zin = new ZipInputStream(url.openStream());
|> +         ZipEntry entry;
|> +         String entryName = "";
|> +         while ((entry = zin.getNextEntry()) != null) {
|> +            entryName = entry.getName();
|> +            /**
|> +             * if the entry name start with /lib and ends with .jar add
| it
|> +             * to the the arraylist
|> +             */
|> +            if (entryName != null
|> +                  && (entryName.startsWith("lib/") || entryName
|> +                        .startsWith("Lib/"))
|> +                  && entryName.endsWith(".jar")) {
|> +               embedded_jars.add(entryName);
|> +            }
|> +         }
|> +         zin.close();
|> +      } catch (Exception e) {
|> +         throw new RuntimeException(e);
|> +      }
|> +      return embedded_jars;
|> +   }
|>
|> -    public static DeploymentClassLoader createClassLoader(File
|> serviceFile) throws MalformedURLException {
|> -        ClassLoader contextClassLoader = (ClassLoader) org.apache.
|> axis2.java.security.AccessController.doPrivileged(
|> -                new PrivilegedAction() {
|> -                    public Object run() {
|> -                        return Thread.currentThread().
|> getContextClassLoader();
|> -                    }
|> -                }
|> -        );
|> -        return createDeploymentClassLoader(new
| URL[]{serviceFile.toURL()},
|> -                contextClassLoader,
|> -                new ArrayList());
|> -    }
|> +   /**
|> +    * To add the exclude method when generating schemas , here the
| exclude
|> +    * methods will be session releated axis2 methods
|> +    */
|> +   public static void addExcludeMethods(ArrayList excludeList) {
|> +      excludeList.add("init");
|> +      excludeList.add("setOperationContext");
|> +      excludeList.add("startUp");
|> +      excludeList.add("destroy");
|> +      excludeList.add("shutDown");
|> +   }
|>
|> -    public static ClassLoader createClassLoader(ArrayList urls,
|> +   public static DeploymentClassLoader createClassLoader(File
| serviceFile)
|> +         throws MalformedURLException {
|> +      ClassLoader contextClassLoader = (ClassLoader) org.apache.
|> axis2.java.security.AccessController
|> +            .doPrivileged(new PrivilegedAction() {
|> +               public Object run() {
|> +                  return
| Thread.currentThread().getContextClassLoader();
|> +               }
|> +            });
|> +      return createDeploymentClassLoader(new URL[] {
| serviceFile.toURL() },
|> +            contextClassLoader, new ArrayList());
|> +   }
|> +
|> +   public static ClassLoader createClassLoader(ArrayList urls,
|>           ClassLoader serviceClassLoader, boolean extractJars, File
| tmpDir) {
|>        URL url = (URL) urls.get(0);
|>        if (extractJars) {
|> @@ -889,8 +903,9 @@
|>              urls.remove(0);
|>              urls.addAll(0, Arrays.asList(urls1));
|>              URL[] urls2 = (URL[]) urls.toArray(new URL[urls.size()]);
|> -                return createDeploymentClassLoader(urls2,
|> serviceClassLoader, null);
|> -            } catch (Exception e) {
|> +            return createDeploymentClassLoader(urls2,
| serviceClassLoader,
|> +                  null);
|> +         } catch (Exception e) {
|>              log
|>                    .warn("Exception extracting jars into temporary
|> directory : "
|>                          + e.getMessage()
|> @@ -900,39 +915,48 @@
|>        }
|>        List embedded_jars = Utils.findLibJars(url);
|>        URL[] urls2 = (URL[]) urls.toArray(new URL[urls.size()]);
|> -        return createDeploymentClassLoader(urls2,
|> serviceClassLoader, embedded_jars);
|> -    }
|> +      return createDeploymentClassLoader(urls2, serviceClassLoader,
|> +            embedded_jars);
|> +   }
|>
|>     public static File toFile(URL url) throws
| UnsupportedEncodingException {
|> -       String path = URLDecoder.decode(url.getPath(), defaultEncoding);
|> -       File file =
|> -               new File(path.replace('/', File.separatorChar).
|> replace('|', ':'));
|> -       return file;
|> -   }
|> -
|> -    public static ClassLoader createClassLoader(URL[] urls,
|> ClassLoader serviceClassLoader,
|> -                                                boolean
|> extractJars, File tmpDir) {
|> -        if (extractJars) {
|> -            try {
|> -                URL[] urls1 = Utils.getURLsForAllJars(urls[0], tmpDir);
|> -                return createDeploymentClassLoader(urls1,
|> serviceClassLoader, null);
|> -            } catch (Exception e){
|> -                log.warn("Exception extracting jars into temporary
|> directory : " + e.getMessage() + " : switching to alternate class
|> loading mechanism");
|> -                log.debug(e.getMessage(), e);
|> -            }
|> -        }
|> -        List embedded_jars = Utils.findLibJars(urls[0]);
|> -        return createDeploymentClassLoader(urls,
|> serviceClassLoader, embedded_jars);
|> -    }
|> -
|> -
|> -    private static DeploymentClassLoader
|> createDeploymentClassLoader(final URL[] urls, final ClassLoader
|> serviceClassLoader, final List embeddedJars) {
|> -        return (DeploymentClassLoader) AccessController.
|> doPrivileged(new PrivilegedAction() {
|> -            public Object run() {
|> -                return new DeploymentClassLoader(urls,
|> embeddedJars, serviceClassLoader);
|> -            }
|> -        });
|> -    }
|> +      String path = URLDecoder.decode(url.getPath(), defaultEncoding);
|> +      File file = new File(path.replace('/',
| File.separatorChar).replace('|',
|> +            ':'));
|> +      return file;
|> +   }
|> +
|> +   public static ClassLoader createClassLoader(URL[] urls,
|> +         ClassLoader serviceClassLoader, boolean extractJars, File
| tmpDir) {
|> +      if (extractJars) {
|> +         try {
|> +            URL[] urls1 = Utils.getURLsForAllJars(urls[0], tmpDir);
|> +            return createDeploymentClassLoader(urls1,
| serviceClassLoader,
|> +                  null);
|> +         } catch (Exception e) {
|> +            log
|> +                  .warn("Exception extracting jars into temporary
|> directory : "
|> +                        + e.getMessage()
|> +                        + " : switching to alternate class loading
|> mechanism");
|> +            log.debug(e.getMessage(), e);
|> +         }
|> +      }
|> +      List embedded_jars = Utils.findLibJars(urls[0]);
|> +      return createDeploymentClassLoader(urls, serviceClassLoader,
|> +            embedded_jars);
|> +   }
|> +
|> +   private static DeploymentClassLoader createDeploymentClassLoader(
|> +         final URL[] urls, final ClassLoader serviceClassLoader,
|> +         final List embeddedJars) {
|> +      return (DeploymentClassLoader) AccessController
|> +            .doPrivileged(new PrivilegedAction() {
|> +               public Object run() {
|> +                  return new DeploymentClassLoader(urls, embeddedJars,
|> +                        serviceClassLoader);
|> +               }
|> +            });
|> +   }
|>
|>     /**
|>      * This method is to process bean exclude parameter and the XML
| format of
|> @@ -1026,18 +1050,90 @@
|>                 .getAxisConfiguration();
|>           if (axisConfiguration != null) {
|>              ArrayList transports = new ArrayList();
|> -            for (Iterator iterator = axisConfiguration.
|> getTransportsIn().values().iterator(); iterator.hasNext(); ){
|> -               TransportInDescription transportInDescription =
|> (TransportInDescription) iterator.next();
|> +            for (Iterator iterator =
| axisConfiguration.getTransportsIn()
|> +                  .values().iterator(); iterator.hasNext();) {
|> +               TransportInDescription transportInDescription =
|> (TransportInDescription) iterator
|> +                     .next();
|>                 transports.add(transportInDescription.getName());
|>              }
|> -            transportInValues = transports.iterator();
|> +            transportInValues = transports.iterator();
|>           }
|>        } else {
|>           transportInValues =
| axisService.getExposedTransports().iterator();
|>        }
|>
|>        if (transportInValues != null) {
|> -         for (; transportInValues.hasNext();) {
|> +         for (; transportInValues.hasNext();) {
|> +            String transportName = (String) transportInValues.next();
|> +            String protocol = transportName.substring(0,
| 1).toUpperCase()
|> +                  + transportName.substring(1, transportName.length())
|> +                        .toLowerCase();
|> +            /*
|> +             * populates soap11 endpoint
|> +             */
|> +            String soap11EndpointName = serviceName + protocol
|> +                  + "Soap11Endpoint";
|> +
|> +            AxisEndpoint httpSoap11Endpoint = new AxisEndpoint();
|> +            httpSoap11Endpoint.setName(soap11EndpointName);
|> +            httpSoap11Endpoint.setParent(axisService);
|> + httpSoap11Endpoint.setTransportInDescription(transportName);
|> +            populateSoap11Endpoint(axisService, httpSoap11Endpoint);
|> +            axisService.addEndpoint(httpSoap11Endpoint.getName(),
|> +                  httpSoap11Endpoint);
|> +            // setting soap11 endpoint as the default endpoint
|> +            axisService.setEndpointName(soap11EndpointName);
|> +
|> +            /*
|> +             * generating Soap12 endpoint
|> +             */
|> +            String soap12EndpointName = serviceName + protocol
|> +                  + "Soap12Endpoint";
|> +            AxisEndpoint httpSoap12Endpoint = new AxisEndpoint();
|> +            httpSoap12Endpoint.setName(soap12EndpointName);
|> +            httpSoap12Endpoint.setParent(axisService);
|> + httpSoap12Endpoint.setTransportInDescription(transportName);
|> +            populateSoap12Endpoint(axisService, httpSoap12Endpoint);
|> +            axisService.addEndpoint(httpSoap12Endpoint.getName(),
|> +                  httpSoap12Endpoint);
|> +
|> +            /*
|> +             * generating Http endpoint
|> +             */
|> +            if ("http".equals(transportName)) {
|> +               String httpEndpointName = serviceName + protocol
|> +                     + "Endpoint";
|> +               AxisEndpoint httpEndpoint = new AxisEndpoint();
|> +               httpEndpoint.setName(httpEndpointName);
|> +               httpEndpoint.setParent(axisService);
|> +               httpEndpoint.setTransportInDescription(transportName);
|> +               populateHttpEndpoint(axisService, httpEndpoint);
|> +               axisService.addEndpoint(httpEndpoint.getName(),
|> +                     httpEndpoint);
|> +            }
|> +         }
|> +      }
|> +   }
|> +
|> +   public static void addEndpointsToService(AxisService axisService,
|> +         AxisConfiguration axisConfiguration) throws AxisFault {
|> +
|> +      String serviceName = axisService.getName();
|> +      Iterator transportInValues = null;
|> +
|> +      if (axisConfiguration != null) {
|> +         ArrayList transports = new ArrayList();
|> +         for (Iterator iterator = axisConfiguration.getTransportsIn()
|> +               .values().iterator(); iterator.hasNext();) {
|> +            TransportInDescription transportInDescription =
|> (TransportInDescription) iterator
|> +                  .next();
|> +            transports.add(transportInDescription.getName());
|> +         }
|> +         transportInValues = transports.iterator();
|> +      }
|> +
|> +      if (transportInValues != null) {
|> +         for (; transportInValues.hasNext();) {
|>              String transportName = (String) transportInValues.next();
|>              String protocol = transportName.substring(0,
| 1).toUpperCase()
|>                    + transportName.substring(1, transportName.length())
|> @@ -1102,6 +1198,7 @@
|>        httpSoap11Endpoint.setName(soap11EndpointName);
|>        httpSoap11Endpoint.setParent(axisService);
|>        httpSoap11Endpoint.setEndpointURL(url.toString());
|> +      httpSoap11Endpoint.setTransportInDescription(url.getProtocol());
|>
|>        populateSoap11Endpoint(axisService, httpSoap11Endpoint);
|>        axisService.addEndpoint(httpSoap11Endpoint.getName(),
|> @@ -1123,6 +1220,7 @@
|>        httpSoap12Endpoint.setName(soap12EndpointName);
|>        httpSoap12Endpoint.setParent(axisService);
|>        httpSoap12Endpoint.setEndpointURL(url.toString());
|> +      httpSoap12Endpoint.setTransportInDescription(url.getProtocol());
|>
|>        populateSoap12Endpoint(axisService, httpSoap12Endpoint);
|>        axisService.addEndpoint(httpSoap12Endpoint.getName(),
|> @@ -1140,10 +1238,74 @@
|>        httpEndpoint.setName(httpEndpointName);
|>        httpEndpoint.setParent(axisService);
|>        httpEndpoint.setEndpointURL(url.toString());
|> +      httpEndpoint.setTransportInDescription(url.getProtocol());
|>        populateHttpEndpoint(axisService, httpEndpoint);
|>        axisService.addEndpoint(httpEndpoint.getName(), httpEndpoint);
|>     }
|>
|> +   public static void processPolicyAttachments(Iterator
| attachmentElements,
|> +         AxisService service) throws XMLStreamException,
|> +         FactoryConfigurationError {
|> +      OMElement attachmentElement;
|> +      HashMap attachmentsMap = new HashMap();
|> +
|> +      for (; attachmentElements.hasNext();) {
|> +         attachmentElement = (OMElement) attachmentElements.next();
|> +         OMElement appliesToElem = attachmentElement
|> +               .getFirstChildWithName(new QName(
|> +                     DeploymentConstants.POLICY_NS_URI,
|> +                     DeploymentConstants.TAG_APPLIES_TO));
|> +         ArrayList policyComponents = new ArrayList();
|> +
|> +         // process <wsp:Policy> elements ..
|> +         for (Iterator policyElements = attachmentElement
|> +               .getChildrenWithName(new QName(
|> +                     DeploymentConstants.POLICY_NS_URI,
|> +                     DeploymentConstants.TAG_POLICY)); policyElements
|> +               .hasNext();) {
|> +            PolicyComponent policy = PolicyUtil
|> +                  .getPolicyFromOMElement((OMElement) policyElements
|> +                        .next());
|> +            policyComponents.add(policy);
|> +         }
|> +
|> +         // process <wsp:PolicyReference> elements ..
|> +         for (Iterator policyRefElements = attachmentElement
|> +               .getChildrenWithName(new QName(
|> +                     DeploymentConstants.POLICY_NS_URI,
|> +                     DeploymentConstants.TAG_POLICY_REF));
| policyRefElements
|> +               .hasNext();) {
|> +            PolicyComponent policyRef = PolicyUtil
|> +                  .getPolicyReferenceFromOMElement((OMElement)
|> policyRefElements
|> +                        .next());
|> +            policyComponents.add(policyRef);
|> +         }
|> +
|> +         for (Iterator policySubjects = appliesToElem
|> +               .getChildrenWithName(new QName("policy-subject"));
|> policySubjects
|> +               .hasNext();) {
|> +            OMElement policySubject = (OMElement)
| policySubjects.next();
|> +            String identifier = policySubject.getAttributeValue(new
| QName(
|> +                  "identifier"));
|> +
|> +            ArrayList values = (ArrayList)
| attachmentsMap.get(identifier);
|> +            if (values == null) {
|> +               values = new ArrayList();
|> +               attachmentsMap.put(identifier, values);
|> +            }
|> +            values.addAll(policyComponents);
|> +         }
|> +      }
|> +
|> +      for (Iterator keys = attachmentsMap.keySet().iterator();
|> keys.hasNext();) {
|> +         String identifier = (String) keys.next();
|> +         if (identifier.startsWith("binding:soap")) {
|> +            processSoapAttachments(identifier, (List) attachmentsMap
|> +                  .get(identifier), service);
|> +         }
|> +      }
|> +   }
|> +
|>     private static void populateSoap11Endpoint(AxisService axisService,
|>           AxisEndpoint axisEndpoint) {
|>        String endpointName = axisEndpoint.getName();
|> @@ -1307,5 +1469,66 @@
|>
|>        axisBindingOperation.setAxisOperation(axisOperation);
|>        axisBindingOperation.setParent(axisBinding);
|> +   }
|> +
|> +   private static void processSoapAttachments(String identifier,
|> +         List policyComponents, AxisService service) {
|> +      Map map = service.getEndpoints();
|> +      String soapVersion = (identifier.indexOf("soap12") > -1) ?
|> SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI
|> +            : SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI;
|> +
|> +      for (Iterator iterator = map.values().iterator(); iterator.
|> hasNext();) {
|> +         AxisEndpoint axisEndpoint = (AxisEndpoint) iterator.next();
|> +         AxisBinding axisBinding = axisEndpoint.getBinding();
|> +         String wsoap = (String) axisBinding
|> +               .getProperty(WSDL2Constants.ATTR_WSOAP_VERSION);
|> +         if (soapVersion.equals(wsoap)) {
|> +            String[] identifiers = identifier.split("/");
|> +            int key = identifiers.length;
|> +            if (key == 1) {
|> +               axisBinding.getPolicySubject().attachPolicyComponents(
|> +                     policyComponents);
|> +            } else if (key == 2 || key == 3) {
|> +               String opName = identifiers[1];
|> +               opName = opName.substring(opName.indexOf(":") + 1,
| opName
|> +                     .length());
|> +               AxisBindingOperation bindingOperation = null;
|> +               boolean found = false;
|> +               for (Iterator i = axisBinding.getChildren();
| i.hasNext();) {
|> +                  bindingOperation = (AxisBindingOperation) i.next();
|> +                  if (opName.equals(bindingOperation.getName()
|> +                        .getLocalPart())) {
|> +                     found = true;
|> +                     break;
|> +                  }
|> +               }
|> +               if (!found) {
|> +                  throw new IllegalArgumentException(
|> +                        "Invalid binding operation " + opName);
|> +               }
|> +
|> +               if (key == 2) {
|> +                  bindingOperation.getPolicySubject()
|> +                        .attachPolicyComponents(policyComponents);
|> +               } else {
|> +                  if ("in".equals(identifiers[2])) {
|> +                     AxisBindingMessage bindingInMessage =
|> (AxisBindingMessage) bindingOperation
|> + .getChild(WSDLConstants.MESSAGE_LABEL_IN_VALUE);
|> +                     bindingInMessage.getPolicySubject()
|> +                           .attachPolicyComponents(policyComponents);
|> +
|> +                  } else if ("out".equals(identifiers[2])) {
|> +                     AxisBindingMessage bindingOutMessage =
|> (AxisBindingMessage) bindingOperation
|> + .getChild(WSDLConstants.MESSAGE_LABEL_OUT_VALUE);
|> +                     bindingOutMessage.getPolicySubject()
|> +                           .attachPolicyComponents(policyComponents);
|> +                  } else {
|> +                     // FIXME faults
|> +                  }
|> +               }
|> +            }
|> +            break;
|> +         }
|> +      }
|>     }
|>  }
|>
|> Modified:
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisBindingOperation.
|> java
|> URL: http://svn.apache.
|>
| org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisBindingOperation.
|> java?rev=642522&r1=642521&r2=642522&view=diff
|>
| ==============================================================================
|> ---
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisBindingOperation.
|> java (original)
|> +++
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisBindingOperation.
|> java Sat Mar 29 02:25:45 2008
|> @@ -103,7 +103,7 @@
|>     }
|>
|>     public Object getKey() {
|> -      return null;
|> +      return name;
|>     }
|>
|>     public void engageModule(AxisModule axisModule) throws AxisFault {
|>
|> Modified:
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisDescription.
|> java
|> URL: http://svn.apache.
|>
| org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisDescription.
|> java?rev=642522&r1=642521&r2=642522&view=diff
|>
| ==============================================================================
|> ---
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisDescription.
|> java (original)
|> +++
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisDescription.
|> java Sat Mar 29 02:25:45 2008
|> @@ -230,7 +230,7 @@
|>      // NOTE - These are NOT typesafe!
|>      public void addChild(AxisDescription child) {
|>          if (child.getKey() == null) {
|> -        // FIXME: Several classes that extend AxisDescription pass
|> null in their getKey method.
|> +
|>  //            throw new IllegalArgumentException("Please specify a
|> key in the child");
|>          } else {
|>              children.put(child.getKey(), child);
|>
|> Modified:
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisEndpoint.
|> java
|> URL: http://svn.apache.
|>
| org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisEndpoint.
|> java?rev=642522&r1=642521&r2=642522&view=diff
|>
| ==============================================================================
|> ---
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisEndpoint.
|> java (original)
|> +++
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisEndpoint.
|> java Sat Mar 29 02:25:45 2008
|> @@ -181,8 +181,11 @@
|>                       .getTransportIn(transportInDescName);
|>                 TransportListener listener = in.getReceiver();
|>                 String ip = HttpUtils.getIpAddress(axisConfiguration);
|> +               // we should pass [serviceName].[endpointName] instead
| of
|> +               // [endpointName]
|> +               String sDOTe = serviceName + "." + name;
|>                 EndpointReference[] eprsForService = listener
|> -                     .getEPRsForService(serviceName, ip);
|> +                     .getEPRsForService(sDOTe, ip);
|>                 // we consider only the first address return by the
| listener
|>                 if (eprsForService != null && eprsForService.length > 0)
| {
|>                    return eprsForService[0].getAddress();
|> @@ -190,11 +193,28 @@
|>              } catch (SocketException e) {
|>                 logger.warn("", e);
|>              } catch (AxisFault e) {
|> -               logger.warn("", e);
|> +               logger.warn(e.getMessage());
|>              }
|>           }
|>        }
|> -
|> +
|>        return null;
|> +   }
|> +
|> +   public boolean isActive() {
|> +      if (transportInDescName != null && parent != null) {
|> +         AxisConfiguration axisConfiguration = getAxisConfiguration();
|> +         if (axisConfiguration != null) {
|> +            AxisService service = (AxisService) parent;
|> +            if (service.isEnableAllTransports()) {
|> +               return axisConfiguration.getTransportsIn().containsKey(
|> +                     transportInDescName);
|> +            } else {
|> +               return service.getExposedTransports().contains(
|> +                     transportInDescName);
|> +            }
|> +         }
|> +      }
|> +      return false;
|>     }
|>  }
|>
|> Modified:
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisMessage.
|> java
|> URL: http://svn.apache.
|>
| org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisMessage.
|> java?rev=642522&r1=642521&r2=642522&view=diff
|>
| ==============================================================================
|> ---
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisMessage.
|> java (original)
|> +++
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisMessage.
|> java Sat Mar 29 02:25:45 2008
|> @@ -21,8 +21,11 @@
|>
|>  import org.apache.axis2.AxisFault;
|>  import org.apache.axis2.description.java2wsdl.Java2WSDLConstants;
|> +import org.apache.axis2.engine.AxisConfiguration;
|>  import org.apache.axis2.phaseresolver.PhaseResolver;
|> +import org.apache.axis2.util.PolicyUtil;
|>  import org.apache.axis2.wsdl.SOAPHeaderMessage;
|> +import org.apache.neethi.Policy;
|>  import org.apache.ws.commons.schema.XmlSchema;
|>  import org.apache.ws.commons.schema.XmlSchemaElement;
|>  import org.apache.ws.commons.schema.XmlSchemaImport;
|> @@ -59,6 +62,10 @@
|>
|>      //To chcek whether the message is wrapped or unwrapped
|>      private boolean wrapped = true;
|> +
|> +    private Policy effectivePolicy = null;
|> +
|> +   private boolean policyCalculated = false;
|>
|>      public String getMessagePartName() {
|>        return messagePartName;
|> @@ -231,4 +238,46 @@
|>      public void setWrapped(boolean wrapped) {
|>          this.wrapped = wrapped;
|>      }
|> +
|> +   public Policy getEffectivePolicy() {
|> +      if (effectivePolicy == null && !policyCalculated) {
|> +         effectivePolicy = calculateEffectivePolicy();
|> +         policyCalculated = true;
|> +      }
|> +      return effectivePolicy;
|> +   }
|> +
|> +   public Policy calculateEffectivePolicy() {
|> +      PolicySubject policySubject = null;
|> +      ArrayList policyList = new ArrayList();
|> +
|> +      // AxisBindingMessage
|> +      policySubject = getPolicySubject();
|> +      policyList.addAll(policySubject.getAttachPolicyComponents());
|> +
|> +      // AxisOperation
|> +      AxisOperation axisOperation = getAxisOperation();
|> +      if (axisOperation != null) {
|> +         policyList.addAll(axisOperation.getPolicySubject()
|> +               .getAttachPolicyComponents());
|> +      }
|> +
|> +      // AxisService
|> +      AxisService axisService = (axisOperation == null) ? null
|> +            : axisOperation.getAxisService();
|> +      if (axisService != null) {
|> +         policyList.addAll(axisService.getPolicySubject()
|> +               .getAttachPolicyComponents());
|> +      }
|> +
|> +      // AxisConfiguration
|> +      AxisConfiguration axisConfiguration = (axisService == null) ?
| null
|> +            : axisService.getAxisConfiguration();
|> +      if (axisConfiguration != null) {
|> +         policyList.addAll(axisConfiguration.getPolicySubject()
|> +               .getAttachPolicyComponents());
|> +      }
|> +
|> +      return PolicyUtil.getMergedPolicy(policyList, axisService);
|> +   }
|>  }
|>
|> Modified:
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisModule.
|
|> java
|> URL: http://svn.apache.
|>
| org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisModule.
|> java?rev=642522&r1=642521&r2=642522&view=diff
|>
| ==============================================================================
|> ---
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisModule.
|> java (original)
|> +++
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisModule.
|> java Sat Mar 29 02:25:45 2008
|> @@ -83,6 +83,7 @@
|>      public static final String VERSION_SNAPSHOT = "SNAPSHOT";
|>      public static final String MODULE_SERVICE = "moduleService";
|>
|> +    private PolicySubject policySubject = new PolicySubject();
|>
|>      /**
|>       * Constructor ModuleDescription.
|> @@ -261,6 +262,10 @@
|>              policyInclude = new PolicyInclude();
|>          }
|>          return policyInclude;
|> +    }
|> +
|> +    public PolicySubject getPolicySubject() {
|> +       return policySubject;
|>      }
|>
|>      public String getModuleDescription() {
|>
|> Modified:
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService.
|> java
|> URL: http://svn.apache.
|>
| org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService.
|> java?rev=642522&r1=642521&r2=642522&view=diff
|>
| ==============================================================================
|> ---
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService.
|> java (original)
|> +++
|>
| webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService.
|> java Sat Mar 29 02:25:45 2008
|> @@ -2239,7 +2239,7 @@
|>        String endpointName = axisService.getEndpointName();
|>        if ((endpointName == null || endpointName.length() == 0)
|>              && axisService.getAxisConfiguration() != null) {
|> -         Utils.addEndpointsToService(axisService);
|> +         Utils.addEndpointsToService(axisService, axisService.
|> getAxisConfiguration());
|>        }
|>
|>        return axisService;
|>
|>
|>
|> ---------------------------------------------------------------------
|> To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
|> For additional commands, e-mail: axis-cvs-help@ws.apache.org
|>
|
|
|
|
|
|
| Unless stated otherwise above:
| IBM United Kingdom Limited - Registered in England and Wales with number
| 741598.
| Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
|
|
|
|
|
|
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Cygwin)

iD8DBQFH7ljmgNg6eWEDv1kRAmSgAKD2yFIYPIpj1mY8K/eelER0NPV8xgCgt5wm
RWbK8XvtB4v+bzcR3K6FcPA=
=tB83
-----END PGP SIGNATURE-----

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


Re: svn commit: r642522 [1/2] - in /webservices/axis2/trunk/java/modules: integration/test/org/apache/axis2/deployment/ integration/test/org/tempuri/ java2wsdl/src/org/apache/ws/java2wsdl/ kernel/src/org/apache/axis2/ kernel/src/org/apache/axis2/addressing...

Posted by Brian De Pradine <PR...@uk.ibm.com>.
Hi Sanka,

The change that you made to EndpointReferenceHelper does not follow the 
existing model. Metadata from an endpoint reference that complies with the 
Submission spec is not stored in a wsa:Metadata element and so the 
metadata field of the EndpointReference class is not used. Instead the 
metadata gets stored as extensibility elements. If you want to be able to 
treat endpoint references from the Submission and Final specs in the same 
manner, in your code, then you will need to write some helper methods in 
EndpointReferenceHelper to hide the distinction. See the existing methods 
setServiceNameMetadata() and getServiceNameMetadata() for an example.

Cheers

Brian DePradine
Web Services Development
IBM Hursley
External  +44 (0) 1962 816319         Internal 246319

If you can't find the time to do it right the first time, where will you 
find the time to do it again?


sanka@apache.org wrote on 29/03/2008 09:25:47:

> Author: sanka
> Date: Sat Mar 29 02:25:45 2008
> New Revision: 642522
> 
> URL: http://svn.apache.org/viewvc?rev=642522&view=rev
> Log:
> Applied the patch with minor fixes to resolve test failures.
> see:
> https://issues.apache.org/jira/browse/AXIS2-3677
> 
> Modified:
> 
> 
webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/deployment/WSDL11ToAxisServiceBuilderTest.
> java
> 
> 
webservices/axis2/trunk/java/modules/integration/test/org/tempuri/BaseDataTypesTest.
> java
> 
> 
webservices/axis2/trunk/java/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2WSDLBuilder.
> java
> 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/Constants.
> java
> 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/addressing/AddressingConstants.
> java
> 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/addressing/EndpointReferenceHelper.
> java
> 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/MessageContext.
> java
> 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/AxisConfigBuilder.
> java
> 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentConstants.
> java
> 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DescriptionBuilder.
> java
> 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ModuleBuilder.
> java
> 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.
> java
> 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/util/Utils.
> java
> 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisBindingOperation.
> java
> 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisDescription.
> java
> 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisEndpoint.
> java
> 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisMessage.
> java
> 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisModule.
> java
> 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService.
> java
> 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService2WSDL11.
> java
> 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/PolicySubject.
> java
> 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.
> java
> 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/WSDL20ToAxisServiceBuilder.
> java
> 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/AbstractDispatcher.
> java
> 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.
> java
> 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/PolicyUtil.
> java
> 
> 
webservices/axis2/trunk/java/modules/kernel/test/org/apache/axis2/engine/EnginePausingTest.
> java
> 
> Modified: 
> 
webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/deployment/WSDL11ToAxisServiceBuilderTest.
> java
> URL: http://svn.apache.
> 
org/viewvc/webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/deployment/WSDL11ToAxisServiceBuilderTest.
> java?rev=642522&r1=642521&r2=642522&view=diff
> 
==============================================================================
> --- 
> 
webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/deployment/WSDL11ToAxisServiceBuilderTest.
> java (original)
> +++ 
> 
webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/deployment/WSDL11ToAxisServiceBuilderTest.
> java Sat Mar 29 02:25:45 2008
> @@ -19,8 +19,11 @@
> 
>  package org.apache.axis2.deployment;
> 
> +import org.apache.axis2.context.ConfigurationContext;
> +import org.apache.axis2.context.ConfigurationContextFactory;
>  import org.apache.axis2.description.AxisService;
>  import org.apache.axis2.description.WSDL11ToAllAxisServicesBuilder;
> +import org.apache.axis2.engine.AxisConfiguration;
>  import org.custommonkey.xmlunit.XMLTestCase;
>  import org.custommonkey.xmlunit.XMLUnit;
> 
> @@ -44,13 +47,15 @@
>              WSDL11ToAllAxisServicesBuilder builder = new 
> WSDL11ToAllAxisServicesBuilder(
>                      new FileInputStream(testResourceFile));
>              AxisService axisService = builder.populateService();
> +            ConfigurationContext configContext = 
> ConfigurationContextFactory.createDefaultConfigurationContext();
> +            AxisConfiguration axisConfig = configContext.
> getAxisConfiguration();
> +            axisConfig.addService(axisService);
>              ByteArrayOutputStream baos = new ByteArrayOutputStream();
>              axisService.printWSDL(baos);
>              assertXMLEqual(new FileReader(testResourceFile), new 
> StringReader(new String(baos.toByteArray())));
>          } catch (Exception e) {
>              System.out.println("Error in WSDL : " + 
> testResourceFile.getName());
>              System.out.println("Exception: " + e.toString());
> -            e.printStackTrace();
>              fail("Caught exception " + e.toString());
>          } finally {
>              XMLUnit.setIgnoreWhitespace(false);
> 
> Modified: 
> 
webservices/axis2/trunk/java/modules/integration/test/org/tempuri/BaseDataTypesTest.
> java
> URL: http://svn.apache.
> 
org/viewvc/webservices/axis2/trunk/java/modules/integration/test/org/tempuri/BaseDataTypesTest.
> java?rev=642522&r1=642521&r2=642522&view=diff
> 
==============================================================================
> --- 
> 
webservices/axis2/trunk/java/modules/integration/test/org/tempuri/BaseDataTypesTest.
> java (original)
> +++ 
> 
webservices/axis2/trunk/java/modules/integration/test/org/tempuri/BaseDataTypesTest.
> java Sat Mar 29 02:25:45 2008
> @@ -41,7 +41,10 @@
>              ByteArrayOutputStream out = new ByteArrayOutputStream();
>              Java2WSDLBuilder builder = new Java2WSDLBuilder(out, 
> BaseDataTypes.class.getName(), BaseDataTypes.class.getClassLoader());
>              builder.generateWSDL();
> +            out.flush();
> + 
>              FileReader control = new FileReader(wsdlLocation);
> + 
>              StringReader test = new StringReader(new String(out.
> toByteArray()));
>              Diff myDiff = new Diff(XMLUnit.buildDocument(XMLUnit.
> getControlParser(), control), 
>                       XMLUnit.buildDocument(XMLUnit.
> getControlParser(), test), 
> 
> Modified: 
> 
webservices/axis2/trunk/java/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2WSDLBuilder.
> java
> URL: http://svn.apache.
> 
org/viewvc/webservices/axis2/trunk/java/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2WSDLBuilder.
> java?rev=642522&r1=642521&r2=642522&view=diff
> 
==============================================================================
> --- 
> 
webservices/axis2/trunk/java/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2WSDLBuilder.
> java (original)
> +++ 
> 
webservices/axis2/trunk/java/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2WSDLBuilder.
> java Sat Mar 29 02:25:45 2008
> @@ -256,7 +256,6 @@
>                 + (serviceName == null ? Java2WSDLUtils
>                       .getSimpleClassName(className) : serviceName);
>        }
> -      // axisService.setEPRs(new String[]{uri});
>        setServiceEPR(axisService, uri);
>        axisConfig.addService(axisService);
> 
> 
> Modified: 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/Constants.
> java
> URL: http://svn.apache.
> 
org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/Constants.
> java?rev=642522&r1=642521&r2=642522&view=diff
> 
==============================================================================
> --- 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/Constants.
> java (original)
> +++ 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/Constants.
> java Sat Mar 29 02:25:45 2008
> @@ -71,6 +71,9 @@
>      public static final String MESSAGE_SCOPE = "message";
> 
>      public static final String AXIS_BINDING_OPERATION = 
> "AxisBindingOperation";
> + 
> +    public static final String AXIS_BINDING_MESSAGE = 
"AxisBindingMessage";
> +
> 
>      /**
>       * To chenge the conetext path from axis2/service to something else
> 
> Modified: 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/addressing/AddressingConstants.
> java
> URL: http://svn.apache.
> 
org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/addressing/AddressingConstants.
> java?rev=642522&r1=642521&r2=642522&view=diff
> 
==============================================================================
> --- 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/addressing/AddressingConstants.
> java (original)
> +++ 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/addressing/AddressingConstants.
> java Sat Mar 29 02:25:45 2008
> @@ -221,6 +221,9 @@
> "http://schemas.xmlsoap.org/ws/2004/08/addressing/fault";
>          static final String WSA_SERVICE_NAME_ENDPOINT_NAME = 
"PortName";
>          static final String WSA_INTERFACE_NAME = "PortType";
> + 
> +        static final String MEX_NS_URL = "http://schemas.xmlsoap.
> org/ws/2004/09/mex";
> +        static final String MEX_METADATA = "Metadata";
> 
>          // fault information
>          static final String FAULT_INVALID_HEADER = 
> "InvalidMessageInformationHeader";
> 
> Modified: 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/addressing/EndpointReferenceHelper.
> java
> URL: http://svn.apache.
> 
org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/addressing/EndpointReferenceHelper.
> java?rev=642522&r1=642521&r2=642522&view=diff
> 
==============================================================================
> --- 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/addressing/EndpointReferenceHelper.
> java (original)
> +++ 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/addressing/EndpointReferenceHelper.
> java Sat Mar 29 02:25:45 2008
> @@ -340,8 +340,12 @@
>                      OMElement element = (OMElement) iterator.next();
>                      epr.addReferenceParameter(element);
>                  }
> -            } else {
> -                epr.addExtensibleElement(eprChildElement);
> +            }else if (!isFinalAddressingNamespace &&
> +                    map.get(AddressingConstants.Submission.
> MEX_METADATA).equals(qname)) {
> +               epr.addMetaData(eprChildElement);
> + 
> +            }   else {
> +               epr.addExtensibleElement(eprChildElement);
>              }
>          }
> 
> @@ -544,5 +548,7 @@
>          submissionQNames.put(AddressingConstants.Submission.
> EPR_REFERENCE_PROPERTIES, new QName(
>                  AddressingConstants.Submission.WSA_NAMESPACE,
> AddressingConstants.Submission.EPR_REFERENCE_PROPERTIES));
> +        submissionQNames.put(AddressingConstants.Submission.
> MEX_METADATA, new QName(
> +                AddressingConstants.Submission.MEX_NS_URL, 
> AddressingConstants.Submission.MEX_METADATA));
>      }
>  }
> 
> Modified: 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/MessageContext.
> java
> URL: http://svn.apache.
> 
org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/MessageContext.
> java?rev=642522&r1=642521&r2=642522&view=diff
> 
==============================================================================
> --- 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/MessageContext.
> java (original)
> +++ 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/MessageContext.
> java Sat Mar 29 02:25:45 2008
> @@ -26,6 +26,7 @@
>  import org.apache.axiom.soap.SOAP12Constants;
>  import org.apache.axiom.soap.SOAPEnvelope;
>  import org.apache.axis2.AxisFault;
> +import org.apache.axis2.Constants;
>  import org.apache.axis2.Constants.Configuration;
>  import org.apache.axis2.addressing.EndpointReference;
>  import org.apache.axis2.addressing.RelatesTo;
> @@ -36,6 +37,7 @@
>  import org.apache.axis2.context.externalize.SafeObjectInputStream;
>  import org.apache.axis2.context.externalize.SafeObjectOutputStream;
>  import org.apache.axis2.context.externalize.SafeSerializable;
> +import org.apache.axis2.description.AxisBindingMessage;
>  import org.apache.axis2.description.AxisMessage;
>  import org.apache.axis2.description.AxisModule;
>  import org.apache.axis2.description.AxisOperation;
> @@ -1539,16 +1541,19 @@
>          if (LoggingControl.debugLoggingAllowed) {
>              checkActivateWarning("getEffectivePolicy");
>          }
> -        if (axisMessage != null) {
> -            return axisMessage.getPolicyInclude().getEffectivePolicy();
> -        }
> -        if (axisOperation != null) {
> -            return 
axisOperation.getPolicyInclude().getEffectivePolicy();
> -        }
> -        if (axisService != null) {
> -            return axisService.getPolicyInclude().getEffectivePolicy();
> + 
> +        AxisBindingMessage bindingMessage = 
> +           (AxisBindingMessage) 
getProperty(Constants.AXIS_BINDING_MESSAGE);
> + 
> +        if (bindingMessage != null) {
> +           return bindingMessage.getEffectivePolicy();
> +        } else {
> +           if (axisMessage != null) {
> +              return axisMessage.getEffectivePolicy(); 
> +           } else {
> +              return null;
> +           }
>          }
> -        return configurationContext.getAxisConfiguration().
> getPolicyInclude().getEffectivePolicy();
>      }
> 
> 
> 
> Modified: 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/AxisConfigBuilder.
> java
> URL: http://svn.apache.
> 
org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/AxisConfigBuilder.
> java?rev=642522&r1=642521&r2=642522&view=diff
> 
==============================================================================
> --- 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/AxisConfigBuilder.
> java (original)
> +++ 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/AxisConfigBuilder.
> java Sat Mar 29 02:25:45 2008
> @@ -154,8 +154,8 @@
> 
> TAG_POLICY));
> 
>              if (policyElements != null && policyElements.hasNext()) {
> -                processPolicyElements(PolicyInclude.AXIS_POLICY, 
> policyElements,
> -                                      axisConfig.getPolicyInclude());
> +                processPolicyElements(policyElements,
> +                                      axisConfig.getPolicySubject());
>              }
> 
>              // processing <wsp:PolicyReference> .. </..> elements
> @@ -163,8 +163,8 @@
> 
> TAG_POLICY_REF));
> 
>              if (policyRefElements != null && 
policyRefElements.hasNext()) {
> -                processPolicyRefElements(PolicyInclude.AXIS_POLICY,
> policyElements,
> - axisConfig.getPolicyInclude());
> +                processPolicyRefElements(policyElements,
> + axisConfig.getPolicySubject());
>              }
> 
>              //to process default module versions
> 
> Modified: 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentConstants.
> java
> URL: http://svn.apache.
> 
org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentConstants.
> java?rev=642522&r1=642521&r2=642522&view=diff
> 
==============================================================================
> --- 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentConstants.
> java (original)
> +++ 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentConstants.
> java Sat Mar 29 02:25:45 2008
> @@ -158,5 +158,7 @@
>      String POLICY_NS_URI = Constants.URI_POLICY;
>      String TAG_POLICY = "Policy";
>      String TAG_POLICY_REF = "PolicyReference";
> -
> + 
> +    String TAG_POLICY_ATTACHMENT = "PolicyAttachment";
> +    String TAG_APPLIES_TO = "AppliesTo";
>  }
> 
> Modified: 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DescriptionBuilder.
> java
> URL: http://svn.apache.
> 
org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DescriptionBuilder.
> java?rev=642522&r1=642521&r2=642522&view=diff
> 
==============================================================================
> --- 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DescriptionBuilder.
> java (original)
> +++ 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DescriptionBuilder.
> java Sat Mar 29 02:25:45 2008
> @@ -33,6 +33,7 @@
>  import org.apache.axis2.description.ParameterInclude;
>  import org.apache.axis2.description.PhaseRule;
>  import org.apache.axis2.description.PolicyInclude;
> +import org.apache.axis2.description.PolicySubject;
>  import org.apache.axis2.description.WSDL2Constants;
>  import org.apache.axis2.engine.AxisConfiguration;
>  import org.apache.axis2.engine.MessageReceiver;
> @@ -631,23 +632,21 @@
>          }
>      }
> 
> -    protected void processPolicyElements(int type, Iterator 
policyElements,
> -                                         PolicyInclude policyInclude) {
> +    protected void processPolicyElements(Iterator policyElements,
> +                                         PolicySubject policySubject) {
>          while (policyElements.hasNext()) {
>              Policy p = PolicyEngine
>                      .getPolicy((OMElement) policyElements.next());
> -            policyInclude.addPolicyElement(type, p);
> +            policySubject.attachPolicy(p);
>          }
>      }
> 
> -    protected void processPolicyRefElements(int type,
> -                                            Iterator policyRefElements,
> -                                            PolicyInclude 
policyInclude) {
> -
> +    protected void processPolicyRefElements(Iterator policyRefElements,
> +                                            PolicySubject 
policySubject) {
>          while (policyRefElements.hasNext()) {
>              PolicyReference policyReference = PolicyEngine
>                      .getPolicyReference((OMElement) 
> policyRefElements.next());
> -            policyInclude.addPolicyRefElement(type, policyReference);
> +            policySubject.attachPolicyReference(policyReference);
>          }
>      }
> 
> 
> Modified: 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ModuleBuilder.
> java
> URL: http://svn.apache.
> 
org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ModuleBuilder.
> java?rev=642522&r1=642521&r2=642522&view=diff
> 
==============================================================================
> --- 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ModuleBuilder.
> java (original)
> +++ 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ModuleBuilder.
> java Sat Mar 29 02:25:45 2008
> @@ -147,8 +147,7 @@
>                      moduleElement.getChildrenWithName(new 
> QName(POLICY_NS_URI, TAG_POLICY));
> 
>              if (policyElements != null && policyElements.hasNext()) {
> -                processPolicyElements(PolicyInclude.
> AXIS_MODULE_POLICY, policyElements,
> -                                      module.getPolicyInclude());
> +                processPolicyElements(policyElements, module.
> getPolicySubject());
>              }
> 
>              // processing <wsp:PolicyReference> .. </..> elements
> @@ -156,8 +155,7 @@
>                      moduleElement.getChildrenWithName(new 
> QName(POLICY_NS_URI, TAG_POLICY_REF));
> 
>              if (policyRefElements != null && policyElements.hasNext()) 
{
> -                processPolicyRefElements(PolicyInclude.
> AXIS_MODULE_POLICY, policyRefElements,
> -                                         module.getPolicyInclude());
> +                processPolicyRefElements(policyRefElements, module.
> getPolicySubject());
>              }
> 
>              // process INFLOW
> @@ -297,14 +295,14 @@
>              Iterator policyElements = operation.
> getChildrenWithName(new QName(POLICY_NS_URI, TAG_POLICY));
> 
>              if (policyElements != null && policyElements.hasNext()) {
> -                processPolicyElements(PolicyInclude.
> AXIS_MODULE_OPERATION_POLICY, policyElements, 
op_descrip.getPolicyInclude());
> +                processPolicyElements(policyElements, op_descrip.
> getPolicySubject());
>              }
> 
>              // processing <wsp:PolicyReference> .. </..> elements
>              Iterator policyRefElements = operation.
> getChildrenWithName(new QName(POLICY_NS_URI, TAG_POLICY_REF));
> 
>              if (policyRefElements != null && 
policyRefElements.hasNext()) {
> -                processPolicyRefElements(PolicyInclude.
> AXIS_MODULE_OPERATION_POLICY, policyRefElements, 
module.getPolicyInclude());
> +                processPolicyRefElements(policyRefElements, module.
> getPolicySubject());
>              }
> 
>              // setting Operation phase
> 
> Modified: 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.
> java
> URL: http://svn.apache.
> 
org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.
> java?rev=642522&r1=642521&r2=642522&view=diff
> 
==============================================================================
> --- 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.
> java (original)
> +++ 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.
> java Sat Mar 29 02:25:45 2008
> @@ -48,6 +48,9 @@
>  import org.apache.commons.logging.LogFactory;
> 
>  import javax.xml.namespace.QName;
> +import javax.xml.stream.FactoryConfigurationError;
> +import javax.xml.stream.XMLStreamException;
> +
>  import java.io.InputStream;
>  import java.util.ArrayList;
>  import java.util.HashMap;
> @@ -298,8 +301,7 @@
>                 .getChildrenWithName(new QName(POLICY_NS_URI, 
TAG_POLICY));
> 
>           if (policyElements != null && policyElements.hasNext()) {
> -            processPolicyElements(PolicyInclude.AXIS_SERVICE_POLICY,
> -                  policyElements, service.getPolicyInclude());
> +            processPolicyElements(policyElements, service.
> getPolicySubject());
>           }
> 
>           // processing <wsp:PolicyReference> .. </..> elements
> @@ -308,8 +310,7 @@
>                       TAG_POLICY_REF));
> 
>           if (policyRefElements != null && policyRefElements.hasNext()) 
{
> -            processPolicyRefElements(PolicyInclude.AXIS_SERVICE_POLICY,
> -                  policyRefElements, service.getPolicyInclude());
> +            processPolicyRefElements(policyRefElements, service.
> getPolicySubject());
>           }
> 
>           // processing service scope
> @@ -423,6 +424,8 @@
>           }
> 
>           processEndpoints(service);
> +         processPolicyAttachments(service_element, service);
> + 
> 
>        } catch (AxisFault axisFault) {
>           throw new DeploymentException(axisFault);
> @@ -627,8 +630,7 @@
>                 .getChildrenWithName(new QName(POLICY_NS_URI, 
TAG_POLICY));
> 
>           if (policyElements != null) {
> -            processPolicyElements(PolicyInclude.AXIS_MESSAGE_POLICY,
> -                  policyElements, message.getPolicyInclude());
> +            processPolicyElements(policyElements, message.
> getPolicySubject());
>           }
> 
>           // processing <wsp:PolicyReference> .. </..> elements
> @@ -637,8 +639,7 @@
>                       TAG_POLICY_REF));
> 
>           if (policyRefElements != null) {
> -            processPolicyRefElements(PolicyInclude.AXIS_MESSAGE_POLICY,
> -                  policyRefElements, message.getPolicyInclude());
> +            processPolicyRefElements(policyRefElements, message.
> getPolicySubject());
>           }
> 
>           processParameters(parameters, message, operation);
> @@ -789,8 +790,7 @@
>                 POLICY_NS_URI, TAG_POLICY));
> 
>           if (policyElements != null && policyElements.hasNext()) {
> -            processPolicyElements(PolicyInclude.AXIS_OPERATION_POLICY,
> -                  policyElements, op_descrip.getPolicyInclude());
> +            processPolicyElements(policyElements, op_descrip.
> getPolicySubject());
>           }
> 
>           // processing <wsp:PolicyReference> .. </..> elements
> @@ -799,8 +799,7 @@
>                       TAG_POLICY_REF));
> 
>           if (policyRefElements != null && policyRefElements.hasNext()) 
{
> - processPolicyRefElements(PolicyInclude.AXIS_OPERATION_POLICY,
> -                  policyRefElements, op_descrip.getPolicyInclude());
> +            processPolicyRefElements(policyRefElements, op_descrip.
> getPolicySubject());
>           }
> 
>           // Operation Parameters
> @@ -913,7 +912,16 @@
>     private void processEndpoints(AxisService axisService) throws 
AxisFault {
>        String endpointName = axisService.getEndpointName();
>        if (endpointName == null || endpointName.length() == 0) {
> -         Utils.addEndpointsToService(axisService);
> +         Utils.addEndpointsToService(axisService, service.
> getAxisConfiguration());
> +      }
> +   }
> + 
> +   private void processPolicyAttachments(OMElement serviceElement, 
> AxisService service) throws DeploymentException {
> +      Iterator attachmentElements = serviceElement.
> getChildrenWithName(new QName(POLICY_NS_URI, TAG_POLICY_ATTACHMENT));
> +      try {
> +         Utils.processPolicyAttachments(attachmentElements, service);
> +      } catch (Exception e) {
> +         throw new DeploymentException(e);
>        }
>     }
> 
> 
> Modified: 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/util/Utils.
> java
> URL: http://svn.apache.
> 
org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/util/Utils.
> java?rev=642522&r1=642521&r2=642522&view=diff
> 
==============================================================================
> --- 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/util/Utils.
> java (original)
> +++ 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/util/Utils.
> java Sat Mar 29 02:25:45 2008
> @@ -19,6 +19,44 @@
> 
>  package org.apache.axis2.deployment.util;
> 
> +import java.io.BufferedReader;
> +import java.io.File;
> +import java.io.FileInputStream;
> +import java.io.FileNotFoundException;
> +import java.io.FileOutputStream;
> +import java.io.IOException;
> +import java.io.InputStream;
> +import java.io.InputStreamReader;
> +import java.io.OutputStreamWriter;
> +import java.io.UnsupportedEncodingException;
> +import java.lang.reflect.InvocationTargetException;
> +import java.lang.reflect.Method;
> +import java.lang.reflect.Modifier;
> +import java.net.MalformedURLException;
> +import java.net.URL;
> +import java.net.URLClassLoader;
> +import java.net.URLDecoder;
> +import java.security.AccessController;
> +import java.security.PrivilegedAction;
> +import java.security.PrivilegedActionException;
> +import java.security.PrivilegedExceptionAction;
> +import java.util.ArrayList;
> +import java.util.Arrays;
> +import java.util.Collection;
> +import java.util.HashMap;
> +import java.util.Iterator;
> +import java.util.LinkedList;
> +import java.util.List;
> +import java.util.Map;
> +import java.util.Stack;
> +import java.util.StringTokenizer;
> +import java.util.zip.ZipEntry;
> +import java.util.zip.ZipInputStream;
> +
> +import javax.xml.namespace.QName;
> +import javax.xml.stream.FactoryConfigurationError;
> +import javax.xml.stream.XMLStreamException;
> +
>  import org.apache.axiom.om.OMAbstractFactory;
>  import org.apache.axiom.om.OMElement;
>  import org.apache.axiom.om.OMFactory;
> @@ -56,51 +94,18 @@
>  import org.apache.axis2.engine.Handler;
>  import org.apache.axis2.engine.MessageReceiver;
>  import org.apache.axis2.util.Loader;
> +import org.apache.axis2.util.PolicyUtil;
>  import org.apache.axis2.wsdl.WSDLConstants;
>  import org.apache.axis2.wsdl.WSDLUtil;
>  import org.apache.commons.logging.Log;
>  import org.apache.commons.logging.LogFactory;
> +import org.apache.neethi.PolicyComponent;
>  import org.apache.ws.commons.schema.utils.NamespaceMap;
>  import org.codehaus.jam.JAnnotation;
>  import org.codehaus.jam.JMethod;
> 
> -import javax.xml.namespace.QName;
> -import java.io.BufferedReader;
> -import java.io.File;
> -import java.io.FileInputStream;
> -import java.io.FileOutputStream;
> -import java.io.IOException;
> -import java.io.InputStream;
> -import java.io.InputStreamReader;
> -import java.io.OutputStreamWriter;
> -import java.io.UnsupportedEncodingException;
> -import java.io.FileNotFoundException;
> -import java.lang.reflect.Method;
> -import java.lang.reflect.Modifier;
> -import java.lang.reflect.InvocationTargetException;
> -import java.net.MalformedURLException;
> -import java.net.URL;
> -import java.net.URLClassLoader;
> -import java.net.URLDecoder;
> -import java.security.AccessController;
> -import java.security.PrivilegedAction;
> -import java.security.PrivilegedExceptionAction;
> -import java.security.PrivilegedActionException;
> -import java.util.ArrayList;
> -import java.util.Arrays;
> -import java.util.Collection;
> -import java.util.HashMap;
> -import java.util.Iterator;
> -import java.util.LinkedList;
> -import java.util.List;
> -import java.util.Stack;
> -import java.util.StringTokenizer;
> -import java.util.zip.ZipEntry;
> -import java.util.zip.ZipInputStream;
> -
>  public class Utils {
> 
> -
>     public static String defaultEncoding = new 
OutputStreamWriter(System.out)
>           .getEncoding();
> 
> @@ -114,23 +119,24 @@
>           HandlerDescription handlermd = flow.getHandler(j);
>           Handler handler;
> 
> -         final Class handlerClass = getHandlerClass(handlermd.
> getClassName(), clsLoader);
> +         final Class handlerClass = getHandlerClass(
> +               handlermd.getClassName(), clsLoader);
> 
> -            try {
> -                handler = (Handler) org.apache.axis2.java.security.
> AccessController.doPrivileged(
> -                        new PrivilegedExceptionAction() {
> -                            public Object run() throws 
> InstantiationException, IllegalAccessException {
> -                                return handlerClass.newInstance();
> -                            }
> -                        }
> -                );
> -                handler.init(handlermd);
> -                handlermd.setHandler(handler);
> -            } catch (PrivilegedActionException e) {
> -                throw AxisFault.makeFault(e);
> -            }
> -        }
> -    }
> +         try {
> +            handler = (Handler) org.apache.axis2.java.security.
> AccessController
> +                  .doPrivileged(new PrivilegedExceptionAction() {
> +                     public Object run() throws InstantiationException,
> +                           IllegalAccessException {
> +                        return handlerClass.newInstance();
> +                     }
> +                  });
> +            handler.init(handlermd);
> +            handlermd.setHandler(handler);
> +         } catch (PrivilegedActionException e) {
> +            throw AxisFault.makeFault(e);
> +         }
> +      }
> +   }
> 
>     public static boolean loadHandler(ClassLoader loader1, 
> HandlerDescription desc)
>           throws DeploymentException {
> @@ -138,15 +144,14 @@
>        Handler handler;
>        try {
>           final Class handlerClass = Loader.loadClass(loader1, 
handlername);
> -            Package aPackage = (Package) org.apache.axis2.java.
> security.AccessController.doPrivileged(
> -                    new PrivilegedAction() {
> -                        public Object run() {
> -                            return handlerClass.getPackage();
> -                        }
> -                    }
> -            );
> -            if (aPackage != null && aPackage.getName().equals(
> -               "org.apache.axis2.engine")) {
> +         Package aPackage = (Package) org.apache.axis2.java.
> security.AccessController
> +               .doPrivileged(new PrivilegedAction() {
> +                  public Object run() {
> +                     return handlerClass.getPackage();
> +                  }
> +               });
> +         if (aPackage != null
> +               && aPackage.getName().equals("org.apache.axis2.engine")) 
{
>              String name = handlerClass.getName();
>              log.warn("Dispatcher " + name + " is now deprecated.");
>              if (name.indexOf("InstanceDispatcher") != -1) {
> @@ -158,13 +163,13 @@
>                             + "and replace with the same class in 
> org.apache.axis2.dispatchers package");
>              }
>           }
> -         handler = (Handler) org.apache.axis2.java.security.
> AccessController.doPrivileged(
> -                    new PrivilegedExceptionAction() {
> -                        public Object run() throws 
> InstantiationException, IllegalAccessException {
> -                            return handlerClass.newInstance();
> -                        }
> -                    }
> -            );
> +         handler = (Handler) 
org.apache.axis2.java.security.AccessController
> +               .doPrivileged(new PrivilegedExceptionAction() {
> +                  public Object run() throws InstantiationException,
> +                        IllegalAccessException {
> +                     return handlerClass.newInstance();
> +                  }
> +               });
>           handler.init(desc);
>           desc.setHandler(handler);
>        } catch (ClassNotFoundException e) {
> @@ -178,237 +183,239 @@
>        }
>          return true;
>      }
> - 
> +
>     public static URL[] getURLsForAllJars(URL url, File tmpDir) {
> -        FileInputStream fin = null;
> -        InputStream in = null;
> -        ZipInputStream zin = null;
> -        try {
> -            ArrayList array = new ArrayList();
> -            in = url.openStream();
> -            String fileName = url.getFile();
> -            int index = fileName.lastIndexOf('/');
> -            if (index != -1) {
> -                fileName = fileName.substring(index + 1);
> -            }
> -            final File f = createTempFile(fileName, in, tmpDir);
> - 
> -            fin = (FileInputStream) org.apache.axis2.java.security.
> AccessController.doPrivileged(
> -                    new PrivilegedExceptionAction() {
> -                        public Object run() throws 
FileNotFoundException {
> -                            return new FileInputStream(f);
> -                        }
> -                    }
> -            );
> -            array.add(f.toURL());
> -            zin = new ZipInputStream(fin);
> -
> -            ZipEntry entry;
> -            String entryName;
> -            while ((entry = zin.getNextEntry()) != null) {
> -                entryName = entry.getName();
> -                /**
> -                 * id the entry name start with /lib and end with .jar
> -                 * then those entry name will be added to the arraylist
> -                 */
> -                if ((entryName != null) && entryName.toLowerCase().
> startsWith("lib/")
> -                        && entryName.toLowerCase().endsWith(".jar")) {
> -                    String suffix = entryName.substring(4);
> -                    File f2 = createTempFile(suffix, zin, tmpDir);
> -                    array.add(f2.toURL());
> -                }
> -            }
> -            return (URL[]) array.toArray(new URL[array.size()]);
> -        } catch (Exception e) {
> -            throw new RuntimeException(e);
> -        } finally {
> -            if (fin != null) {
> -                try {
> -                    fin.close();
> -                } catch (IOException e) {
> -                    //
> -                }
> -            }
> -            if (in != null) {
> -                try {
> -                    in.close();
> -                } catch (IOException e) {
> -                    //
> -                }
> -            }
> -            if (zin != null) {
> -                try {
> -                    zin.close();
> -                } catch (IOException e) {
> -                    //
> -                }
> -            }
> -        }
> +      FileInputStream fin = null;
> +      InputStream in = null;
> +      ZipInputStream zin = null;
> +      try {
> +         ArrayList array = new ArrayList();
> +         in = url.openStream();
> +         String fileName = url.getFile();
> +         int index = fileName.lastIndexOf('/');
> +         if (index != -1) {
> +            fileName = fileName.substring(index + 1);
> +         }
> +         final File f = createTempFile(fileName, in, tmpDir);
> +
> +         fin = (FileInputStream) org.apache.axis2.java.security.
> AccessController
> +               .doPrivileged(new PrivilegedExceptionAction() {
> +                  public Object run() throws FileNotFoundException {
> +                     return new FileInputStream(f);
> +                  }
> +               });
> +         array.add(f.toURL());
> +         zin = new ZipInputStream(fin);
> +
> +         ZipEntry entry;
> +         String entryName;
> +         while ((entry = zin.getNextEntry()) != null) {
> +            entryName = entry.getName();
> +            /**
> +             * id the entry name start with /lib and end with .jar then
> +             * those entry name will be added to the arraylist
> +             */
> +            if ((entryName != null)
> +                  && entryName.toLowerCase().startsWith("lib/")
> +                  && entryName.toLowerCase().endsWith(".jar")) {
> +               String suffix = entryName.substring(4);
> +               File f2 = createTempFile(suffix, zin, tmpDir);
> +               array.add(f2.toURL());
> +            }
> +         }
> +         return (URL[]) array.toArray(new URL[array.size()]);
> +      } catch (Exception e) {
> +         throw new RuntimeException(e);
> +      } finally {
> +         if (fin != null) {
> +            try {
> +               fin.close();
> +            } catch (IOException e) {
> +               //
> +            }
> +         }
> +         if (in != null) {
> +            try {
> +               in.close();
> +            } catch (IOException e) {
> +               //
> +            }
> +         }
> +         if (zin != null) {
> +            try {
> +               zin.close();
> +            } catch (IOException e) {
> +               //
> +            }
> +         }
> +      }
>     }
> - 
> -   public static File createTempFile(final String suffix, 
> InputStream in, final File tmpDir) throws IOException {
> -        byte data[] = new byte[2048];
> -        int count;
> -        File f;
> -        if (tmpDir == null) {
> -            String directory = (String) org.apache.axis2.java.
> security.AccessController.doPrivileged(
> -                    new PrivilegedAction() {
> -                        public Object run() {
> -                            return 
System.getProperty("java.io.tmpdir");
> -                        }
> -                    }
> -            );
> -            final File tempFile = new File(directory, "_axis2");
> -            Boolean exists = (Boolean) org.apache.axis2.java.
> security.AccessController.doPrivileged(
> -                    new PrivilegedAction() {
> -                        public Object run() {
> -                            return new Boolean(tempFile.exists());
> -                        }
> -                    }
> -            );
> -            if (!exists.booleanValue()) {
> -                Boolean mkdirs = (Boolean) org.apache.axis2.java.
> security.AccessController.doPrivileged(
> -                        new PrivilegedAction() {
> -                            public Object run() {
> -                                return new Boolean(tempFile.mkdirs());
> -                            }
> -                        }
> -                );
> -                if (!mkdirs.booleanValue()) {
> -                    throw new IOException("Unable to create the 
directory");
> -                }
> -            }
> -            try {
> -                f = (File) org.apache.axis2.java.security.
> AccessController.doPrivileged(
> -                        new PrivilegedExceptionAction() {
> -                            public Object run() throws IOException {
> -                                return File.createTempFile("axis2",
> suffix, tempFile);
> -                            }
> -                        }
> -                );
> -            } catch (PrivilegedActionException e) {
> -                throw (IOException) e.getException();
> -            }
> -        } else {
> -            try {
> -                f = (File) org.apache.axis2.java.security.
> AccessController.doPrivileged(
> -                        new PrivilegedExceptionAction() {
> -                            public Object run() throws IOException {
> -                                return File.createTempFile("axis2",
> suffix, tmpDir);
> -                            }
> -                        }
> -                );
> -            } catch (PrivilegedActionException e) {
> -                throw (IOException) e.getException();
> -            }
> -        }
> -        if (log.isDebugEnabled()) {
> -            log.debug("Created temporary file : " + f.
> getAbsolutePath());//$NON-SEC-4
> -        }
> -        final File f2 = f;
> -        org.apache.axis2.java.security.AccessController.doPrivileged(
> -                new PrivilegedAction() {
> -                    public Object run() {
> -                        f2.deleteOnExit();
> -                        return null;
> -                    }
> -                }
> -        );
> -        FileOutputStream out = null;
> -        try {
> -            out = (FileOutputStream) org.apache.axis2.java.
> security.AccessController.doPrivileged(
> -                    new PrivilegedExceptionAction() {
> -                        public Object run() throws 
FileNotFoundException {
> -                            return new FileOutputStream(f2);
> -                        }
> -                    }
> -            );
> -        } catch (PrivilegedActionException e) {
> -            throw (FileNotFoundException) e.getException();
> -        }
> -        while ((count = in.read(data, 0, 2048)) != -1) {
> -            out.write(data, 0, count);
> -        }
> -        out.close();
> -        return f;
> -    }
> - 
> +
> +   public static File createTempFile(final String suffix, InputStream 
in,
> +         final File tmpDir) throws IOException {
> +      byte data[] = new byte[2048];
> +      int count;
> +      File f;
> +      if (tmpDir == null) {
> +         String directory = (String) org.apache.axis2.java.
> security.AccessController
> +               .doPrivileged(new PrivilegedAction() {
> +                  public Object run() {
> +                     return System.getProperty("java.io.tmpdir");
> +                  }
> +               });
> +         final File tempFile = new File(directory, "_axis2");
> +         Boolean exists = (Boolean) org.apache.axis2.java.security.
> AccessController
> +               .doPrivileged(new PrivilegedAction() {
> +                  public Object run() {
> +                     return new Boolean(tempFile.exists());
> +                  }
> +               });
> +         if (!exists.booleanValue()) {
> +            Boolean mkdirs = (Boolean) org.apache.axis2.java.
> security.AccessController
> +                  .doPrivileged(new PrivilegedAction() {
> +                     public Object run() {
> +                        return new Boolean(tempFile.mkdirs());
> +                     }
> +                  });
> +            if (!mkdirs.booleanValue()) {
> +               throw new IOException("Unable to create the directory");
> +            }
> +         }
> +         try {
> +            f = (File) org.apache.axis2.java.security.AccessController
> +                  .doPrivileged(new PrivilegedExceptionAction() {
> +                     public Object run() throws IOException {
> +                        return File.createTempFile("axis2", suffix,
> +                              tempFile);
> +                     }
> +                  });
> +         } catch (PrivilegedActionException e) {
> +            throw (IOException) e.getException();
> +         }
> +      } else {
> +         try {
> +            f = (File) org.apache.axis2.java.security.AccessController
> +                  .doPrivileged(new PrivilegedExceptionAction() {
> +                     public Object run() throws IOException {
> +                        return File.createTempFile("axis2", suffix,
> +                              tmpDir);
> +                     }
> +                  });
> +         } catch (PrivilegedActionException e) {
> +            throw (IOException) e.getException();
> +         }
> +      }
> +      if (log.isDebugEnabled()) {
> +         log.debug("Created temporary file : " + f.
> getAbsolutePath());// $NON-SEC-4
> +      }
> +      final File f2 = f;
> +      org.apache.axis2.java.security.AccessController
> +            .doPrivileged(new PrivilegedAction() {
> +               public Object run() {
> +                  f2.deleteOnExit();
> +                  return null;
> +               }
> +            });
> +      FileOutputStream out = null;
> +      try {
> +         out = (FileOutputStream) org.apache.axis2.java.security.
> AccessController
> +               .doPrivileged(new PrivilegedExceptionAction() {
> +                  public Object run() throws FileNotFoundException {
> +                     return new FileOutputStream(f2);
> +                  }
> +               });
> +      } catch (PrivilegedActionException e) {
> +         throw (FileNotFoundException) e.getException();
> +      }
> +      while ((count = in.read(data, 0, 2048)) != -1) {
> +         out.write(data, 0, count);
> +      }
> +      out.close();
> +      return f;
> +   }
> +
>     public static ClassLoader getClassLoader(ClassLoader parent, String 
path)
>           throws DeploymentException {
>        return getClassLoader(parent, new File(path));
>     }
> - 
> +
>     /**
> -     * Get a ClassLoader which contains a classpath of a) the 
> passed directory and b) any jar
> -     * files inside the "lib/" or "Lib/" subdirectory of the 
passeddirectory.
> -     *
> -     * @param parent parent ClassLoader which will be the parent of
> the result of this method
> -     * @param file   a File which must be a directory for this to be 
useful
> -     * @return a new ClassLoader pointing to both the passed dir 
> and jar files under lib/
> -     * @throws DeploymentException if problems occur
> -     */
> -    public static ClassLoader getClassLoader(final ClassLoader 
> parent, File file)
> -            throws DeploymentException {
> -        URLClassLoader classLoader;
> -
> -        if (file == null) return null; // Shouldn't this just 
> return the parent?
> -
> -        try {
> -            ArrayList urls = new ArrayList();
> -            urls.add(file.toURL());
> -
> -            // lower case directory name
> -            File libfiles = new File(file, "lib");
> -            if (!addFiles(urls, libfiles)) {
> -                // upper case directory name
> -                libfiles = new File(file, "Lib");
> -                addFiles(urls, libfiles);
> -            }
> +    * Get a ClassLoader which contains a classpath of a) the 
passeddirectory
> +    * and b) any jar files inside the "lib/" or "Lib/" subdirectory of 
the
> +    * passed directory.
> +    * 
> +    * @param parent
> +    *            parent ClassLoader which will be the parent of 
theresult of
> +    *            this method
> +    * @param file
> +    *            a File which must be a directory for this to be useful
> +    * @return a new ClassLoader pointing to both the passed dir andjar 
files
> +    *         under lib/
> +    * @throws DeploymentException
> +    *             if problems occur
> +    */
> +   public static ClassLoader getClassLoader(final ClassLoader 
> parent, File file)
> +         throws DeploymentException {
> +      URLClassLoader classLoader;
> 
> -            final URL urllist[] = new URL[urls.size()];
> -            for (int i = 0; i < urls.size(); i++) {
> -                urllist[i] = (URL) urls.get(i);
> -            }
> -            classLoader = 
> -                (URLClassLoader) AccessController.doPrivileged(new 
> PrivilegedAction() {
> -                    public Object run() {
> -                        return new URLClassLoader(urllist, parent);
> -                    }
> -                });
> -            return classLoader;
> -        } catch (MalformedURLException e) {
> -            throw new DeploymentException(e);
> -        }
> -    }
> +      if (file == null)
> +         return null; // Shouldn't this just return the parent?
> 
> -    private static boolean addFiles(ArrayList urls, final File 
> libfiles) throws MalformedURLException {
> -        Boolean exists = (Boolean) org.apache.axis2.java.security.
> AccessController.doPrivileged(
> -                new PrivilegedAction() {
> -                    public Object run() {
> -                        return new Boolean(libfiles.exists());
> -                    }
> -                }
> -        );
> -        if (exists.booleanValue()) {
> -            urls.add(libfiles.toURL());
> -            File jarfiles[] = (File[]) org.apache.axis2.java.
> security.AccessController.doPrivileged(
> -                    new PrivilegedAction() {
> -                        public Object run() {
> -                            return libfiles.listFiles();
> -                        }
> -                    }
> -            );
> -            for (int i = 0; i < jarfiles.length; i++) {
> -                File jarfile = jarfiles[i];
> -                if (jarfile.getName().endsWith(".jar")) {
> -                    urls.add(jarfile.toURL());
> -                }
> -            }
> -        }
> -        return exists.booleanValue();
> -    }
> +      try {
> +         ArrayList urls = new ArrayList();
> +         urls.add(file.toURL());
> +
> +         // lower case directory name
> +         File libfiles = new File(file, "lib");
> +         if (!addFiles(urls, libfiles)) {
> +            // upper case directory name
> +            libfiles = new File(file, "Lib");
> +            addFiles(urls, libfiles);
> +         }
> +
> +         final URL urllist[] = new URL[urls.size()];
> +         for (int i = 0; i < urls.size(); i++) {
> +            urllist[i] = (URL) urls.get(i);
> +         }
> +         classLoader = (URLClassLoader) AccessController
> +               .doPrivileged(new PrivilegedAction() {
> +                  public Object run() {
> +                     return new URLClassLoader(urllist, parent);
> +                  }
> +               });
> +         return classLoader;
> +      } catch (MalformedURLException e) {
> +         throw new DeploymentException(e);
> +      }
> +   }
> +
> +   private static boolean addFiles(ArrayList urls, final File libfiles)
> +         throws MalformedURLException {
> +      Boolean exists = (Boolean) org.apache.axis2.java.security.
> AccessController
> +            .doPrivileged(new PrivilegedAction() {
> +               public Object run() {
> +                  return new Boolean(libfiles.exists());
> +               }
> +            });
> +      if (exists.booleanValue()) {
> +         urls.add(libfiles.toURL());
> +         File jarfiles[] = (File[]) org.apache.axis2.java.security.
> AccessController
> +               .doPrivileged(new PrivilegedAction() {
> +                  public Object run() {
> +                     return libfiles.listFiles();
> +                  }
> +               });
> +         for (int i = 0; i < jarfiles.length; i++) {
> +            File jarfile = jarfiles[i];
> +            if (jarfile.getName().endsWith(".jar")) {
> +               urls.add(jarfile.toURL());
> +            }
> +         }
> +      }
> +      return exists.booleanValue();
> +   }
> 
> -    private static Class getHandlerClass(String className, 
> ClassLoader loader1)
> +   private static Class getHandlerClass(String className, 
> ClassLoader loader1)
>           throws AxisFault {
>        Class handlerClass;
> 
> @@ -455,35 +462,39 @@
>                 .getParameter(Constants.SERVICE_OBJECT_SUPPLIER);
>           if (implInfoParam != null) {
>              String className = ((String) 
implInfoParam.getValue()).trim();
> -            final Class serviceObjectMaker = Loader.
> loadClass(serviceClassLoader,
> -                  className);
> +            final Class serviceObjectMaker = Loader.loadClass(
> +                  serviceClassLoader, className);
>              if (serviceObjectMaker.getModifiers() != Modifier.PUBLIC) {
>                 throw new AxisFault("Service class " + className
>                       + " must have public as access Modifier");
>              }
> 
> -                // Find static getServiceObject() method, call it if 
there
> -                final Method method = (Method) org.apache.axis2.
> java.security.AccessController.doPrivileged(
> -                        new PrivilegedExceptionAction() {
> -                            public Object run() throws 
> NoSuchMethodException {
> -                                return serviceObjectMaker.getMethod(
> -                                        "getServiceObject", new 
> Class[]{AxisService.class});
> -                            }
> -                        }
> -                );
> -                Object obj = null;
> +            // Find static getServiceObject() method, call it if there
> +            final Method method = (Method) org.apache.axis2.java.
> security.AccessController
> +                  .doPrivileged(new PrivilegedExceptionAction() {
> +                     public Object run() throws NoSuchMethodException {
> +                        return serviceObjectMaker.getMethod(
> +                              "getServiceObject",
> +                              new Class[] { AxisService.class });
> +                     }
> +                  });
> +            Object obj = null;
>              if (method != null) {
> -                    obj = org.apache.axis2.java.security.
> AccessController.doPrivileged(
> -                            new PrivilegedExceptionAction() {
> -                                public Object run() throws 
> InstantiationException, IllegalAccessException, 
InvocationTargetException {
> -                                    return method.
> invoke(serviceObjectMaker.newInstance(),
> -                                            new Object[]{axisService});
> -                                }
> -                            }
> -                    );
> -                }
> +               obj = org.apache.axis2.java.security.AccessController
> +                     .doPrivileged(new PrivilegedExceptionAction() {
> +                        public Object run()
> +                              throws InstantiationException,
> +                              IllegalAccessException,
> +                              InvocationTargetException {
> +                           return method.invoke(serviceObjectMaker
> +                                 .newInstance(),
> +                                 new Object[] { axisService });
> +                        }
> +                     });
> +            }
>              if (obj == null) {
> -               log.warn("ServiceObjectSupplier implmentation Object
> could not be found");
> +               log
> +                     .warn("ServiceObjectSupplier implmentation 
> Object could not be found");
>                 throw new DeploymentException(
>                       "ServiceClass or ServiceObjectSupplier 
> implmentation Object could not be found");
>              }
> @@ -563,32 +574,35 @@
>           }
>        }
>     }
> - 
> -   public static AxisOperation getAxisOperationForJmethod(JMethod 
> jmethod) throws AxisFault {
> -        AxisOperation operation;
> -        if (jmethod.getReturnType().isVoidType()) {
> -            if (jmethod.getExceptionTypes().length > 0) {
> -                operation = AxisOperationFactory.getAxisOperation(
> -                        WSDLConstants.MEP_CONSTANT_ROBUST_IN_ONLY);
> -            } else {
> -                operation = AxisOperationFactory.getAxisOperation(
> -                        WSDLConstants.MEP_CONSTANT_IN_ONLY);
> -            }
> -        } else {
> -            operation = AxisOperationFactory.getAxisOperation(
> -                    WSDLConstants.MEP_CONSTANT_IN_OUT);
> -        }
> -        String opName = getSimpleName(jmethod);
> -        operation.setName(new QName(opName));
> -        JAnnotation methodAnnon = jmethod.
> getAnnotation(AnnotationConstants.WEB_METHOD);
> -        if (methodAnnon != null) {
> -            String action = methodAnnon.
> getValue(AnnotationConstants.ACTION).asString();
> -            if (action != null && !"".equals(action)) {
> -                operation.setSoapAction(action);
> -            }
> -        }
> -        return operation;
> -    }
> +
> +   public static AxisOperation getAxisOperationForJmethod(JMethod 
jmethod)
> +         throws AxisFault {
> +      AxisOperation operation;
> +      if (jmethod.getReturnType().isVoidType()) {
> +         if (jmethod.getExceptionTypes().length > 0) {
> +            operation = AxisOperationFactory
> +                  .getAxisOperation(WSDLConstants.
> MEP_CONSTANT_ROBUST_IN_ONLY);
> +         } else {
> +            operation = AxisOperationFactory
> + .getAxisOperation(WSDLConstants.MEP_CONSTANT_IN_ONLY);
> +         }
> +      } else {
> +         operation = AxisOperationFactory
> +               .getAxisOperation(WSDLConstants.MEP_CONSTANT_IN_OUT);
> +      }
> +      String opName = getSimpleName(jmethod);
> +      operation.setName(new QName(opName));
> +      JAnnotation methodAnnon = jmethod
> +            .getAnnotation(AnnotationConstants.WEB_METHOD);
> +      if (methodAnnon != null) {
> +         String action = 
methodAnnon.getValue(AnnotationConstants.ACTION)
> +               .asString();
> +         if (action != null && !"".equals(action)) {
> +            operation.setSoapAction(action);
> +         }
> +      }
> +      return operation;
> +   }
> 
>     public static String getSimpleName(JMethod method) {
>        JAnnotation methodAnnon = method
> @@ -634,25 +648,24 @@
>           PhasesInfo phasesInfo = axisConfig.getPhasesInfo();
>           final ClassLoader moduleClassLoader = 
module.getModuleClassLoader();
>           ArrayList services = new ArrayList();
> -         final InputStream in = (InputStream) org.apache.axis2.
> java.security.AccessController.doPrivileged(
> -                    new PrivilegedAction() {
> -                        public Object run() {
> -                            return moduleClassLoader.
> getResourceAsStream("aars/aars.list");
> -                        }
> -                    }
> -            );
> +         final InputStream in = (InputStream) org.apache.axis2.
> java.security.AccessController
> +               .doPrivileged(new PrivilegedAction() {
> +                  public Object run() {
> +                     return moduleClassLoader
> +                           .getResourceAsStream("aars/aars.list");
> +                  }
> +               });
>           if (in != null) {
>              BufferedReader input;
>              try {
> -                    input = new BufferedReader((InputStreamReader) 
> org.apache.axis2.java.security.AccessController.doPrivileged(
> -                                    new PrivilegedAction() {
> -                                        public Object run() {
> -                                            return new 
InputStreamReader(in);
> -                                        }
> -                                    }
> -                                )
> -                            );
> -                    String line;
> +               input = new BufferedReader(
> +                     (InputStreamReader) org.apache.axis2.java.
> security.AccessController
> +                           .doPrivileged(new PrivilegedAction() {
> +                              public Object run() {
> +                                 return new InputStreamReader(in);
> +                              }
> +                           }));
> +               String line;
>                 while ((line = input.readLine()) != null) {
>                    line = line.trim();
>                    if (line.length() > 0 && line.charAt(0) != '#') {
> @@ -670,15 +683,15 @@
>                 if (servicename == null || "".equals(servicename)) {
>                    continue;
>                 }
> -                    InputStream fin = (InputStream) org.apache.
> axis2.java.security.AccessController.doPrivileged(
> -                            new PrivilegedAction() {
> -                                public Object run() {
> -                                    return moduleClassLoader
> -                                            .
> getResourceAsStream("aars/" + servicename);
> -                                }
> -                            }
> -                    );
> -                    if (fin == null) {
> +               InputStream fin = (InputStream) org.apache.axis2.
> java.security.AccessController
> +                     .doPrivileged(new PrivilegedAction() {
> +                        public Object run() {
> +                           return moduleClassLoader
> +                                 .getResourceAsStream("aars/"
> +                                       + servicename);
> +                        }
> +                     });
> +               if (fin == null) {
>                    throw new AxisFault("No service archive found : "
>                          + servicename);
>                 }
> @@ -735,56 +748,57 @@
>           throw AxisFault.makeFault(e);
>        }
>     }
> - 
> +
>     /**
> -     * Normalize a uri containing ../ and ./ paths.
> -     *
> -     * @param uri The uri path to normalize
> -     * @return The normalized uri
> -     */
> -    public static String normalize(String uri) {
> -        if ("".equals(uri)) {
> -            return uri;
> -        }
> -        int leadingSlashes = 0;
> -        for (leadingSlashes = 0; leadingSlashes < uri.length()
> -                && uri.charAt(leadingSlashes) == '/'; ++leadingSlashes) 
{
> -            //FIXME: this block is empty!!
> -        }
> -        boolean isDir = (uri.charAt(uri.length() - 1) == '/');
> -        StringTokenizer st = new StringTokenizer(uri, "/");
> -        LinkedList clean = new LinkedList();
> -        while (st.hasMoreTokens()) {
> -            String token = st.nextToken();
> -            if ("..".equals(token)) {
> -                if (!clean.isEmpty() && !"..".equals(clean.getLast())) 
{
> -                    clean.removeLast();
> -                    if (!st.hasMoreTokens()) {
> -                        isDir = true;
> -                    }
> -                } else {
> -                    clean.add("..");
> -                }
> -            } else if (!".".equals(token) && !"".equals(token)) {
> -                clean.add(token);
> -            }
> -        }
> -        StringBuffer sb = new StringBuffer();
> -        while (leadingSlashes-- > 0) {
> -            sb.append('/');
> -        }
> -        for (Iterator it = clean.iterator(); it.hasNext();) {
> -            sb.append(it.next());
> -            if (it.hasNext()) {
> -                sb.append('/');
> -            }
> -        }
> -        if (isDir && sb.length() > 0 && sb.charAt(sb.length() - 1) != 
'/') {
> -            sb.append('/');
> -        }
> -        return sb.toString();
> -    }
> - 
> +    * Normalize a uri containing ../ and ./ paths.
> +    * 
> +    * @param uri
> +    *            The uri path to normalize
> +    * @return The normalized uri
> +    */
> +   public static String normalize(String uri) {
> +      if ("".equals(uri)) {
> +         return uri;
> +      }
> +      int leadingSlashes = 0;
> +      for (leadingSlashes = 0; leadingSlashes < uri.length()
> +            && uri.charAt(leadingSlashes) == '/'; ++leadingSlashes) {
> +         // FIXME: this block is empty!!
> +      }
> +      boolean isDir = (uri.charAt(uri.length() - 1) == '/');
> +      StringTokenizer st = new StringTokenizer(uri, "/");
> +      LinkedList clean = new LinkedList();
> +      while (st.hasMoreTokens()) {
> +         String token = st.nextToken();
> +         if ("..".equals(token)) {
> +            if (!clean.isEmpty() && !"..".equals(clean.getLast())) {
> +               clean.removeLast();
> +               if (!st.hasMoreTokens()) {
> +                  isDir = true;
> +               }
> +            } else {
> +               clean.add("..");
> +            }
> +         } else if (!".".equals(token) && !"".equals(token)) {
> +            clean.add(token);
> +         }
> +      }
> +      StringBuffer sb = new StringBuffer();
> +      while (leadingSlashes-- > 0) {
> +         sb.append('/');
> +      }
> +      for (Iterator it = clean.iterator(); it.hasNext();) {
> +         sb.append(it.next());
> +         if (it.hasNext()) {
> +            sb.append('/');
> +         }
> +      }
> +      if (isDir && sb.length() > 0 && sb.charAt(sb.length() - 1) != 
'/') {
> +         sb.append('/');
> +      }
> +      return sb.toString();
> +   }
> +
>     public static String getPath(String parent, String childPath) {
>        Stack parentStack = new Stack();
>        Stack childStack = new Stack();
> @@ -825,62 +839,62 @@
>        }
>        return filepath;
>     }
> - 
> +
>     /**
> -     * Searches for jar files inside /lib dirctory. If there are any, 
the
> -     * names of those jar files will be added to the array list
> -     */
> -    public static List findLibJars(URL url) {
> -        ArrayList embedded_jars = new ArrayList();
> -        try {
> -            ZipInputStream zin = new ZipInputStream(url.openStream());
> -            ZipEntry entry;
> -            String entryName = "";
> -            while ((entry = zin.getNextEntry()) != null) {
> -                entryName = entry.getName();
> -                /**
> -                 * if the entry name start with /lib and ends with .jar
> -                 * add it to the the arraylist
> -                 */
> -                if (entryName != null && (entryName.startsWith("lib/") 
||
> -                        entryName.startsWith("Lib/")) &&
> -                        entryName.endsWith(".jar")) {
> -                    embedded_jars.add(entryName);
> -                }
> -            }
> -            zin.close();
> -        } catch (Exception e) {
> -            throw new RuntimeException(e);
> -        }
> -        return embedded_jars;
> -    }
> - 
> -    /**
> -     * To add the exclude method when generating schemas , here the
> exclude methods
> -     * will be session releated axis2 methods
> -     */
> -    public static void addExcludeMethods(ArrayList excludeList) {
> -        excludeList.add("init");
> -        excludeList.add("setOperationContext");
> -        excludeList.add("startUp");
> -        excludeList.add("destroy");
> -        excludeList.add("shutDown");
> -    }
> +    * Searches for jar files inside /lib dirctory. If there are 
> any, the names
> +    * of those jar files will be added to the array list
> +    */
> +   public static List findLibJars(URL url) {
> +      ArrayList embedded_jars = new ArrayList();
> +      try {
> +         ZipInputStream zin = new ZipInputStream(url.openStream());
> +         ZipEntry entry;
> +         String entryName = "";
> +         while ((entry = zin.getNextEntry()) != null) {
> +            entryName = entry.getName();
> +            /**
> +             * if the entry name start with /lib and ends with .jar add 
it
> +             * to the the arraylist
> +             */
> +            if (entryName != null
> +                  && (entryName.startsWith("lib/") || entryName
> +                        .startsWith("Lib/"))
> +                  && entryName.endsWith(".jar")) {
> +               embedded_jars.add(entryName);
> +            }
> +         }
> +         zin.close();
> +      } catch (Exception e) {
> +         throw new RuntimeException(e);
> +      }
> +      return embedded_jars;
> +   }
> 
> -    public static DeploymentClassLoader createClassLoader(File 
> serviceFile) throws MalformedURLException {
> -        ClassLoader contextClassLoader = (ClassLoader) org.apache.
> axis2.java.security.AccessController.doPrivileged(
> -                new PrivilegedAction() {
> -                    public Object run() {
> -                        return Thread.currentThread().
> getContextClassLoader();
> -                    }
> -                }
> -        );
> -        return createDeploymentClassLoader(new 
URL[]{serviceFile.toURL()},
> -                contextClassLoader,
> -                new ArrayList());
> -    }
> +   /**
> +    * To add the exclude method when generating schemas , here the 
exclude
> +    * methods will be session releated axis2 methods
> +    */
> +   public static void addExcludeMethods(ArrayList excludeList) {
> +      excludeList.add("init");
> +      excludeList.add("setOperationContext");
> +      excludeList.add("startUp");
> +      excludeList.add("destroy");
> +      excludeList.add("shutDown");
> +   }
> 
> -    public static ClassLoader createClassLoader(ArrayList urls,
> +   public static DeploymentClassLoader createClassLoader(File 
serviceFile)
> +         throws MalformedURLException {
> +      ClassLoader contextClassLoader = (ClassLoader) org.apache.
> axis2.java.security.AccessController
> +            .doPrivileged(new PrivilegedAction() {
> +               public Object run() {
> +                  return 
Thread.currentThread().getContextClassLoader();
> +               }
> +            });
> +      return createDeploymentClassLoader(new URL[] { 
serviceFile.toURL() },
> +            contextClassLoader, new ArrayList());
> +   }
> +
> +   public static ClassLoader createClassLoader(ArrayList urls,
>           ClassLoader serviceClassLoader, boolean extractJars, File 
tmpDir) {
>        URL url = (URL) urls.get(0);
>        if (extractJars) {
> @@ -889,8 +903,9 @@
>              urls.remove(0);
>              urls.addAll(0, Arrays.asList(urls1));
>              URL[] urls2 = (URL[]) urls.toArray(new URL[urls.size()]);
> -                return createDeploymentClassLoader(urls2, 
> serviceClassLoader, null);
> -            } catch (Exception e) {
> +            return createDeploymentClassLoader(urls2, 
serviceClassLoader,
> +                  null);
> +         } catch (Exception e) {
>              log
>                    .warn("Exception extracting jars into temporary 
> directory : "
>                          + e.getMessage()
> @@ -900,39 +915,48 @@
>        }
>        List embedded_jars = Utils.findLibJars(url);
>        URL[] urls2 = (URL[]) urls.toArray(new URL[urls.size()]);
> -        return createDeploymentClassLoader(urls2, 
> serviceClassLoader, embedded_jars);
> -    }
> +      return createDeploymentClassLoader(urls2, serviceClassLoader,
> +            embedded_jars);
> +   }
> 
>     public static File toFile(URL url) throws 
UnsupportedEncodingException {
> -       String path = URLDecoder.decode(url.getPath(), defaultEncoding);
> -       File file =
> -               new File(path.replace('/', File.separatorChar).
> replace('|', ':'));
> -       return file;
> -   }
> - 
> -    public static ClassLoader createClassLoader(URL[] urls, 
> ClassLoader serviceClassLoader,
> -                                                boolean 
> extractJars, File tmpDir) {
> -        if (extractJars) {
> -            try {
> -                URL[] urls1 = Utils.getURLsForAllJars(urls[0], tmpDir);
> -                return createDeploymentClassLoader(urls1, 
> serviceClassLoader, null);
> -            } catch (Exception e){
> -                log.warn("Exception extracting jars into temporary 
> directory : " + e.getMessage() + " : switching to alternate class 
> loading mechanism");
> -                log.debug(e.getMessage(), e);
> -            }
> -        }
> -        List embedded_jars = Utils.findLibJars(urls[0]);
> -        return createDeploymentClassLoader(urls, 
> serviceClassLoader, embedded_jars);
> -    }
> - 
> - 
> -    private static DeploymentClassLoader 
> createDeploymentClassLoader(final URL[] urls, final ClassLoader 
> serviceClassLoader, final List embeddedJars) {
> -        return (DeploymentClassLoader) AccessController.
> doPrivileged(new PrivilegedAction() {
> -            public Object run() {
> -                return new DeploymentClassLoader(urls, 
> embeddedJars, serviceClassLoader);
> -            }
> -        });
> -    }
> +      String path = URLDecoder.decode(url.getPath(), defaultEncoding);
> +      File file = new File(path.replace('/', 
File.separatorChar).replace('|',
> +            ':'));
> +      return file;
> +   }
> +
> +   public static ClassLoader createClassLoader(URL[] urls,
> +         ClassLoader serviceClassLoader, boolean extractJars, File 
tmpDir) {
> +      if (extractJars) {
> +         try {
> +            URL[] urls1 = Utils.getURLsForAllJars(urls[0], tmpDir);
> +            return createDeploymentClassLoader(urls1, 
serviceClassLoader,
> +                  null);
> +         } catch (Exception e) {
> +            log
> +                  .warn("Exception extracting jars into temporary 
> directory : "
> +                        + e.getMessage()
> +                        + " : switching to alternate class loading 
> mechanism");
> +            log.debug(e.getMessage(), e);
> +         }
> +      }
> +      List embedded_jars = Utils.findLibJars(urls[0]);
> +      return createDeploymentClassLoader(urls, serviceClassLoader,
> +            embedded_jars);
> +   }
> +
> +   private static DeploymentClassLoader createDeploymentClassLoader(
> +         final URL[] urls, final ClassLoader serviceClassLoader,
> +         final List embeddedJars) {
> +      return (DeploymentClassLoader) AccessController
> +            .doPrivileged(new PrivilegedAction() {
> +               public Object run() {
> +                  return new DeploymentClassLoader(urls, embeddedJars,
> +                        serviceClassLoader);
> +               }
> +            });
> +   }
> 
>     /**
>      * This method is to process bean exclude parameter and the XML 
format of
> @@ -1026,18 +1050,90 @@
>                 .getAxisConfiguration();
>           if (axisConfiguration != null) {
>              ArrayList transports = new ArrayList();
> -            for (Iterator iterator = axisConfiguration.
> getTransportsIn().values().iterator(); iterator.hasNext(); ){
> -               TransportInDescription transportInDescription = 
> (TransportInDescription) iterator.next();
> +            for (Iterator iterator = 
axisConfiguration.getTransportsIn()
> +                  .values().iterator(); iterator.hasNext();) {
> +               TransportInDescription transportInDescription = 
> (TransportInDescription) iterator
> +                     .next();
>                 transports.add(transportInDescription.getName());
>              }
> -            transportInValues = transports.iterator(); 
> +            transportInValues = transports.iterator();
>           }
>        } else {
>           transportInValues = 
axisService.getExposedTransports().iterator();
>        }
> 
>        if (transportInValues != null) {
> -         for (; transportInValues.hasNext();) { 
> +         for (; transportInValues.hasNext();) {
> +            String transportName = (String) transportInValues.next();
> +            String protocol = transportName.substring(0, 
1).toUpperCase()
> +                  + transportName.substring(1, transportName.length())
> +                        .toLowerCase();
> +            /*
> +             * populates soap11 endpoint
> +             */
> +            String soap11EndpointName = serviceName + protocol
> +                  + "Soap11Endpoint";
> +
> +            AxisEndpoint httpSoap11Endpoint = new AxisEndpoint();
> +            httpSoap11Endpoint.setName(soap11EndpointName);
> +            httpSoap11Endpoint.setParent(axisService);
> + httpSoap11Endpoint.setTransportInDescription(transportName);
> +            populateSoap11Endpoint(axisService, httpSoap11Endpoint);
> +            axisService.addEndpoint(httpSoap11Endpoint.getName(),
> +                  httpSoap11Endpoint);
> +            // setting soap11 endpoint as the default endpoint
> +            axisService.setEndpointName(soap11EndpointName);
> +
> +            /*
> +             * generating Soap12 endpoint
> +             */
> +            String soap12EndpointName = serviceName + protocol
> +                  + "Soap12Endpoint";
> +            AxisEndpoint httpSoap12Endpoint = new AxisEndpoint();
> +            httpSoap12Endpoint.setName(soap12EndpointName);
> +            httpSoap12Endpoint.setParent(axisService);
> + httpSoap12Endpoint.setTransportInDescription(transportName);
> +            populateSoap12Endpoint(axisService, httpSoap12Endpoint);
> +            axisService.addEndpoint(httpSoap12Endpoint.getName(),
> +                  httpSoap12Endpoint);
> +
> +            /*
> +             * generating Http endpoint
> +             */
> +            if ("http".equals(transportName)) {
> +               String httpEndpointName = serviceName + protocol
> +                     + "Endpoint";
> +               AxisEndpoint httpEndpoint = new AxisEndpoint();
> +               httpEndpoint.setName(httpEndpointName);
> +               httpEndpoint.setParent(axisService);
> +               httpEndpoint.setTransportInDescription(transportName);
> +               populateHttpEndpoint(axisService, httpEndpoint);
> +               axisService.addEndpoint(httpEndpoint.getName(),
> +                     httpEndpoint);
> +            }
> +         }
> +      }
> +   }
> +
> +   public static void addEndpointsToService(AxisService axisService,
> +         AxisConfiguration axisConfiguration) throws AxisFault {
> +
> +      String serviceName = axisService.getName();
> +      Iterator transportInValues = null;
> +
> +      if (axisConfiguration != null) {
> +         ArrayList transports = new ArrayList();
> +         for (Iterator iterator = axisConfiguration.getTransportsIn()
> +               .values().iterator(); iterator.hasNext();) {
> +            TransportInDescription transportInDescription = 
> (TransportInDescription) iterator
> +                  .next();
> +            transports.add(transportInDescription.getName());
> +         }
> +         transportInValues = transports.iterator();
> +      }
> +
> +      if (transportInValues != null) {
> +         for (; transportInValues.hasNext();) {
>              String transportName = (String) transportInValues.next();
>              String protocol = transportName.substring(0, 
1).toUpperCase()
>                    + transportName.substring(1, transportName.length())
> @@ -1102,6 +1198,7 @@
>        httpSoap11Endpoint.setName(soap11EndpointName);
>        httpSoap11Endpoint.setParent(axisService);
>        httpSoap11Endpoint.setEndpointURL(url.toString());
> +      httpSoap11Endpoint.setTransportInDescription(url.getProtocol());
> 
>        populateSoap11Endpoint(axisService, httpSoap11Endpoint);
>        axisService.addEndpoint(httpSoap11Endpoint.getName(),
> @@ -1123,6 +1220,7 @@
>        httpSoap12Endpoint.setName(soap12EndpointName);
>        httpSoap12Endpoint.setParent(axisService);
>        httpSoap12Endpoint.setEndpointURL(url.toString());
> +      httpSoap12Endpoint.setTransportInDescription(url.getProtocol());
> 
>        populateSoap12Endpoint(axisService, httpSoap12Endpoint);
>        axisService.addEndpoint(httpSoap12Endpoint.getName(),
> @@ -1140,10 +1238,74 @@
>        httpEndpoint.setName(httpEndpointName);
>        httpEndpoint.setParent(axisService);
>        httpEndpoint.setEndpointURL(url.toString());
> +      httpEndpoint.setTransportInDescription(url.getProtocol());
>        populateHttpEndpoint(axisService, httpEndpoint);
>        axisService.addEndpoint(httpEndpoint.getName(), httpEndpoint);
>     }
> 
> +   public static void processPolicyAttachments(Iterator 
attachmentElements,
> +         AxisService service) throws XMLStreamException,
> +         FactoryConfigurationError {
> +      OMElement attachmentElement;
> +      HashMap attachmentsMap = new HashMap();
> +
> +      for (; attachmentElements.hasNext();) {
> +         attachmentElement = (OMElement) attachmentElements.next();
> +         OMElement appliesToElem = attachmentElement
> +               .getFirstChildWithName(new QName(
> +                     DeploymentConstants.POLICY_NS_URI,
> +                     DeploymentConstants.TAG_APPLIES_TO));
> +         ArrayList policyComponents = new ArrayList();
> +
> +         // process <wsp:Policy> elements ..
> +         for (Iterator policyElements = attachmentElement
> +               .getChildrenWithName(new QName(
> +                     DeploymentConstants.POLICY_NS_URI,
> +                     DeploymentConstants.TAG_POLICY)); policyElements
> +               .hasNext();) {
> +            PolicyComponent policy = PolicyUtil
> +                  .getPolicyFromOMElement((OMElement) policyElements
> +                        .next());
> +            policyComponents.add(policy);
> +         }
> +
> +         // process <wsp:PolicyReference> elements ..
> +         for (Iterator policyRefElements = attachmentElement
> +               .getChildrenWithName(new QName(
> +                     DeploymentConstants.POLICY_NS_URI,
> +                     DeploymentConstants.TAG_POLICY_REF)); 
policyRefElements
> +               .hasNext();) {
> +            PolicyComponent policyRef = PolicyUtil
> +                  .getPolicyReferenceFromOMElement((OMElement) 
> policyRefElements
> +                        .next());
> +            policyComponents.add(policyRef);
> +         }
> +
> +         for (Iterator policySubjects = appliesToElem
> +               .getChildrenWithName(new QName("policy-subject")); 
> policySubjects
> +               .hasNext();) {
> +            OMElement policySubject = (OMElement) 
policySubjects.next();
> +            String identifier = policySubject.getAttributeValue(new 
QName(
> +                  "identifier"));
> +
> +            ArrayList values = (ArrayList) 
attachmentsMap.get(identifier);
> +            if (values == null) {
> +               values = new ArrayList();
> +               attachmentsMap.put(identifier, values);
> +            }
> +            values.addAll(policyComponents);
> +         }
> +      }
> +
> +      for (Iterator keys = attachmentsMap.keySet().iterator(); 
> keys.hasNext();) {
> +         String identifier = (String) keys.next();
> +         if (identifier.startsWith("binding:soap")) {
> +            processSoapAttachments(identifier, (List) attachmentsMap
> +                  .get(identifier), service);
> +         }
> +      }
> +   }
> +
>     private static void populateSoap11Endpoint(AxisService axisService,
>           AxisEndpoint axisEndpoint) {
>        String endpointName = axisEndpoint.getName();
> @@ -1307,5 +1469,66 @@
> 
>        axisBindingOperation.setAxisOperation(axisOperation);
>        axisBindingOperation.setParent(axisBinding);
> +   }
> +
> +   private static void processSoapAttachments(String identifier,
> +         List policyComponents, AxisService service) {
> +      Map map = service.getEndpoints();
> +      String soapVersion = (identifier.indexOf("soap12") > -1) ? 
> SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI
> +            : SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI;
> +
> +      for (Iterator iterator = map.values().iterator(); iterator.
> hasNext();) {
> +         AxisEndpoint axisEndpoint = (AxisEndpoint) iterator.next();
> +         AxisBinding axisBinding = axisEndpoint.getBinding();
> +         String wsoap = (String) axisBinding
> +               .getProperty(WSDL2Constants.ATTR_WSOAP_VERSION);
> +         if (soapVersion.equals(wsoap)) {
> +            String[] identifiers = identifier.split("/");
> +            int key = identifiers.length;
> +            if (key == 1) {
> +               axisBinding.getPolicySubject().attachPolicyComponents(
> +                     policyComponents);
> +            } else if (key == 2 || key == 3) {
> +               String opName = identifiers[1];
> +               opName = opName.substring(opName.indexOf(":") + 1, 
opName
> +                     .length());
> +               AxisBindingOperation bindingOperation = null;
> +               boolean found = false;
> +               for (Iterator i = axisBinding.getChildren(); 
i.hasNext();) {
> +                  bindingOperation = (AxisBindingOperation) i.next();
> +                  if (opName.equals(bindingOperation.getName()
> +                        .getLocalPart())) {
> +                     found = true;
> +                     break;
> +                  }
> +               }
> +               if (!found) {
> +                  throw new IllegalArgumentException(
> +                        "Invalid binding operation " + opName);
> +               }
> +
> +               if (key == 2) {
> +                  bindingOperation.getPolicySubject()
> +                        .attachPolicyComponents(policyComponents);
> +               } else {
> +                  if ("in".equals(identifiers[2])) {
> +                     AxisBindingMessage bindingInMessage = 
> (AxisBindingMessage) bindingOperation
> + .getChild(WSDLConstants.MESSAGE_LABEL_IN_VALUE);
> +                     bindingInMessage.getPolicySubject()
> +                           .attachPolicyComponents(policyComponents);
> +
> +                  } else if ("out".equals(identifiers[2])) {
> +                     AxisBindingMessage bindingOutMessage = 
> (AxisBindingMessage) bindingOperation
> + .getChild(WSDLConstants.MESSAGE_LABEL_OUT_VALUE);
> +                     bindingOutMessage.getPolicySubject()
> +                           .attachPolicyComponents(policyComponents);
> +                  } else {
> +                     // FIXME faults
> +                  }
> +               }
> +            }
> +            break;
> +         }
> +      }
>     }
>  }
> 
> Modified: 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisBindingOperation.
> java
> URL: http://svn.apache.
> 
org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisBindingOperation.
> java?rev=642522&r1=642521&r2=642522&view=diff
> 
==============================================================================
> --- 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisBindingOperation.
> java (original)
> +++ 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisBindingOperation.
> java Sat Mar 29 02:25:45 2008
> @@ -103,7 +103,7 @@
>     }
> 
>     public Object getKey() {
> -      return null;
> +      return name;
>     }
> 
>     public void engageModule(AxisModule axisModule) throws AxisFault {
> 
> Modified: 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisDescription.
> java
> URL: http://svn.apache.
> 
org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisDescription.
> java?rev=642522&r1=642521&r2=642522&view=diff
> 
==============================================================================
> --- 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisDescription.
> java (original)
> +++ 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisDescription.
> java Sat Mar 29 02:25:45 2008
> @@ -230,7 +230,7 @@
>      // NOTE - These are NOT typesafe!
>      public void addChild(AxisDescription child) {
>          if (child.getKey() == null) {
> -        // FIXME: Several classes that extend AxisDescription pass 
> null in their getKey method. 
> + 
>  //            throw new IllegalArgumentException("Please specify a 
> key in the child");
>          } else {
>              children.put(child.getKey(), child);
> 
> Modified: 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisEndpoint.
> java
> URL: http://svn.apache.
> 
org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisEndpoint.
> java?rev=642522&r1=642521&r2=642522&view=diff
> 
==============================================================================
> --- 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisEndpoint.
> java (original)
> +++ 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisEndpoint.
> java Sat Mar 29 02:25:45 2008
> @@ -181,8 +181,11 @@
>                       .getTransportIn(transportInDescName);
>                 TransportListener listener = in.getReceiver();
>                 String ip = HttpUtils.getIpAddress(axisConfiguration);
> +               // we should pass [serviceName].[endpointName] instead 
of
> +               // [endpointName]
> +               String sDOTe = serviceName + "." + name;
>                 EndpointReference[] eprsForService = listener
> -                     .getEPRsForService(serviceName, ip);
> +                     .getEPRsForService(sDOTe, ip);
>                 // we consider only the first address return by the 
listener
>                 if (eprsForService != null && eprsForService.length > 0) 
{
>                    return eprsForService[0].getAddress();
> @@ -190,11 +193,28 @@
>              } catch (SocketException e) {
>                 logger.warn("", e);
>              } catch (AxisFault e) {
> -               logger.warn("", e);
> +               logger.warn(e.getMessage());
>              }
>           }
>        }
> - 
> +
>        return null;
> +   }
> +
> +   public boolean isActive() {
> +      if (transportInDescName != null && parent != null) {
> +         AxisConfiguration axisConfiguration = getAxisConfiguration();
> +         if (axisConfiguration != null) {
> +            AxisService service = (AxisService) parent;
> +            if (service.isEnableAllTransports()) {
> +               return axisConfiguration.getTransportsIn().containsKey(
> +                     transportInDescName);
> +            } else {
> +               return service.getExposedTransports().contains(
> +                     transportInDescName);
> +            }
> +         }
> +      }
> +      return false;
>     }
>  }
> 
> Modified: 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisMessage.
> java
> URL: http://svn.apache.
> 
org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisMessage.
> java?rev=642522&r1=642521&r2=642522&view=diff
> 
==============================================================================
> --- 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisMessage.
> java (original)
> +++ 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisMessage.
> java Sat Mar 29 02:25:45 2008
> @@ -21,8 +21,11 @@
> 
>  import org.apache.axis2.AxisFault;
>  import org.apache.axis2.description.java2wsdl.Java2WSDLConstants;
> +import org.apache.axis2.engine.AxisConfiguration;
>  import org.apache.axis2.phaseresolver.PhaseResolver;
> +import org.apache.axis2.util.PolicyUtil;
>  import org.apache.axis2.wsdl.SOAPHeaderMessage;
> +import org.apache.neethi.Policy;
>  import org.apache.ws.commons.schema.XmlSchema;
>  import org.apache.ws.commons.schema.XmlSchemaElement;
>  import org.apache.ws.commons.schema.XmlSchemaImport;
> @@ -59,6 +62,10 @@
> 
>      //To chcek whether the message is wrapped or unwrapped
>      private boolean wrapped = true;
> + 
> +    private Policy effectivePolicy = null;
> + 
> +   private boolean policyCalculated = false;
> 
>      public String getMessagePartName() {
>        return messagePartName;
> @@ -231,4 +238,46 @@
>      public void setWrapped(boolean wrapped) {
>          this.wrapped = wrapped;
>      }
> + 
> +   public Policy getEffectivePolicy() {
> +      if (effectivePolicy == null && !policyCalculated) {
> +         effectivePolicy = calculateEffectivePolicy();
> +         policyCalculated = true;
> +      }
> +      return effectivePolicy;
> +   }
> +
> +   public Policy calculateEffectivePolicy() {
> +      PolicySubject policySubject = null;
> +      ArrayList policyList = new ArrayList();
> +
> +      // AxisBindingMessage
> +      policySubject = getPolicySubject();
> +      policyList.addAll(policySubject.getAttachPolicyComponents());
> + 
> +      // AxisOperation
> +      AxisOperation axisOperation = getAxisOperation();
> +      if (axisOperation != null) {
> +         policyList.addAll(axisOperation.getPolicySubject()
> +               .getAttachPolicyComponents());
> +      }
> +
> +      // AxisService
> +      AxisService axisService = (axisOperation == null) ? null
> +            : axisOperation.getAxisService();
> +      if (axisService != null) {
> +         policyList.addAll(axisService.getPolicySubject()
> +               .getAttachPolicyComponents());
> +      }
> +
> +      // AxisConfiguration
> +      AxisConfiguration axisConfiguration = (axisService == null) ? 
null
> +            : axisService.getAxisConfiguration();
> +      if (axisConfiguration != null) {
> +         policyList.addAll(axisConfiguration.getPolicySubject()
> +               .getAttachPolicyComponents());
> +      }
> +
> +      return PolicyUtil.getMergedPolicy(policyList, axisService);
> +   }
>  }
> 
> Modified: 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisModule.
> java
> URL: http://svn.apache.
> 
org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisModule.
> java?rev=642522&r1=642521&r2=642522&view=diff
> 
==============================================================================
> --- 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisModule.
> java (original)
> +++ 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisModule.
> java Sat Mar 29 02:25:45 2008
> @@ -83,6 +83,7 @@
>      public static final String VERSION_SNAPSHOT = "SNAPSHOT";
>      public static final String MODULE_SERVICE = "moduleService";
> 
> +    private PolicySubject policySubject = new PolicySubject();
> 
>      /**
>       * Constructor ModuleDescription.
> @@ -261,6 +262,10 @@
>              policyInclude = new PolicyInclude();
>          }
>          return policyInclude;
> +    }
> + 
> +    public PolicySubject getPolicySubject() {
> +       return policySubject;
>      }
> 
>      public String getModuleDescription() {
> 
> Modified: 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService.
> java
> URL: http://svn.apache.
> 
org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService.
> java?rev=642522&r1=642521&r2=642522&view=diff
> 
==============================================================================
> --- 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService.
> java (original)
> +++ 
> 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService.
> java Sat Mar 29 02:25:45 2008
> @@ -2239,7 +2239,7 @@
>        String endpointName = axisService.getEndpointName();
>        if ((endpointName == null || endpointName.length() == 0)
>              && axisService.getAxisConfiguration() != null) {
> -         Utils.addEndpointsToService(axisService);
> +         Utils.addEndpointsToService(axisService, axisService.
> getAxisConfiguration());
>        }
> 
>        return axisService;
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-cvs-help@ws.apache.org
> 






Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 
741598. 
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU