Author: alexoree
Date: Sun May  5 23:20:34 2013
New Revision: 1479420

URL: http://svn.apache.org/r1479420
Log:
Fix for JIRA-590

Modified:
    
juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/api/impl/PublicationHelper.java
    
juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDISubscriptionImpl.java
    
juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/validation/ValidateSubscription.java
    juddi/branches/juddi-3.2.x/juddi-core/src/main/resources/messages.properties

Modified: 
juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/api/impl/PublicationHelper.java
URL: 
http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/api/impl/PublicationHelper.java?rev=1479420&r1=1479419&r2=1479420&view=diff
==============================================================================
--- 
juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/api/impl/PublicationHelper.java
 (original)
+++ 
juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/api/impl/PublicationHelper.java
 Sun May  5 23:20:34 2013
@@ -43,6 +43,8 @@ public class PublicationHelper {
                businessKeysFound = FindBusinessByPublisherQuery.select(em, 
null, publisher, businessKeysFound);
                
                List<org.apache.juddi.model.PublisherAssertion> 
pubAssertionList = FindPublisherAssertionByBusinessQuery.select(em, 
businessKeysFound, completionStatus);
+                if (pubAssertionList==null)
+                    return result;
                for(org.apache.juddi.model.PublisherAssertion modelPubAssertion 
: pubAssertionList) {
                        org.uddi.api_v3.AssertionStatusItem 
apiAssertionStatusItem = new org.uddi.api_v3.AssertionStatusItem();
 

Modified: 
juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDISubscriptionImpl.java
URL: 
http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDISubscriptionImpl.java?rev=1479420&r1=1479419&r2=1479420&view=diff
==============================================================================
--- 
juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDISubscriptionImpl.java
 (original)
+++ 
juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDISubscriptionImpl.java
 Sun May  5 23:20:34 2013
@@ -80,6 +80,10 @@ import org.apache.juddi.v3.error.FatalEr
 import org.apache.juddi.v3.error.InvalidValueException;
 import org.apache.juddi.validation.ValidateSubscription;
 
+/**
+ * 
+ * This is jUDDI's implementation of the UDDIv3 Subscription API
+ */
 @WebService(serviceName="UDDISubscriptionService", 
                        
endpointInterface="org.uddi.v3_service.UDDISubscriptionPortType",
                        targetNamespace = "urn:uddi-org:v3_service")
@@ -818,7 +822,7 @@ public class UDDISubscriptionImpl extend
        }
 
 
-       /* (non-Javadoc)
+       /* 
         * @see 
org.uddi.v3_service.UDDISubscriptionPortType#saveSubscription(java.lang.String, 
javax.xml.ws.Holder)
         * 
         * Notes: The matching keys are saved on a new subscription (or renewed 
subscription) for the find_* filters only.  With the other filter 

Modified: 
juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/validation/ValidateSubscription.java
URL: 
http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/validation/ValidateSubscription.java?rev=1479420&r1=1479419&r2=1479420&view=diff
==============================================================================
--- 
juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/validation/ValidateSubscription.java
 (original)
+++ 
juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/validation/ValidateSubscription.java
 Sun May  5 23:20:34 2013
@@ -60,7 +60,7 @@ public class ValidateSubscription extend
                }
        }
        
-       public void validateSubscription(EntityManager em, 
org.uddi.sub_v3.Subscription subscription) throws DispositionReportFaultMessage 
{
+       private void validateSubscription(EntityManager em, 
org.uddi.sub_v3.Subscription subscription) throws DispositionReportFaultMessage 
{
 
                // A supplied subscription can't be null
                if (subscription == null)
@@ -103,12 +103,30 @@ public class ValidateSubscription extend
                        if (!isUniqueKey(em, entityKey))
                                throw new KeyUnavailableException(new 
ErrorMessage("errors.keyunavailable.KeyExists", entityKey));
                }
-               
+                //AO, if it's already expired, why even allow it?
+               if (subscription.getExpiresAfter()!=null)
+                {
+                    long expiresat= 
subscription.getExpiresAfter().toGregorianCalendar().getTimeInMillis();
+                    if (System.currentTimeMillis() > expiresat)
+                        throw new ValueNotAllowedException(new 
ErrorMessage("errors.subscription.expired"));
+                }
+                if (subscription.getMaxEntities()!=null)
+                {
+                    if (subscription.getMaxEntities().intValue() <= 0)
+                    {
+                        throw new ValueNotAllowedException(new 
ErrorMessage("errors.subscription.maxrecordstoosmall"));
+                    }
+                }
                
                
validateSubscriptionFilter(subscription.getSubscriptionFilter(), entityExists);
        }
-
-       public void validateSubscriptionFilter(SubscriptionFilter 
subscriptionFilter, boolean entityExists) throws DispositionReportFaultMessage {
+        /**
+         * this handles just the filter items only
+         * @param subscriptionFilter
+         * @param entityExists or more accurately, is this a new item or not?
+         * @throws DispositionReportFaultMessage 
+         */
+       private void validateSubscriptionFilter(SubscriptionFilter 
subscriptionFilter, boolean entityExists) throws DispositionReportFaultMessage {
                if (!entityExists && subscriptionFilter == null)
                        throw new ValueNotAllowedException(new 
ErrorMessage("errors.subscription.NoFilterOnNewSubscription"));
                        

Modified: 
juddi/branches/juddi-3.2.x/juddi-core/src/main/resources/messages.properties
URL: 
http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-core/src/main/resources/messages.properties?rev=1479420&r1=1479419&r2=1479420&view=diff
==============================================================================
--- 
juddi/branches/juddi-3.2.x/juddi-core/src/main/resources/messages.properties 
(original)
+++ 
juddi/branches/juddi-3.2.x/juddi-core/src/main/resources/messages.properties 
Sun May  5 23:20:34 2013
@@ -190,6 +190,8 @@ errors.subscription.NullInput=The subscr
 errors.subscription.NoFilterOnNewSubscription=No subscription filter was 
provided on this new subscription request
 errors.subscription.BlankFilter=A filter structure was provided but no filter 
criteria was specified
 errors.subscription.TooManyFilters=Only one filter is allowed per subscription 
request
+errors.subscription.expired=The expiration timestamp has already passed.
+errors.subscription.maxrecordstoosmall=When specifying the maxium record, it 
must be greater than zero
 errors.getsubscriptionresult.SubscriptionExpired=The passed subscription has 
expired
 errors.getsubscriptionresult.NullCoveragePeriod=The coverage period cannot be 
blank
 errors.getsubscriptionresult.InvalidDateInCoveragePeriod=The coverage period 
must contain valid dates for start and end points



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to