Author: sanka
Date: Mon Jun  9 06:01:11 2008
New Revision: 18228
URL: http://wso2.org/svn/browse/wso2?view=rev&revision=18228

Log:


Added:
   
branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/util/BindingUtil.java
Modified:
   
branches/wsas/java/2.3/wsas/modules/admin/src/org/wso2/wsas/admin/service/SecurityScenarioConfigAdmin.java
   
branches/wsas/java/2.3/wsas/modules/admin/src/org/wso2/wsas/admin/service/ServiceAdmin.java
   
branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/PersistenceManager.java
   
branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dao/BindingDAO.java
   
branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dataobject/BindingDO.java
   
branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dataobject/BindingPolicyDO.java
   
branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dataobject/ServicePolicyDO.java

Modified: 
branches/wsas/java/2.3/wsas/modules/admin/src/org/wso2/wsas/admin/service/SecurityScenarioConfigAdmin.java
URL: 
http://wso2.org/svn/browse/wso2/branches/wsas/java/2.3/wsas/modules/admin/src/org/wso2/wsas/admin/service/SecurityScenarioConfigAdmin.java?rev=18228&r1=18227&r2=18228&view=diff
==============================================================================
--- 
branches/wsas/java/2.3/wsas/modules/admin/src/org/wso2/wsas/admin/service/SecurityScenarioConfigAdmin.java
  (original)
+++ 
branches/wsas/java/2.3/wsas/modules/admin/src/org/wso2/wsas/admin/service/SecurityScenarioConfigAdmin.java
  Mon Jun  9 06:01:11 2008
@@ -23,7 +23,6 @@
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.description.AxisModule;
 import org.apache.axis2.description.AxisService;
-import org.apache.axis2.description.PolicyInclude;
 import org.apache.axis2.engine.AxisConfiguration;
 import org.apache.commons.io.output.ByteArrayOutputStream;
 import org.apache.commons.logging.Log;
@@ -145,7 +144,7 @@
                 policy.addAssertion(rampartConfig);
             }
             AxisService axisService = getAxisConfig().getService(serviceName);
-            axisService.getPolicySubject().attachPolicy(policy);
+//            axisService.getPolicySubject().attachPolicy(policy);
             
             // When there is a transport binding sec policy assertion,
             // the service should be exposed only via HTTPS
@@ -201,9 +200,14 @@
             policy.serialize(xmlStreamWriter);
             xmlStreamWriter.flush();
             removeAllSecurityScenarioPolicies(serviceAdmin, serviceName);
-            serviceAdmin.setPolicy(serviceName,
-                                   ServiceIdentifierDO.EMPTY_SERVICE_VERSION,
-                                   baos.toString());
+//            serviceAdmin.setPolicy(serviceName,
+//                                   ServiceIdentifierDO.EMPTY_SERVICE_VERSION,
+//                                   baos.toString());
+            serviceAdmin.setSoap11BindingPolicy(serviceName,
+                                       
ServiceIdentifierDO.EMPTY_SERVICE_VERSION, baos.toString());
+            serviceAdmin.setSoap12BindingPolicy(serviceName,
+                                       
ServiceIdentifierDO.EMPTY_SERVICE_VERSION, baos.toString());
+            
         } catch (Exception e) {
             throw new AxisFault("Could not load security policy", e);
         }
@@ -279,11 +283,18 @@
                     throw new AxisFault("The policy ID in the policy file " +
                                         policyFile.getAbsolutePath() + " is 
null");
                 }
-                if (serviceAdmin.removePolicy(serviceName,
-                                              
ServiceIdentifierDO.EMPTY_SERVICE_VERSION,
-                                              idAtt.getAttributeValue())) {
-                    break;
+                
+                if (serviceAdmin.removeSoap11BindingPolicy(serviceName, 
ServiceIdentifierDO.EMPTY_SERVICE_VERSION, idAtt.getAttributeValue()) && 
serviceAdmin.removeSoap12BindingPolicy(serviceName, 
ServiceIdentifierDO.EMPTY_SERVICE_VERSION, idAtt.getAttributeValue())) {
+                       break;
                 }
+//                if (serviceAdmin.removePolicy(serviceName,
+//                                              
ServiceIdentifierDO.EMPTY_SERVICE_VERSION,
+//                                              idAtt.getAttributeValue())) {
+//                    break;
+//                }
+                
+                
+                
             } catch (Exception e) {
                 throw AxisFault.makeFault(e);
             }

Modified: 
branches/wsas/java/2.3/wsas/modules/admin/src/org/wso2/wsas/admin/service/ServiceAdmin.java
URL: 
http://wso2.org/svn/browse/wso2/branches/wsas/java/2.3/wsas/modules/admin/src/org/wso2/wsas/admin/service/ServiceAdmin.java?rev=18228&r1=18227&r2=18228&view=diff
==============================================================================
--- 
branches/wsas/java/2.3/wsas/modules/admin/src/org/wso2/wsas/admin/service/ServiceAdmin.java
 (original)
+++ 
branches/wsas/java/2.3/wsas/modules/admin/src/org/wso2/wsas/admin/service/ServiceAdmin.java
 Mon Jun  9 06:01:11 2008
@@ -105,9 +105,9 @@
 import org.wso2.wsas.persistence.dataobject.TransportDO;
 import org.wso2.wsas.persistence.exception.DuplicateEntityException;
 import org.wso2.wsas.persistence.exception.ServiceNotFoundException;
-import org.wso2.wsas.persistence.exception.ServicePolicyAlreadyExistsException;
 import org.wso2.wsas.persistence.exception.ServicePolicyNotFoundException;
 import org.wso2.wsas.transport.util.TransportSummary;
+import org.wso2.wsas.util.BindingUtil;
 import org.wso2.wsas.util.ParameterUtil;
 import org.wso2.wsas.util.PolicyUtil;
 
@@ -1032,7 +1032,7 @@
                }
 
                List axisBindings = new ArrayList();
-               
+
                for (Iterator iterator = 
axisService.getEndpoints().values().iterator(); iterator
                                .hasNext();) {
                        AxisEndpoint axisEndpoint = (AxisEndpoint) 
iterator.next();
@@ -1083,13 +1083,13 @@
                if (axisService == null) {
                        throw new AxisFault("Invalid service name " + 
serviceId);
                }
-               
+
                PolicySubject servicePolicySubject = 
axisService.getPolicySubject();
                if (servicePolicySubject.getAttachedPolicyComponent(policyId) 
!= null) {
                        servicePolicySubject.detachPolicyComponent(policyId);
                        isPolicyRemoved = true;
                }
-               
+
                ServiceDO serviceDO = pm.getService(serviceId, version);
                List policiesToBeRemoved = new ArrayList();
                for (Iterator policyIter = serviceDO.getPolicies().iterator(); 
policyIter
@@ -1107,13 +1107,79 @@
                        policies.remove(iterator.next());
                        isPolicyRemoved = true;
                }
-               
+
                if (isPolicyRemoved) {
-                       
+
                }
                pm.updateEntity(serviceDO);
                return isPolicyRemoved;
        }
+       
+       public boolean removeSoap11BindingPolicy(String serviceId, String 
version,
+                       String policyId) throws AxisFault {
+               return removeBindingPolicy(serviceId, version, policyId,
+                               BindingDO.SOAP11_BINDING);
+       }
+
+       public boolean removeSoap12BindingPolicy(String serviceId, String 
version,
+                       String policyId) throws AxisFault {
+               return removeBindingPolicy(serviceId, version, policyId,
+                               BindingDO.SOAP12_BINDING);
+       }
+
+       public boolean removeHttpBindingPolicy(String serviceId, String version,
+                       String policyId) throws AxisFault {
+               return removeBindingPolicy(serviceId, version, policyId,
+                               BindingDO.HTTP_BINDING);
+       }
+
+       private boolean removeBindingPolicy(String serviceId, String version,
+                       String policyId, int type) throws AxisFault {
+               AxisService axisService = getAxisConfig().getService(serviceId);
+               if (axisService == null) {
+                       throw new AxisFault("Invalid service name " + 
serviceId);
+               }
+
+               for (Iterator iterator = 
axisService.getEndpoints().values().iterator(); iterator
+                               .hasNext();) {
+                       AxisEndpoint endpoint = (AxisEndpoint) iterator.next();
+                       AxisBinding binding = endpoint.getBinding();
+
+                       if (BindingDO.SOAP11_BINDING == type
+                                       && 
BindingUtil.isSoap11Binding(binding)) {
+                               return removePolicy(serviceId, version, 
endpoint, policyId);
+                       } else if (BindingDO.SOAP12_BINDING == type
+                                       && 
BindingUtil.isSoap12Binding(binding)) {
+                               return removePolicy(serviceId, version, 
endpoint, policyId);
+                       } else if (BindingDO.HTTP_BINDING == type
+                                       && BindingUtil.isHttpBinding(binding)) {
+                               return removePolicy(serviceId, version, 
endpoint, policyId);
+                       }
+               }
+               return false;
+       }
+
+       private boolean removePolicy(String serviceId, String version,
+                       AxisEndpoint endpoint, String policyId) {
+               ServiceDO serviceDO = pm.getService(serviceId, version);
+               EndpointDO endpointDO = 
serviceDO.getEndpoint(endpoint.getName());
+               AxisBinding binding = endpoint.getBinding();
+               BindingDO bindingDO = endpointDO.getBinding();
+               if 
(binding.getPolicySubject().getAttachedPolicyComponent(policyId) != null) {
+                       for (Iterator iterator = 
bindingDO.getPolicies().iterator(); iterator
+                                       .hasNext();) {
+                               BindingPolicyDO bindingPolicyDO = 
(BindingPolicyDO) iterator
+                                               .next();
+                               if (bindingPolicyDO.getUuid().equals(policyId)) 
{
+                                       
bindingDO.getPolicies().remove(bindingPolicyDO);
+                                       pm.updateEntity(bindingDO);
+                                       
binding.getPolicySubject().detachPolicyComponent(policyId);
+                                       return true;
+                               }
+                       }
+               }
+               return false;
+       }
 
        public void setPolicy(String serviceId, String version, String 
policyString)
                        throws AxisFault {
@@ -1179,34 +1245,156 @@
                servicePolicyDO.setService(pm.getService(serviceId,
                                ServiceIdentifierDO.EMPTY_SERVICE_VERSION));
                servicePolicyDO.setPolicy(policyElement.toString());
-
-               // //
-
                if (servicePolicySubject.getAttachedPolicyComponent(idAttrVal) 
!= null) {
-                       servicePolicySubject.updatePolicy(servicePolicy);
-
                        try {
                                pm.updateServicePolicy(servicePolicyDO);
+                               
servicePolicySubject.updatePolicy(servicePolicy);
                        } catch (ServicePolicyNotFoundException e) {
                                throw AxisFault.makeFault(e);
                        }
-                       return;
 
+               } else if (updatePolicyIfInBindingHierarchy(axisService, 
serviceId,
+                               version, idAttrVal, policyElement, 
servicePolicy, pm)) {
+                       // just returning
+
+               } else {
+                       throw AxisFault
+                                       .makeFault(new 
ServicePolicyNotFoundException(
+                                                       "Can't find Policy with 
Id=["
+                                                                       + 
servicePolicy.getId() + "]"));
+                       // servicePolicySubject.attachPolicy(servicePolicy);
+                       // 
servicePolicyDO.setType(ServicePolicyDO.PORT_TYPE_POLICY);
+                       //
+                       // try {
+                       // pm.addServicePolicy(servicePolicyDO);
+                       // servicePolicySubject.attachPolicy(servicePolicy);
+                       // } catch (ServicePolicyAlreadyExistsException e) {
+                       // throw AxisFault.makeFault(e);
+                       // }
                }
+       }
 
-               if (updatePolicyIfInBindingHierarchy(axisService, serviceId, 
version, idAttrVal,
-                               policyElement, servicePolicy, pm)) {
-                       return;
+       public void setSoap11BindingPolicy(String serviceId, String version,
+                       String policy) throws AxisFault {
+               setBindingPolicy(serviceId, version, policy, 
BindingDO.SOAP11_BINDING);
+       }
+
+       public void setSoap12BindingPolicy(String serviceId, String version,
+                       String policy) throws AxisFault {
+               setBindingPolicy(serviceId, version, policy, 
BindingDO.SOAP12_BINDING);
+       }
+
+       public void setHttpBindingPolicy(String serviceId, String version,
+                       String policy) throws AxisFault {
+               setBindingPolicy(serviceId, version, policy, 
BindingDO.HTTP_BINDING);
+       }
+       
+       private void setBindingPolicy(String serviceId, String version,
+                       String policy, int type) throws AxisFault {
+               ServiceDO serviceDO = pm.getService(serviceId, version);
+               ByteArrayInputStream bais = new 
ByteArrayInputStream(policy.getBytes());
+               OMElement policyElement;
+               try {
+                       policyElement = new 
StAXOMBuilder(bais).getDocumentElement();
+                       policyElement.build();
+               } catch (Exception e) {
+                       throw new AxisFault(
+                                       "Cannot deserialize service policy. The 
policy may be invalid.",
+                                       e);
+               }
+               AxisService axisService = getAxisConfig().getService(serviceId);
+               if (axisService == null) {
+                       throw new AxisFault("Invalid service name " + 
serviceId);
+               }
+
+               if (!policyElement.getLocalName().equals(
+                               org.apache.neethi.Constants.ELEM_POLICY)) {
+                       policyElement = policyElement.getFirstElement();
                }
-               servicePolicySubject.attachPolicy(servicePolicy);
-               servicePolicyDO.setType(ServicePolicyDO.AXIS_SERVICE_POLICY);
 
+               OMAttribute attribute = policyElement.getAttribute(new QName(
+                               org.apache.neethi.Constants.URI_WSU_NS,
+                               org.apache.neethi.Constants.ATTR_ID));
+
+               if (attribute == null) {
+                       throw new AxisFault("ID Attribute not found in Policy 
element. "
+                                       + "Please verify that the policy XML is 
valid.");
+               }
+               String idAttrVal = attribute.getAttributeValue();
+               Policy servicePolicy;
                try {
-                       pm.addServicePolicy(servicePolicyDO);
-               } catch (ServicePolicyAlreadyExistsException e) {
-                       throw AxisFault.makeFault(e);
+                       servicePolicy = 
PolicyUtil.getPolicyFromOMElement(policyElement);
+
+               } catch (NullPointerException npe) {
+                       /*
+                        * Since 'policyElement.toString()' is the actual 
string which is
+                        * used to create the policy object it logged instead of
+                        * 'policyString'.
+                        */
+                       log.error(
+                                       "Error: When constructing Policy object 
from the string : "
+                                                       + 
policyElement.toString(), npe);
+                       throw new AxisFault("Error: Invalid policy", npe);
+
+               } catch (RuntimeException rte) {
+                       log.error(
+                                       "Error: When constructing Policy object 
from the string : "
+                                                       + 
policyElement.toString(), rte);
+                       throw new AxisFault("Error: Invalid policy", rte);
                }
                
+
+               Map map = new HashMap();
+               for (Iterator iterator = axisService.getEndpoints().values()
+                               .iterator(); iterator.hasNext();) {
+                       AxisEndpoint endpoint = (AxisEndpoint) iterator.next();
+                       AxisBinding binding = endpoint.getBinding();
+                       if (!map.values().contains(binding)){
+                               map.put(endpoint.getName(), binding);
+                       }
+               }
+               
+               for (Iterator iterator = map.keySet().iterator(); 
iterator.hasNext();) {
+                       String endpointName = (String) iterator.next();
+                       AxisBinding binding = (AxisBinding) 
map.get(endpointName);
+                       if (BindingDO.SOAP11_BINDING == type
+                                       && 
BindingUtil.isSoap11Binding(binding)) {
+                               setBindingPolicy(serviceDO, endpointName, 
binding, idAttrVal,
+                                               servicePolicy, 
policyElement.toString());
+                               break;
+                       } else if (BindingDO.SOAP12_BINDING == type
+                                       && 
BindingUtil.isSoap12Binding(binding)) {
+                               setBindingPolicy(serviceDO, endpointName, 
binding, idAttrVal,
+                                               servicePolicy, 
policyElement.toString());
+                               break;
+                       } else if (BindingDO.HTTP_BINDING == type
+                                       && BindingUtil.isHttpBinding(binding)) {
+                               setBindingPolicy(serviceDO, endpointName, 
binding, idAttrVal,
+                                               servicePolicy, 
policyElement.toString());
+                               break;
+                       }
+               }       
+       }
+       
+       private void setBindingPolicy(ServiceDO serviceDO, String endpoint, 
AxisBinding binding, String policyId, Policy bindingPolicy, String policyStr) {
+               EndpointDO endpointDO = serviceDO.getEndpoint(endpoint);
+               BindingDO bindingDO = endpointDO.getBinding();
+               
+               BindingPolicyDO bindingPolicyDO = new BindingPolicyDO();
+               bindingPolicyDO.setBinding(bindingDO);
+               bindingPolicyDO.setUuid(policyId);
+               bindingPolicyDO.setPolicy(policyStr);
+               
+               if 
(binding.getPolicySubject().getAttachedPolicyComponent(policyId) != null) {
+                       // update
+                       pm.updateBindingPolicy(bindingPolicyDO);
+                       binding.getPolicySubject().updatePolicy(bindingPolicy);
+               } else {
+                       // add
+                       pm.addBindingPolicy(binding.getName().getLocalPart(),
+                                       bindingPolicyDO);
+                       binding.getPolicySubject().attachPolicy(bindingPolicy);
+               }
        }
 
        public String[] getServiceUsers(String serviceName) throws AxisFault {
@@ -2173,11 +2361,13 @@
                return serviceGroupEle;
        }
 
-       private boolean updatePolicyIfInBindingHierarchy(AxisService service, 
String serviceId,
-                       String version, String policyId, OMElement 
policyElement,
-                       Policy policy, PersistenceManager pm) {
+       private boolean updatePolicyIfInBindingHierarchy(AxisService service,
+                       String serviceId, String version, String policyId,
+                       OMElement policyElement, Policy policy, 
PersistenceManager pm) {
+
                ServiceDO serviceDO = pm.getService(serviceId, version);
                Map bindingsMap = new HashMap();
+
                for (Iterator iterator = 
service.getEndpoints().values().iterator(); iterator
                                .hasNext();) {
                        AxisEndpoint endpoint = (AxisEndpoint) iterator.next();
@@ -2190,11 +2380,11 @@
                                endpointPolicyDO.setUuid(policyId);
                                
endpointPolicyDO.setPolicy(policyElement.toString());
                                pm.updateEndpointPolicy(endpointPolicyDO);
-                               
                                return true;
                        }
                        bindingsMap.put(endpoint.getBinding(), 
endpointDO.getBinding());
                }
+
                for (Iterator iterator = bindingsMap.keySet().iterator(); 
iterator
                                .hasNext();) {
                        AxisBinding binding = (AxisBinding) iterator.next();
@@ -2202,8 +2392,6 @@
                        if 
(binding.getPolicySubject().getAttachedPolicyComponent(policyId) != null) {
                                // Updating the Policy in the AxisBinding object
                                binding.getPolicySubject().updatePolicy(policy);
-
-                               // 
                                BindingPolicyDO bindingPolicyDO = new 
BindingPolicyDO();
                                bindingPolicyDO.setBinding(bindingDO);
                                bindingPolicyDO.setUuid(policyId);
@@ -2214,5 +2402,5 @@
                }
                return false;
        }
-       
+
 }

Modified: 
branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/PersistenceManager.java
URL: 
http://wso2.org/svn/browse/wso2/branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/PersistenceManager.java?rev=18228&r1=18227&r2=18228&view=diff
==============================================================================
--- 
branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/PersistenceManager.java
      (original)
+++ 
branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/PersistenceManager.java
      Mon Jun  9 06:01:11 2008
@@ -422,6 +422,10 @@
                new BindingDAO(hbConfig).updatePolicy(bindingPolicy);
        }
        
+       public void addBindingPolicy(String bindingName, BindingPolicyDO 
bindingPolicyDO) {
+               new BindingDAO(hbConfig).addPolicy(bindingName, 
bindingPolicyDO);
+       }
+       
        public void updateModulePolicy(ModulePolicyDO modulePolicy)
                        throws ModulePolicyNotFoundException {
 

Modified: 
branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dao/BindingDAO.java
URL: 
http://wso2.org/svn/browse/wso2/branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dao/BindingDAO.java?rev=18228&r1=18227&r2=18228&view=diff
==============================================================================
--- 
branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dao/BindingDAO.java
  (original)
+++ 
branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dao/BindingDAO.java
  Mon Jun  9 06:01:11 2008
@@ -7,9 +7,12 @@
 import org.hibernate.Criteria;
 import org.hibernate.Session;
 import org.hibernate.Transaction;
+import org.hibernate.criterion.Expression;
 import org.hibernate.criterion.Restrictions;
 import org.wso2.wsas.persistence.dataobject.BindingDO;
 import org.wso2.wsas.persistence.dataobject.BindingPolicyDO;
+import org.wso2.wsas.persistence.dataobject.ServiceDO;
+import org.wso2.wsas.persistence.dataobject.ServicePolicyDO;
 import org.wso2.wsas.util.HibernateConfig;
 
 public class BindingDAO extends BaseDAO {
@@ -34,28 +37,55 @@
                        throw new RuntimeException(msg, e);
                }
        }
-       
+
        public void updatePolicy(BindingPolicyDO bindingPolicy) {
-        Session session = hbConfig.currentSession();
-        Transaction tx = session.beginTransaction();
-        try {
-            Criteria criteria = session.createCriteria(BindingPolicyDO.class, 
"policy")
-                    .add(Restrictions.eq("policy.uuid", 
bindingPolicy.getUuid()));
-            BindingPolicyDO bindingPolicyDO =
-                    (BindingPolicyDO) criteria.uniqueResult();
-
-            if (bindingPolicyDO == null) {
-                session.save(bindingPolicy);
-            } else {
-                bindingPolicyDO.setPolicy(bindingPolicy.getPolicy());
-                session.update(bindingPolicyDO);
-            }
-            tx.commit();
-        } catch (Throwable e) {
-            tx.rollback();
-            String msg = "Unable to update binding policy";
-            log.error(msg, e);
-            throw new RuntimeException(msg, e);
-        }
-    }
+               Session session = hbConfig.currentSession();
+               Transaction tx = session.beginTransaction();
+               try {
+                       Criteria criteria = 
session.createCriteria(BindingPolicyDO.class,
+                                       "policy").add(
+                                       Restrictions.eq("policy.uuid", 
bindingPolicy.getUuid()));
+                       BindingPolicyDO bindingPolicyDO = (BindingPolicyDO) 
criteria
+                                       .uniqueResult();
+
+                       if (bindingPolicyDO == null) {
+                               session.save(bindingPolicy);
+                       } else {
+                               
bindingPolicyDO.setPolicy(bindingPolicy.getPolicy());
+                               session.update(bindingPolicyDO);
+                       }
+                       tx.commit();
+               } catch (Throwable e) {
+                       tx.rollback();
+                       String msg = "Unable to update binding policy";
+                       log.error(msg, e);
+                       throw new RuntimeException(msg, e);
+               }
+       }
+
+       public void addPolicy(String bindingName,
+                       BindingPolicyDO policy) {
+               Session session = hbConfig.currentSession();
+               Transaction tx = session.beginTransaction();
+               BindingDO bindingDO;
+               try {
+                       bindingDO = getBinding(bindingName, session);
+                       if (!bindingDO.getPolicies().contains(policy)) {
+                               bindingDO.addPolicy(policy);
+                               session.update(bindingDO);
+                       }
+                       tx.commit();
+               } catch (Throwable e) {
+                       tx.rollback();
+                       String msg = "Unable to addPolicy";
+                       log.error(msg, e);
+                       throw new RuntimeException(msg, e);
+               }
+       }
+
+       private BindingDO getBinding(String name, Session session) {
+               Criteria criteria = session.createCriteria(BindingDO.class);
+               criteria.add(Expression.eq("name", name.trim()));
+               return (BindingDO) criteria.uniqueResult();
+       }
 }

Modified: 
branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dataobject/BindingDO.java
URL: 
http://wso2.org/svn/browse/wso2/branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dataobject/BindingDO.java?rev=18228&r1=18227&r2=18228&view=diff
==============================================================================
--- 
branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dataobject/BindingDO.java
    (original)
+++ 
branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dataobject/BindingDO.java
    Mon Jun  9 06:01:11 2008
@@ -5,6 +5,10 @@
 
 public class BindingDO extends AbstractDataObject {
 
+       public static final int SOAP11_BINDING = 101;
+       public static final int SOAP12_BINDING = 105;
+       public static final int HTTP_BINDING = 109;
+       
        private Set bindingOperations = new HashSet();
        private Set policies = new HashSet();
        String name;
@@ -21,6 +25,9 @@
        public void setPolicies(Set policies) {
                this.policies = policies;
        }
+       public void addPolicy(BindingPolicyDO bindingPolicy) {
+               this.policies.add(bindingPolicy);
+       }
        public String getName() {
                return name;
        }

Modified: 
branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dataobject/BindingPolicyDO.java
URL: 
http://wso2.org/svn/browse/wso2/branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dataobject/BindingPolicyDO.java?rev=18228&r1=18227&r2=18228&view=diff
==============================================================================
--- 
branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dataobject/BindingPolicyDO.java
      (original)
+++ 
branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dataobject/BindingPolicyDO.java
      Mon Jun  9 06:01:11 2008
@@ -1,6 +1,7 @@
 package org.wso2.wsas.persistence.dataobject;
 
 public class BindingPolicyDO extends AbstractDataObject {
+       
        private String uuid;
        private String policy;
        private BindingDO binding;

Modified: 
branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dataobject/ServicePolicyDO.java
URL: 
http://wso2.org/svn/browse/wso2/branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dataobject/ServicePolicyDO.java?rev=18228&r1=18227&r2=18228&view=diff
==============================================================================
--- 
branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dataobject/ServicePolicyDO.java
      (original)
+++ 
branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dataobject/ServicePolicyDO.java
      Mon Jun  9 06:01:11 2008
@@ -67,6 +67,8 @@
     public static final int SOAP12_BINDING_IN_MSG = 107;
     public static final int SOAP12_BINDING_OUT_MSG = 108;
     
+    public static final int HTTP_BINDING = 109;
+    
     private String policy;
     private String uuid;
     private int type;

Added: 
branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/util/BindingUtil.java
URL: 
http://wso2.org/svn/browse/wso2/branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/util/BindingUtil.java?pathrev=18228
==============================================================================
--- (empty file)
+++ 
branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/util/BindingUtil.java
    Mon Jun  9 06:01:11 2008
@@ -0,0 +1,43 @@
+package org.wso2.wsas.util;
+
+import org.apache.axiom.soap.SOAP11Constants;
+import org.apache.axiom.soap.SOAP12Constants;
+import org.apache.axis2.description.AxisBinding;
+import org.apache.axis2.description.WSDL2Constants;
+import org.apache.axis2.description.java2wsdl.Java2WSDLConstants;
+
+public class BindingUtil {
+       public static boolean isSoap11Binding(AxisBinding binding) {
+               String type = binding.getType();
+               if (Java2WSDLConstants.TRANSPORT_URI.equals(type)
+                               || WSDL2Constants.URI_WSDL2_SOAP.equals(type)) {
+                       String v = (String) binding
+                                       
.getProperty(WSDL2Constants.ATTR_WSOAP_VERSION);
+                       if 
(SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals(v)) {
+                               return true;
+                       }
+               }
+               return false;
+       }
+       
+       public static boolean isSoap12Binding(AxisBinding binding) {
+               String type = binding.getType();
+               if (Java2WSDLConstants.TRANSPORT_URI.equals(type)
+                               || WSDL2Constants.URI_WSDL2_SOAP.equals(type)) {
+                       String v = (String) binding
+                                       
.getProperty(WSDL2Constants.ATTR_WSOAP_VERSION);
+                       if 
(SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals(v)) {
+                               return true;
+                       }
+               }
+               return false;
+       }
+       
+       public static boolean isHttpBinding(AxisBinding binding) {
+               String type = binding.getType();
+               if (WSDL2Constants.URI_WSDL2_HTTP.equals(type)) {
+                       return true;
+               }
+               return false;
+       }
+}

_______________________________________________
Wsas-java-dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/wsas-java-dev

Reply via email to