Author: alexoree
Date: Fri Sep 27 00:22:01 2013
New Revision: 1526759

URL: http://svn.apache.org/r1526759
Log:
JUDDI-655 fixed

Modified:
    
juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDISubscriptionImpl.java
    
juddi/trunk/juddi-core/src/main/java/org/apache/juddi/subscription/SubscriptionNotifier.java
    
juddi/trunk/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckSubscription.java

Modified: 
juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDISubscriptionImpl.java
URL: 
http://svn.apache.org/viewvc/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDISubscriptionImpl.java?rev=1526759&r1=1526758&r2=1526759&view=diff
==============================================================================
--- 
juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDISubscriptionImpl.java
 (original)
+++ 
juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDISubscriptionImpl.java
 Fri Sep 27 00:22:01 2013
@@ -175,6 +175,8 @@ public class UDDISubscriptionImpl extend
                        if (logger.isDebugEnabled()) logger.debug("filter=" + 
modelSubscription.getSubscriptionFilter());
                        
                        SubscriptionResultsList result = new 
SubscriptionResultsList();
+                        result.setChunkToken("0");
+                        //chunkToken:  Optional element used to retrieve 
subsequent groups of data when the first invocation of this API indicates more 
data is available.  This occurs when a chunkToken is returned whose value is 
not "0" in the validValuesList structure described in the next section.  To 
retrieve the next chunk of data, the chunkToken returned should be used as an 
argument to the next invocation of this API.
                        result.setCoveragePeriod(body.getCoveragePeriod());
        
                        // The subscription structure is required output for 
the results

Modified: 
juddi/trunk/juddi-core/src/main/java/org/apache/juddi/subscription/SubscriptionNotifier.java
URL: 
http://svn.apache.org/viewvc/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/subscription/SubscriptionNotifier.java?rev=1526759&r1=1526758&r2=1526759&view=diff
==============================================================================
--- 
juddi/trunk/juddi-core/src/main/java/org/apache/juddi/subscription/SubscriptionNotifier.java
 (original)
+++ 
juddi/trunk/juddi-core/src/main/java/org/apache/juddi/subscription/SubscriptionNotifier.java
 Fri Sep 27 00:22:01 2013
@@ -160,17 +160,32 @@ public class SubscriptionNotifier extend
                                                GetSubscriptionResults 
getSubscriptionResults = 
                                                        
buildGetSubscriptionResults(subscription, notificationDate);
                                                if 
(getSubscriptionResults!=null) {
-                                                    //TODO chunking
                                                        
getSubscriptionResults.setSubscriptionKey(subscription.getSubscriptionKey());
                                                        UddiEntityPublisher 
publisher = new UddiEntityPublisher();
                                                        
publisher.setAuthorizedName(subscription.getAuthorizedName());
                                                        SubscriptionResultsList 
resultList = subscriptionImpl.getSubscriptionResults(getSubscriptionResults, 
publisher);
+                                                        String token = 
resultList.getChunkToken();
                                                        if 
(resultListContainsChanges(resultList)) {
                                                                log.debug("We 
have a change and need to notify " + subscription.getSubscriptionKey());
+                                                                
resultList.setChunkToken(null);
+                                                               //Note that the 
chunkToken is not returned with this structure for this API.  
                                                                
notify(getSubscriptionResults,resultList, notificationDate);
                                                        } else {
                                                                log.debug("No 
changes where recorded, no need to notify.");
                                                        }
+                                                        while 
(!token.equalsIgnoreCase("0"))
+                                                        {
+                                                            resultList = 
subscriptionImpl.getSubscriptionResults(getSubscriptionResults, publisher);
+                                                            if 
(resultListContainsChanges(resultList)) {
+                                                                    
log.debug("We have a change and need to notify " + 
subscription.getSubscriptionKey());
+                                                                    
resultList.setChunkToken(null);
+                                                                   //Note that 
the chunkToken is not returned with this structure for this API.  
+                                                                    
notify(getSubscriptionResults,resultList, notificationDate);
+                                                            } else {
+                                                                    
log.debug("No changes where recorded, no need to notify.");
+                                                            }
+                                                        }
+                                                            
                                                }
                                        } catch (Exception e) {
                                                log.error("Could not obtain 
subscriptionResult for subscriptionKey " 

Modified: 
juddi/trunk/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckSubscription.java
URL: 
http://svn.apache.org/viewvc/juddi/trunk/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckSubscription.java?rev=1526759&r1=1526758&r2=1526759&view=diff
==============================================================================
--- 
juddi/trunk/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckSubscription.java
 (original)
+++ 
juddi/trunk/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckSubscription.java
 Fri Sep 27 00:22:01 2013
@@ -198,14 +198,15 @@ public class TckSubscription 
                        
                        String chunkToken = "";
                        int iterations = 0;
-                       while (chunkToken != null) {
+                        //JUDDI-655
+                       while (chunkToken != null && 
!chunkToken.equalsIgnoreCase("0")) {
                                iterations++;
-                               
+                                
                                getSubResultsIn.setChunkToken(chunkToken);
                                SubscriptionResultsList result = 
subscription.getSubscriptionResults(getSubResultsIn);
                                if (result == null)
                                        Assert.fail("Null result from 
getSubscriptionResults operation");
-                               
+                               Assert.assertNotNull("Chunk token should either 
be not null or '0'",result.getChunkToken());
                                TModelList tmodelList = result.getTModelList();
                                if (tmodelList == null)
                                        Assert.fail("No result from 
getSubscriptionResults operation on chunk attempt " + iterations);
@@ -247,14 +248,14 @@ public class TckSubscription 
                        
                        String chunkToken = "";
                        int iterations = 0;
-                       while (chunkToken != null) {
+                       while (chunkToken != null && 
!chunkToken.equalsIgnoreCase("0")) {
                                iterations++;
                                
                                getSubResultsIn.setChunkToken(chunkToken);
                                SubscriptionResultsList result = 
subscription.getSubscriptionResults(getSubResultsIn);
                                if (result == null)
                                        Assert.fail("Null result from 
getSubscriptionResults operation");
-                               
+                               Assert.assertNotNull("Chunk token should either 
be not null or '0'",result.getChunkToken());
                                TModelDetail tmodelDetail = 
result.getTModelDetail();
                                if (tmodelDetail == null)
                                        Assert.fail("No result from 
getSubscriptionResults operation on chunk attempt " + iterations);



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

Reply via email to