Issue #2460 Product browser display of adhoc subscriptions

Change-Id: I9c045b781adb41468d395b67a837c9a862744447

Former-commit-id: c504c44750f5f441be41c20fdb78a363c620fb3d
This commit is contained in:
Dave Hladky 2013-10-15 16:13:30 -05:00
parent e1a0403c01
commit 477fbd3d59
15 changed files with 404 additions and 5 deletions

View file

@ -76,6 +76,11 @@
<property name="registryHandler" ref="registryHandler" /> <property name="registryHandler" ref="registryHandler" />
</bean> </bean>
<bean name="AdhocSubscriptionHandler"
class="com.raytheon.uf.common.datadelivery.registry.handlers.AdhocSubscriptionHandler">
<property name="registryHandler" ref="registryHandler" />
</bean>
<!-- The actual registering of the handlers --> <!-- The actual registering of the handlers -->
<bean id="registryObjectHandlerRegistry" <bean id="registryObjectHandlerRegistry"
@ -152,6 +157,11 @@
<constructor-arg ref="DataSetHandler" /> <constructor-arg ref="DataSetHandler" />
</bean> </bean>
<bean id="registerAdhocSubscriptionHandler" factory-bean="registryObjectHandlerRegistry" factory-method="registerHandler">
<constructor-arg value="com.raytheon.uf.common.datadelivery.registry.handlers.IAdhocSubscriptionHandler" />
<constructor-arg ref="AdhocSubscriptionHandler" />
</bean>
<!-- Used to consolidate the dependency clauses of beans that rely upon <!-- Used to consolidate the dependency clauses of beans that rely upon
data delivery registry handlers --> data delivery registry handlers -->
<bean id="registerDataDeliveryHandlers" class="java.lang.String" <bean id="registerDataDeliveryHandlers" class="java.lang.String"
@ -159,6 +169,6 @@
registerGroupDefinitionHandler, registerGroupDefinitionHandler,
registerProviderHandler,registerDataSetNameHandler,registerParameterHandler, registerProviderHandler,registerDataSetNameHandler,registerParameterHandler,
registerParameterLevelHandler,registerDataSetMetaDataHandler, registerParameterLevelHandler,registerDataSetMetaDataHandler,
registerGriddedDataSetMetaDataHandler,registerDataSetHandler" /> registerGriddedDataSetMetaDataHandler,registerDataSetHandler,registerAdhocSubscriptionHandler" />
</beans> </beans>

View file

@ -28,9 +28,11 @@ import java.util.Map;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import com.raytheon.uf.common.comm.CommunicationException; import com.raytheon.uf.common.comm.CommunicationException;
import com.raytheon.uf.common.datadelivery.registry.AdhocSubscription;
import com.raytheon.uf.common.datadelivery.registry.Coverage; import com.raytheon.uf.common.datadelivery.registry.Coverage;
import com.raytheon.uf.common.datadelivery.registry.DataType; import com.raytheon.uf.common.datadelivery.registry.DataType;
import com.raytheon.uf.common.datadelivery.registry.Subscription; import com.raytheon.uf.common.datadelivery.registry.Subscription;
import com.raytheon.uf.common.datadelivery.registry.handlers.IAdhocSubscriptionHandler;
import com.raytheon.uf.common.datadelivery.registry.handlers.ISubscriptionHandler; import com.raytheon.uf.common.datadelivery.registry.handlers.ISubscriptionHandler;
import com.raytheon.uf.common.dataquery.requests.RequestConstraint; import com.raytheon.uf.common.dataquery.requests.RequestConstraint;
import com.raytheon.uf.common.dataquery.requests.RequestConstraint.ConstraintType; import com.raytheon.uf.common.dataquery.requests.RequestConstraint.ConstraintType;
@ -66,6 +68,7 @@ import com.raytheon.viz.pointdata.util.PointDataInventory;
* ------------ ---------- ----------- -------------------------- * ------------ ---------- ----------- --------------------------
* Sep 17, 2013 2391 mpduff Initial creation * Sep 17, 2013 2391 mpduff Initial creation
* Sept 22, 2013 2246 dhladky Setup binoffset for time into +-5 min intervals * Sept 22, 2013 2246 dhladky Setup binoffset for time into +-5 min intervals
* Oct 13, 2013 2460 dhladky Added display of Adhoc subscriptions
* *
* </pre> * </pre>
* *
@ -433,6 +436,20 @@ public class DataDeliveryProductBrowserDataDefinition
statusHandler.handle(Priority.PROBLEM, e.getLocalizedMessage(), e); statusHandler.handle(Priority.PROBLEM, e.getLocalizedMessage(), e);
} }
final IAdhocSubscriptionHandler adhochandler = RegistryObjectHandlers
.get(IAdhocSubscriptionHandler.class);
List<AdhocSubscription> adhocSubs = null;
try {
adhocSubs = adhochandler.getAll();
} catch (RegistryHandlerException e) {
statusHandler.handle(Priority.PROBLEM, e.getLocalizedMessage(), e);
}
if (adhocSubs != null) {
subList.addAll(adhocSubs);
}
return subList; return subList;
} }

View file

@ -92,6 +92,7 @@ import com.raytheon.uf.viz.datadelivery.utils.DataDeliveryUtils;
* Jul 18, 2013 1653 mpduff Add SubscriptionStatusSummary. * Jul 18, 2013 1653 mpduff Add SubscriptionStatusSummary.
* Jul 26, 2013 2232 mpduff Refactored Data Delivery permissions. * Jul 26, 2013 2232 mpduff Refactored Data Delivery permissions.
* Sept 25, 2013 1797 dhladky separated time from gridded time * Sept 25, 2013 1797 dhladky separated time from gridded time
* Oct 12, 2013 2460 dhladky restored adhoc subscriptions to registry storage.
* *
* </pre> * </pre>
* *
@ -566,9 +567,9 @@ public class SubscriptionService implements ISubscriptionService {
final String successMessage = "The query was successfully stored."; final String successMessage = "The query was successfully stored.";
final ServiceInteraction action = new ServiceInteraction() { final ServiceInteraction action = new ServiceInteraction() {
@Override @Override
public String call() { public String call() throws RegistryHandlerException {
// Adhoc subscriptions don't interact with the registry any DataDeliveryHandlers.getSubscriptionHandler().store(
// longer, so it gets a blank implementation sub);
return successMessage; return successMessage;
} }
}; };

View file

@ -235,6 +235,7 @@
<!-- Registry production mode --> <!-- Registry production mode -->
<include>ebxml.*\.xml</include> <include>ebxml.*\.xml</include>
<includeMode>dataDeliveryTemplate</includeMode> <includeMode>dataDeliveryTemplate</includeMode>
<include>adhoc-datadelivery-wfo.xml</include>
<exclude>.*datadelivery-ncf.*</exclude> <exclude>.*datadelivery-ncf.*</exclude>
<exclude>harvester-*</exclude> <exclude>harvester-*</exclude>
<exclude>crawler-*</exclude> <exclude>crawler-*</exclude>
@ -299,6 +300,7 @@
are for DEVELOPMENT purposes only --> are for DEVELOPMENT purposes only -->
<mode name="devRegistry"> <mode name="devRegistry">
<include>ebxml.*\.xml</include> <include>ebxml.*\.xml</include>
<include>adhoc-datadelivery-wfo.xml</include>
<includeMode>dataDeliveryTemplate</includeMode> <includeMode>dataDeliveryTemplate</includeMode>
<exclude>.*datadelivery-ncf.*</exclude> <exclude>.*datadelivery-ncf.*</exclude>
</mode> </mode>

View file

@ -23,6 +23,7 @@ import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlRootElement;
import com.raytheon.uf.common.registry.annotations.RegistryObject;
import com.raytheon.uf.common.serialization.annotations.DynamicSerialize; import com.raytheon.uf.common.serialization.annotations.DynamicSerialize;
/** /**
@ -44,6 +45,7 @@ import com.raytheon.uf.common.serialization.annotations.DynamicSerialize;
* Mar 29, 2013 1841 djohnson Subscription is now UserSubscription. * Mar 29, 2013 1841 djohnson Subscription is now UserSubscription.
* May 21, 2013 2020 mpduff Rename UserSubscription to SiteSubscription. * May 21, 2013 2020 mpduff Rename UserSubscription to SiteSubscription.
* Oct 2, 2013 1797 dhladky Generics start * Oct 2, 2013 1797 dhladky Generics start
* Oct 11, 2013 2460 dhladky Restored Adhoc's to registryObject store, WFO only
* *
* </pre> * </pre>
* *
@ -54,6 +56,8 @@ import com.raytheon.uf.common.serialization.annotations.DynamicSerialize;
@XmlRootElement(name = "AdhocSubscription") @XmlRootElement(name = "AdhocSubscription")
@XmlAccessorType(XmlAccessType.NONE) @XmlAccessorType(XmlAccessType.NONE)
@DynamicSerialize @DynamicSerialize
@RegistryObject({ Subscription.PROVIDER_NAME_SLOT, Subscription.NAME_SLOT,
Subscription.DATA_SET_SLOT, Subscription.OWNER_SLOT })
public class AdhocSubscription<T extends Time, C extends Coverage> extends SiteSubscription<T, C> { public class AdhocSubscription<T extends Time, C extends Coverage> extends SiteSubscription<T, C> {
private static final long serialVersionUID = -2200080380095632486L; private static final long serialVersionUID = -2200080380095632486L;

View file

@ -33,6 +33,7 @@ import com.raytheon.uf.common.registry.ebxml.RegistryUtil;
* Oct 5, 2012 0726 djohnson Initial creation * Oct 5, 2012 0726 djohnson Initial creation
* Dec 11, 2012 1403 djohnson Adhoc subscriptions no longer go to the registry. * Dec 11, 2012 1403 djohnson Adhoc subscriptions no longer go to the registry.
* May 21, 2013 2020 mpduff Rename UserSubscription to SiteSubscription. * May 21, 2013 2020 mpduff Rename UserSubscription to SiteSubscription.
* Oct 11, 2013 2460 dhladky Restored Adhoc to registry store, WFO only.
* *
* </pre> * </pre>
* *
@ -56,6 +57,9 @@ public final class DataDeliveryRegistryObjectTypes {
public static final String SHARED_SUBSCRIPTION = RegistryUtil public static final String SHARED_SUBSCRIPTION = RegistryUtil
.getObjectType(SharedSubscription.class); .getObjectType(SharedSubscription.class);
public static final String ADHOC_SUBSCRIPTION = RegistryUtil
.getObjectType(AdhocSubscription.class);
public static final String DATASET = RegistryUtil public static final String DATASET = RegistryUtil
.getObjectType(DataSet.class); .getObjectType(DataSet.class);

View file

@ -0,0 +1,81 @@
/**
* 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.common.datadelivery.registry.handlers;
import java.util.ArrayList;
import java.util.List;
import com.google.common.collect.Lists;
import com.raytheon.uf.common.datadelivery.registry.AdhocSubscription;
import com.raytheon.uf.common.datadelivery.registry.InitialPendingSubscription;
import com.raytheon.uf.common.datadelivery.registry.ebxml.AdhocSubscriptionQuery;
import com.raytheon.uf.common.datadelivery.registry.ebxml.SubscriptionFilterableQuery;
import com.raytheon.uf.common.registry.RegistryQueryResponse;
import com.raytheon.uf.common.registry.handler.IRegistryObjectHandler;
import com.raytheon.uf.common.registry.handler.RegistryHandlerException;
/**
* {@link IRegistryObjectHandler} implementation for {@link AdhocSubscription}.
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Oct 05, 2012 1241 djohnson Initial creation.
* Oct 12, 2013 2460 dhladky restored.
*
* </pre>
*
* @author djohnson
* @version 1.0
*/
public class AdhocSubscriptionHandler extends
BaseSubscriptionHandler<AdhocSubscription, AdhocSubscriptionQuery>
implements IAdhocSubscriptionHandler {
/**
* {@inheritDoc}
*/
@Override
protected AdhocSubscriptionQuery getQuery() {
return new AdhocSubscriptionQuery();
}
/**
* {@inheritDoc}
*/
@Override
protected Class<AdhocSubscription> getRegistryObjectClass() {
return AdhocSubscription.class;
}
}

View file

@ -34,6 +34,7 @@ import com.raytheon.uf.common.registry.handler.RegistryObjectHandlers;
* ------------ ---------- ----------- -------------------------- * ------------ ---------- ----------- --------------------------
* Oct 3, 2012 1241 djohnson Initial creation * Oct 3, 2012 1241 djohnson Initial creation
* Dec 11, 2012 1403 djohnson Adhoc subscriptions no longer go to the registry. * Dec 11, 2012 1403 djohnson Adhoc subscriptions no longer go to the registry.
* Oct 12, 2013 2046 dhladky Restored Adhoc's at WFO level
* *
* </pre> * </pre>
* *
@ -137,4 +138,15 @@ public final class DataDeliveryHandlers {
public static IDataSetHandler getDataSetHandler() { public static IDataSetHandler getDataSetHandler() {
return RegistryObjectHandlers.get(IDataSetHandler.class); return RegistryObjectHandlers.get(IDataSetHandler.class);
} }
/**
* Retrieve the {@link IAdhocSubscriptionHandler}.
*
* @return the handler
*/
public static IAdhocSubscriptionHandler getAdhocSubscriptionHandler() {
return RegistryObjectHandlers.get(IAdhocSubscriptionHandler.class);
}
} }

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.common.datadelivery.registry.handlers;
import com.raytheon.uf.common.datadelivery.registry.AdhocSubscription;
import com.raytheon.uf.common.registry.handler.IRegistryObjectHandler;
/**
* The {@link IRegistryObjectHandler} interface for {@link AdhocSubscription}s.
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Oct 05, 2012 1241 djohnson Initial creation
* Oct 12, 2013 2460 dhladky restored.
*
* </pre>
*
* @author djohnson
* @version 1.0
*/
public interface IAdhocSubscriptionHandler extends
IBaseSubscriptionHandler<AdhocSubscription> {
}

View file

@ -44,6 +44,7 @@ Export-Package: com.raytheon.uf.edex.datadelivery.retrieval;
com.raytheon.uf.common.serialization, com.raytheon.uf.common.serialization,
com.raytheon.uf.common.datadelivery.registry", com.raytheon.uf.common.datadelivery.registry",
com.raytheon.uf.edex.datadelivery.retrieval.adapters;uses:="com.raytheon.uf.edex.datadelivery.retrieval.interfaces,com.raytheon.uf.common.datadelivery.retrieval.xml,com.raytheon.uf.edex.datadelivery.retrieval.response", com.raytheon.uf.edex.datadelivery.retrieval.adapters;uses:="com.raytheon.uf.edex.datadelivery.retrieval.interfaces,com.raytheon.uf.common.datadelivery.retrieval.xml,com.raytheon.uf.edex.datadelivery.retrieval.response",
com.raytheon.uf.edex.datadelivery.retrieval.adhoc,
com.raytheon.uf.edex.datadelivery.retrieval.db;uses:="com.raytheon.uf.common.dataplugin.persist,com.raytheon.uf.edex.database.dao,com.raytheon.uf.common.serialization", com.raytheon.uf.edex.datadelivery.retrieval.db;uses:="com.raytheon.uf.common.dataplugin.persist,com.raytheon.uf.edex.database.dao,com.raytheon.uf.common.serialization",
com.raytheon.uf.edex.datadelivery.retrieval.handlers;uses:="com.raytheon.uf.edex.datadelivery.retrieval.interfaces,com.raytheon.uf.common.datadelivery.retrieval.xml,com.raytheon.uf.edex.datadelivery.retrieval.db", com.raytheon.uf.edex.datadelivery.retrieval.handlers;uses:="com.raytheon.uf.edex.datadelivery.retrieval.interfaces,com.raytheon.uf.common.datadelivery.retrieval.xml,com.raytheon.uf.edex.datadelivery.retrieval.db",
com.raytheon.uf.edex.datadelivery.retrieval.interfaces; com.raytheon.uf.edex.datadelivery.retrieval.interfaces;

View file

@ -0,0 +1,22 @@
<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-3.1.xsd
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
<!-- Cleans up old Adhoc subscriptions in the registry when the data for
them expires This only runs within the WFO registry mode (Adhoc subscriptions
are only allowed there) -->
<bean id="AdhocSubscriptionCleaner"
class="com.raytheon.uf.edex.datadelivery.retrieval.adhoc.AdhocSubscriptionCleaner" />
<camelContext id="adhocsubscription-cleanup" xmlns="http://camel.apache.org/schema/spring"
errorHandlerRef="errorHandler">
<endpoint id="processAdhocSubscriptions"
uri="clusteredquartz://registry/processAdhocSubscriptions/?cron=${adhocsubscription-process.cron}" />
<route id="processSubscriptionsFromQuartz">
<from uri="processAdhocSubscriptions" />
<bean ref="AdhocSubscriptionCleaner" method="processSubscriptions" />
</route>
</camelContext>
</beans>

View file

@ -0,0 +1,188 @@
package com.raytheon.uf.edex.datadelivery.retrieval.adhoc;
/**
* 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.
**/
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.raytheon.uf.common.datadelivery.registry.AdhocSubscription;
import com.raytheon.uf.common.datadelivery.registry.Provider;
import com.raytheon.uf.common.datadelivery.registry.ProviderType;
import com.raytheon.uf.common.datadelivery.registry.handlers.DataDeliveryHandlers;
import com.raytheon.uf.common.datadelivery.registry.handlers.IAdhocSubscriptionHandler;
import com.raytheon.uf.common.datadelivery.registry.handlers.IProviderHandler;
import com.raytheon.uf.common.registry.handler.RegistryHandlerException;
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.common.time.util.TimeUtil;
import com.raytheon.uf.edex.database.plugin.PluginDao;
import com.raytheon.uf.edex.database.purge.PurgeRule;
import com.raytheon.uf.edex.database.purge.PurgeRuleSet;
/**
* Dumps expired Adhoc Subscriptions based on diff between end and expiration
* time in purge rules.
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Oct 11, 2013 2460 dhladky Initial creation
*
* </pre>
*
* @author dhladky
* @version 1.0
*/
public class AdhocSubscriptionCleaner {
private static final IUFStatusHandler statusHandler = UFStatus
.getHandler(AdhocSubscriptionCleaner.class);
public AdhocSubscriptionCleaner() {
}
/**
* Cleans old adhoc subscriptions from the WFO registry.
* Compares the end() time on the sub to the expiration period in
* associated purge rules derived from the plugin each subs data
* is stored too. Runs on every 20 minutes.
*/
public void processSubscriptions() {
statusHandler.handle(Priority.INFO, "Processing Adhoc Subscriptions for expiration...");
List<AdhocSubscription> adhocs = null;
final IAdhocSubscriptionHandler adhocSubHandler = DataDeliveryHandlers.getAdhocSubscriptionHandler();
try {
adhocs = adhocSubHandler.getAll();
} catch (RegistryHandlerException e) {
statusHandler.handle(Priority.ERROR, "Can't load list of adhoc subscriptions from registry!", e);
}
if (adhocs != null && !adhocs.isEmpty()) {
Map<String, Provider> providers = new HashMap<String, Provider>();
Map<String, PurgeRuleSet> purgeRules = new HashMap<String, PurgeRuleSet>();
List<AdhocSubscription> subsToDelete = new ArrayList<AdhocSubscription>();
// loop over the adhoc subscriptions we have
for (AdhocSubscription adhoc: adhocs) {
String providerName = adhoc.getProvider();
Provider provider = null;
// speed, only has to lookup each provider once
if (!providers.containsKey(providerName)) {
final IProviderHandler providerHandler = DataDeliveryHandlers.getProviderHandler();
try {
provider = providerHandler.getByName(providerName);
providers.put(providerName, provider);
} catch (RegistryHandlerException e) {
statusHandler.handle(Priority.ERROR, "Can't load provider from registry! "+providerName, e);
}
} else {
// pull a cached provider
if (providerName != null) {
provider = providers.get(providerName);
}
}
List<String> plugins = new ArrayList<String>();
if (provider != null) {
// find the actual plugin
for (ProviderType type : provider.getProviderType()) {
plugins.add(type.getPlugin());
}
}
// extract the purge rules from localization, place in map for speed
PurgeRuleSet purgeRuleSet = null;
if (plugins != null && !plugins.isEmpty()) {
// multiple plugins for providers on occasion
for (String plugin : plugins) {
if (!purgeRules.containsKey(plugin)) {
purgeRuleSet = PluginDao
.getPurgeRulesForPlugin(plugin);
purgeRules.put(plugin, purgeRuleSet);
} else {
// pull a cached purgeRuleSet
if (plugin != null) {
purgeRuleSet = purgeRules.get(plugin);
}
}
if (purgeRuleSet != null) {
List<PurgeRule> rules = purgeRuleSet.getRules();
// Go over all of the purge rules for each sub
for (PurgeRule rule: rules) {
// use current system date/time
long timeCheck = TimeUtil.newDate().getTime();
Date expireDate = new Date(timeCheck + rule.getPeriodInMillis());
// check rule against creation time of this sub
if (adhoc.getTime().getEnd().before(expireDate)) {
if (!subsToDelete.contains(adhoc)) {
subsToDelete.add(adhoc);
}
}
}
}
}
}
}
// get rid of old subscriptions
if (subsToDelete != null && !subsToDelete.isEmpty()) {
try {
adhocSubHandler.delete(subsToDelete);
statusHandler.handle(Priority.INFO, "Deleted "
+ subsToDelete.size()
+ " expired adhocSubscriptions.");
} catch (RegistryHandlerException e) {
statusHandler.handle(Priority.PROBLEM,
"Failed to delete expired adhoc subscriptions.", e);
}
}
}
}
}

View file

@ -82,5 +82,9 @@
<property name="registryHandler" ref="registryHandler" /> <property name="registryHandler" ref="registryHandler" />
</bean> </bean>
<bean name="AdhocSubscriptionHandler"
class="com.raytheon.uf.common.datadelivery.registry.handlers.AdhocSubscriptionHandler">
<property name="registryHandler" ref="registryHandler" />
</bean>
</beans> </beans>

View file

@ -57,12 +57,17 @@
<constructor-arg ref="DataSetHandler" /> <constructor-arg ref="DataSetHandler" />
</bean> </bean>
<bean id="registerAdhocSubscriptionHandler" factory-bean="registryObjectHandlerRegistry" factory-method="registerHandler">
<constructor-arg value="com.raytheon.uf.common.datadelivery.registry.handlers.IAdhocSubscriptionHandler" />
<constructor-arg ref="AdhocSubscriptionHandler" />
</bean>
<!-- Used to consolidate the dependency clauses of beans that rely upon data delivery registry handlers --> <!-- Used to consolidate the dependency clauses of beans that rely upon data delivery registry handlers -->
<bean id="registerDataDeliveryHandlers" class="java.lang.String" <bean id="registerDataDeliveryHandlers" class="java.lang.String"
depends-on="registerSubscriptionHandler,registerPendingSubscriptionHandler, depends-on="registerSubscriptionHandler,registerPendingSubscriptionHandler,
registerGroupDefinitionHandler, registerGroupDefinitionHandler,
registerProviderHandler,registerDataSetNameHandler,registerParameterHandler, registerProviderHandler,registerDataSetNameHandler,registerParameterHandler,
registerParameterLevelHandler,registerDataSetMetaDataHandler, registerParameterLevelHandler,registerDataSetMetaDataHandler,
registerGriddedDataSetMetaDataHandler,registerDataSetHandler" /> registerGriddedDataSetMetaDataHandler,registerDataSetHandler, registerAdhocSubscriptionHandler" />
</beans> </beans>

View file

@ -2,6 +2,8 @@
ebxml-subscription-process.cron=0+0/1+*+*+*+? ebxml-subscription-process.cron=0+0/1+*+*+*+?
# The period which the registry runs the garbage collection # The period which the registry runs the garbage collection
ebxml-garbage-collect-process.cron=0/10+*+*+*+*+? ebxml-garbage-collect-process.cron=0/10+*+*+*+*+?
# The period which adhoc subscriptions are cleaned, every 20 mins
adhocsubscription-process.cron=0+0/20+*+*+*+?
# When a federation synchonization is necessary, this is the number of threads # When a federation synchonization is necessary, this is the number of threads
# that will be used for synchronization # that will be used for synchronization
ebxml-federation-sync-threads=3 ebxml-federation-sync-threads=3