Author: sanka
Date: Mon Jun  2 02:16:20 2008
New Revision: 17766
URL: http://wso2.org/svn/browse/wso2?view=rev&revision=17766

Log:


Added:
   
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/dao/BindingMessageDAO.java
   
branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dao/BindingOperationDAO.java
   
branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dao/EndpointDAO.java
Modified:
   
branches/wsas/java/2.3/wsas/modules/admin/src/org/wso2/wsas/admin/service/ModuleAdmin.java
   branches/wsas/java/2.3/wsas/modules/core/conf/hibernate/wso2wsas.hbm.xml
   
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/ServiceDAO.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/EndpointDO.java
   
branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dataobject/MessageDO.java
   
branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dataobject/OperationDO.java
   
branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dataobject/ServiceDO.java

Modified: 
branches/wsas/java/2.3/wsas/modules/admin/src/org/wso2/wsas/admin/service/ModuleAdmin.java
URL: 
http://wso2.org/svn/browse/wso2/branches/wsas/java/2.3/wsas/modules/admin/src/org/wso2/wsas/admin/service/ModuleAdmin.java?rev=17766&r1=17765&r2=17766&view=diff
==============================================================================
--- 
branches/wsas/java/2.3/wsas/modules/admin/src/org/wso2/wsas/admin/service/ModuleAdmin.java
  (original)
+++ 
branches/wsas/java/2.3/wsas/modules/admin/src/org/wso2/wsas/admin/service/ModuleAdmin.java
  Mon Jun  2 02:16:20 2008
@@ -16,6 +16,16 @@
 
 package org.wso2.wsas.admin.service;
 
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Properties;
+
+import javax.xml.namespace.QName;
+
 import org.apache.axiom.om.OMAttribute;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.impl.builder.StAXOMBuilder;
@@ -25,14 +35,13 @@
 import org.apache.axis2.description.AxisService;
 import org.apache.axis2.description.AxisServiceGroup;
 import org.apache.axis2.description.Parameter;
-import org.apache.axis2.description.PolicyInclude;
+import org.apache.axis2.description.PolicySubject;
 import org.apache.axis2.engine.AxisConfiguration;
 import org.apache.axis2.util.Utils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.neethi.Constants;
 import org.apache.neethi.Policy;
-import org.apache.neethi.PolicyRegistry;
 import org.apache.rahas.impl.SCTIssuerConfig;
 import org.apache.rahas.impl.TokenCancelerConfig;
 import org.wso2.utils.AbstractAdmin;
@@ -61,15 +70,6 @@
 import org.wso2.wsas.util.SystemFilter;
 import org.wso2.wsas.util.WsasUtils;
 
-import javax.xml.namespace.QName;
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Properties;
-
 
 /**
  * Admin service to manage operations related to modules
@@ -1077,14 +1077,14 @@
     public OMElement getPolicy(String moduleId,
                                String moduleVersion) throws AxisFault {
         AxisModule module = getAxisModule(moduleId, moduleVersion);
-
-        PolicyInclude modulePolicyInclude = module.getPolicyInclude();
-        Policy modulePolicy = modulePolicyInclude.getPolicy();
-
+        PolicySubject policySubject = module.getPolicySubject();
+               List policies = new ArrayList(policySubject
+                               .getAttachedPolicyComponents());
+               Policy modulePolicy = 
org.apache.axis2.util.PolicyUtil.getMergedPolicy(
+                               policies, null);                
         if (modulePolicy == null) {
             return PolicyUtil.getEmptyPolicyAsOMElement();
         }
-
         return PolicyUtil.getPolicyAsOMElement(modulePolicy);
     }
 
@@ -1138,7 +1138,8 @@
             throw new AxisFault("Module Policy not found in DB", e);
         }
 
-        axisModule.getPolicyInclude().updatePolicy(modulePolicy);
+//        axisModule.getPolicyInclude().updatePolicy(modulePolicy);
+        axisModule.getPolicySubject().updatePolicy(modulePolicy);
     }
 
     /**
@@ -1275,17 +1276,14 @@
         }
 
         ArrayList policyDataArray = new ArrayList();
-
-        PolicyInclude policyInclude = axisModule.getPolicyInclude();
-        PolicyRegistry registry = policyInclude.getPolicyRegistry();
-
+        PolicySubject policySubject = axisModule.getPolicySubject();
         // module.xml
-        List policyList = 
policyInclude.getPolicyElements(PolicyInclude.AXIS_MODULE_POLICY);
-
+        List policyList = new 
ArrayList(policySubject.getAttachedPolicyComponents());
+        
         if (!policyList.isEmpty()) {
             PolicyData policyData = new PolicyData();
             policyData.setWrapper("Policies in module.xml");
-            
policyData.setPolycies(PolicyUtil.processPolicyElements(policyList.iterator(), 
registry));
+            
policyData.setPolycies(PolicyUtil.processPolicyElements(policyList.iterator(), 
null));
             policyDataArray.add(policyData);
         }
 

Modified: 
branches/wsas/java/2.3/wsas/modules/core/conf/hibernate/wso2wsas.hbm.xml
URL: 
http://wso2.org/svn/browse/wso2/branches/wsas/java/2.3/wsas/modules/core/conf/hibernate/wso2wsas.hbm.xml?rev=17766&r1=17765&r2=17766&view=diff
==============================================================================
--- branches/wsas/java/2.3/wsas/modules/core/conf/hibernate/wso2wsas.hbm.xml    
(original)
+++ branches/wsas/java/2.3/wsas/modules/core/conf/hibernate/wso2wsas.hbm.xml    
Mon Jun  2 02:16:20 2008
@@ -163,10 +163,10 @@
             <generator class="native"/>
         </id>
         <property name="lastUpdatedTime" type="timestamp" 
column="c_last_updated" not-null="true"/>
-
         <property name="type" column="c_msg_type" not-null="true"/>
         <property name="xml" column="c_xml_string" type="text" not-null="true" 
length="100000000"/>
-        <property name="sequence" column="c_sequence_num" not-null="true"/>
+        <property name="sequence" column="c_sequence_num" not-null="true"/>
+        <property name="name" column="c_name" not-null="true"/>
         <many-to-one name="operationDO" column="c_operation_id" 
not-null="true"/>
     </class>
 
@@ -612,7 +612,8 @@
        <id name="id" column="c_id">
                <generator class="native" />
        </id>
-       <one-to-one name="service" foreign-key="c_service_id" />
+       <property name="name" column="c_name" not-null="true"/>
+       <many-to-one name="service" foreign-key="c_service_id" />
        <one-to-one name="binding" foreign-key='c_binding_id"' />
     </class>
     <class name="org.wso2.wsas.persistence.dataobject.BindingDO"
@@ -620,8 +621,8 @@
        <id name="id" column="c_id">
                <generator class="native" />
        </id>
+       <property name="name" column="c_name" not-null="true"/>
        <many-to-one name="endpoint" column="c_endpoint_id" />
-
        <set name="bindingOperations" inverse="true"
                cascade="all-delete-orphan" lazy="false">
                <key column="c_binding_id" on-delete="cascade" />
@@ -681,7 +682,7 @@
        <property name="policy" column="c_policy" not-null="true"
                type="text" length="1000000" />
        <many-to-one name="bindingOperation"
-               column="c_binding_operation_policy_id" not-null="true" />
+               column="c_binding_operation_id" not-null="true" />
     </class>
     <class name="org.wso2.wsas.persistence.dataobject.BindingMessageDO"
        table="binding_message_t">

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=17766&r1=17765&r2=17766&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  2 02:16:20 2008
@@ -16,12 +16,31 @@
 
 package org.wso2.wsas.persistence;
 
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLOutputFactory;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamWriter;
+
 import org.apache.axiom.om.impl.builder.StAXOMBuilder;
 import org.apache.axiom.soap.SOAP11Constants;
 import org.apache.axiom.soap.SOAP12Constants;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.Constants;
 import org.apache.axis2.description.AxisBinding;
+import org.apache.axis2.description.AxisBindingMessage;
+import org.apache.axis2.description.AxisBindingOperation;
 import org.apache.axis2.description.AxisEndpoint;
 import org.apache.axis2.description.AxisModule;
 import org.apache.axis2.description.AxisOperation;
@@ -41,7 +60,6 @@
 import org.apache.neethi.Policy;
 import org.apache.neethi.PolicyEngine;
 import org.apache.neethi.PolicyReference;
-import org.apache.neethi.PolicyRegistry;
 import org.hibernate.Session;
 import org.hibernate.Transaction;
 import org.wso2.utils.ServerConfigurator;
@@ -65,8 +83,12 @@
 import org.wso2.wsas.persistence.dao.UserRoleDAO;
 import org.wso2.wsas.persistence.dataobject.AbstractDataObject;
 import org.wso2.wsas.persistence.dataobject.AppenderDO;
+import org.wso2.wsas.persistence.dataobject.BindingDO;
+import org.wso2.wsas.persistence.dataobject.BindingMessageDO;
+import org.wso2.wsas.persistence.dataobject.BindingOperationDO;
 import org.wso2.wsas.persistence.dataobject.EJBAppServerDO;
 import org.wso2.wsas.persistence.dataobject.EJBProviderDO;
+import org.wso2.wsas.persistence.dataobject.EndpointDO;
 import org.wso2.wsas.persistence.dataobject.KeyStoreDO;
 import org.wso2.wsas.persistence.dataobject.LoggerDO;
 import org.wso2.wsas.persistence.dataobject.MessageDO;
@@ -113,17 +135,6 @@
 import org.wso2.wsas.util.ParameterUtil;
 import org.wso2.wsas.util.WsasUtils;
 
-import javax.xml.namespace.QName;
-import javax.xml.stream.XMLOutputFactory;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamWriter;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.Iterator;
-import java.util.List;
-
 /**
  * Handles all the persistence related stuff for WSO2 WSAS
  */
@@ -698,6 +709,78 @@
 
                // Add the Service Group
                serviceDO.setServiceGroup(serviceGroupDO);
+               
+               /////////////////// Add Service Binding Information 
//////////////
+               Collection endpoints = axisService.getEndpoints().values();
+               Set endpointDOs = new HashSet();
+               
+               Map bindingDOMap = new HashMap();
+
+               if (!endpoints.isEmpty()) {
+                       for (Iterator iterator = endpoints.iterator(); 
iterator.hasNext();) {
+                               AxisEndpoint endpoint = (AxisEndpoint) 
iterator.next();
+                               EndpointDO endpointDO = new EndpointDO();
+                               endpointDO.setName(endpoint.getName());
+                               endpointDO.setService(serviceDO);
+
+                               AxisBinding binding = endpoint.getBinding();
+                               QName name = binding.getName();
+                               if (bindingDOMap.containsKey(name)) {
+                                       BindingDO bindingDO = (BindingDO) 
bindingDOMap.get(name);
+                                       endpointDO.setBinding(bindingDO);
+
+                               } else {
+                                       BindingDO bindingDO = new BindingDO();
+                                       bindingDO.setEndpoint(endpointDO);
+                                       
bindingDO.setName(binding.getName().toString());
+
+                                       Set bindingOpDOs = new HashSet();
+                                       for (Iterator bindingOps = 
binding.getChildren(); bindingOps
+                                                       .hasNext();) {
+                                               AxisBindingOperation bindingOp 
= (AxisBindingOperation) bindingOps
+                                                               .next();
+                                               BindingOperationDO bindingOpDO 
= new BindingOperationDO();
+                                               
bindingOpDO.setBinding(bindingDO);
+                                               AxisOperation operation = 
bindingOp.getAxisOperation();
+                                               OperationDO operationDO = 
serviceDO
+                                                               
.getOperation(operation.getName()
+                                                                               
.getLocalPart())[0];
+                                               
bindingOpDO.setOperation(operationDO);
+
+                                               Set bindingMsgDOs = new 
HashSet();
+                                               
+                                               for (Iterator bindingMsges = 
bindingOp.getChildren(); bindingMsges
+                                                               .hasNext();) {
+                                                       AxisBindingMessage 
bindingMsg = (AxisBindingMessage) bindingMsges
+                                                                       .next();
+                                                       BindingMessageDO 
bindingMsgDO = new BindingMessageDO();
+                                                       
bindingMsgDO.setBindingOperation(bindingOpDO);
+                                                       MessageDO messageDO = 
operationDO
+                                                                       
.getMessage(bindingMsg.getAxisMessage()
+                                                                               
        .getName());
+                                                       
bindingMsgDO.setMessage(messageDO);
+                                                       // FIXME set policies
+                                                       
+                                                       
bindingMsgDOs.add(bindingMsgDO);
+                                               }
+                                               
+                                               
bindingOpDO.setBindingMessages(bindingMsgDOs);
+                                               // FIXME setPolicies
+                                               
+                                       }
+                                       
bindingDO.setBindingOperations(bindingOpDOs);
+                                       // FIXME set policies
+
+                                       bindingDOMap.put(binding.getName(), 
bindingDO);
+                               }
+                               endpointDOs.add(endpointDO);
+                       }
+               }
+               serviceDO.setEndpoints(endpointDOs);
+               ///////////////////////////////////////////////////
+               
+               
+
 
                try {
                        serviceDO.setLastUpdatedTime(new Date());
@@ -862,10 +945,11 @@
         */
        private ModulePolicyDO[] getModulePolicies(AxisModule axisModule)
                        throws XMLStreamException {
-               PolicyInclude include = axisModule.getPolicyInclude();
+//             PolicyInclude include = axisModule.getPolicyInclude();
+               PolicySubject policySubject = axisModule.getPolicySubject();
                List modulePolicyDOs = new ArrayList();
 
-               addModulePolicy(include, modulePolicyDOs,
+               addModulePolicy(policySubject, modulePolicyDOs,
                                PolicyInclude.AXIS_MODULE_POLICY);
                return (ModulePolicyDO[]) modulePolicyDOs
                                .toArray(new 
ModulePolicyDO[modulePolicyDOs.size()]);
@@ -910,9 +994,9 @@
                }
        }
 
-       private void addModulePolicy(PolicyInclude include, List 
modulePolicyDOs,
+       private void addModulePolicy(PolicySubject policySubject, List 
modulePolicyDOs,
                        int policyType) throws XMLStreamException {
-               for (Iterator iterator = include.getPolicyElements(policyType)
+               for (Iterator iterator = 
policySubject.getAttachedPolicyComponents()
                                .iterator(); iterator.hasNext();) {
 
                        ModulePolicyDO modulePolicyDO = new ModulePolicyDO();
@@ -923,15 +1007,9 @@
                        if (o instanceof Policy) {
                                policy = (Policy) o;
                        } else if (o instanceof PolicyReference) {
-                               PolicyReference pRef = (PolicyReference) o;
-                               PolicyRegistry policyRegistry = 
include.getPolicyRegistry();
-
-                               String key = pRef.getURI();
-                               if (key.startsWith("#")) {
-                                       key = key.substring(key.indexOf("#") + 
1);
-                               }
-
-                               policy = policyRegistry.lookup(key);
+                               throw new IllegalArgumentException(
+                                               "Invalid Policy Item found in 
collection. "
+                                                               + " 
<wsp:PolicyReference ../> not supported in module.xml");
                        } else {
                                throw new IllegalArgumentException(
                                                "Invalid Policy Item found in 
collection. "
@@ -1413,8 +1491,9 @@
                        // Load policies from DB into AxisModule. All other 
policies
                        // contained within
                        // axisModule will be rendered invalid by this time
-                       PolicyInclude policyInclude = 
axisModule.getPolicyInclude();
-                       policyInclude.removeAllPolicyElements();
+                       PolicySubject policySubject = 
axisModule.getPolicySubject();
+
+                       policySubject.clear();
                        for (Iterator iter = moduleDO.getPolicies().iterator(); 
iter
                                        .hasNext();) {
                                ModulePolicyDO policyDO = (ModulePolicyDO) 
iter.next();
@@ -1422,7 +1501,7 @@
                                Policy policy = PolicyEngine
                                                .getPolicy(new 
ByteArrayInputStream(policyStr
                                                                .getBytes()));
-                               
policyInclude.addPolicyElement(policyDO.getType(), policy);
+                               policySubject.attachPolicy(policy);
                        }
 
                        tx.commit();

Added: 
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?pathrev=17766
==============================================================================
--- (empty file)
+++ 
branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dao/BindingDAO.java
  Mon Jun  2 02:16:20 2008
@@ -0,0 +1,34 @@
+package org.wso2.wsas.persistence.dao;
+
+import java.util.Date;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.hibernate.Session;
+import org.hibernate.Transaction;
+import org.wso2.wsas.persistence.dataobject.BindingDO;
+import org.wso2.wsas.util.HibernateConfig;
+
+public class BindingDAO extends BaseDAO {
+       
+       private static final Log log = LogFactory.getLog(BindingDAO.class);
+       
+       public BindingDAO(HibernateConfig hbConfig) {
+               super(hbConfig);
+       }
+       
+       public void updateBinding(BindingDO binding) {
+               Session session = hbConfig.currentSession();
+               Transaction tx = session.beginTransaction();
+               try {
+                       binding.setLastUpdatedTime(new Date());
+                       session.merge(binding);
+                       tx.commit();
+               } catch (Throwable e) {
+                       tx.rollback();
+                       String msg = "Unable to update binding";
+                       log.error(msg, e);
+                       throw new RuntimeException(msg, e);
+               }
+       }
+}

Added: 
branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dao/BindingMessageDAO.java
URL: 
http://wso2.org/svn/browse/wso2/branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dao/BindingMessageDAO.java?pathrev=17766
==============================================================================
--- (empty file)
+++ 
branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dao/BindingMessageDAO.java
   Mon Jun  2 02:16:20 2008
@@ -0,0 +1,33 @@
+package org.wso2.wsas.persistence.dao;
+
+import java.util.Date;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.hibernate.Session;
+import org.hibernate.Transaction;
+import org.wso2.wsas.persistence.dataobject.BindingMessageDO;
+import org.wso2.wsas.util.HibernateConfig;
+
+public class BindingMessageDAO extends BaseDAO {
+       private static final Log log = 
LogFactory.getLog(BindingMessageDAO.class);
+
+       public BindingMessageDAO(HibernateConfig hbConfig) {
+               super(hbConfig);
+       }
+
+       public void updateBindingMessage(BindingMessageDO bindingMessage) {
+               Session session = hbConfig.currentSession();
+               Transaction tx = session.beginTransaction();
+               try {
+                       bindingMessage.setLastUpdatedTime(new Date());
+                       session.merge(bindingMessage);
+                       tx.commit();
+               } catch (Throwable e) {
+                       tx.rollback();
+                       String m = "Unable to update BindingMessage";
+                       log.error(m, e);
+                       throw new RuntimeException(m, e);
+               }
+       }
+}

Added: 
branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dao/BindingOperationDAO.java
URL: 
http://wso2.org/svn/browse/wso2/branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dao/BindingOperationDAO.java?pathrev=17766
==============================================================================
--- (empty file)
+++ 
branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dao/BindingOperationDAO.java
 Mon Jun  2 02:16:20 2008
@@ -0,0 +1,35 @@
+package org.wso2.wsas.persistence.dao;
+
+import java.util.Date;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.hibernate.Session;
+import org.hibernate.Transaction;
+import org.wso2.wsas.persistence.dataobject.BindingOperationDO;
+import org.wso2.wsas.util.HibernateConfig;
+
+public class BindingOperationDAO extends BaseDAO {
+
+       private static final Log log = 
LogFactory.getLog(BindingOperationDAO.class);
+
+       public BindingOperationDAO(HibernateConfig hbConfig) {
+               super(hbConfig);
+       }
+
+       public void updateBindingOperation(BindingOperationDO bindingOperation) 
{
+               Session session = hbConfig.currentSession();
+               Transaction tx = session.beginTransaction();
+               try {
+                       bindingOperation.setLastUpdatedTime(new Date());
+                       session.merge(bindingOperation);
+                       tx.commit();
+               } catch (Throwable t) {
+                       tx.rollback();
+                       String m = "Unable to update BindingOperation";
+                       log.error(m, t);
+                       throw new RuntimeException(m, t);
+               }
+       }
+
+}

Added: 
branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dao/EndpointDAO.java
URL: 
http://wso2.org/svn/browse/wso2/branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dao/EndpointDAO.java?pathrev=17766
==============================================================================
--- (empty file)
+++ 
branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dao/EndpointDAO.java
 Mon Jun  2 02:16:20 2008
@@ -0,0 +1,78 @@
+package org.wso2.wsas.persistence.dao;
+
+import java.util.Date;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.hibernate.Session;
+import org.hibernate.Transaction;
+import org.wso2.wsas.persistence.dataobject.BindingDO;
+import org.wso2.wsas.persistence.dataobject.EndpointDO;
+import org.wso2.wsas.util.HibernateConfig;
+
+public class EndpointDAO extends BaseDAO {
+       private static final Log log = LogFactory.getLog(EndpointDAO.class);
+
+       public EndpointDAO(HibernateConfig hbConfig) {
+               super(hbConfig);
+       }
+
+       public void updateEndpoint(EndpointDO endpoint) {
+               Session session = hbConfig.currentSession();
+               Transaction tx = session.beginTransaction();
+               try {
+                       endpoint.setLastUpdatedTime(new Date());
+                       session.merge(endpoint);
+                       tx.commit();
+               } catch (Throwable e) {
+                       tx.rollback();
+                       String msg = "Unable to update endpoint";
+                       log.error(msg, e);
+                       throw new RuntimeException(msg, e);
+               }
+       }
+
+       public EndpointDO getEndpoint(String serviceId, String serviceVersion,
+                       String endpointName) {
+               String query = "from EndpointDO as ep where 
ep.service.serviceIdentifierDO.serviceId='"
+                               + serviceId.trim()
+                               + "' and 
ep.service.serviceIdentifierDO.version='"
+                               + serviceVersion.trim()
+                               + "' and ep.name='"
+                               + endpointName.trim() + ";";
+               Session session = hbConfig.currentSession();
+               Transaction tx = session.beginTransaction();
+               EndpointDO ep;
+               try {
+                       ep = (EndpointDO) 
session.createQuery(query).uniqueResult();
+                       tx.commit();
+               } catch (Throwable e) {
+                       tx.rollback();
+                       String msg = "Cannot retrieve Endpoint";
+                       log.error(msg, e);
+                       throw new RuntimeException(msg, e);
+               }
+               return ep;
+       }
+
+       public EndpointDO getEndpoint(String serviceId, String serviceVersion,
+                       String epName, Session session) {
+               String query = "from EndpointDO as ep where 
ep.service.serviceIdentifierDO.serviceId='"
+                               + serviceId.trim()
+                               + "' and 
ep.service.serviceIdentifierDO.version='"
+                               + serviceVersion.trim()
+                               + "' and ep.name='"
+                               + epName.trim()
+                               + ";";
+               return (EndpointDO) session.createQuery(query).uniqueResult();
+       }
+
+       public BindingDO getEndpointBinding(String serviceId,
+                       String serviceVersion, String epName) {
+               EndpointDO endpoint = getEndpoint(serviceId, serviceVersion, 
epName);
+               if (endpoint != null) {
+                       return endpoint.getBinding();
+               }
+               return null;
+       }
+}

Modified: 
branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dao/ServiceDAO.java
URL: 
http://wso2.org/svn/browse/wso2/branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dao/ServiceDAO.java?rev=17766&r1=17765&r2=17766&view=diff
==============================================================================
--- 
branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dao/ServiceDAO.java
  (original)
+++ 
branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dao/ServiceDAO.java
  Mon Jun  2 02:16:20 2008
@@ -28,6 +28,7 @@
 import org.hibernate.Transaction;
 import org.hibernate.criterion.Expression;
 import org.hibernate.criterion.Restrictions;
+import org.wso2.wsas.persistence.dataobject.EndpointDO;
 import org.wso2.wsas.persistence.dataobject.KeyStoreDO;
 import org.wso2.wsas.persistence.dataobject.ModuleDO;
 import org.wso2.wsas.persistence.dataobject.OperationDO;
@@ -586,4 +587,25 @@
             throw new RuntimeException(msg, e);
         }
     }
+    
+    public void addEndpoint(String serviceId, String version,
+                       EndpointDO endpoint) {
+               Session session = hbConfig.currentSession();
+               Transaction tx = session.beginTransaction();
+               ServiceDO service = null;
+               try {
+                       service = getService(serviceId, version, session);
+                       if (!service.getEndpoints().contains(endpoint)) {
+                               service.addEndpoint(endpoint);
+                               session.update(service);
+                       }
+                       tx.commit();
+               } catch (Throwable e) {
+                       tx.rollback();
+                       String msg = "Unable to add endpoint";
+                       log.error(msg, e);
+                       throw new RuntimeException(msg, e);
+               }
+       }
+
 }

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=17766&r1=17765&r2=17766&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  2 02:16:20 2008
@@ -8,6 +8,7 @@
        private EndpointDO endpoint;
        private Set bindingOperations = new HashSet();
        private Set policies = new HashSet();
+       String name;
        
        public EndpointDO getEndpoint() {
                return endpoint;
@@ -27,4 +28,10 @@
        public void setPolicies(Set policies) {
                this.policies = policies;
        }
+       public String getName() {
+               return name;
+       }
+       public void setName(String name) {
+               this.name = name;
+       }
 }

Modified: 
branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dataobject/EndpointDO.java
URL: 
http://wso2.org/svn/browse/wso2/branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dataobject/EndpointDO.java?rev=17766&r1=17765&r2=17766&view=diff
==============================================================================
--- 
branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dataobject/EndpointDO.java
   (original)
+++ 
branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dataobject/EndpointDO.java
   Mon Jun  2 02:16:20 2008
@@ -3,7 +3,14 @@
 public class EndpointDO extends AbstractDataObject {
        private ServiceDO service;
        private BindingDO binding;
+       private String name;
        
+       public String getName() {
+               return name;
+       }
+       public void setName(String name) {
+               this.name = name;
+       }
        public ServiceDO getService() {
                return service;
        }

Modified: 
branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dataobject/MessageDO.java
URL: 
http://wso2.org/svn/browse/wso2/branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dataobject/MessageDO.java?rev=17766&r1=17765&r2=17766&view=diff
==============================================================================
--- 
branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dataobject/MessageDO.java
    (original)
+++ 
branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dataobject/MessageDO.java
    Mon Jun  2 02:16:20 2008
@@ -28,6 +28,7 @@
     private int type = -1;
     private long sequence = -1;
     private String xml;
+    private String name;
 
     /**
      * Constructs a new MessageDO.
@@ -188,4 +189,12 @@
     public void setXml(String xml) {
         this.xml = xml;
     }
+
+       public String getName() {
+               return name;
+       }
+
+       public void setName(String name) {
+               this.name = name;
+       }
 }

Modified: 
branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dataobject/OperationDO.java
URL: 
http://wso2.org/svn/browse/wso2/branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dataobject/OperationDO.java?rev=17766&r1=17765&r2=17766&view=diff
==============================================================================
--- 
branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dataobject/OperationDO.java
  (original)
+++ 
branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dataobject/OperationDO.java
  Mon Jun  2 02:16:20 2008
@@ -17,6 +17,7 @@
 package org.wso2.wsas.persistence.dataobject;
 
 import java.util.HashSet;
+import java.util.Iterator;
 import java.util.Set;
 
 /**
@@ -72,7 +73,17 @@
     public void setMessages(Set messages) {
         this.messages = messages;
     }
-
+    
+    public MessageDO getMessage(String msgName) {
+               for (Iterator iterator = messages.iterator(); 
iterator.hasNext();) {
+                       MessageDO messageDO = (MessageDO) iterator.next();
+                       if (messageDO.getName().equals(msgName)) {
+                               return messageDO;
+                       }
+               }
+               return null;
+       }
+    
     public void addEngagedModule(ModuleDO module) {
         engagedModules.add(module);
         module.getEngagedOperations().add(this);

Modified: 
branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dataobject/ServiceDO.java
URL: 
http://wso2.org/svn/browse/wso2/branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dataobject/ServiceDO.java?rev=17766&r1=17765&r2=17766&view=diff
==============================================================================
--- 
branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dataobject/ServiceDO.java
    (original)
+++ 
branches/wsas/java/2.3/wsas/modules/core/src/org/wso2/wsas/persistence/dataobject/ServiceDO.java
    Mon Jun  2 02:16:20 2008
@@ -42,6 +42,8 @@
 
     private KeyStoreDO privateKeyStore; // 1-m relationship between KeyStores 
& Services
     private Set trustedCertStores = new HashSet(); // many-many relationship 
between trust stores & services
+    
+    private Set endpoints = new HashSet(); 
 
     /**
      * Constructs a new ServiceDO.
@@ -524,4 +526,27 @@
     public void setDocumentation(String documentation) {
         this.documentation = documentation;
     }
+
+       public Set getEndpoints() {
+               return endpoints;
+       }
+
+       public void setEndpoints(Set endpoints) {
+               this.endpoints = endpoints;
+       }
+       
+       public void addEndpoint(EndpointDO endpoint) {
+               endpoints.add(endpoint);
+               endpoint.setService(this);
+       }
+       
+       public EndpointDO getEndpoint(String endpointName) {
+               for (Iterator iterator = endpoints.iterator(); 
iterator.hasNext();) {
+                       EndpointDO endpointDO = (EndpointDO) iterator.next();
+                       if (endpointDO.getName().equals(endpointName)) {
+                               return endpointDO;
+                       }
+               }
+               return null;
+       }
 }

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

Reply via email to