Issue #1931 Implemented REST binding for registry

Change-Id: I604c02dc849e380f70e2d27fa1f2b30dadcf0776

Former-commit-id: 9a7971c872 [formerly 9065ebcb65] [formerly 3d2e073dd7 [formerly daef43d8947f690d15f9314f85b8cf31d30c06ab]]
Former-commit-id: 3d2e073dd7
Former-commit-id: cf7da4b001
This commit is contained in:
Benjamin Phillippe 2013-04-22 09:48:58 -05:00
parent ef0c554826
commit 6edfda46bf
29 changed files with 1030 additions and 615 deletions

View file

@ -24,6 +24,8 @@ Bundle-ClassPath: cxf-2.5.0.jar,
Export-Package: javax.servlet,
javax.servlet.http,
javax.ws.rs,
javax.ws.rs.core,
javax.ws.rs.ext,
org.apache.cxf.annotations,
org.apache.cxf.binding.soap,
org.apache.cxf.binding.soap.blueprint,

View file

@ -28,7 +28,6 @@ export DATADELIVERY_PORT=9588
# Currently the registry is hosted on datadelivery, but this could be changed in the future
export EBXML_REGISTRY_HOST=${DATADELIVERY_HOST}
export EBXML_REGISTRY_PORT=${DATADELIVERY_PORT}
export EBXML_REGISTRY_SOAP_PORT=10144
export EBXML_REGISTRY_REPLICATION=1
# moved here from environment.xml
@ -39,8 +38,8 @@ export JMS_SERVER=tcp://localhost:5672
export RADAR_SERVER=tcp://localhost:8813
export DATADELIVERY_SERVER=http://${DATADELIVERY_HOST}:${DATADELIVERY_PORT}/services
export EBXML_REGISTRY_SERVICE=http://${EBXML_REGISTRY_HOST}:${EBXML_REGISTRY_PORT}/services
export EBXML_REGISTRY_LCM_SERVICE=http://${EBXML_REGISTRY_HOST}:${EBXML_REGISTRY_SOAP_PORT}/lifecycleManager?WSDL
export EBXML_REGISTRY_QUERY_SERVICE=http://${EBXML_REGISTRY_HOST}:${EBXML_REGISTRY_SOAP_PORT}/queryManager?WSDL
export EBXML_REGISTRY_LCM_SERVICE=http://${EBXML_REGISTRY_HOST}:${EBXML_REGISTRY_PORT}/lifecycleManager?WSDL
export EBXML_REGISTRY_QUERY_SERVICE=http://${EBXML_REGISTRY_HOST}:${EBXML_REGISTRY_PORT}/queryManager?WSDL
export NCF_BANDWIDTH_MANAGER_SERVICE=http://${DATADELIVERY_HOST}:9590/services
# set the AWIPS II shared directory

View file

@ -0,0 +1,54 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:util="http://www.springframework.org/schema/util" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-2.5.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd">
<tx:annotation-driven transaction-manager="metadataTxManager"
proxy-target-class="true" />
<bean id="metadataDbSessionConfig"
class="com.raytheon.uf.edex.database.DatabaseSessionConfiguration">
<property name="excludes">
<list>
<value>com.raytheon.uf.common.dataplugin.text</value>
<value>com.raytheon.edex.plugin.shef</value>
</list>
</property>
</bean>
<bean id="metadataSessionFactory"
class="com.raytheon.uf.edex.database.DatabaseSessionFactoryBean">
<property name="configLocation">
<value>file:///${edex.home}/conf/db/hibernateConfig/metadata/hibernate.cfg.xml
</value>
</property>
<!-- >property name="dataSource"><ref bean="datasourceMetadata"/></property -->
<property name="databaseSessionConfiguration" ref="metadataDbSessionConfig" />
</bean>
<bean id="metadataTxManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="metadataSessionFactory" />
</bean>
<bean id="mapsSessionFactory"
class="com.raytheon.uf.edex.database.DatabaseSessionFactoryBean">
<!-- no annotations to load, so no databaseSessionConfig -->
<property name="configLocation">
<value>file:///${edex.home}/conf/db/hibernateConfig/maps/hibernate.cfg.xml
</value>
</property>
</bean>
<bean id="mapsTxManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="mapsSessionFactory" />
</bean>
</beans>

View file

@ -13,7 +13,8 @@
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd">
<tx:annotation-driven transaction-manager="metadataTxManager" proxy-target-class="true" />
<!-- Separated out database specific beans to seperate file so they can be loaded by themselves if necessary -->
<import resource="file:///${edex.home}/conf/spring/edex-db.xml"/>
<!-- specify the connection to the broker (qpid) -->
<!-- MaxPrefetch set at 0, due to DataPool routers getting messages backed up behind long running tasks -->
@ -280,41 +281,6 @@
<commandAgent xmlns="http://activemq.apache.org/schema/core" brokerUrl="vm://localhost"/>
-->
<bean id="metadataDbSessionConfig" class="com.raytheon.uf.edex.database.DatabaseSessionConfiguration">
<property name="excludes">
<list>
<value>com.raytheon.uf.common.dataplugin.text</value>
<value>com.raytheon.edex.plugin.shef</value>
</list>
</property>
</bean>
<bean id="metadataSessionFactory"
class="com.raytheon.uf.edex.database.DatabaseSessionFactoryBean">
<property name="configLocation">
<value>file:///${edex.home}/conf/db/hibernateConfig/metadata/hibernate.cfg.xml</value>
</property>
<!-- >property name="dataSource"><ref bean="datasourceMetadata"/></property-->
<property name="databaseSessionConfiguration" ref="metadataDbSessionConfig"/>
</bean>
<bean id="metadataTxManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="metadataSessionFactory" />
</bean>
<bean id="mapsSessionFactory"
class="com.raytheon.uf.edex.database.DatabaseSessionFactoryBean">
<!-- no annotations to load, so no databaseSessionConfig -->
<property name="configLocation">
<value>file:///${edex.home}/conf/db/hibernateConfig/maps/hibernate.cfg.xml</value>
</property>
</bean>
<bean id="mapsTxManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="mapsSessionFactory" />
</bean>
<!-- Redirect geotools log -->
<bean class="com.raytheon.uf.common.geospatial.LogRedirector" factory-method="getInstance"/>

View file

@ -1,96 +0,0 @@
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd">
<!-- This file should only contain beans used on a running EDEX instance. -->
<bean id="ebxmlDbValidationStrategy"
class="com.raytheon.uf.edex.registry.ebxml.dao.EbxmlPostgresValidationStrategy" />
<bean id="registrySubscriptionManagerInvoker"
class="com.raytheon.uf.edex.registry.ebxml.dao.EsbRouteRegistrySubscriptionManagerInvocation" />
<!-- start service -->
<bean id="queryServiceFactory" class="org.apache.cxf.jaxws.JaxWsServerFactoryBean"
init-method="create">
<property name="serviceClass"
value="oasis.names.tc.ebxml.regrep.wsdl.registry.services.v4.QueryManager" />
<property name="address">
<bean factory-bean="ServiceUrlFactory" factory-method="getServiceAddress">
<constructor-arg value="queryManager" />
<constructor-arg value="${EBXML_QUERY_SERVICE_SOAP_PORT}" />
</bean>
</property>
<property name="serviceBean" ref="queryServiceSoapImpl" />
<property name="inInterceptors">
<list>
<ref bean="XACMLPolicyEnforcementPoint" />
</list>
</property>
</bean>
<!-- start service -->
<bean id="notificationServiceFactory" class="org.apache.cxf.jaxws.JaxWsServerFactoryBean"
init-method="create">
<property name="serviceClass"
value="oasis.names.tc.ebxml.regrep.wsdl.registry.services.v4.NotificationListener" />
<property name="address">
<bean factory-bean="ServiceUrlFactory" factory-method="getServiceAddress">
<constructor-arg value="notificationListener" />
<constructor-arg value="${EBXML_QUERY_SERVICE_SOAP_PORT}" />
</bean>
</property>
<property name="serviceBean" ref="notificationServiceImpl" />
</bean>
<!-- start service -->
<bean id="lcmServiceFactory" class="org.apache.cxf.jaxws.JaxWsServerFactoryBean"
init-method="create">
<property name="serviceClass"
value="oasis.names.tc.ebxml.regrep.wsdl.registry.services.v4.LifecycleManager" />
<property name="address">
<bean factory-bean="ServiceUrlFactory" factory-method="getServiceAddress">
<constructor-arg value="lifecycleManager" />
<constructor-arg value="${EBXML_QUERY_SERVICE_SOAP_PORT}" />
</bean>
</property>
<property name="serviceBean" ref="lcmServiceImpl" />
<property name="inInterceptors">
<list>
<ref bean="XACMLPolicyEnforcementPoint" />
</list>
</property>
</bean>
<!-- start service -->
<bean id="validatorServiceFactory" class="org.apache.cxf.jaxws.JaxWsServerFactoryBean"
init-method="create">
<property name="serviceClass"
value="oasis.names.tc.ebxml.regrep.wsdl.registry.services.v4.Validator" />
<property name="address">
<bean factory-bean="ServiceUrlFactory" factory-method="getServiceAddress">
<constructor-arg value="validator" />
<constructor-arg value="${EBXML_QUERY_SERVICE_SOAP_PORT}" />
</bean>
</property>
<property name="serviceBean" ref="validatorServiceImpl" />
</bean>
<!-- start service -->
<bean id="catalogerServiceFactory" class="org.apache.cxf.jaxws.JaxWsServerFactoryBean"
init-method="create">
<property name="serviceClass"
value="oasis.names.tc.ebxml.regrep.wsdl.registry.services.v4.Cataloger" />
<property name="address">
<bean factory-bean="ServiceUrlFactory" factory-method="getServiceAddress">
<constructor-arg value="cataloger" />
<constructor-arg value="${EBXML_QUERY_SERVICE_SOAP_PORT}" />
</bean>
</property>
<property name="serviceBean" ref="catalogerServiceImpl" />
</bean>
</beans>

View file

@ -4,57 +4,6 @@
http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
<!-- <bean id="metadataSessionFactory" class="org.hibernate.impl.SessionFactoryImpl"
/> -->
<!-- QUERY -->
<!-- Define concrete implementation of the service -->
<bean id="queryServiceImpl"
class="com.raytheon.uf.edex.registry.ebxml.services.query.QueryManagerImpl">
<property name="queryTypeMgr" ref="queryTypeManager" />
</bean>
<bean id="queryServiceSoapImpl"
class="com.raytheon.uf.edex.registry.ebxml.services.query.QueryManagerImpl">
<property name="eagerFetch" value="true" />
<property name="queryTypeMgr" ref="queryTypeManager" />
</bean>
<!-- NOTIFICATION LISTENER -->
<!-- Define concrete implementation of the service -->
<bean id="notificationServiceImpl"
class="com.raytheon.uf.edex.registry.ebxml.services.notification.NotificationListenerImpl">
<property name="lcm" ref="lcmServiceImpl" />
<property name="registryObjectDao" ref="registryObjectDao"/>
<property name="classificationNodeDao" ref="classificationNodeDao"/>
</bean>
<!-- LIFE CYCLE MANAGER -->
<!-- Define concrete implementation of the service -->
<bean id="lcmServiceImpl"
class="com.raytheon.uf.edex.registry.ebxml.services.lifecycle.LifecycleManagerImpl">
<property name="queryManager" ref="queryServiceImpl" />
<property name="validator" ref="validatorServiceImpl" />
<property name="registryObjectDao" ref="registryObjectDao" />
<property name="auditableEventDao" ref="AuditableEventTypeDao" />
<property name="cataloger" ref="catalogerServiceImpl" />
</bean>
<!-- VALIDATOR -->
<!-- Define concrete implementation of the service -->
<bean id="validatorServiceImpl"
class="com.raytheon.uf.edex.registry.ebxml.services.validator.ValidatorImpl">
<property name="queryManager" ref="queryServiceImpl" />
</bean>
<!-- CATALOGER -->
<!-- Define concrete implementation of the service -->
<bean id="catalogerServiceImpl"
class="com.raytheon.uf.edex.registry.ebxml.services.cataloger.CatalogerImpl">
<property name="registryObjectDao" ref="registryObjectDao" />
</bean>
<bean id="edexRegistryManager"
class="com.raytheon.uf.edex.registry.ebxml.util.EDEXRegistryManager">
<property name="xacmlPep" ref="XACMLPolicyEnforcementPoint" />

View file

@ -0,0 +1,16 @@
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
<bean id="DbInit" class="com.raytheon.uf.edex.registry.ebxml.dao.DbInit">
<property name="dbValidationStrategy" ref="ebxmlDbValidationStrategy" />
<property name="lcm" ref="lcmServiceImpl" />
<property name="sessionFactory" ref="metadataSessionFactory" />
<property name="xacmlAdmin" ref="XACMLPolicyAdministrator" />
</bean>
<bean id="ebxmlDbValidationStrategy"
class="com.raytheon.uf.edex.registry.ebxml.dao.EbxmlPostgresValidationStrategy" />
</beans>

View file

@ -37,7 +37,7 @@
<property name="handlers">
<list>
<bean class="org.eclipse.jetty.webapp.WebAppContext">
<property name="contextPath" value="/registryEbxml" />
<property name="contextPath" value="/" />
<property name="war"
value="file:///${edex.home}/webapps/registryEbxml" />
</bean>
@ -52,16 +52,4 @@
</property>
</bean>
<bean id="RegistryWebUtil" class="com.raytheon.uf.edex.registry.ebxml.web.RegistryWebUtil">
<property name="lcm" ref="lcmServiceImpl" />
</bean>
<bean id="RegistryWebAdmin"
class="com.raytheon.uf.edex.registry.ebxml.web.RegistryWebAdmin">
<property name="partyDao" ref="partyDao" />
<property name="classificationNodeDao" ref="classificationNodeDao" />
<property name="organizationDao" ref="organizationDao" />
<property name="personDao" ref="personDao" />
<property name="roleDao" ref="roleDao" />
</bean>
</beans>

View file

@ -0,0 +1,102 @@
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:amq="http://activemq.apache.org/schema/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
<!-- QUERY -->
<!-- Define concrete implementation of the service -->
<bean id="queryServiceImpl"
class="com.raytheon.uf.edex.registry.ebxml.services.query.QueryManagerImpl">
<property name="queryTypeMgr" ref="queryTypeManager" />
</bean>
<!-- NOTIFICATION LISTENER -->
<!-- Define concrete implementation of the service -->
<bean id="notificationServiceImpl"
class="com.raytheon.uf.edex.registry.ebxml.services.notification.NotificationListenerImpl">
<property name="lcm" ref="lcmServiceImpl" />
<property name="registryObjectDao" ref="registryObjectDao" />
<property name="classificationNodeDao" ref="classificationNodeDao" />
</bean>
<!-- LIFE CYCLE MANAGER -->
<!-- Define concrete implementation of the service -->
<bean id="lcmServiceImpl"
class="com.raytheon.uf.edex.registry.ebxml.services.lifecycle.LifecycleManagerImpl">
<property name="queryManager" ref="queryServiceImpl" />
<property name="validator" ref="validatorServiceImpl" />
<property name="registryObjectDao" ref="registryObjectDao" />
<property name="auditableEventDao" ref="AuditableEventTypeDao" />
<property name="cataloger" ref="catalogerServiceImpl" />
</bean>
<!-- VALIDATOR -->
<!-- Define concrete implementation of the service -->
<bean id="validatorServiceImpl"
class="com.raytheon.uf.edex.registry.ebxml.services.validator.ValidatorImpl">
<property name="queryManager" ref="queryServiceImpl" />
</bean>
<!-- CATALOGER -->
<!-- Define concrete implementation of the service -->
<bean id="catalogerServiceImpl"
class="com.raytheon.uf.edex.registry.ebxml.services.cataloger.CatalogerImpl">
<property name="registryObjectDao" ref="registryObjectDao" />
</bean>
<!-- REST Service Beans -->
<bean name="AddRegistryParty"
class="com.raytheon.uf.edex.registry.ebxml.web.AddRegistryParty">
<property name="partyDao" ref="partyDao" />
<property name="lcm" ref="lcmServiceImpl" />
<property name="webUtil" ref="RegistryWebUtil" />
</bean>
<bean name="ModifyRegistryParty"
class="com.raytheon.uf.edex.registry.ebxml.web.ModifyRegistryParty">
<property name="partyDao" ref="partyDao" />
<property name="lcm" ref="lcmServiceImpl" />
<property name="webUtil" ref="RegistryWebUtil" />
</bean>
<bean name="DeleteRegistryParty"
class="com.raytheon.uf.edex.registry.ebxml.web.DeleteRegistryParty">
<property name="partyDao" ref="partyDao" />
<property name="webUtil" ref="RegistryWebUtil" />
</bean>
<bean id="registryObjectsRestService"
class="com.raytheon.uf.edex.registry.ebxml.services.rest.RegistryObjectsRestService">
<property name="registryObjectDao" ref="registryObjectDao" />
</bean>
<bean id="repositoryObjectsRestService"
class="com.raytheon.uf.edex.registry.ebxml.services.rest.RepositoryItemsRestService">
<property name="extrinsicObjectDao" ref="extrinsicObjectDao" />
</bean>
<bean id="queryProtocolRestService"
class="com.raytheon.uf.edex.registry.ebxml.services.rest.QueryProtocolRestService" >
<property name="queryManager" ref="queryServiceImpl"/>
</bean>
<bean id="RegistryWebUtil" class="com.raytheon.uf.edex.registry.ebxml.web.RegistryWebUtil">
<property name="lcm" ref="lcmServiceImpl" />
<property name="personDao" ref="personDao" />
<property name="classificationNodeDao" ref="classificationNodeDao" />
</bean>
<bean id="RegistryWebAdmin"
class="com.raytheon.uf.edex.registry.ebxml.web.RegistryWebAdmin">
<property name="partyDao" ref="partyDao" />
<property name="classificationNodeDao" ref="classificationNodeDao" />
<property name="organizationDao" ref="organizationDao" />
<property name="personDao" ref="personDao" />
<property name="roleDao" ref="roleDao" />
</bean>
</beans>

View file

@ -4,6 +4,24 @@
http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
<bean id="XACMLPolicyEnforcementPoint"
class="com.raytheon.uf.edex.registry.acp.xacml.XACMLPolicyEnforcementPoint">
<property name="xacmlContextHandler" ref="XACMLContextHandler" />
</bean>
<bean id="XACMLContextHandler"
class="com.raytheon.uf.edex.registry.acp.xacml.XACMLContextHandler">
<property name="queryManager" ref="queryServiceImpl" />
<property name="registryObjectDao" ref="registryObjectDao" />
<property name="xacmlPolicyAdmin" ref="XACMLPolicyAdministrator" />
</bean>
<bean id="XACMLPolicyAdministrator"
class="com.raytheon.uf.edex.registry.acp.xacml.XACMLPolicyAdministrator">
<property name="extrinsicObjectDao" ref="extrinsicObjectDao" />
<property name="lcm" ref="lcmServiceImpl" />
</bean>
<bean id="functionEvaluator"
class="com.raytheon.uf.edex.registry.acp.xacml.engine.function.XACMLFunctionEvaluator">
<property name="functionList">

View file

@ -5,14 +5,8 @@
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd">
<bean id="ServiceUrlFactory"
class="com.raytheon.uf.edex.registry.ebxml.util.ServiceUrlFactory" />
<bean id="DbInit" class="com.raytheon.uf.edex.registry.ebxml.dao.DbInit">
<property name="dbValidationStrategy" ref="ebxmlDbValidationStrategy" />
<property name="lcm" ref="lcmServiceImpl" />
<property name="sessionFactory" ref="metadataSessionFactory" />
<property name="xacmlAdmin" ref="XACMLPolicyAdministrator" />
</bean>
<bean id="registrySubscriptionManagerInvoker"
class="com.raytheon.uf.edex.registry.ebxml.dao.EsbRouteRegistrySubscriptionManagerInvocation" />
<bean id="pwCallback"
class="com.raytheon.uf.edex.registry.ebxml.acp.PasswordCallback" />
@ -29,22 +23,4 @@
</constructor-arg>
</bean>
<bean id="XACMLPolicyEnforcementPoint"
class="com.raytheon.uf.edex.registry.acp.xacml.XACMLPolicyEnforcementPoint">
<property name="xacmlContextHandler" ref="XACMLContextHandler" />
</bean>
<bean id="XACMLContextHandler"
class="com.raytheon.uf.edex.registry.acp.xacml.XACMLContextHandler">
<property name="queryManager" ref="queryServiceImpl" />
<property name="registryObjectDao" ref="registryObjectDao" />
<property name="xacmlPolicyAdmin" ref="XACMLPolicyAdministrator" />
</bean>
<bean id="XACMLPolicyAdministrator"
class="com.raytheon.uf.edex.registry.acp.xacml.XACMLPolicyAdministrator">
<property name="extrinsicObjectDao" ref="extrinsicObjectDao" />
<property name="lcm" ref="lcmServiceImpl" />
</bean>
</beans>

View file

@ -202,15 +202,7 @@ public class QueryManagerImpl implements QueryManager {
if (lang != null) {
// TODO: Add support for specifying the lang attribute
response.getException()
.add(EbxmlExceptionUtil
.createRegistryException(
UnsupportedCapabilityExceptionType.class,
"",
"lang attribute not currently supported",
"This EBXML registry does not currently support the lang attribute on the QueryRequest object",
ErrorSeverity.WARNING, statusHandler));
response.setStatus(RegistryResponseStatus.PARTIAL_SUCCESS);
statusHandler.warn("Lang attribute currently not supported.");
}
IRegistryQuery query = getQuery(queryType);

View file

@ -36,7 +36,7 @@ import org.springframework.transaction.annotation.Transactional;
import com.raytheon.uf.common.registry.constants.ErrorSeverity;
import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.edex.registry.ebxml.dao.RegistryObjectTypeDao;
import com.raytheon.uf.edex.registry.ebxml.dao.RegistryObjectDao;
import com.raytheon.uf.edex.registry.ebxml.exception.EbxmlRegistryException;
import com.raytheon.uf.edex.registry.ebxml.services.query.QueryManagerImpl;
import com.raytheon.uf.edex.registry.ebxml.services.query.QueryManagerImpl.RETURN_TYPE;
@ -79,7 +79,7 @@ public abstract class AbstractEbxmlQuery implements IRegistryQuery {
protected RETURN_TYPE returnType;
protected RegistryObjectTypeDao<RegistryObjectType> registryObjectDao;
protected RegistryObjectDao registryObjectDao;
public void executeQuery(QueryRequest queryRequest,
QueryResponse queryResponse) throws EbxmlRegistryException {
@ -218,8 +218,7 @@ public abstract class AbstractEbxmlQuery implements IRegistryQuery {
return filterResults(results, null);
}
public void setRegistryObjectDao(
RegistryObjectTypeDao<RegistryObjectType> registryObjectDao) {
public void setRegistryObjectDao(RegistryObjectDao registryObjectDao) {
this.registryObjectDao = registryObjectDao;
}

View file

@ -26,6 +26,8 @@ import oasis.names.tc.ebxml.regrep.xsd.query.v4.QueryResponse;
import oasis.names.tc.ebxml.regrep.xsd.rim.v4.ObjectRefListType;
import oasis.names.tc.ebxml.regrep.xsd.rim.v4.ObjectRefType;
import oasis.names.tc.ebxml.regrep.xsd.rim.v4.QueryType;
import oasis.names.tc.ebxml.regrep.xsd.rim.v4.RegistryObjectListType;
import oasis.names.tc.ebxml.regrep.xsd.rim.v4.RegistryObjectType;
import com.raytheon.uf.common.registry.constants.CanonicalQueryTypes;
import com.raytheon.uf.edex.registry.ebxml.exception.EbxmlRegistryException;
@ -49,7 +51,7 @@ import com.raytheon.uf.edex.registry.ebxml.services.query.types.CanonicalEbxmlQu
* Jan 18, 2012 bphillip Initial creation
* 3/18/2013 1802 bphillip Modified to use transaction boundaries and spring dao injection
* 4/9/2013 1802 bphillip Changed abstract method signature, modified return processing, and changed static variables
*
* 4/19/2013 1931 bphillip Fixed null pointer issue
* </pre>
*
* @author bphillip
@ -88,7 +90,6 @@ public class GetObjectById extends CanonicalEbxmlQuery {
return;
}
ids.addAll(matchingIds);
} else {
ids.add(id);
}
@ -102,8 +103,15 @@ public class GetObjectById extends CanonicalEbxmlQuery {
}
queryResponse.setObjectRefList(objectRefList);
} else {
queryResponse.getRegistryObjectList().getRegistryObject()
.addAll(registryObjectDao.getById(ids));
List<RegistryObjectType> results = new ArrayList<RegistryObjectType>();
if (ids.size() == 1) {
results.add(registryObjectDao.getById(ids.get(0)));
} else {
results.addAll(registryObjectDao.getById(ids));
}
RegistryObjectListType objList = new RegistryObjectListType();
objList.getRegistryObject().addAll(results);
queryResponse.setRegistryObjectList(objList);
}
}

View file

@ -0,0 +1,217 @@
/**
* This software was developed and / or modified by Raytheon Company,
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
*
* U.S. EXPORT CONTROLLED TECHNICAL DATA
* This software product contains export-restricted data whose
* export/transfer/disclosure is restricted by U.S. law. Dissemination
* to non-U.S. persons whether in the United States or abroad requires
* an export license or other authorization.
*
* Contractor Name: Raytheon Company
* Contractor Address: 6825 Pine Street, Suite 340
* Mail Stop B8
* Omaha, NE 68106
* 402.291.0100
*
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
* further licensing information.
**/
package com.raytheon.uf.edex.registry.ebxml.services.rest;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.List;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.core.UriInfo;
import javax.xml.bind.JAXBException;
import oasis.names.tc.ebxml.regrep.wsdl.registry.services.v4.MsgRegistryException;
import oasis.names.tc.ebxml.regrep.wsdl.registry.services.v4.QueryManager;
import oasis.names.tc.ebxml.regrep.xsd.query.v4.QueryRequest;
import oasis.names.tc.ebxml.regrep.xsd.query.v4.QueryResponse;
import oasis.names.tc.ebxml.regrep.xsd.query.v4.ResponseOptionType;
import oasis.names.tc.ebxml.regrep.xsd.rim.v4.QueryType;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.raytheon.uf.common.registry.constants.Languages;
import com.raytheon.uf.common.registry.constants.QueryReturnTypes;
import com.raytheon.uf.common.serialization.JAXBManager;
import com.raytheon.uf.edex.registry.ebxml.util.EbxmlObjectUtil;
/**
*
* REST service implementation for the Query Protocol according to
* specifications in Section 12.2 of the ebRS specification
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* 4/19/2013 1931 bphillip Initial implementation
* </pre>
*
* @author bphillip
* @version 1
*/
@Path("/rest/search")
@Service
@Transactional
public class QueryProtocolRestService {
/** The queryID canonical query parameter name */
private static final String QUERY_ID = "queryId";
/** The depth canonical query parameter name */
private static final String DEPTH = "depth";
/** The format canonical query parameter name */
private static final String FORMAT = "format";
/** The federated canonical query parameter name */
private static final String FEDERATED = "federated";
/** The federation canonical query parameter name */
private static final String FEDERATION = "federation";
/** The matchOlderVersion canonical query parameter name */
private static final String MATCH_OLDER_VERSIONS = "matchOlderVersions";
/** The startIndex canonical query parameter name */
private static final String START_INDEX = "startIndex";
/** The lang canonical query parameter name */
private static final String LANG = "lang";
/** The maxResults canonical query parameter name */
private static final String MAX_RESULTS = "maxResults";
/** Convenience list of all the canonical query parameter names */
private static final List<String> CANONICAL_QUERY_PARAMETERS;
static {
CANONICAL_QUERY_PARAMETERS = new ArrayList<String>();
CANONICAL_QUERY_PARAMETERS.add(QUERY_ID);
CANONICAL_QUERY_PARAMETERS.add(DEPTH);
CANONICAL_QUERY_PARAMETERS.add(FORMAT);
CANONICAL_QUERY_PARAMETERS.add(FEDERATED);
CANONICAL_QUERY_PARAMETERS.add(FEDERATION);
CANONICAL_QUERY_PARAMETERS.add(MATCH_OLDER_VERSIONS);
CANONICAL_QUERY_PARAMETERS.add(START_INDEX);
CANONICAL_QUERY_PARAMETERS.add(LANG);
CANONICAL_QUERY_PARAMETERS.add(MAX_RESULTS);
}
/** The local query manager */
private QueryManager queryManager;
/** Jaxb Manager for marshalling the response */
private JAXBManager responseJaxb;
/**
* Creates a new QueryProtocolRestService instance
*
* @throws JAXBException
* If errors occur while initializing the JAXBManager
*/
public QueryProtocolRestService() throws JAXBException {
responseJaxb = new JAXBManager(QueryResponse.class);
}
/**
* Executes a query based on the submitted query parameters
*
* @param info
* The UriInfo containing the query parameters
* @return The marshalled QueryResponse
* @throws JAXBException
* If errors occur while marshalling the response
* @throws MsgRegistryException
* If errors occur in the registry while querying for the
* objects
*/
@GET
@Produces("text/xml")
public String executeQuery(@Context UriInfo info) throws JAXBException,
MsgRegistryException {
/*
* Extract out the canonical query parameters
*/
MultivaluedMap<String, String> queryParameters = info
.getQueryParameters();
String queryId = queryParameters.getFirst(QUERY_ID) == null ? "urn:oasis:names:tc:ebxml-regrep:query:GetObjectById"
: queryParameters.getFirst(QUERY_ID);
BigInteger depth = queryParameters.getFirst(DEPTH) == null ? null
: new BigInteger(queryParameters.getFirst(DEPTH));
String format = queryParameters.getFirst(FORMAT);
boolean federated = queryParameters.getFirst(FEDERATED) == null ? false
: Boolean.parseBoolean(queryParameters.getFirst(FEDERATED));
String federation = queryParameters.getFirst(FEDERATION);
boolean matchOlderVersions = queryParameters
.getFirst(MATCH_OLDER_VERSIONS) == null ? true : Boolean
.parseBoolean(queryParameters.getFirst(MATCH_OLDER_VERSIONS));
BigInteger startIndex = queryParameters.getFirst(START_INDEX) == null ? new BigInteger(
"0") : new BigInteger(queryParameters.getFirst(START_INDEX));
String lang = queryParameters.getFirst(LANG) == null ? Languages.EN_US
: queryParameters.getFirst(LANG);
BigInteger maxResults = queryParameters.getFirst(MAX_RESULTS) == null ? new BigInteger(
"0") : new BigInteger(queryParameters.getFirst(MAX_RESULTS));
/*
* Create the query request object
*/
QueryRequest restQueryRequest = new QueryRequest();
ResponseOptionType responseOption = new ResponseOptionType();
responseOption.setReturnType(QueryReturnTypes.REGISTRY_OBJECT);
responseOption.setReturnComposedObjects(true);
QueryType queryType = new QueryType();
queryType.setQueryDefinition(queryId);
restQueryRequest.setDepth(depth);
restQueryRequest.setFormat(format);
restQueryRequest.setFederated(federated);
restQueryRequest.setFederation(federation);
restQueryRequest.setMatchOlderVersions(matchOlderVersions);
restQueryRequest.setStartIndex(startIndex);
restQueryRequest.setLang(lang);
restQueryRequest.setMaxResults(maxResults);
restQueryRequest.setQuery(queryType);
restQueryRequest.setResponseOption(responseOption);
/*
* Extract out any non-canonical query parameters and assign them as
* slots to be used as query specific arguments
*/
for (String key : queryParameters.keySet()) {
if (!CANONICAL_QUERY_PARAMETERS.contains(key)) {
EbxmlObjectUtil.addStringSlot(queryType, key,
queryParameters.getFirst(key), false);
}
}
return responseJaxb.marshalToXml(queryManager
.executeQuery(restQueryRequest));
}
public void setQueryManager(QueryManager queryManager) {
this.queryManager = queryManager;
}
}

View file

@ -0,0 +1,137 @@
/**
* This software was developed and / or modified by Raytheon Company,
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
*
* U.S. EXPORT CONTROLLED TECHNICAL DATA
* This software product contains export-restricted data whose
* export/transfer/disclosure is restricted by U.S. law. Dissemination
* to non-U.S. persons whether in the United States or abroad requires
* an export license or other authorization.
*
* Contractor Name: Raytheon Company
* Contractor Address: 6825 Pine Street, Suite 340
* Mail Stop B8
* Omaha, NE 68106
* 402.291.0100
*
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
* further licensing information.
**/
package com.raytheon.uf.edex.registry.ebxml.services.rest;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.WebApplicationException;
import javax.xml.bind.JAXBException;
import oasis.names.tc.ebxml.regrep.xsd.rim.v4.AssociationType;
import oasis.names.tc.ebxml.regrep.xsd.rim.v4.AuditableEventType;
import oasis.names.tc.ebxml.regrep.xsd.rim.v4.ClassificationNodeType;
import oasis.names.tc.ebxml.regrep.xsd.rim.v4.ClassificationSchemeType;
import oasis.names.tc.ebxml.regrep.xsd.rim.v4.ClassificationType;
import oasis.names.tc.ebxml.regrep.xsd.rim.v4.CommentType;
import oasis.names.tc.ebxml.regrep.xsd.rim.v4.ExternalIdentifierType;
import oasis.names.tc.ebxml.regrep.xsd.rim.v4.ExternalLinkType;
import oasis.names.tc.ebxml.regrep.xsd.rim.v4.ExtrinsicObjectType;
import oasis.names.tc.ebxml.regrep.xsd.rim.v4.FederationType;
import oasis.names.tc.ebxml.regrep.xsd.rim.v4.NotificationType;
import oasis.names.tc.ebxml.regrep.xsd.rim.v4.OrganizationType;
import oasis.names.tc.ebxml.regrep.xsd.rim.v4.PartyType;
import oasis.names.tc.ebxml.regrep.xsd.rim.v4.PersonType;
import oasis.names.tc.ebxml.regrep.xsd.rim.v4.QueryDefinitionType;
import oasis.names.tc.ebxml.regrep.xsd.rim.v4.RegistryObjectType;
import oasis.names.tc.ebxml.regrep.xsd.rim.v4.RegistryPackageType;
import oasis.names.tc.ebxml.regrep.xsd.rim.v4.RegistryType;
import oasis.names.tc.ebxml.regrep.xsd.rim.v4.RoleType;
import oasis.names.tc.ebxml.regrep.xsd.rim.v4.ServiceBindingType;
import oasis.names.tc.ebxml.regrep.xsd.rim.v4.ServiceEndpointType;
import oasis.names.tc.ebxml.regrep.xsd.rim.v4.ServiceInterfaceType;
import oasis.names.tc.ebxml.regrep.xsd.rim.v4.ServiceType;
import oasis.names.tc.ebxml.regrep.xsd.rim.v4.SubscriptionType;
import oasis.names.tc.ebxml.regrep.xsd.rim.v4.TaxonomyElementType;
import oasis.names.tc.ebxml.regrep.xsd.rim.v4.WorkflowActionType;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.raytheon.uf.common.serialization.JAXBManager;
import com.raytheon.uf.edex.registry.ebxml.dao.RegistryObjectDao;
/**
*
* REST service implementation for getting registry objects according to
* specifications in Section 12.1.1 of the ebRS specification
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* 4/19/2013 1931 bphillip Initial implementation
* </pre>
*
* @author bphillip
* @version 1
*/
@Path("/rest/registryObjects/{objectId}")
@Service
@Transactional
public class RegistryObjectsRestService {
/** The data access object for getting registry objects */
private RegistryObjectDao registryObjectDao;
/** The jaxbManager used to marshal the response */
private JAXBManager jaxbManager;
/**
* Creates a new RegistryObjectRestService instance
*
* @throws JAXBException
* If errors occur while initializing the jaxb manager
*/
public RegistryObjectsRestService() throws JAXBException {
jaxbManager = new JAXBManager(RegistryObjectType.class,
AssociationType.class, AuditableEventType.class,
ClassificationType.class, ExternalIdentifierType.class,
ExternalLinkType.class, ExtrinsicObjectType.class,
CommentType.class, FederationType.class,
NotificationType.class, PartyType.class,
OrganizationType.class, PersonType.class,
QueryDefinitionType.class, RegistryPackageType.class,
RegistryType.class, RoleType.class, ServiceBindingType.class,
ServiceEndpointType.class, ServiceInterfaceType.class,
ServiceType.class, SubscriptionType.class,
TaxonomyElementType.class, ClassificationNodeType.class,
ClassificationSchemeType.class, WorkflowActionType.class);
}
/**
* Gets a registry object based on the object ID specified in the path
*
* @param objectId
* The object Id of the object
* @return The marshalled object
* @throws JAXBException
* If errors occur marshalling the object
*/
@GET
@Produces("text/xml")
public String getRegistryObject(@PathParam("objectId") String objectId)
throws JAXBException {
Object obj = registryObjectDao.getById(objectId);
if (obj == null) {
throw new WebApplicationException(404);
}
return jaxbManager.marshalToXml(obj);
}
public void setRegistryObjectDao(RegistryObjectDao registryObjectDao) {
this.registryObjectDao = registryObjectDao;
}
}

View file

@ -0,0 +1,88 @@
/**
* This software was developed and / or modified by Raytheon Company,
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
*
* U.S. EXPORT CONTROLLED TECHNICAL DATA
* This software product contains export-restricted data whose
* export/transfer/disclosure is restricted by U.S. law. Dissemination
* to non-U.S. persons whether in the United States or abroad requires
* an export license or other authorization.
*
* Contractor Name: Raytheon Company
* Contractor Address: 6825 Pine Street, Suite 340
* Mail Stop B8
* Omaha, NE 68106
* 402.291.0100
*
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
* further licensing information.
**/
package com.raytheon.uf.edex.registry.ebxml.services.rest;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.WebApplicationException;
import oasis.names.tc.ebxml.regrep.xsd.rim.v4.ExtrinsicObjectType;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.raytheon.uf.edex.registry.ebxml.dao.ExtrinsicObjectDao;
/**
*
* REST service implementation for getting repository items according to
* specifications in Section 12.1.2 of the ebRS specification
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* 4/19/2013 1931 bphillip Initial implementation
* </pre>
*
* @author bphillip
* @version 1
*/
@Path("/rest/repositoryItems/{repositoryItemId}")
@Service
@Transactional
public class RepositoryItemsRestService {
/**
* The data access object for getting extrinsic objects containing
* repository items
*/
private ExtrinsicObjectDao extrinsicObjectDao;
/**
* Gets the repository item for the object with the id specified in the url
*
* @param repositoryItemId
* The id of the object containing the repository item
* @return The repository item for the object specified
*/
@GET
@Produces("application/octet-stream")
public byte[] getRegistryObject(
@PathParam("repositoryItemId") String repositoryItemId) {
ExtrinsicObjectType obj = extrinsicObjectDao.getById(repositoryItemId);
if (obj == null) {
throw new WebApplicationException(404);
}
if (obj.getRepositoryItem() == null) {
throw new WebApplicationException(404);
}
return obj.getRepositoryItem();
}
public void setExtrinsicObjectDao(ExtrinsicObjectDao extrinsicObjectDao) {
this.extrinsicObjectDao = extrinsicObjectDao;
}
}

View file

@ -1,69 +0,0 @@
/**
* This software was developed and / or modified by Raytheon Company,
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
*
* U.S. EXPORT CONTROLLED TECHNICAL DATA
* This software product contains export-restricted data whose
* export/transfer/disclosure is restricted by U.S. law. Dissemination
* to non-U.S. persons whether in the United States or abroad requires
* an export license or other authorization.
*
* Contractor Name: Raytheon Company
* Contractor Address: 6825 Pine Street, Suite 340
* Mail Stop B8
* Omaha, NE 68106
* 402.291.0100
*
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
* further licensing information.
**/
package com.raytheon.uf.edex.registry.ebxml.util;
import java.net.InetAddress;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.UnknownHostException;
/**
*
* Bean used to dynamically assign the URL for a registry service via the spring
* configuration
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Feb 22, 2012 #184 bphillip Initial creation
*
* </pre>
*
* @author bphillip
* @version 1.0
*/
public class ServiceUrlFactory {
public ServiceUrlFactory() {
}
/**
* Gets a service address for the given service
*
* @param service
* The name of the service
* @param port
* The port on which the service will listen
* @return The URL String of the service endpoint
* @throws UnknownHostException
* If problems occur determining the host name
* @throws MalformedURLException
*/
public String getServiceAddress(String serviceName, int servicePort)
throws UnknownHostException, MalformedURLException {
URL url = new URL("http", InetAddress.getLocalHost().getHostAddress(),
servicePort, "/" + serviceName);
return url.toString();
}
}

View file

@ -21,26 +21,30 @@ package com.raytheon.uf.edex.registry.ebxml.web;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.Response;
import oasis.names.tc.ebxml.regrep.xsd.lcm.v4.SubmitObjectsRequest;
import oasis.names.tc.ebxml.regrep.xsd.rim.v4.PartyType;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.raytheon.uf.common.registry.ebxml.RegistryUtil;
import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.edex.core.EDEXUtil;
import com.raytheon.uf.edex.registry.ebxml.dao.PartyDao;
import com.raytheon.uf.edex.registry.ebxml.exception.EbxmlRegistryException;
import com.raytheon.uf.edex.registry.ebxml.services.lifecycle.LifecycleManagerImpl;
/**
*
* Servlet implementation used to add a user or organization to the registry
* Servlet implementation used to add a user or organization to the registry.
* FIXME: This class will be refactored in a later ticket
*
* <pre>
*
@ -50,15 +54,17 @@ import com.raytheon.uf.edex.registry.ebxml.services.lifecycle.LifecycleManagerIm
* ------------ ---------- ----------- --------------------------
* 7/31/2012 #724 bphillip Initial creation
* 3/13/2013 1082 bphillip Made transactional
* 4/19/2013 1931 bphillip Refactored to use web application spring container and cxf services
*
* </pre>
*
* @author bphillip
* @version 1.0
*/
@Path("/AddRegistryParty")
@Service
@Transactional
public class AddRegistryParty extends javax.servlet.http.HttpServlet implements
javax.servlet.Servlet {
public class AddRegistryParty {
/** Serial */
private static final long serialVersionUID = 1422748054768442033L;
@ -73,45 +79,42 @@ public class AddRegistryParty extends javax.servlet.http.HttpServlet implements
/** the page to display upon failure */
private static final String ERROR_RESPONSE_PAGE = "addPartyFailure";
// FIXME: Add spring support to servlets
private PartyDao partyDao;
private PartyDao partyDao = (PartyDao) EDEXUtil.getESBComponent("partyDao");
private LifecycleManagerImpl lcm;
private LifecycleManagerImpl lcm = (LifecycleManagerImpl) EDEXUtil
.getESBComponent("lcmServiceImpl");
private RegistryWebUtil webUtil;
private RegistryWebUtil webUtil = (RegistryWebUtil) EDEXUtil
.getESBComponent("webUtil");
@Override
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws IOException {
@POST
@Produces("text/html")
public Response doPost(@Context HttpServletRequest request)
throws IOException {
String partyId = request.getParameter(WebFields.ID.fieldName());
String objectType = request
.getParameter(WebFields.OBJ_TYPE.fieldName());
PartyType existingParty = null;
try {
// The EDEX internal user cannot be modified
if (partyId.equals(RegistryUtil.DEFAULT_OWNER)) {
webUtil.sendErrorResponse(request, response,
ERROR_RESPONSE_PAGE, partyId, objectType,
"Cannot modify EDEX Internal User");
return Response.serverError().build();
// webUtil.sendErrorResponse(request, response,
// ERROR_RESPONSE_PAGE, partyId, objectType,
// "Cannot modify EDEX Internal User");
}
/*
* Check to see if the party already exists. If so, the user cannot
* be added
* Check to see if the party already exists. If so, the user cannot be
* added
*/
existingParty = partyDao.getById(partyId);
if (existingParty != null) {
statusHandler.error("Error adding " + objectType
+ " to registry. " + objectType + " " + partyId
+ " already exists");
webUtil.sendErrorResponse(request, response,
ERROR_RESPONSE_PAGE, partyId, objectType, objectType
+ " Already Exists");
statusHandler.error("Error adding " + objectType + " to registry. "
+ objectType + " " + partyId + " already exists");
return Response.serverError().build();
// webUtil.sendErrorResponse(request, response,
// ERROR_RESPONSE_PAGE, partyId, objectType, objectType
// + " Already Exists");
}
@ -123,14 +126,15 @@ public class AddRegistryParty extends javax.servlet.http.HttpServlet implements
submitRequest = webUtil.createParty(request);
} catch (EbxmlRegistryException e) {
statusHandler.error("Error creating " + objectType, e);
webUtil.sendErrorResponse(
request,
response,
ERROR_RESPONSE_PAGE,
partyId,
objectType,
"Error creating " + objectType + "\n"
+ e.getLocalizedMessage());
return Response.serverError().build();
// webUtil.sendErrorResponse(
// request,
// response,
// ERROR_RESPONSE_PAGE,
// partyId,
// objectType,
// "Error creating " + objectType + "\n"
// + e.getLocalizedMessage());
}
// Submit the objects to the registry
@ -140,26 +144,22 @@ public class AddRegistryParty extends javax.servlet.http.HttpServlet implements
} catch (Exception e) {
statusHandler.error("Error submitting new " + objectType
+ " to the registry", e);
webUtil.sendErrorResponse(
request,
response,
ERROR_RESPONSE_PAGE,
partyId,
objectType,
"Error submitting new " + objectType
+ " to the registry\n"
+ e.getLocalizedMessage());
return Response.serverError().build();
// webUtil.sendErrorResponse(
// request,
// response,
// ERROR_RESPONSE_PAGE,
// partyId,
// objectType,
// "Error submitting new " + objectType
// + " to the registry\n"
// + e.getLocalizedMessage());
}
// Send success response back to the caller
webUtil.sendSuccessResponse(request, response,
SUCCESS_RESPONSE_PAGE, partyId, objectType);
} catch (ServletException e) {
statusHandler.error("Error generating response", e);
response.sendError(1,
"Error generating response: " + e.getLocalizedMessage());
}
return Response.ok().build();
// webUtil.sendSuccessResponse(request, response, SUCCESS_RESPONSE_PAGE,
// partyId, objectType);
}
public void setWebUtil(RegistryWebUtil webUtil) {

View file

@ -21,24 +21,27 @@ package com.raytheon.uf.edex.registry.ebxml.web;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.Response;
import oasis.names.tc.ebxml.regrep.xsd.rim.v4.PartyType;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.raytheon.uf.common.registry.ebxml.RegistryUtil;
import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.edex.core.EDEXUtil;
import com.raytheon.uf.edex.registry.ebxml.dao.PartyDao;
/**
*
* Servlet implementation used to delete a user or organization from the
* registry
* registry. FIXME: This class will be refactored in a later ticket
*
* <pre>
*
@ -48,15 +51,17 @@ import com.raytheon.uf.edex.registry.ebxml.dao.PartyDao;
* ------------ ---------- ----------- --------------------------
* 7/31/2012 #724 bphillip Initial creation
* 3/13/2013 1082 bphillip Made transactional
* 4/19/2013 1931 bphillip Refactored to use web application spring container and cxf services
*
* </pre>
*
* @author bphillip
* @version 1.0
*/
@Path("/DeleteRegistryParty")
@Service
@Transactional
public class DeleteRegistryParty extends javax.servlet.http.HttpServlet
implements javax.servlet.Servlet {
public class DeleteRegistryParty {
/** The serial ID */
private static final long serialVersionUID = -9009661529309992652L;
@ -67,31 +72,29 @@ public class DeleteRegistryParty extends javax.servlet.http.HttpServlet
/** The page to display upon failure */
private static final String ERROR_RESPONSE_PAGE = "deletePartyFailure";
// FIXME: Add spring support to servlets
private PartyDao partyDao;
private PartyDao partyDao = (PartyDao) EDEXUtil.getESBComponent("partyDao");
private RegistryWebUtil webUtil = (RegistryWebUtil) EDEXUtil
.getESBComponent("webUtil");
private RegistryWebUtil webUtil;
/** The logger */
private static final transient IUFStatusHandler statusHandler = UFStatus
.getHandler(DeleteRegistryParty.class);
@Override
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws IOException {
try {
@POST
@Produces("text/html")
public Response doPost(@Context HttpServletRequest request)
throws IOException {
String partyId = request.getParameter(WebFields.ID.fieldName());
String objectType = request.getParameter(WebFields.OBJ_TYPE
.fieldName());
String objectType = request
.getParameter(WebFields.OBJ_TYPE.fieldName());
PartyType existingParty = null;
// The EDEX internal user cannot be modified
if (partyId.equals(RegistryUtil.DEFAULT_OWNER)) {
webUtil.sendErrorResponse(request, response,
ERROR_RESPONSE_PAGE, partyId, objectType,
"Cannot remove EDEX Internal User");
return Response.serverError().build();
// webUtil.sendErrorResponse(request, response,
// ERROR_RESPONSE_PAGE, partyId, objectType,
// "Cannot remove EDEX Internal User");
}
/*
@ -102,10 +105,11 @@ public class DeleteRegistryParty extends javax.servlet.http.HttpServlet
existingParty = partyDao.getById(partyId);
if (existingParty == null) {
webUtil.sendErrorResponse(request, response,
ERROR_RESPONSE_PAGE, partyId, objectType,
"Unable to delete " + objectType + " " + partyId + ". "
+ objectType + " does not exist");
return Response.serverError().build();
// webUtil.sendErrorResponse(request, response,
// ERROR_RESPONSE_PAGE, partyId, objectType,
// "Unable to delete " + objectType + " " + partyId + ". "
// + objectType + " does not exist");
}
/*
@ -116,20 +120,17 @@ public class DeleteRegistryParty extends javax.servlet.http.HttpServlet
webUtil.removeParty(existingParty);
} catch (Exception e) {
statusHandler.error("Error modifying user", e);
webUtil.sendErrorResponse(request, response,
ERROR_RESPONSE_PAGE, partyId, objectType,
"Error removing associations to " + objectType + "\n"
+ e.getLocalizedMessage());
return Response.serverError().build();
// webUtil.sendErrorResponse(request, response,
// ERROR_RESPONSE_PAGE, partyId, objectType,
// "Error removing associations to " + objectType + "\n"
// + e.getLocalizedMessage());
}
// Send back a successful response to the requester
webUtil.sendSuccessResponse(request, response,
SUCCESS_RESPONSE_PAGE, partyId, objectType);
} catch (ServletException e) {
statusHandler.error("Error generating response", e);
response.sendError(1,
"Error generating response: " + e.getLocalizedMessage());
}
// webUtil.sendSuccessResponse(request, response,
// SUCCESS_RESPONSE_PAGE, partyId, objectType);
return Response.ok().build();
}
public void setPartyDao(PartyDao partyDao) {

View file

@ -21,19 +21,22 @@ package com.raytheon.uf.edex.registry.ebxml.web;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.Response;
import oasis.names.tc.ebxml.regrep.xsd.lcm.v4.SubmitObjectsRequest;
import oasis.names.tc.ebxml.regrep.xsd.rim.v4.PartyType;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.raytheon.uf.common.registry.ebxml.RegistryUtil;
import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.edex.core.EDEXUtil;
import com.raytheon.uf.edex.registry.ebxml.dao.PartyDao;
import com.raytheon.uf.edex.registry.ebxml.exception.EbxmlRegistryException;
import com.raytheon.uf.edex.registry.ebxml.services.lifecycle.LifecycleManagerImpl;
@ -41,6 +44,7 @@ import com.raytheon.uf.edex.registry.ebxml.services.lifecycle.LifecycleManagerIm
/**
*
* Servlet implementation used to modify a user or organization in the registry
* FIXME: This class will be refactored in a later ticket
*
* <pre>
*
@ -50,15 +54,17 @@ import com.raytheon.uf.edex.registry.ebxml.services.lifecycle.LifecycleManagerIm
* ------------ ---------- ----------- --------------------------
* 7/31/2012 #724 bphillip Initial creation
* 3/13/2013 1082 bphillip Made transactional
* 4/19/2013 1931 bphillip Refactored to use web application spring container and cxf services
*
* </pre>
*
* @author bphillip
* @version 1.0
*/
@Path("/DeleteRegistryParty")
@Service
@Transactional
public class ModifyRegistryParty extends javax.servlet.http.HttpServlet
implements javax.servlet.Servlet {
public class ModifyRegistryParty {
/** The serial ID */
private static final long serialVersionUID = -2361555059266130462L;
@ -69,49 +75,46 @@ public class ModifyRegistryParty extends javax.servlet.http.HttpServlet
/** Page to display upon failure */
private static final String ERROR_RESPONSE_PAGE = "modifyPartyFailure";
// FIXME: Add spring support to servlets
private PartyDao partyDao;
private PartyDao partyDao = (PartyDao) EDEXUtil.getESBComponent("partyDao");
private LifecycleManagerImpl lcm;
private LifecycleManagerImpl lcm = (LifecycleManagerImpl) EDEXUtil
.getESBComponent("lcmServiceImpl");
private RegistryWebUtil webUtil = (RegistryWebUtil) EDEXUtil
.getESBComponent("webUtil");
private RegistryWebUtil webUtil;
/** The logger */
private static final transient IUFStatusHandler statusHandler = UFStatus
.getHandler(ModifyRegistryParty.class);
@Override
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws IOException {
@POST
@Produces("text/html")
public Response doPost(@Context HttpServletRequest request)
throws IOException {
try {
String partyId = request.getParameter(WebFields.ID.fieldName());
String objectType = request.getParameter(WebFields.OBJ_TYPE
.fieldName());
String objectType = request
.getParameter(WebFields.OBJ_TYPE.fieldName());
PartyType existingParty = null;
// The EDEX internal user cannot be modified
if (partyId.equals(RegistryUtil.DEFAULT_OWNER)) {
webUtil.sendErrorResponse(request, response,
ERROR_RESPONSE_PAGE, partyId, objectType,
"Cannot modify EDEX Internal User");
return Response.serverError().build();
// webUtil.sendErrorResponse(request, response,
// ERROR_RESPONSE_PAGE, partyId, objectType,
// "Cannot modify EDEX Internal User");
}
/*
* Check if the party already exists. If the party does not exist,
* the party cannot be modified. An error response is sent to the
* requester
* Check if the party already exists. If the party does not exist, the
* party cannot be modified. An error response is sent to the requester
*/
existingParty = partyDao.getById(partyId);
if (existingParty == null) {
webUtil.sendErrorResponse(request, response,
ERROR_RESPONSE_PAGE, partyId, objectType,
"Unable to modify " + objectType + " " + partyId + ". "
+ objectType + " does not exist");
return Response.serverError().build();
// webUtil.sendErrorResponse(request, response,
// ERROR_RESPONSE_PAGE, partyId, objectType,
// "Unable to modify " + objectType + " " + partyId + ". "
// + objectType + " does not exist");
}
/*
@ -122,14 +125,15 @@ public class ModifyRegistryParty extends javax.servlet.http.HttpServlet
submitRequest = webUtil.createParty(request);
} catch (EbxmlRegistryException e) {
statusHandler.error("Error modifying user", e);
webUtil.sendErrorResponse(
request,
response,
ERROR_RESPONSE_PAGE,
partyId,
objectType,
"Error modifying " + objectType + "\n"
+ e.getLocalizedMessage());
return Response.serverError().build();
// webUtil.sendErrorResponse(
// request,
// response,
// ERROR_RESPONSE_PAGE,
// partyId,
// objectType,
// "Error modifying " + objectType + "\n"
// + e.getLocalizedMessage());
}
/*
@ -141,21 +145,18 @@ public class ModifyRegistryParty extends javax.servlet.http.HttpServlet
webUtil.updatePC(request);
} catch (Exception e) {
statusHandler.error("Error modifying user", e);
webUtil.sendErrorResponse(request, response,
ERROR_RESPONSE_PAGE, partyId, objectType,
"Error removing associations to " + objectType + "\n"
+ e.getLocalizedMessage());
return Response.serverError().build();
// webUtil.sendErrorResponse(request, response,
// ERROR_RESPONSE_PAGE, partyId, objectType,
// "Error removing associations to " + objectType + "\n"
// + e.getLocalizedMessage());
}
/*
* Send back success message to the requester
*/
webUtil.sendSuccessResponse(request, response,
SUCCESS_RESPONSE_PAGE, partyId, objectType);
} catch (ServletException e) {
statusHandler.error("Error generating response", e);
response.sendError(1,
"Error generating response: " + e.getLocalizedMessage());
}
// webUtil.sendSuccessResponse(request, response, SUCCESS_RESPONSE_PAGE,
// partyId, objectType);
return Response.ok().build();
}
public void setPartyDao(PartyDao partyDao) {

View file

@ -77,6 +77,10 @@ public class RegistryWebUtil {
private LifecycleManagerImpl lcm;
private ClassificationNodeDao classificationNodeDao;
private PersonDao personDao;
/**
* Creates a party (user or organization) based on parameters contained in
* the servlet request
@ -91,7 +95,6 @@ public class RegistryWebUtil {
throws EbxmlRegistryException {
List<RegistryObjectType> objectList = new ArrayList<RegistryObjectType>();
ClassificationNodeDao dao = new ClassificationNodeDao();
String partyId = request.getParameter("id");
PartyType party = null;
@ -146,7 +149,6 @@ public class RegistryWebUtil {
}
// Creating an organization
else {
PersonDao personDao = new PersonDao();
party = new OrganizationType();
party.setLid(partyId);
party.setOwner(RegistryUtil.DEFAULT_OWNER);
@ -173,7 +175,7 @@ public class RegistryWebUtil {
// Assign the postal address
PostalAddressType address = new PostalAddressType();
address.setType(dao.getNodeFromCode(request
address.setType(classificationNodeDao.getNodeFromCode(request
.getParameter(WebFields.ADDRESS_TYPE.fieldName())));
address.setStreet(request.getParameter(WebFields.ADDRESS_1.fieldName()));
address.setStreetNumber(request.getParameter(WebFields.ADDRESS_2
@ -188,7 +190,7 @@ public class RegistryWebUtil {
// Assign the telephone number
TelephoneNumberType phone = new TelephoneNumberType();
phone.setType(dao.getNodeFromCode(request
phone.setType(classificationNodeDao.getNodeFromCode(request
.getParameter(WebFields.TELEPHONE_TYPE.fieldName())));
phone.setAreaCode(request.getParameter(WebFields.AREA_CODE.fieldName()));
phone.setNumber(request.getParameter(WebFields.PHONE_1.fieldName())
@ -198,7 +200,7 @@ public class RegistryWebUtil {
// Assign the email address
EmailAddressType email = new EmailAddressType();
email.setType(dao.getNodeFromCode(request
email.setType(classificationNodeDao.getNodeFromCode(request
.getParameter(WebFields.EMAIL_TYPE.fieldName())));
email.setAddress(request.getParameter(WebFields.EMAIL.fieldName()));
party.getEmailAddress().add(email);
@ -537,4 +539,13 @@ public class RegistryWebUtil {
this.lcm = lcm;
}
public void setClassificationNodeDao(
ClassificationNodeDao classificationNodeDao) {
this.classificationNodeDao = classificationNodeDao;
}
public void setPersonDao(PersonDao personDao) {
this.personDao = personDao;
}
}

View file

@ -11,11 +11,11 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<link rel="stylesheet" type="text/css" media="screen, projection" href="dataDelivery.css"/>
<script type="text/javascript" src='/registryEbxml/dwr/engine.js'></script>
<script type="text/javascript" src='/registryEbxml/dwr/util.js'></script>
<script type='text/javascript' src='/registryEbxml/dwr/interface/RegistryWeb.js'></script>
<script type='text/javascript' src='/registryEbxml/dataDeliveryUtil.js'></script>
<script type='text/javascript' src='/registryEbxml/validateForm.js'></script>
<script type="text/javascript" src='/dwr/engine.js'></script>
<script type="text/javascript" src='/dwr/util.js'></script>
<script type='text/javascript' src='/dwr/interface/RegistryWeb.js'></script>
<script type='text/javascript' src='/dataDeliveryUtil.js'></script>
<script type='text/javascript' src='/validateForm.js'></script>
<title>Data Delivery Registry Admin: Add New Organization</title>
</head>

View file

@ -11,10 +11,10 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<link rel="stylesheet" type="text/css" media="screen, projection" href="dataDelivery.css"/>
<script type="text/javascript" src='/registryEbxml/dwr/engine.js'></script>
<script type="text/javascript" src='/registryEbxml/dwr/util.js'></script>
<script type='text/javascript' src='/registryEbxml/dwr/interface/RegistryWeb.js'></script>
<script type='text/javascript' src='/registryEbxml/dataDeliveryUtil.js'></script>
<script type="text/javascript" src='/dwr/engine.js'></script>
<script type="text/javascript" src='/dwr/util.js'></script>
<script type='text/javascript' src='/dwr/interface/RegistryWeb.js'></script>
<script type='text/javascript' src='/dataDeliveryUtil.js'></script>
<title>Data Delivery Registry Organization Admin</title>
</head>
<body onload="getOrgs()">

View file

@ -11,11 +11,11 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<link rel="stylesheet" type="text/css" media="screen, projection" href="dataDelivery.css"/>
<script type="text/javascript" src='/registryEbxml/dwr/engine.js'></script>
<script type="text/javascript" src='/registryEbxml/dwr/util.js'></script>
<script type='text/javascript' src='/registryEbxml/dwr/interface/RegistryWeb.js'></script>
<script type='text/javascript' src='/registryEbxml/dataDeliveryUtil.js'></script>
<script type='text/javascript' src='/registryEbxml/validateForm.js'></script>
<script type="text/javascript" src='/dwr/engine.js'></script>
<script type="text/javascript" src='/dwr/util.js'></script>
<script type='text/javascript' src='/dwr/interface/RegistryWeb.js'></script>
<script type='text/javascript' src='/dataDeliveryUtil.js'></script>
<script type='text/javascript' src='/validateForm.js'></script>
<title>Data Delivery Registry Admin: Add New User</title>
</head>

View file

@ -11,10 +11,10 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<link rel="stylesheet" type="text/css" media="screen, projection" href="dataDelivery.css"/>
<script type="text/javascript" src='/registryEbxml/dwr/engine.js'></script>
<script type="text/javascript" src='/registryEbxml/dwr/util.js'></script>
<script type='text/javascript' src='/registryEbxml/dwr/interface/RegistryWeb.js'></script>
<script type='text/javascript' src='/registryEbxml/dataDeliveryUtil.js'></script>
<script type="text/javascript" src='/dwr/engine.js'></script>
<script type="text/javascript" src='/dwr/util.js'></script>
<script type='text/javascript' src='/dwr/interface/RegistryWeb.js'></script>
<script type='text/javascript' src='/dataDeliveryUtil.js'></script>
<title>Data Delivery Registry Admin</title>
</head>
<body onload="getUsers()">

View file

@ -13,28 +13,27 @@
<display-name>Data Delivery</display-name>
<servlet>
<description><![CDATA[Add users to the registry]]></description>
<display-name>AddRegistryParty</display-name>
<servlet-name>AddRegistryParty</servlet-name>
<servlet-class>com.raytheon.uf.edex.registry.ebxml.web.AddRegistryParty
</servlet-class>
<servlet-name>RegistryWebServiceServlet</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
<init-param>
<param-name>config-location</param-name>
<param-value>/webServiceBeans.xml</param-value>
</init-param>
<init-param>
<param-name>static-welcome-file</param-name>
<param-value>/RegistryUserMenu.html</param-value>
</init-param>
<init-param>
<param-name>static-resources-list</param-name>
<param-value>.*\.html .*\.js .*\.css</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<description><![CDATA[Modify existing users in the registry]]></description>
<display-name>ModifyRegistryParty</display-name>
<servlet-name>ModifyRegistryParty</servlet-name>
<servlet-class>com.raytheon.uf.edex.registry.ebxml.web.ModifyRegistryParty
</servlet-class>
</servlet>
<servlet>
<description><![CDATA[Delete users from the registry]]></description>
<display-name>DeleteRegistryParty</display-name>
<servlet-name>DeleteRegistryParty</servlet-name>
<servlet-class>com.raytheon.uf.edex.registry.ebxml.web.DeleteRegistryParty
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>RegistryWebServiceServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<servlet>
<display-name>DWR Servlet</display-name>
@ -47,22 +46,7 @@
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AddRegistryParty</servlet-name>
<url-pattern>/AddRegistryParty</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ModifyRegistryParty</servlet-name>
<url-pattern>/ModifyRegistryParty</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>DeleteRegistryParty</servlet-name>
<url-pattern>/DeleteRegistryParty</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>/RegistryUserMenu.html</welcome-file>
<welcome-file>RegistryUserMenu.html</welcome-file>
</welcome-file-list>
</web-app>

View file

@ -0,0 +1,71 @@
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xmlns:jaxrs="http://cxf.apache.org/jaxrs"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://camel.apache.org/schema/spring
http://camel.apache.org/schema/spring/camel-spring.xsd
http://cxf.apache.org/jaxws
http://cxf.apache.org/schemas/jaxws.xsd
http://cxf.apache.org/jaxrs
http://cxf.apache.org/schemas/jaxrs.xsd">
<import resource="file:///${edex.home}/conf/spring/edex-db.xml" />
<import resource="classpath:res/spring/ebxml.xml"/>
<import resource="classpath:res/spring/ebxml-webservices.xml" />
<import resource="classpath:res/spring/ebxml-querytypes.xml" />
<import resource="classpath:res/spring/ebxml-registry-dao.xml" />
<import resource="classpath:META-INF/cxf/cxf.xml" />
<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
<!-- SOAP Service definitions -->
<jaxws:server id="QueryService" address="/queryManager">
<jaxws:serviceBean>
<ref bean="queryServiceImpl" />
</jaxws:serviceBean>
</jaxws:server>
<jaxws:server id="NotificationListenerService" address="/notificationListener">
<jaxws:serviceBean>
<ref bean="notificationServiceImpl" />
</jaxws:serviceBean>
</jaxws:server>
<jaxws:server id="LifecycleManagerServiceService" address="/lifecycleManager">
<jaxws:serviceBean>
<ref bean="lcmServiceImpl" />
</jaxws:serviceBean>
</jaxws:server>
<jaxws:server id="ValidatorService" address="/validator">
<jaxws:serviceBean>
<ref bean="validatorServiceImpl" />
</jaxws:serviceBean>
</jaxws:server>
<jaxws:server id="CatalogerService" address="/cataloger">
<jaxws:serviceBean>
<ref bean="catalogerServiceImpl" />
</jaxws:serviceBean>
</jaxws:server>
<!-- End Soap Service Definitions -->
<!-- REST Service Definitions -->
<jaxrs:server id="registryRestServices" address="/">
<jaxrs:serviceBeans>
<ref bean="registryObjectsRestService" />
<ref bean="repositoryObjectsRestService" />
<ref bean="queryProtocolRestService" />
<ref bean="AddRegistryParty" />
<ref bean="ModifyRegistryParty" />
<ref bean="DeleteRegistryParty" />
</jaxrs:serviceBeans>
</jaxrs:server>
<!-- End REST Endpoint definitions -->
</beans>

View file

@ -71,7 +71,8 @@ import com.raytheon.uf.edex.database.dao.DatabaseUtil;
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { DatabaseUtil.UNIT_TEST_DB_BEANS_XML,
"/spring/ebxml.xml", "/spring/ebxml-impl.xml",
"/spring/ebxml.xml", "/spring/ebxml-xacml.xml",
"/spring/ebxml-webservices.xml", "/spring/ebxml-impl.xml",
"/spring/ebxml-querytypes.xml", "/spring/ebxml-registry-dao.xml",
"/ebxml/unit-test-ebxml-beans.xml", "/unit-test-localization-beans.xml" })
@DirtiesContext(classMode = ClassMode.AFTER_EACH_TEST_METHOD)