Issue #1914 Add plugin based registry notification

Change-Id: Ie450b60683e4c317ac19628cb923310b828747a7

Former-commit-id: c75a5f6664b3c6d79773f4eda52ce03dfb5ba877
This commit is contained in:
Dustin Johnson 2013-04-17 11:50:41 -05:00
parent 0194324742
commit 8989c09566
10 changed files with 378 additions and 103 deletions

View file

@ -4,12 +4,15 @@
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">

View file

@ -42,6 +42,7 @@
<bean name="AuditableEventTypeDao"
class="com.raytheon.uf.edex.registry.ebxml.dao.AuditableEventTypeDao">
<property name="subscriptionManager" ref="registrySubscriptionManagerInvoker" />
<property name="sessionFactory" ref="metadataSessionFactory" />
</bean>

View file

@ -40,8 +40,8 @@ import com.raytheon.uf.common.registry.constants.ActionTypes;
import com.raytheon.uf.common.registry.constants.RegistryObjectTypes;
import com.raytheon.uf.common.registry.constants.StatusTypes;
import com.raytheon.uf.common.registry.ebxml.RegistryUtil;
import com.raytheon.uf.edex.core.EDEXUtil;
import com.raytheon.uf.edex.registry.ebxml.exception.EbxmlRegistryException;
import com.raytheon.uf.edex.registry.ebxml.services.IRegistrySubscriptionManager;
import com.raytheon.uf.edex.registry.ebxml.util.EbxmlObjectUtil;
/**
@ -55,6 +55,7 @@ import com.raytheon.uf.edex.registry.ebxml.util.EbxmlObjectUtil;
* ------------ ---------- ----------- --------------------------
* 3/18/2013 1802 bphillip Initial creation
* 4/9/2013 1802 bphillip Removed exception catching
* Apr 17, 2013 1914 djohnson Use strategy for subscription processing.
*
* </pre>
*
@ -82,12 +83,22 @@ public class AuditableEventTypeDao extends
/** Order by clause */
private static final String ORDER_CLAUSE = " order by event.timestamp asc";
private IRegistrySubscriptionManager subscriptionManager;
/**
* Constructor.
*
* @param subscriptionProcessor
*/
public AuditableEventTypeDao() {
}
@Override
public void create(AuditableEventType event) {
template.save(event);
// Notify the subscription monitor that a new event has occurred
try {
EDEXUtil.getMessageProducer().sendAsyncUri(
"vm:processSubscriptions", null);
subscriptionManager.processSubscriptions();
} catch (Throwable t) {
statusHandler
.error("Unexpected error ecountered while processing subscriptions!",
@ -292,4 +303,20 @@ public class AuditableEventTypeDao extends
return AuditableEventType.class;
}
/**
* @return the subscription manager
*/
public IRegistrySubscriptionManager getSubscriptionManager() {
return subscriptionManager;
}
/**
* @param subscriptionManager
* the subscriptionManager to set
*/
public void setSubscriptionManager(
IRegistrySubscriptionManager subscriptionManager) {
this.subscriptionManager = subscriptionManager;
}
}

View file

@ -0,0 +1,70 @@
/**
* 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.dao;
import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.common.status.UFStatus.Priority;
import com.raytheon.uf.edex.core.EDEXUtil;
import com.raytheon.uf.edex.core.EdexException;
import com.raytheon.uf.edex.registry.ebxml.services.IRegistrySubscriptionManager;
/**
* Sends a request to the esb route to request that registry subscriptions are
* processed.
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Apr 16, 2013 1914 djohnson Extracted from AuditableEventTypeDao.
*
* </pre>
*
* @author djohnson
* @version 1.0
*/
public class EsbRouteRegistrySubscriptionManagerInvocation implements
IRegistrySubscriptionManager {
private static final IUFStatusHandler statusHandler = UFStatus
.getHandler(EsbRouteRegistrySubscriptionManagerInvocation.class);
private static final String ESB_ROUTE = "vm:processSubscriptions";
/**
* {@inheritDoc}
*/
@Override
public void processSubscriptions() {
try {
EDEXUtil.getMessageProducer().sendAsyncUri(
ESB_ROUTE, null);
} catch (EdexException e) {
statusHandler
.handle(Priority.PROBLEM,
"Unable to post message to esb route to process registry subscriptions!",
e);
}
}
}

View file

@ -0,0 +1,46 @@
/**
* 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;
/**
* Extracted from RegistrySubscriptionManager.
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Apr 17, 2013 1914 djohnson Initial creation
*
* </pre>
*
* @author djohnson
* @version 1.0
*/
public interface IRegistrySubscriptionManager {
/**
* Process the subscriptions currently in the registry
*/
void processSubscriptions();
}

View file

@ -0,0 +1,139 @@
/**
* 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.dao;
import java.math.BigInteger;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import oasis.names.tc.ebxml.regrep.wsdl.registry.services.v4.LifecycleManager;
import oasis.names.tc.ebxml.regrep.wsdl.registry.services.v4.QueryManager;
import oasis.names.tc.ebxml.regrep.xsd.lcm.v4.Mode;
import oasis.names.tc.ebxml.regrep.xsd.lcm.v4.SubmitObjectsRequest;
import oasis.names.tc.ebxml.regrep.xsd.query.v4.QueryRequest;
import oasis.names.tc.ebxml.regrep.xsd.query.v4.ResponseOptionType;
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 oasis.names.tc.ebxml.regrep.xsd.rim.v4.SlotType;
import oasis.names.tc.ebxml.regrep.xsd.rim.v4.StringValueType;
import org.junit.Before;
import org.springframework.beans.factory.annotation.Autowired;
import com.google.common.collect.Lists;
import com.raytheon.uf.edex.core.EDEXUtil;
import com.raytheon.uf.edex.registry.ebxml.services.query.QueryConstants;
import com.raytheon.uf.edex.registry.ebxml.services.query.QueryManagerImpl.RETURN_TYPE;
import com.raytheon.uf.edex.registry.ebxml.util.EbxmlObjectUtil;
/**
* Test {@link LifecycleManager} submit objects functionality.
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Apr 15, 2013 1914 djohnson Initial creation
*
* </pre>
*
* @author djohnson
* @version 1.0
*/
public class AbstractRegistryTest {
protected static final String MY_REGISTRY_OBJECT_ID = "myRegistryObjectId";
protected static final String REGISTRY_OBJECT_TYPE = "myRegistryObjectType";
@Autowired
protected LifecycleManager lifecycleManager;
protected QueryManager queryManager;
@Before
public void setUp() {
this.queryManager = EDEXUtil.getESBComponent(QueryManager.class,
"queryServiceImpl");
}
/**
* Create the submit objects request.
*
* @param registryObjectId
* the registry object id
* @param mode
* @return
*/
protected SubmitObjectsRequest createSubmitObjectsRequest(
String registryObjectId, String registryObjectType, Mode mode) {
final RegistryObjectType registryObject = new RegistryObjectType();
registryObject.setId(MY_REGISTRY_OBJECT_ID);
registryObject.setLid(registryObject.getId());
registryObject.setObjectType(registryObjectType);
List<RegistryObjectType> registryObjects = Lists.newArrayList();
registryObjects.add(registryObject);
RegistryObjectListType registryObjectList = new RegistryObjectListType();
registryObjectList.setRegistryObject(registryObjects);
SubmitObjectsRequest submitObjectsRequest = new SubmitObjectsRequest();
submitObjectsRequest.setCheckReferences(false);
submitObjectsRequest.setComment("This is a comment.");
submitObjectsRequest.setId("someId");
submitObjectsRequest.setMode(mode);
submitObjectsRequest.setRegistryObjectList(registryObjectList);
return submitObjectsRequest;
}
protected QueryRequest createQueryForRegistryObjectByLid(
String registryObjectId) {
final ResponseOptionType responseOption = EbxmlObjectUtil.queryObjectFactory
.createResponseOptionType();
responseOption.setReturnType(RETURN_TYPE.RegistryObject.toString());
responseOption.setReturnComposedObjects(false);
final QueryType queryType = new QueryType();
queryType
.setQueryDefinition("urn:oasis:names:tc:ebxml-regrep:query:GetObjectsByLid");
Set<SlotType> slots = new HashSet<SlotType>();
final SlotType slot = new SlotType();
slot.setName(QueryConstants.LID);
final StringValueType slotValue = new StringValueType();
slotValue.setStringValue(registryObjectId);
slot.setSlotValue(slotValue);
slots.add(slot);
queryType.setSlot(slots);
QueryRequest partQueryRequest = new QueryRequest();
partQueryRequest.setResponseOption(responseOption);
partQueryRequest.setFederated(false);
partQueryRequest.setQuery(queryType);
partQueryRequest.setMatchOlderVersions(true);
partQueryRequest.setMaxResults(new BigInteger("9999"));
return partQueryRequest;
}
}

View file

@ -26,44 +26,28 @@ import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.fail;
import java.math.BigInteger;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import oasis.names.tc.ebxml.regrep.wsdl.registry.services.v4.LifecycleManager;
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.lcm.v4.Mode;
import oasis.names.tc.ebxml.regrep.xsd.lcm.v4.SubmitObjectsRequest;
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 oasis.names.tc.ebxml.regrep.xsd.rim.v4.RegistryObjectListType;
import oasis.names.tc.ebxml.regrep.xsd.rim.v4.RegistryObjectType;
import oasis.names.tc.ebxml.regrep.xsd.rim.v4.SlotType;
import oasis.names.tc.ebxml.regrep.xsd.rim.v4.StringValueType;
import oasis.names.tc.ebxml.regrep.xsd.rs.v4.ObjectExistsExceptionType;
import oasis.names.tc.ebxml.regrep.xsd.rs.v4.RegistryExceptionType;
import oasis.names.tc.ebxml.regrep.xsd.rs.v4.RegistryResponseType;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.annotation.DirtiesContext.ClassMode;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import com.google.common.collect.Lists;
import com.raytheon.uf.common.registry.constants.RegistryResponseStatus;
import com.raytheon.uf.edex.core.EDEXUtil;
import com.raytheon.uf.edex.database.dao.DatabaseUtil;
import com.raytheon.uf.edex.registry.ebxml.services.query.QueryConstants;
import com.raytheon.uf.edex.registry.ebxml.services.query.QueryManagerImpl.RETURN_TYPE;
import com.raytheon.uf.edex.registry.ebxml.util.EbxmlObjectUtil;
/**
* Test {@link LifecycleManager} submit objects functionality.
@ -87,22 +71,7 @@ import com.raytheon.uf.edex.registry.ebxml.util.EbxmlObjectUtil;
"/spring/ebxml-querytypes.xml", "/spring/ebxml-registry-dao.xml",
"/ebxml/unit-test-ebxml-beans.xml" })
@DirtiesContext(classMode = ClassMode.AFTER_EACH_TEST_METHOD)
public class LifecycleManagerSubmitObjectsTest {
private static final String MY_REGISTRY_OBJECT_ID = "myRegistryObjectId";
private static final String REGISTRY_OBJECT_TYPE = "myRegistryObjectType";
@Autowired
private LifecycleManager lifecycleManager;
private QueryManager queryManager;
@Before
public void setUp() {
this.queryManager = EDEXUtil.getESBComponent(QueryManager.class,
"queryServiceImpl");
}
public class LifecycleManagerSubmitObjectsTest extends AbstractRegistryTest {
/**
* CreateOnly - If an object does not exist, server MUST create it as a new
@ -116,7 +85,7 @@ public class LifecycleManagerSubmitObjectsTest {
throws MsgRegistryException {
SubmitObjectsRequest submitObjectsRequest = createSubmitObjectsRequest(
MY_REGISTRY_OBJECT_ID, Mode.CREATE_ONLY);
MY_REGISTRY_OBJECT_ID, REGISTRY_OBJECT_TYPE, Mode.CREATE_ONLY);
final RegistryResponseType response = lifecycleManager
.submitObjects(submitObjectsRequest);
@ -137,7 +106,7 @@ public class LifecycleManagerSubmitObjectsTest {
throws MsgRegistryException {
SubmitObjectsRequest submitObjectsRequest = createSubmitObjectsRequest(
MY_REGISTRY_OBJECT_ID, Mode.CREATE_ONLY);
MY_REGISTRY_OBJECT_ID, REGISTRY_OBJECT_TYPE, Mode.CREATE_ONLY);
lifecycleManager.submitObjects(submitObjectsRequest);
@ -162,7 +131,8 @@ public class LifecycleManagerSubmitObjectsTest {
throws MsgRegistryException {
SubmitObjectsRequest submitObjectsRequest = createSubmitObjectsRequest(
MY_REGISTRY_OBJECT_ID, Mode.CREATE_OR_REPLACE);
MY_REGISTRY_OBJECT_ID, REGISTRY_OBJECT_TYPE,
Mode.CREATE_OR_REPLACE);
final RegistryResponseType response = lifecycleManager
.submitObjects(submitObjectsRequest);
@ -181,7 +151,8 @@ public class LifecycleManagerSubmitObjectsTest {
throws MsgRegistryException {
SubmitObjectsRequest submitObjectsRequest = createSubmitObjectsRequest(
MY_REGISTRY_OBJECT_ID, Mode.CREATE_OR_REPLACE);
MY_REGISTRY_OBJECT_ID, REGISTRY_OBJECT_TYPE,
Mode.CREATE_OR_REPLACE);
lifecycleManager.submitObjects(submitObjectsRequest);
@ -202,7 +173,8 @@ public class LifecycleManagerSubmitObjectsTest {
throws MsgRegistryException {
SubmitObjectsRequest submitObjectsRequest = createSubmitObjectsRequest(
MY_REGISTRY_OBJECT_ID, Mode.CREATE_OR_REPLACE);
MY_REGISTRY_OBJECT_ID, REGISTRY_OBJECT_TYPE,
Mode.CREATE_OR_REPLACE);
lifecycleManager.submitObjects(submitObjectsRequest);
lifecycleManager.submitObjects(submitObjectsRequest);
@ -227,7 +199,8 @@ public class LifecycleManagerSubmitObjectsTest {
throws MsgRegistryException {
SubmitObjectsRequest submitObjectsRequest = createSubmitObjectsRequest(
MY_REGISTRY_OBJECT_ID, Mode.CREATE_OR_VERSION);
MY_REGISTRY_OBJECT_ID, REGISTRY_OBJECT_TYPE,
Mode.CREATE_OR_VERSION);
final RegistryResponseType response = lifecycleManager
.submitObjects(submitObjectsRequest);
@ -247,7 +220,8 @@ public class LifecycleManagerSubmitObjectsTest {
throws MsgRegistryException {
SubmitObjectsRequest submitObjectsRequest = createSubmitObjectsRequest(
MY_REGISTRY_OBJECT_ID, Mode.CREATE_OR_VERSION);
MY_REGISTRY_OBJECT_ID, REGISTRY_OBJECT_TYPE,
Mode.CREATE_OR_VERSION);
lifecycleManager.submitObjects(submitObjectsRequest);
lifecycleManager.submitObjects(submitObjectsRequest);
@ -261,62 +235,4 @@ public class LifecycleManagerSubmitObjectsTest {
assertThat(registryObjects, hasSize(2));
}
/**
* Create the submit objects request.
*
* @param registryObjectId
* the registry object id
* @param mode
* @return
*/
private SubmitObjectsRequest createSubmitObjectsRequest(
String registryObjectId, Mode mode) {
final RegistryObjectType registryObject = new RegistryObjectType();
registryObject.setId(MY_REGISTRY_OBJECT_ID);
registryObject.setLid(registryObject.getId());
registryObject.setObjectType(REGISTRY_OBJECT_TYPE);
List<RegistryObjectType> registryObjects = Lists.newArrayList();
registryObjects.add(registryObject);
RegistryObjectListType registryObjectList = new RegistryObjectListType();
registryObjectList.setRegistryObject(registryObjects);
SubmitObjectsRequest submitObjectsRequest = new SubmitObjectsRequest();
submitObjectsRequest.setCheckReferences(false);
submitObjectsRequest.setComment("This is a comment.");
submitObjectsRequest.setId("someId");
submitObjectsRequest.setMode(mode);
submitObjectsRequest.setRegistryObjectList(registryObjectList);
return submitObjectsRequest;
}
private QueryRequest createQueryForRegistryObjectByLid(
String registryObjectId) {
final ResponseOptionType responseOption = EbxmlObjectUtil.queryObjectFactory
.createResponseOptionType();
responseOption.setReturnType(RETURN_TYPE.RegistryObject.toString());
responseOption.setReturnComposedObjects(false);
final QueryType queryType = new QueryType();
queryType
.setQueryDefinition("urn:oasis:names:tc:ebxml-regrep:query:GetObjectsByLid");
Set<SlotType> slots = new HashSet<SlotType>();
final SlotType slot = new SlotType();
slot.setName(QueryConstants.LID);
final StringValueType slotValue = new StringValueType();
slotValue.setStringValue(registryObjectId);
slot.setSlotValue(slotValue);
slots.add(slot);
queryType.setSlot(slots);
QueryRequest partQueryRequest = new QueryRequest();
partQueryRequest.setResponseOption(responseOption);
partQueryRequest.setFederated(false);
partQueryRequest.setQuery(queryType);
partQueryRequest.setMatchOlderVersions(true);
partQueryRequest.setMaxResults(new BigInteger("9999"));
return partQueryRequest;
}
}

View file

@ -6,6 +6,9 @@
<bean id="ebxmlDbValidationStrategy"
class="com.raytheon.uf.edex.registry.ebxml.dao.EbxmlHsqlValidationStrategy" />
<bean id="registrySubscriptionManagerInvoker"
class="com.raytheon.uf.edex.registry.ebxml.dao.DirectlyInvokeRegistrySubscriptionManager" />
<bean
class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
<property name="targetClass">

View file

@ -22,6 +22,8 @@ package com.raytheon.uf.common.serialization;
import java.util.Arrays;
import java.util.List;
import javax.xml.ws.wsaddressing.W3CEndpointReference;
import org.junit.Ignore;
import com.raytheon.uf.common.monitor.xml.FFMPTemplateXML;
@ -37,6 +39,7 @@ import com.raytheon.uf.common.monitor.xml.FFMPTemplateXML;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Feb 06, 2013 1543 djohnson Moved out of SerializationUtilTest.
* Apr 17, 2013 1914 djohnson Add W3CEndpointReference.
*
* </pre>
*
@ -91,7 +94,7 @@ public class TestJaxbableClassesLocator implements IJaxbableClassesLocator {
com.raytheon.uf.common.datadelivery.retrieval.xml.LevelLookup.class,
com.raytheon.uf.common.monitor.xml.FFMPSourceConfigXML.class,
com.raytheon.uf.common.monitor.xml.FFMPRunConfigXML.class,
FFMPTemplateXML.class };
FFMPTemplateXML.class, W3CEndpointReference.class };
JAXB_CLASSES = Arrays.asList(array);
}

View file

@ -0,0 +1,67 @@
/**
* 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.dao;
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.services.IRegistrySubscriptionManager;
/**
* Invokes the registry subscription manager directly.
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Apr 16, 2013 1914 djohnson Initial creation
*
* </pre>
*
* @author djohnson
* @version 1.0
*/
public class DirectlyInvokeRegistrySubscriptionManager implements IRegistrySubscriptionManager {
private static final IUFStatusHandler statusHandler = UFStatus
.getHandler(DirectlyInvokeRegistrySubscriptionManager.class);
public DirectlyInvokeRegistrySubscriptionManager() {
}
/**
* {@inheritDoc}
*/
@Override
public void processSubscriptions() {
// RegistrySubscriptionManager doesn't exist in this repo, so it must be
// looked up dynamically until 5-Data_Delivery is merged in
try {
EDEXUtil.getESBComponent(IRegistrySubscriptionManager.class,
"RegistrySubscriptionManager").processSubscriptions();
} catch (Exception e) {
statusHandler
.info("Registry subscription management is not enabled.");
}
}
}