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
