Repository: juddi
Updated Branches:
  refs/heads/master 24031fc8c -> 31c146102


JUDDI-906 more test case enhancements
JUDDI-910 basics of directed graph support added
JUDDI-904 additional output to hopefully back trace the issue


Project: http://git-wip-us.apache.org/repos/asf/juddi/repo
Commit: http://git-wip-us.apache.org/repos/asf/juddi/commit/31c14610
Tree: http://git-wip-us.apache.org/repos/asf/juddi/tree/31c14610
Diff: http://git-wip-us.apache.org/repos/asf/juddi/diff/31c14610

Branch: refs/heads/master
Commit: 31c1461028b1052c38563f8369246fbc6d3d4be9
Parents: 24031fc
Author: Alex <[email protected]>
Authored: Sun Jan 11 16:13:19 2015 -0500
Committer: Alex <[email protected]>
Committed: Sun Jan 11 16:13:19 2015 -0500

----------------------------------------------------------------------
 .../juddi/api/impl/UDDIReplicationImpl.java     |   2 +-
 .../apache/juddi/model/PublisherAssertion.java  |   5 -
 .../juddi/replication/ReplicationNotifier.java  | 154 +++++++++++++------
 .../juddi/validation/ValidateReplication.java   |  49 ++++--
 .../tck/JUDDI_300_MultiNodeIntegrationTest.java |   9 +-
 .../tck/UDDI_090_HttpMavenIntegrationTest.java  |  18 ++-
 .../v3/tck/UDDI_090_RMIIntegrationTest.java     |  21 ++-
 ...090_SubscriptionListenerIntegrationBase.java |  13 +-
 8 files changed, 181 insertions(+), 90 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/juddi/blob/31c14610/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIReplicationImpl.java
----------------------------------------------------------------------
diff --git 
a/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIReplicationImpl.java 
b/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIReplicationImpl.java
index fbecd3b..7826cc5 100644
--- 
a/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIReplicationImpl.java
+++ 
b/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIReplicationImpl.java
@@ -275,7 +275,7 @@ public class UDDIReplicationImpl extends 
AuthenticatedService implements UDDIRep
                                                                 
recordsreturned = records.size();
                                                         }
                                                 } catch (Exception ex) {
-                                                        logger.error("Error 
caught fetching replication changes from " + poll, ex);
+                                                        logger.error("Error 
caught fetching replication changes from " + poll + " @" + 
((BindingProvider)replicationClient).getRequestContext().get(BindingProvider.ENDPOINT_ADDRESS_PROPERTY),
 ex);
                                                 }
                                         }
                                 } else {

http://git-wip-us.apache.org/repos/asf/juddi/blob/31c14610/juddi-core/src/main/java/org/apache/juddi/model/PublisherAssertion.java
----------------------------------------------------------------------
diff --git 
a/juddi-core/src/main/java/org/apache/juddi/model/PublisherAssertion.java 
b/juddi-core/src/main/java/org/apache/juddi/model/PublisherAssertion.java
index da07e13..f0e1f03 100644
--- a/juddi-core/src/main/java/org/apache/juddi/model/PublisherAssertion.java
+++ b/juddi-core/src/main/java/org/apache/juddi/model/PublisherAssertion.java
@@ -15,20 +15,15 @@ package org.apache.juddi.model;
  * limitations under the License.
  */
 
-import java.util.ArrayList;
 import java.util.Date;
-import java.util.List;
 import javax.persistence.AttributeOverride;
 import javax.persistence.AttributeOverrides;
-import javax.persistence.CascadeType;
 import javax.persistence.Column;
 import javax.persistence.EmbeddedId;
 import javax.persistence.Entity;
 import javax.persistence.FetchType;
 import javax.persistence.JoinColumn;
 import javax.persistence.ManyToOne;
-import javax.persistence.OneToMany;
-import javax.persistence.OrderBy;
 import javax.persistence.Table;
 import javax.persistence.Temporal;
 import javax.persistence.TemporalType;

http://git-wip-us.apache.org/repos/asf/juddi/blob/31c14610/juddi-core/src/main/java/org/apache/juddi/replication/ReplicationNotifier.java
----------------------------------------------------------------------
diff --git 
a/juddi-core/src/main/java/org/apache/juddi/replication/ReplicationNotifier.java
 
b/juddi-core/src/main/java/org/apache/juddi/replication/ReplicationNotifier.java
index 429a9c5..23a8845 100644
--- 
a/juddi-core/src/main/java/org/apache/juddi/replication/ReplicationNotifier.java
+++ 
b/juddi-core/src/main/java/org/apache/juddi/replication/ReplicationNotifier.java
@@ -17,8 +17,11 @@
 package org.apache.juddi.replication;
 
 import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Queue;
+import java.util.Set;
 import java.util.Timer;
 import java.util.TimerTask;
 import java.util.concurrent.ConcurrentLinkedQueue;
@@ -39,6 +42,7 @@ import org.apache.juddi.model.ChangeRecord;
 import org.apache.juddi.model.ReplicationConfiguration;
 import org.apache.juddi.v3.client.UDDIService;
 import org.uddi.repl_v3.ChangeRecordIDType;
+import org.uddi.repl_v3.CommunicationGraph.Edge;
 import org.uddi.repl_v3.HighWaterMarkVectorType;
 import org.uddi.repl_v3.NotifyChangeRecordsAvailable;
 import org.uddi.repl_v3.Operator;
@@ -60,6 +64,7 @@ public class ReplicationNotifier extends TimerTask {
         private long interval = 
5000;//AppConfig.getConfiguration().getLong(Property.JUDDI_NOTIFICATION_INTERVAL,
 300000l); //5 min default
         private long acceptableLagTime = 
AppConfig.getConfiguration().getLong(Property.JUDDI_NOTIFICATION_ACCEPTABLE_LAGTIME,
 10000l); //1000 milliseconds
         private static String node = null;
+        private static UDDIService uddiService = new UDDIService();
 
         /**
          * default constructor
@@ -105,13 +110,12 @@ public class ReplicationNotifier extends TimerTask {
                         tx = em.getTransaction();
                         tx.begin();
 
-                        
                         em.persist(j);
-                        log.debug("CR saved locally, it was from " + 
j.getNodeID() + 
-                                        " USN:" + j.getOriginatingUSN() + 
-                                        " Type:" + j.getRecordType().name() +
-                                        " Key:"+j.getEntityKey() + 
-                                        " Local id:"+j.getId());
+                        log.debug("CR saved locally, it was from " + 
j.getNodeID()
+                                + " USN:" + j.getOriginatingUSN()
+                                + " Type:" + j.getRecordType().name()
+                                + " Key:" + j.getEntityKey()
+                                + " Local id:" + j.getId());
                         tx.commit();
                 } catch (Exception ex) {
                         log.error("error", ex);
@@ -129,54 +133,64 @@ public class ReplicationNotifier extends TimerTask {
                 //TODO figure out what this statement means 7.5.3
                 /**
                  * In the absence of a communicationGraph element from the
-                 * Replication Configuration Structure (although it's 
mandatory in the xsd), all nodes listed in the
-                 * node element MAY send any and all messages to any other node
-                 * of the registry.
+                 * Replication Configuration Structure (although it's mandatory
+                 * in the xsd), all nodes listed in the node element MAY send
+                 * any and all messages to any other node of the registry.
                  */
                 if (repcfg == null) {
                         log.debug("No replication configuration is defined!");
                         return;
 
                 }
-                List<String> destinationUrls = new ArrayList<String>();
+                Set<Object> destinationUrls = new HashSet<Object>();
 
-                for (Operator o:repcfg.getOperator())
-                {
-                        //no need to tell myself about a change at myself
-                        if (!o.getOperatorNodeID().equalsIgnoreCase(node))
-                                 
destinationUrls.add(o.getSoapReplicationURL());
-                }
-                /*
-                Iterator<String> iterator = 
repcfg.getCommunicationGraph().getNode().iterator();
-                while (iterator.hasNext()) {
-                        String next = iterator.next();
-                        
-                        Node destinationNode = getNode(next);
-                        if (destinationNode == null) {
-                                log.warn(next + " node was not found, cannot 
deliver replication messages");
-                        } else {
-                                
destinationUrls.add(destinationNode.getReplicationUrl());
+                if (repcfg.getCommunicationGraph() == null
+                        || repcfg.getCommunicationGraph().getEdge().isEmpty()) 
{
+                        //no edges or graph defined, default to the operator 
list
+                        for (Operator o : repcfg.getOperator()) {
+                                //no need to tell myself about a change at 
myself
+                                if 
(!o.getOperatorNodeID().equalsIgnoreCase(node)) {
+                                        
destinationUrls.add(o.getSoapReplicationURL());
+                                }
                         }
-                }
-                Iterator<CommunicationGraph.Edge> it = 
repcfg.getCommunicationGraph().getEdge().iterator();
+                } else {
+                        //repcfg.getCommunicationGraph()
+                        Iterator<Edge> iterator = 
repcfg.getCommunicationGraph().getEdge().iterator();
+                        while (iterator.hasNext()) {
+                                Edge next = iterator.next();
 
-                while (it.hasNext()) {
-                        //send each change set to the replication node in the 
graph
+                                if 
(next.getMessageSender().equalsIgnoreCase(node)) {
 
-                        
-                        CommunicationGraph.Edge next = it.next();
-                        //next.getMessageReceiver(); //Node ID
-                        Node destinationNode = 
getNode(next.getMessageReceiver());
-                        if (destinationNode == null) {
-                                log.warn(next.getMessageReceiver() + " node 
was not found, cannot deliver replication messages");
-                        } else {
-                                
destinationUrls.add(destinationNode.getReplicationUrl());
+                                        //this is my server and i need to 
transmit the notification to
+                                        String messageReceiver = 
next.getMessageReceiver();
+                                        PrimaryAlternate container = new 
PrimaryAlternate();
+
+                                        for (int x = 0; x < 
repcfg.getOperator().size(); x++) {
+                                                if 
(repcfg.getOperator().get(x).getOperatorNodeID().equalsIgnoreCase(messageReceiver))
 {
+                                                        container.primaryUrl = 
repcfg.getOperator().get(x).getSoapReplicationURL();
+                                                }
+                                        }
+                                        for (int y = 0; y < 
next.getMessageReceiverAlternate().size(); y++) {
+                                                for (int x = 0; x < 
repcfg.getOperator().size(); x++) {
+                                                        if 
(repcfg.getOperator().get(x).getOperatorNodeID().equalsIgnoreCase(next.getMessageReceiverAlternate().get(y)))
 {
+                                                                
container.alternateUrls.add(repcfg.getOperator().get(x).getSoapReplicationURL());
+                                                        }
+                                                }
+                                        }
+                                        if (container.primaryUrl!=null)
+                                                destinationUrls.add(container);
+
+                                }
+                                
                         }
-                }*/
-                for (String s : destinationUrls) {
-                        //TODO the spec talks about control messages, should 
we even support it? seems pointless
-                        UDDIReplicationPortType x = new 
UDDIService().getUDDIReplicationPort();
-                        ((BindingProvider) 
x).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, s);
+
+                }
+
+                UDDIReplicationPortType x = 
uddiService.getUDDIReplicationPort();
+                if (destinationUrls.isEmpty())
+                        log.fatal("Something is bizarre with the replication 
config. I should have had at least one node to notify, but I have none!");
+                for (Object s : destinationUrls) {
+                        
                         NotifyChangeRecordsAvailable req = new 
NotifyChangeRecordsAvailable();
 
                         req.setNotifyingNode(node);
@@ -184,15 +198,59 @@ public class ReplicationNotifier extends TimerTask {
 
                         highWaterMarkVectorType.getHighWaterMark().add(new 
ChangeRecordIDType(node, j.getId()));
                         req.setChangesAvailable(highWaterMarkVectorType);
+                        
+                        
+                        if (s instanceof String)
+                                SendNotification(x,(String)s, req);
+                        else if (s instanceof PrimaryAlternate)
+                        {
+                                //more complex directed graph stuff
+                                PrimaryAlternate pa = (PrimaryAlternate)s;
+                                if (!SendNotification(x, pa.primaryUrl, req))
+                                {
+                                        for (String url : pa.alternateUrls){
+                                                if (SendNotification(x, url, 
req))
+                                                        break;
+                                                //no need to continue to 
additional alternates
+                                        }
+                                }
+                                else
+                                {
+                                        //primary url succeeded, no further 
action required
+                                }
+                                
+                        }
+                        
+                        //TODO the spec talks about control messages, should 
we even support it? seems pointless
+                        
+                        
+                }
+        }
 
+        /**
+         * return true if successful
+         * @param x
+         * @param s
+         * @param req
+         * @return 
+         */
+        private boolean SendNotification(UDDIReplicationPortType x, String s, 
NotifyChangeRecordsAvailable req) {
+                        ((BindingProvider) 
x).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, s);
                         try {
                                 x.notifyChangeRecordsAvailable(req);
                                 log.debug("Successfully sent change record 
available message to " + s);
+                                return true;
                         } catch (Exception ex) {
-                                log.warn("Unable to send change notification 
to " + s   );
+                                log.warn("Unable to send change notification 
to " + s);
                                 log.debug("Unable to send change notification 
to " + s, ex);
                         }
-                }
+                        return false;
+        }
+
+        class PrimaryAlternate {
+
+                String primaryUrl=null;
+                List<String> alternateUrls=new ArrayList<String>();
         }
 
         public synchronized void run() {
@@ -201,13 +259,14 @@ public class ReplicationNotifier extends TimerTask {
                         queue = new ConcurrentLinkedQueue();
                 }
                 //TODO revisie this
-                if (!queue.isEmpty())
+                if (!queue.isEmpty()) {
                         log.info("Replication, Notifying nodes of new change 
records. " + queue.size() + " queued");
+                }
 
                 //TODO check for replication config changes
                 while (!queue.isEmpty()) {
                         //for each change at this node
-                        
+
                         ChangeRecord j = queue.poll();
                         ProcessChangeRecord(j);
 
@@ -250,6 +309,7 @@ public class ReplicationNotifier extends TimerTask {
                 return null;
         }
 
+        @Deprecated
         private Node getNode(String messageSender) {
                 EntityManager em = PersistenceManager.getEntityManager();
                 EntityTransaction tx = null;

http://git-wip-us.apache.org/repos/asf/juddi/blob/31c14610/juddi-core/src/main/java/org/apache/juddi/validation/ValidateReplication.java
----------------------------------------------------------------------
diff --git 
a/juddi-core/src/main/java/org/apache/juddi/validation/ValidateReplication.java 
b/juddi-core/src/main/java/org/apache/juddi/validation/ValidateReplication.java
index 7884189..92bfa03 100644
--- 
a/juddi-core/src/main/java/org/apache/juddi/validation/ValidateReplication.java
+++ 
b/juddi-core/src/main/java/org/apache/juddi/validation/ValidateReplication.java
@@ -138,6 +138,22 @@ public class ValidateReplication extends ValidateUDDIApi {
                         throw new InvalidValueException(new 
ErrorMessage("errors.replication.contactNull"));
                 }
 
+                if (replicationConfiguration.getOperator() == null || 
replicationConfiguration.getOperator().isEmpty()) {
+                        throw new InvalidValueException(new 
ErrorMessage("errors.replication.contactNull", "Operator is null or empty"));
+                }
+                for (int i = 0; i < 
replicationConfiguration.getOperator().size(); i++) {
+                        if 
(replicationConfiguration.getOperator().get(i).getSoapReplicationURL() == null
+                                || 
"".equals(replicationConfiguration.getOperator().get(i).getSoapReplicationURL()))
 {
+                                throw new InvalidValueException(new 
ErrorMessage("errors.replication.contactNull", "Replication URL is null or 
empty"));
+                        }
+                        if 
(!replicationConfiguration.getOperator().get(i).getSoapReplicationURL().toLowerCase().startsWith("http"))
 {
+                                throw new InvalidValueException(new 
ErrorMessage("errors.replication.contactNull", "Replication URL is invalid, 
only HTTP is supported"));
+                        }
+                        if 
(replicationConfiguration.getOperator().get(i).getOperatorNodeID() == null
+                                || 
replicationConfiguration.getOperator().get(i).getOperatorNodeID().equalsIgnoreCase(""))
 {
+                                throw new InvalidValueException(new 
ErrorMessage("errors.replication.contactNull", "Node ID is not defined"));
+                        }
+                }
                 if (replicationConfiguration.getCommunicationGraph() != null) {
                         for (String s : 
replicationConfiguration.getCommunicationGraph().getNode()) {
                                 if 
(!Contains(replicationConfiguration.getOperator(), s)) {
@@ -181,32 +197,35 @@ public class ValidateReplication extends ValidateUDDIApi {
         }
 
         public void validateTransfer(EntityManager em, TransferCustody body) 
throws DispositionReportFaultMessage {
-                
-                 if (body == null)
-                       throw new TransferNotAllowedException(new 
ErrorMessage("errors.NullInput"));
-               if (body.getTransferToken()==null)
+
+                if (body == null) {
+                        throw new TransferNotAllowedException(new 
ErrorMessage("errors.NullInput"));
+                }
+                if (body.getTransferToken() == null) {
                         throw new TransferNotAllowedException(new 
ErrorMessage("errors.NullInput"));
-                if (body.getKeyBag()==null)
+                }
+                if (body.getKeyBag() == null) {
                         throw new TransferNotAllowedException(new 
ErrorMessage("errors.NullInput"));
-                if (body.getTransferOperationalInfo()==null)
+                }
+                if (body.getTransferOperationalInfo() == null) {
                         throw new TransferNotAllowedException(new 
ErrorMessage("errors.NullInput"));
-                
-                 if (body.getTransferOperationalInfo().getNodeID()==null)
+                }
+
+                if (body.getTransferOperationalInfo().getNodeID() == null) {
                         throw new TransferNotAllowedException(new 
ErrorMessage("errors.NullInput"));
-                 if 
(body.getTransferOperationalInfo().getAuthorizedName()==null)
+                }
+                if (body.getTransferOperationalInfo().getAuthorizedName() == 
null) {
                         throw new TransferNotAllowedException(new 
ErrorMessage("errors.NullInput"));
-                
-                 
+                }
+
                 //confirm i own the records in question
                 //confirm i issued the transfer token
-                
                 TransferEntities x = new TransferEntities();
                 x.setKeyBag(body.getKeyBag());
                 x.setTransferToken(body.getTransferToken());
                 String transferTokenId = new 
String(body.getTransferToken().getOpaqueToken());
-                new 
ValidateCustodyTransfer(null).validateTransferLocalEntities(em, 
transferTokenId, body.getKeyBag().getKey() );
-                
-               
+                new 
ValidateCustodyTransfer(null).validateTransferLocalEntities(em, 
transferTokenId, body.getKeyBag().getKey());
+
         }
 
 }

http://git-wip-us.apache.org/repos/asf/juddi/blob/31c14610/uddi-tck/src/test/java/org/apache/juddi/v3/tck/JUDDI_300_MultiNodeIntegrationTest.java
----------------------------------------------------------------------
diff --git 
a/uddi-tck/src/test/java/org/apache/juddi/v3/tck/JUDDI_300_MultiNodeIntegrationTest.java
 
b/uddi-tck/src/test/java/org/apache/juddi/v3/tck/JUDDI_300_MultiNodeIntegrationTest.java
index 041359f..812d41b 100644
--- 
a/uddi-tck/src/test/java/org/apache/juddi/v3/tck/JUDDI_300_MultiNodeIntegrationTest.java
+++ 
b/uddi-tck/src/test/java/org/apache/juddi/v3/tck/JUDDI_300_MultiNodeIntegrationTest.java
@@ -344,7 +344,7 @@ public class JUDDI_300_MultiNodeIntegrationTest {
                                 beforeNode2 = 
inquirySam.getOperationalInfo(operationalInfo);
                                 break;
                         } catch (Exception ex) {
-                                logger.warn(ex.getMessage(), ex);
+                                logger.warn(ex.getMessage());
                         }
                         timeout--;
                         Thread.sleep(1000);
@@ -446,8 +446,6 @@ public class JUDDI_300_MultiNodeIntegrationTest {
                 Assume.assumeTrue(TckPublisher.isJUDDI());
                 try {
                         TckCommon.PrintMarker();
-                        TckCommon.PrintMarker();
-                        TckCommon.PrintMarker();
                         
logger.info("testReplicationTModelBusinessPublisherAssertionAddDelete");
 
                         restTmodels();
@@ -554,8 +552,7 @@ public class JUDDI_300_MultiNodeIntegrationTest {
                         
Assert.assertEquals(tModelDetail.getTModel().get(0).isDeleted(), true);
 
                         TckCommon.PrintMarker();
-                        TckCommon.PrintMarker();
-                        TckCommon.PrintMarker();
+                       
                 } finally {
                         
                         samBizNode2.deleteSamSyndicatorBusiness(samTokenNode2);
@@ -637,7 +634,7 @@ public class JUDDI_300_MultiNodeIntegrationTest {
         }
 
         private void restTmodels() {
-                TckCommon.PrintMarker();
+               
                 logger.info("resting tmodels");
                 DeleteTModel dtm = new DeleteTModel();
                 dtm.setAuthInfo(rootNode1Token);

http://git-wip-us.apache.org/repos/asf/juddi/blob/31c14610/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_090_HttpMavenIntegrationTest.java
----------------------------------------------------------------------
diff --git 
a/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_090_HttpMavenIntegrationTest.java
 
b/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_090_HttpMavenIntegrationTest.java
index 037b00d..630f055 100644
--- 
a/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_090_HttpMavenIntegrationTest.java
+++ 
b/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_090_HttpMavenIntegrationTest.java
@@ -35,7 +35,9 @@ public class UDDI_090_HttpMavenIntegrationTest extends 
UDDI_090_SubscriptionList
 
         @AfterClass
         public static void stop() throws ConfigurationException {
-                if (!TckPublisher.isEnabled()) return;
+                if (!TckPublisher.isEnabled()) {
+                        return;
+                }
                 stopManager();
                 endPoint.stop();
                 endPoint = null;
@@ -45,7 +47,9 @@ public class UDDI_090_HttpMavenIntegrationTest extends 
UDDI_090_SubscriptionList
         @BeforeClass
         public static void startup() throws Exception {
 
-                if (!TckPublisher.isEnabled()) return;
+                if (!TckPublisher.isEnabled()) {
+                        return;
+                }
                 startManager();
                 hostname = "localhost";
                 //bring up the TCK SubscriptionListener
@@ -73,7 +77,7 @@ public class UDDI_090_HttpMavenIntegrationTest extends 
UDDI_090_SubscriptionList
                                 Thread.sleep(1000);
                         } catch (InterruptedException ex) {
                         }
-                        System.out.print(".");
+                        System.out.println(".");
                         //if (UDDISubscriptionListenerImpl.notificationCount > 
0) {                        }
                 }
                 logger.info("RX " + 
UDDISubscriptionListenerImpl.notificationCount + " notifications");
@@ -89,10 +93,14 @@ public class UDDI_090_HttpMavenIntegrationTest extends 
UDDI_090_SubscriptionList
                                 found = true;
                         }
                 }
-                if (!found){
+                if (!found) {
                         
logger.error("_________________________________________________the test 
failed!!!");
+                        it = 
UDDISubscriptionListenerImpl.notifcationMap.values().iterator();
                         Thread.dumpStack();
-                                }
+                        while (it.hasNext()) {
+                                logger.info("Notification: " + it.next());
+                        }
+                }
                 return found;
         }
 

http://git-wip-us.apache.org/repos/asf/juddi/blob/31c14610/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_090_RMIIntegrationTest.java
----------------------------------------------------------------------
diff --git 
a/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_090_RMIIntegrationTest.java
 
b/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_090_RMIIntegrationTest.java
index 4d11732..4debdf5 100644
--- 
a/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_090_RMIIntegrationTest.java
+++ 
b/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_090_RMIIntegrationTest.java
@@ -21,14 +21,11 @@ import java.rmi.registry.LocateRegistry;
 import java.rmi.registry.Registry;
 import java.util.Iterator;
 import java.util.Random;
-import javax.xml.ws.Endpoint;
 import org.apache.commons.configuration.ConfigurationException;
 import static 
org.apache.juddi.v3.tck.UDDI_090_SubscriptionListenerIntegrationBase.logger;
 import static 
org.apache.juddi.v3.tck.UDDI_090_SubscriptionListenerIntegrationBase.startManager;
 import static 
org.apache.juddi.v3.tck.UDDI_090_SubscriptionListenerIntegrationBase.stopManager;
 import org.junit.AfterClass;
-import org.junit.Assert;
-import org.junit.Assume;
 import org.junit.BeforeClass;
 
 /**
@@ -45,7 +42,9 @@ public class UDDI_090_RMIIntegrationTest extends 
UDDI_090_SubscriptionListenerIn
 
         @AfterClass
         public static void stop() throws ConfigurationException {
-                if (!TckPublisher.isEnabled()) return;
+                if (!TckPublisher.isEnabled()) {
+                        return;
+                }
                 stopManager();
 
         }
@@ -53,7 +52,9 @@ public class UDDI_090_RMIIntegrationTest extends 
UDDI_090_SubscriptionListenerIn
         @BeforeClass
         public static void startup() throws Exception {
 
-                if (!TckPublisher.isEnabled()) return;
+                if (!TckPublisher.isEnabled()) {
+                        return;
+                }
                 startManager();
 
                 randomPort = 19800 + new Random().nextInt(99);
@@ -81,7 +82,7 @@ public class UDDI_090_RMIIntegrationTest extends 
UDDI_090_SubscriptionListenerIn
                                 Thread.sleep(1000);
                         } catch (InterruptedException ex) {
                         }
-                        System.out.print(".");
+                        System.out.println(".");
                         //if (UDDISubscriptionListenerImpl.notificationCount > 
0) {                        }
                 }
                 logger.info("RX " + 
UDDISubscriptionListenerImpl.notificationCount + " notifications");
@@ -97,6 +98,14 @@ public class UDDI_090_RMIIntegrationTest extends 
UDDI_090_SubscriptionListenerIn
                                 found = true;
                         }
                 }
+
+                if (!found) {
+                        it = 
UDDISubscriptionListenerImpl.notifcationMap.values().iterator();
+                        Thread.dumpStack();
+                        while (it.hasNext()) {
+                                logger.info("Notification: " + it.next());
+                        }
+                }
                 return found;
         }
 

http://git-wip-us.apache.org/repos/asf/juddi/blob/31c14610/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_090_SubscriptionListenerIntegrationBase.java
----------------------------------------------------------------------
diff --git 
a/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_090_SubscriptionListenerIntegrationBase.java
 
b/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_090_SubscriptionListenerIntegrationBase.java
index afce7c9..70a80c0 100644
--- 
a/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_090_SubscriptionListenerIntegrationBase.java
+++ 
b/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_090_SubscriptionListenerIntegrationBase.java
@@ -1417,9 +1417,10 @@ public abstract class 
UDDI_090_SubscriptionListenerIntegrationBase {
                         
//tckSubscriptionListenerJoe.saveNotifierSubscription(authInfoJoe, 
TckSubscriptionListener.SUBSCRIPTION3_XML);
                         //Changing the service we subscribed to 
"JoePublisherService"
                         Thread.sleep(1000);
-                        logger.info("dumping mary's binding before.... ");
-                        JAXB.marshal(bs, System.out);
-
+                        if (TckCommon.isDebug()){
+                                logger.info("dumping mary's binding before.... 
");
+                                JAXB.marshal(bs, System.out);
+                        }
                         logger.info("updating Mary's binding ********** ");
                         // BindingDetail after=new BindingDetail();
                         /*GetBindingDetail bindingDetail = new 
GetBindingDetail();
@@ -1428,8 +1429,10 @@ public abstract class 
UDDI_090_SubscriptionListenerIntegrationBase {
                         BindingDetail bindingDetail1 = 
null;//inquiryMary.getBindingDetail(bindingDetail);
                         bindingDetail1 = 
updatePublisherBindingAddCategory(authInfoMary, bt, publicationMary, new 
KeyedReference("uddi:uddi.org:categorization:types", 
UDDIConstants.CategorizationTypes_Cacheable, "Cacheable"), bindingDetail1);
 
-                        logger.info("dumping mary's binding after.... ");
-                        JAXB.marshal(bindingDetail1, System.out);
+                        if (TckCommon.isDebug()){
+                                logger.info("dumping mary's binding after.... 
");
+                                JAXB.marshal(bindingDetail1, System.out);
+                        }
                         boolean found = 
verifyDelivery(UDDIConstants.CategorizationTypes_Cacheable);
 
                         if (!found) {


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

Reply via email to