Added: 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/PolicySubject.java
URL: 
http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/PolicySubject.java?rev=633485&view=auto
==============================================================================
--- 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/PolicySubject.java
 (added)
+++ 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/PolicySubject.java
 Tue Mar  4 06:31:32 2008
@@ -0,0 +1,54 @@
+package org.apache.axis2.description;
+
+import java.util.HashMap;
+import java.util.Set;
+
+import org.apache.axiom.om.util.UUIDGenerator;
+import org.apache.neethi.Policy;
+import org.apache.neethi.PolicyComponent;
+import org.apache.neethi.PolicyReference;
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+public class PolicySubject {
+       private HashMap attachedPolicyComponents = new HashMap();
+       
+       public void attachPolicy(Policy policy) {
+               String key = policy.getName();
+               if (key == null) {
+                       key = policy.getId();
+                       if (key == null) {
+                               key = UUIDGenerator.getUUID();
+                               policy.setId(key);
+                       }
+               }
+               attachPolicyComponent(key, policy);
+       }
+       
+       public void attachPolicyReference(PolicyReference reference) {
+               attachedPolicyComponents.put(reference.getURI(), reference); 
+       }
+       
+       public void attachPolicyComponent(String key, PolicyComponent 
policyComponent) {
+               attachedPolicyComponents.put(key, policyComponent);
+       }
+       
+       public Set getAttachPolicyComponents() {
+               return attachedPolicyComponents.entrySet();
+       }
+}

Modified: 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java
URL: 
http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java?rev=633485&r1=633484&r2=633485&view=diff
==============================================================================
--- 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java
 (original)
+++ 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java
 Tue Mar  4 06:31:32 2008
@@ -27,6 +27,7 @@
 import org.apache.axis2.addressing.EndpointReference;
 import org.apache.axis2.addressing.EndpointReferenceHelper;
 import org.apache.axis2.addressing.wsdl.WSDL11ActionHelper;
+import org.apache.axis2.description.java2wsdl.Java2WSDLConstants;
 import org.apache.axis2.transport.http.HTTPConstants;
 import org.apache.axis2.transport.http.util.RESTUtil;
 import org.apache.axis2.util.LoggingControl;
@@ -681,7 +682,7 @@
 
                 axisBindingInMessage.setParent(axisBindingOperation);
                 axisBindingOperation
-                        .addChild(axisBindingInMessage.getDirection(), 
axisBindingInMessage);
+                        .addChild(WSDLConstants.MESSAGE_LABEL_IN_VALUE, 
axisBindingInMessage);
             }
 
             BindingOutput wsdl4jBindingOutput = 
wsdl4jBindingOperation.getBindingOutput();
@@ -722,7 +723,7 @@
 
                 axisBindingOutMessage.setParent(axisBindingOperation);
                 axisBindingOperation
-                        .addChild(axisBindingOutMessage.getDirection(), 
axisBindingOutMessage);
+                        .addChild(WSDLConstants.MESSAGE_LABEL_OUT_VALUE, 
axisBindingOutMessage);
             }
 
             Map bindingFaultsMap = wsdl4jBindingOperation.getBindingFaults();
@@ -2188,19 +2189,21 @@
                 UnknownExtensibilityElement unknown =
                         (UnknownExtensibilityElement) 
(wsdl4jExtensibilityElement);
                 QName type = unknown.getElementType();
-
+                
                 // <wsp:Policy>
                 if (WSDLConstants.WSDL11Constants.POLICY.equals(type)) {
                     if (isTraceEnabled) {
                         log.trace("copyExtensibleElements:: PolicyElement 
found " + unknown);
                     }
                     Policy policy = (Policy) 
PolicyUtil.getPolicyComponent(unknown.getElement());
-                    int attachmentScope =
-                            getPolicyAttachmentPoint(description, 
originOfExtensibilityElements);
-                    if (attachmentScope > -1) {
-                        description.getPolicyInclude().addPolicyElement(
-                                attachmentScope, policy);
-                    }
+                    description.getPolicySubject().attachPolicy(policy);
+                    
+//                    int attachmentScope =
+//                            getPolicyAttachmentPoint(description, 
originOfExtensibilityElements);
+//                    if (attachmentScope > -1) {
+//                        description.getPolicyInclude().addPolicyElement(
+//                                attachmentScope, policy);
+//                    }
                     // <wsp:PolicyReference>
                 } else if (WSDLConstants.WSDL11Constants.POLICY_REFERENCE
                         .equals(type)) {
@@ -2209,12 +2212,14 @@
                     }
                     PolicyReference policyReference = (PolicyReference) 
PolicyUtil
                             .getPolicyComponent(unknown.getElement());
-                    int attachmentScope =
-                            getPolicyAttachmentPoint(description, 
originOfExtensibilityElements);
-                    if (attachmentScope > -1) {
-                        description.getPolicyInclude().addPolicyRefElement(
-                                attachmentScope, policyReference);
-                    }
+                    
description.getPolicySubject().attachPolicyReference(policyReference);
+                    
+//                    int attachmentScope =
+//                            getPolicyAttachmentPoint(description, 
originOfExtensibilityElements);
+//                    if (attachmentScope > -1) {
+//                        description.getPolicyInclude().addPolicyRefElement(
+//                                attachmentScope, policyReference);
+//                    }
                 } else if (AddressingConstants.Final.WSAW_USING_ADDRESSING
                         .equals(type)
                            || 
AddressingConstants.Submission.WSAW_USING_ADDRESSING
@@ -2810,8 +2815,9 @@
                     policy = (Policy) 
PolicyUtil.getPolicyComponent(unknown.getElement());
                     String key;
                     if ((key = policy.getName()) != null || (key = 
policy.getId()) != null) {
-                        registry.register(key, policy);
-                        registry.register("#" + key, policy);
+                       axisService.registerPolicy(key, policy);
+//                        registry.register(key, policy);
+//                        registry.register("#" + key, policy);
                     }
 
                 }

Modified: 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/WSDL20ToAxisServiceBuilder.java
URL: 
http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/WSDL20ToAxisServiceBuilder.java?rev=633485&r1=633484&r2=633485&view=diff
==============================================================================
--- 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/WSDL20ToAxisServiceBuilder.java
 (original)
+++ 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/WSDL20ToAxisServiceBuilder.java
 Tue Mar  4 06:31:32 2008
@@ -898,7 +898,7 @@
                                                        
httpBindingMessageReferenceExtensions.getHttpHeaders()));
                 
axisBindingMessage.setProperty(WSDL2Constants.ATTR_WHTTP_CONTENT_ENCODING,
                                                
httpBindingMessageReferenceExtensions.getHttpContentEncoding());
-                axisBindingOperation.addChild(axisMessage.getDirection(), 
axisBindingMessage);
+                
axisBindingOperation.addChild(WSDLConstants.MESSAGE_LABEL_IN_VALUE, 
axisBindingMessage);
 
             }
 

Added: 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/PolicyLocator.java
URL: 
http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/PolicyLocator.java?rev=633485&view=auto
==============================================================================
--- 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/PolicyLocator.java
 (added)
+++ 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/PolicyLocator.java
 Tue Mar  4 06:31:32 2008
@@ -0,0 +1,83 @@
+package org.apache.axis2.util;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.dataretrieval.DRConstants;
+import org.apache.axis2.dataretrieval.Data;
+import org.apache.axis2.dataretrieval.DataRetrievalException;
+import org.apache.axis2.dataretrieval.DataRetrievalRequest;
+import org.apache.axis2.description.AxisService;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.neethi.Policy;
+import org.apache.neethi.PolicyEngine;
+import org.apache.neethi.PolicyRegistry;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+public class PolicyLocator implements PolicyRegistry {
+
+       private static final Log logger = 
LogFactory.getLog(PolicyLocator.class);
+
+       private AxisService service;
+
+       public PolicyLocator(AxisService service) {
+               this.service = service;
+       }
+
+       public Policy lookup(String identifier) {
+               Policy policy = service.lookupPolicy(identifier);
+               if (policy == null) {
+                       try {
+                               MessageContext msgContext = new 
MessageContext();
+                               msgContext.setAxisService(service);
+
+                               DataRetrievalRequest request = new 
DataRetrievalRequest();
+                               
request.putDialect(DRConstants.SPEC.DIALECT_TYPE_POLICY);
+                               request.putIdentifier(identifier);
+
+                               Data[] data = service.getData(request, 
msgContext);
+                               if (data.length != 0) {
+                                       OMElement element = (OMElement) 
data[0].getData();
+                                       
+                                       if (element != null) {
+                                               return 
PolicyEngine.getPolicy(element);
+                                       }
+                               }
+                               
+                       } catch (DataRetrievalException ex) {
+                               logger.error("" + ex);
+                       } catch (AxisFault ex) {
+                               logger.error("" + ex);
+                       }
+               }
+               return policy;
+       }
+
+       public void register(String identifier, Policy policy) {
+               throw new UnsupportedOperationException();
+
+       }
+
+       public void remove(String identifier) {
+               throw new UnsupportedOperationException();
+
+       }
+}

Modified: 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/PolicyUtil.java
URL: 
http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/PolicyUtil.java?rev=633485&r1=633484&r2=633485&view=diff
==============================================================================
--- 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/PolicyUtil.java
 (original)
+++ 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/PolicyUtil.java
 Tue Mar  4 06:31:32 2008
@@ -36,9 +36,6 @@
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamWriter;
 import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.InputStream;
@@ -225,6 +222,31 @@
         
         if (policy != null) {
             policy = (Policy) policy.normalize(new 
AxisPolicyLocator(description), false);            
+        }
+        
+        return policy;        
+    }
+    
+    public static Policy getMergedPolicy(List policies, AxisService service) {
+       
+        Policy policy = null;
+        
+        for (Iterator iterator = policies.iterator(); iterator.hasNext(); ) {
+            Object policyElement = iterator.next()
+            ;
+            if (policyElement instanceof Policy) {
+                policy = (policy == null) ? (Policy) policyElement : (Policy) 
policy.merge((Policy) policyElement);
+                
+            } else {
+                PolicyReference policyReference = (PolicyReference) 
policyElement;
+                Policy policy2 = (Policy) policyReference.normalize(new 
PolicyLocator(service), false);
+                policy = (policy == null) ? policy2 : (Policy) 
policy.merge(policy2);                 
+            }
+        }
+        
+        
+        if (policy != null) {
+            policy = (Policy) policy.normalize(new PolicyLocator(service), 
false);            
         }
         
         return policy;        



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to