From 8cc9c1de59347225e3153370601841f3900abaeb Mon Sep 17 00:00:00 2001 From: Mike Duff Date: Thu, 14 Nov 2013 11:25:16 -0600 Subject: [PATCH] Issue #2548 - Add a subscription type slot for uniqueness. Change-Id: I5cf04bde4a345606af72bf2091e423dd6aa555aa Former-commit-id: 47a0477587e372c3782ec081a230541f1b2c5f4b [formerly 1ad7f83443c33f8b73d2ad8a9b2f574fd37db9e2] Former-commit-id: 47011a70dbdf28957ac5429ddb5bcd7fb3590b8d --- .../subscription/subset/SubsetManagerDlg.java | 9 +++- .../registry/AdhocSubscription.java | 9 ++-- .../InitialPendingSharedSubscription.java | 12 +++-- .../InitialPendingSiteSubscription.java | 25 +++++----- .../registry/RecurringSubscription.java | 47 +++++++++++++++---- .../registry/SharedSubscription.java | 8 ++-- .../registry/SiteSubscription.java | 6 ++- .../datadelivery/registry/Subscription.java | 31 ++++++++++-- 8 files changed, 109 insertions(+), 38 deletions(-) diff --git a/cave/com.raytheon.uf.viz.datadelivery/src/com/raytheon/uf/viz/datadelivery/subscription/subset/SubsetManagerDlg.java b/cave/com.raytheon.uf.viz.datadelivery/src/com/raytheon/uf/viz/datadelivery/subscription/subset/SubsetManagerDlg.java index 51b43c4f02..8495df8fab 100644 --- a/cave/com.raytheon.uf.viz.datadelivery/src/com/raytheon/uf/viz/datadelivery/subscription/subset/SubsetManagerDlg.java +++ b/cave/com.raytheon.uf.viz.datadelivery/src/com/raytheon/uf/viz/datadelivery/subscription/subset/SubsetManagerDlg.java @@ -53,6 +53,7 @@ import com.raytheon.uf.common.datadelivery.registry.Network; import com.raytheon.uf.common.datadelivery.registry.PointDataSet; import com.raytheon.uf.common.datadelivery.registry.SiteSubscription; import com.raytheon.uf.common.datadelivery.registry.Subscription; +import com.raytheon.uf.common.datadelivery.registry.Subscription.SubscriptionType; import com.raytheon.uf.common.datadelivery.registry.Time; import com.raytheon.uf.common.datadelivery.registry.handlers.ISubscriptionHandler; import com.raytheon.uf.common.datadelivery.request.DataDeliveryPermission; @@ -133,9 +134,13 @@ import com.raytheon.viz.ui.presenter.IDisplay; * Jun 14, 2013 2108 mpduff Refactored DataSizeUtils. * Oct 11, 2013 2386 mpduff Refactor DD Front end. * Oct 15, 2013 2477 mpduff Remove debug code. - * Oct 23, 2013 2484 dhladky Unique ID for subscriptions updated. + * Oct 23, 2013 2484 dhladky Unique ID for subscriptions updated. * Oct 25, 2013 2292 mpduff Move overlap processing to edex. +<<<<<<< HEAD * Nov 14, 2013 2538 mpduff Added check for duplicate subscription. +======= + * Nov 14, 2013 2548 mpduff Set the subscription type (QUERY OR RECURRING) +>>>>>>> Issue #2548 - Add a subscription type slot for uniqueness. * * * @author mpduff @@ -525,6 +530,7 @@ public abstract class SubsetManagerDlg extends CaveSWTDialog implements return; } try { + as.setSubscriptionType(SubscriptionType.QUERY); SubscriptionServiceResult result = subscriptionService.store( as, this); @@ -562,6 +568,7 @@ public abstract class SubsetManagerDlg extends CaveSWTDialog implements .getCurrentUser() : this.subscription.getOwner()); sub.setOriginatingSite(LocalizationManager.getInstance() .getCurrentSite()); + sub.setSubscriptionType(SubscriptionType.RECURRING); return setupCommonSubscriptionAttributes(sub, defaultRoute); } diff --git a/edexOsgi/com.raytheon.uf.common.datadelivery.registry/src/com/raytheon/uf/common/datadelivery/registry/AdhocSubscription.java b/edexOsgi/com.raytheon.uf.common.datadelivery.registry/src/com/raytheon/uf/common/datadelivery/registry/AdhocSubscription.java index 5b828edcf0..2f16a46da9 100644 --- a/edexOsgi/com.raytheon.uf.common.datadelivery.registry/src/com/raytheon/uf/common/datadelivery/registry/AdhocSubscription.java +++ b/edexOsgi/com.raytheon.uf.common.datadelivery.registry/src/com/raytheon/uf/common/datadelivery/registry/AdhocSubscription.java @@ -46,7 +46,8 @@ import com.raytheon.uf.common.serialization.annotations.DynamicSerialize; * May 21, 2013 2020 mpduff Rename UserSubscription to SiteSubscription. * Oct 2, 2013 1797 dhladky Generics start * Oct 11, 2013 2460 dhladky Restored Adhoc's to registryObject store, WFO only - * Oct 23, 2013 2484 dhladky Unique ID for subscriptions updated. + * Oct 23, 2013 2484 dhladky Unique ID for subscriptions updated. + * Nov 14, 2013 2548 mpduff Add a subscription type slot. * * * @@ -58,8 +59,10 @@ import com.raytheon.uf.common.serialization.annotations.DynamicSerialize; @XmlAccessorType(XmlAccessType.NONE) @DynamicSerialize @RegistryObject({ Subscription.PROVIDER_NAME_SLOT, Subscription.NAME_SLOT, - Subscription.DATA_SET_SLOT, Subscription.OWNER_SLOT, Subscription.ORIGINATING_SITE_SLOT }) -public class AdhocSubscription extends SiteSubscription { + Subscription.DATA_SET_SLOT, Subscription.OWNER_SLOT, + Subscription.ORIGINATING_SITE_SLOT, Subscription.SUBSCRIPTION_TYPE_SLOT }) +public class AdhocSubscription extends + SiteSubscription { private static final long serialVersionUID = -2200080380095632486L; diff --git a/edexOsgi/com.raytheon.uf.common.datadelivery.registry/src/com/raytheon/uf/common/datadelivery/registry/InitialPendingSharedSubscription.java b/edexOsgi/com.raytheon.uf.common.datadelivery.registry/src/com/raytheon/uf/common/datadelivery/registry/InitialPendingSharedSubscription.java index b04a91a17a..3806bfaab0 100644 --- a/edexOsgi/com.raytheon.uf.common.datadelivery.registry/src/com/raytheon/uf/common/datadelivery/registry/InitialPendingSharedSubscription.java +++ b/edexOsgi/com.raytheon.uf.common.datadelivery.registry/src/com/raytheon/uf/common/datadelivery/registry/InitialPendingSharedSubscription.java @@ -42,6 +42,7 @@ import com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement; * Apr 02, 2013 1841 djohnson Initial creation * Sept 30, 2013 1797 dhladky Generics * Oct 23, 2013 2484 dhladky Unique ID for subscriptions updated. + * Nov 14, 2013 2548 mpduff Add a subscription type slot. * * * @@ -55,9 +56,10 @@ import com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement; Subscription.NAME_SLOT, Subscription.DATA_SET_SLOT, Subscription.OWNER_SLOT, InitialPendingSubscription.CHANGE_REQUEST_ID_SLOT, - Subscription.ORIGINATING_SITE_SLOT}) -public class InitialPendingSharedSubscription extends SharedSubscription - implements InitialPendingSubscription { + Subscription.ORIGINATING_SITE_SLOT, Subscription.SUBSCRIPTION_TYPE_SLOT }) +public class InitialPendingSharedSubscription + extends SharedSubscription implements + InitialPendingSubscription { private static final long serialVersionUID = 2779084460608459754L; /** ID of the user requesting the change */ @@ -86,8 +88,8 @@ public class InitialPendingSharedSubscription subscription, - String user) { + public InitialPendingSharedSubscription( + SharedSubscription subscription, String user) { super(subscription); this.setChangeReqId(user); diff --git a/edexOsgi/com.raytheon.uf.common.datadelivery.registry/src/com/raytheon/uf/common/datadelivery/registry/InitialPendingSiteSubscription.java b/edexOsgi/com.raytheon.uf.common.datadelivery.registry/src/com/raytheon/uf/common/datadelivery/registry/InitialPendingSiteSubscription.java index fe4ab55afd..00d8ec71ff 100644 --- a/edexOsgi/com.raytheon.uf.common.datadelivery.registry/src/com/raytheon/uf/common/datadelivery/registry/InitialPendingSiteSubscription.java +++ b/edexOsgi/com.raytheon.uf.common.datadelivery.registry/src/com/raytheon/uf/common/datadelivery/registry/InitialPendingSiteSubscription.java @@ -46,6 +46,7 @@ import com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement; * Apr 02, 2013 1841 djohnson InitialPendingSubscription is now InitialPendingUserSubscription. * May 21, 2013 2020 mpduff Rename UserSubscription to SiteSubscription. * Sept 30, 2013 1797 dhladky Some Generics + * Nov 14, 2013 2548 mpduff Add a subscription type slot. * * * @@ -59,8 +60,9 @@ import com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement; Subscription.NAME_SLOT, Subscription.DATA_SET_SLOT, Subscription.OWNER_SLOT, InitialPendingSubscription.CHANGE_REQUEST_ID_SLOT, - Subscription.ORIGINATING_SITE_SLOT}) -public class InitialPendingSiteSubscription extends SiteSubscription implements + Subscription.ORIGINATING_SITE_SLOT, Subscription.SUBSCRIPTION_TYPE_SLOT }) +public class InitialPendingSiteSubscription + extends SiteSubscription implements InitialPendingSubscription { private static final long serialVersionUID = 2779084460608459754L; @@ -79,18 +81,19 @@ public class InitialPendingSiteSubscription * Constructor */ public InitialPendingSiteSubscription() { - //empty + // empty } /** * Constructor - * + * * @param subscription - * subscription object + * subscription object * @param user - * user + * user */ - public InitialPendingSiteSubscription(SiteSubscription subscription, String user) { + public InitialPendingSiteSubscription(SiteSubscription subscription, + String user) { super(subscription); this.setChangeReqId(user); @@ -98,10 +101,9 @@ public class InitialPendingSiteSubscription this.setId(RegistryUtil.getRegistryObjectKey(this)); } - - /** - * @param changeReqId the changeReqId to set + * @param changeReqId + * the changeReqId to set */ @Override public void setChangeReqId(String changeReqId) { @@ -125,7 +127,8 @@ public class InitialPendingSiteSubscription } /** - * @param changeReason the changeReason to set + * @param changeReason + * the changeReason to set */ @Override public void setChangeReason(String changeReason) { diff --git a/edexOsgi/com.raytheon.uf.common.datadelivery.registry/src/com/raytheon/uf/common/datadelivery/registry/RecurringSubscription.java b/edexOsgi/com.raytheon.uf.common.datadelivery.registry/src/com/raytheon/uf/common/datadelivery/registry/RecurringSubscription.java index 806b1ada4c..c37787bd7c 100644 --- a/edexOsgi/com.raytheon.uf.common.datadelivery.registry/src/com/raytheon/uf/common/datadelivery/registry/RecurringSubscription.java +++ b/edexOsgi/com.raytheon.uf.common.datadelivery.registry/src/com/raytheon/uf/common/datadelivery/registry/RecurringSubscription.java @@ -61,7 +61,8 @@ import com.raytheon.uf.common.time.util.TimeUtil; * May 21, 2013 2020 mpduff Rename UserSubscription to SiteSubscription. * Sept 30,2013 1797 dhladky Generics * Oct 23, 2013 2484 dhladky Unique ID for subscriptions updated. - * Oct 30, 2013 2448 dhladky Fixed pulling data before and after activePeriod starting and ending. + * Oct 30, 2013 2448 dhladky Fixed pulling data before and after activePeriod starting and ending. + * Nov 14, 2013 2548 mpduff Add a subscription type slot. * * * @@ -72,8 +73,8 @@ import com.raytheon.uf.common.time.util.TimeUtil; @XmlSeeAlso({ PendingSiteSubscription.class, PendingSharedSubscription.class, AdhocSubscription.class, SiteSubscription.class, SharedSubscription.class }) -public abstract class RecurringSubscription implements - Serializable, Subscription { +public abstract class RecurringSubscription + implements Serializable, Subscription { private static final long serialVersionUID = -6422673887457060034L; @@ -118,6 +119,7 @@ public abstract class RecurringSubscription this.setLatencyInMinutes(sub.getLatencyInMinutes()); this.setEnsemble(sub.getEnsemble()); this.setOriginatingSite(sub.getOriginatingSite()); + this.setSubscriptionType(sub.getSubscriptionType()); // Set the registry id this.setId(RegistryUtil.getRegistryObjectKey(this)); @@ -253,12 +255,17 @@ public abstract class RecurringSubscription @XmlAttribute @DynamicSerializeElement private int latencyInMinutes; - + @XmlAttribute @DynamicSerializeElement @SlotAttribute(Subscription.ORIGINATING_SITE_SLOT) private String originatingSite; + @XmlAttribute + @DynamicSerializeElement + @SlotAttribute(Subscription.SUBSCRIPTION_TYPE_SLOT) + private SubscriptionType subscriptionType; + /** * Get subscription name. * @@ -813,7 +820,8 @@ public abstract class RecurringSubscription @Override public String toString() { return getName() + "::" + getProvider() + "::" + getDataSetName() - + "::" + getOwner()+ "::"+getOriginatingSite(); + + "::" + getOwner() + "::" + getOriginatingSite() + "::" + + getSubscriptionType().name(); } /** @@ -877,7 +885,7 @@ public abstract class RecurringSubscription Calendar.MILLISECOND); // add the current year for true comparison startCal = TimeUtil.addCurrentYearCalendar(startCal); - + activePeriodStart = startCal.getTime(); Calendar endCal = TimeUtil.newGmtCalendar(); @@ -893,14 +901,14 @@ public abstract class RecurringSubscription activePeriodEnd = endCal.getTime(); - // Only concerned with month and day, need to set the + // Only concerned with month and day, need to set the // years on equal footing for comparison sake. Calendar c = TimeUtil.newGmtCalendar(); c.setTime(checkDate); // set the date to compare with the current date from the start c.set(Calendar.YEAR, startCal.get(Calendar.YEAR)); Date date = c.getTime(); - + return (activePeriodStart.before(date) && activePeriodEnd .after(date)); } @@ -948,12 +956,31 @@ public abstract class RecurringSubscription public void setEnsemble(Ensemble ensemble) { this.ensemble = ensemble; } - + + @Override public void setOriginatingSite(String originatingSite) { this.originatingSite = originatingSite; } - + + @Override public String getOriginatingSite() { return originatingSite; } + + /** + * @return the subscriptionType + */ + @Override + public SubscriptionType getSubscriptionType() { + return subscriptionType; + } + + /** + * @param subscriptionType + * the subscriptionType to set + */ + @Override + public void setSubscriptionType(SubscriptionType subscriptionType) { + this.subscriptionType = subscriptionType; + } } diff --git a/edexOsgi/com.raytheon.uf.common.datadelivery.registry/src/com/raytheon/uf/common/datadelivery/registry/SharedSubscription.java b/edexOsgi/com.raytheon.uf.common.datadelivery.registry/src/com/raytheon/uf/common/datadelivery/registry/SharedSubscription.java index 5af82568e9..812cdacf83 100644 --- a/edexOsgi/com.raytheon.uf.common.datadelivery.registry/src/com/raytheon/uf/common/datadelivery/registry/SharedSubscription.java +++ b/edexOsgi/com.raytheon.uf.common.datadelivery.registry/src/com/raytheon/uf/common/datadelivery/registry/SharedSubscription.java @@ -40,6 +40,7 @@ import com.raytheon.uf.common.serialization.annotations.DynamicSerialize; * May 29, 2013 1650 djohnson Add setOwner() so reflection works. * Sept 30, 2013 1797 dhladky Generics * Oct 23, 2013 2484 dhladky Unique ID for subscriptions updated. + * Nov 14, 2013 2548 mpduff Add a subscription type slot. * * * @@ -50,10 +51,11 @@ import com.raytheon.uf.common.serialization.annotations.DynamicSerialize; @XmlAccessorType(XmlAccessType.NONE) @RegistryObject(value = { Subscription.PROVIDER_NAME_SLOT, Subscription.NAME_SLOT, Subscription.DATA_SET_SLOT, - Subscription.OWNER_SLOT, - Subscription.ORIGINATING_SITE_SLOT}) + Subscription.OWNER_SLOT, Subscription.ORIGINATING_SITE_SLOT, + Subscription.SUBSCRIPTION_TYPE_SLOT }) @DynamicSerialize -public class SharedSubscription extends RecurringSubscription { +public class SharedSubscription extends + RecurringSubscription { private static final long serialVersionUID = -7221500266253493273L; diff --git a/edexOsgi/com.raytheon.uf.common.datadelivery.registry/src/com/raytheon/uf/common/datadelivery/registry/SiteSubscription.java b/edexOsgi/com.raytheon.uf.common.datadelivery.registry/src/com/raytheon/uf/common/datadelivery/registry/SiteSubscription.java index 640bf88f0d..bfe78f8df0 100644 --- a/edexOsgi/com.raytheon.uf.common.datadelivery.registry/src/com/raytheon/uf/common/datadelivery/registry/SiteSubscription.java +++ b/edexOsgi/com.raytheon.uf.common.datadelivery.registry/src/com/raytheon/uf/common/datadelivery/registry/SiteSubscription.java @@ -63,6 +63,7 @@ import com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement; * Jun 24, 2013 2106 djohnson Add copy constructor. * Sept 30, 2013 1797 dhladky Some Generics * Oct 23, 2013 2484 dhladky Unique ID for subscriptions updated. + * Nov 14, 2013 2548 mpduff Add a subscription type slot. * * * @@ -74,9 +75,10 @@ import com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement; @XmlAccessorType(XmlAccessType.NONE) @RegistryObject({ Subscription.PROVIDER_NAME_SLOT, Subscription.NAME_SLOT, Subscription.DATA_SET_SLOT, Subscription.OWNER_SLOT, - Subscription.ORIGINATING_SITE_SLOT}) + Subscription.ORIGINATING_SITE_SLOT, Subscription.SUBSCRIPTION_TYPE_SLOT }) @DynamicSerialize -public class SiteSubscription extends RecurringSubscription { +public class SiteSubscription extends + RecurringSubscription { private static final long serialVersionUID = -6422673887457060034L; /** diff --git a/edexOsgi/com.raytheon.uf.common.datadelivery.registry/src/com/raytheon/uf/common/datadelivery/registry/Subscription.java b/edexOsgi/com.raytheon.uf.common.datadelivery.registry/src/com/raytheon/uf/common/datadelivery/registry/Subscription.java index 65900fd455..53ed25abd0 100644 --- a/edexOsgi/com.raytheon.uf.common.datadelivery.registry/src/com/raytheon/uf/common/datadelivery/registry/Subscription.java +++ b/edexOsgi/com.raytheon.uf.common.datadelivery.registry/src/com/raytheon/uf/common/datadelivery/registry/Subscription.java @@ -41,6 +41,7 @@ import javax.xml.bind.annotation.XmlEnumValue; * Jul 11, 2013 2106 djohnson SubscriptionPriority allows comparison. * Sept 30,2013 1797 dhladky Abstracted and genericized. * Oct 23, 2013 2484 dhladky Unique ID for subscriptions updated. + * Nov 14, 2013 2548 mpduff Add a subscription type information. * * * @@ -50,6 +51,11 @@ import javax.xml.bind.annotation.XmlEnumValue; public interface Subscription { + @XmlEnum + public enum SubscriptionType { + QUERY, RECURRING; + } + /** Enumeration to use for subscription priorities */ @XmlEnum public static enum SubscriptionPriority { @@ -142,10 +148,13 @@ public interface Subscription { /** Route slot */ String ROUTE_SLOT = "route"; - + /** Originating Site slot */ String ORIGINATING_SITE_SLOT = "originatingSite"; + /** Subscription type slot (query, recurring) */ + String SUBSCRIPTION_TYPE_SLOT = "subscriptionType"; + /** * Get subscription name. * @@ -618,16 +627,32 @@ public interface Subscription { * Office Id to add */ void addOfficeID(String officeId); - + /** * Gets the original site the subscription was created as + * * @return */ String getOriginatingSite(); - + /** * Sets the originating Site the subscription was created as + * * @param originatingSite */ void setOriginatingSite(String originatingSite); + + /** + * Get the subscription type (Recurring or Query) + * + * @return the SubscriptionType + */ + SubscriptionType getSubscriptionType(); + + /** + * Set the subscription type. + * + * @param subType + */ + void setSubscriptionType(SubscriptionType subType); } \ No newline at end of file