You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juddi.apache.org by al...@apache.org on 2015/01/11 14:30:26 UTC

juddi git commit: JUDDI-906 addition tests for replication config. JUDDI-241 juddi api adminDeleteTModel for permission/node check. Log output reduced due to turning off schema validation for the juddi api endpoint

Repository: juddi
Updated Branches:
  refs/heads/master 2bf444ca1 -> e9520847f


JUDDI-906 addition tests for replication config.
JUDDI-241 juddi api adminDeleteTModel for permission/node check. Log output reduced due to turning off schema validation for the juddi api endpoint


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

Branch: refs/heads/master
Commit: e9520847f063fb1d4416948f3e9afb9ea1db940b
Parents: 2bf444c
Author: Alex <al...@apache.org>
Authored: Sun Jan 11 08:30:11 2015 -0500
Committer: Alex <al...@apache.org>
Committed: Sun Jan 11 08:30:11 2015 -0500

----------------------------------------------------------------------
 .../org/apache/juddi/api/impl/JUDDIApiImpl.java |  61 +++--
 .../juddi/validation/ValidatePublish.java       |  12 +-
 .../src/main/resources/messages.properties      |   1 +
 juddiv3-war/JAX-WS/CXF/WEB-INF/beans.xml        |   2 +-
 .../java/org/apache/juddi/v3/tck/TckCommon.java |  12 +-
 .../java/org/apache/juddi/v3/tck/TckTModel.java |   2 +-
 .../tck/JUDDI_300_MultiNodeIntegrationTest.java | 231 ++++++++++++++++---
 ...I_170_ValueSetValidationIntegrationTest.java |   7 +-
 8 files changed, 250 insertions(+), 78 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/juddi/blob/e9520847/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java b/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java
index 8bdf19f..db08195 100644
--- a/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java
+++ b/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java
@@ -198,9 +198,10 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy
 
         /**
          * Deletes publisher(s) from the persistence layer. This method is
-         * specific to jUDDI. Administrative privilege required. Also removes all
-         * registered business entities of the user and marks all created tModels as "deleted"
-         * but not does not remove the tModel from persistence. All subscriptions are also destroyed
+         * specific to jUDDI. Administrative privilege required. Also removes
+         * all registered business entities of the user and marks all created
+         * tModels as "deleted" but not does not remove the tModel from
+         * persistence. All subscriptions are also destroyed
          *
          * @param body
          * @throws DispositionReportFaultMessage
@@ -406,7 +407,10 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy
          * tModel will no longer be able to use the tModel if jUDDI Option
          * Enforce referential Integrity is enabled.<br>
          * Required permission, you must be am administrator
-         * {@link Property#JUDDI_ENFORCE_REFERENTIAL_INTEGRITY}
+         * {@link Property#JUDDI_ENFORCE_REFERENTIAL_INTEGRITY}. In addition, 
+         * tModels that are owned by another node via replication cannot be deleted using 
+         * this method and will throw an exception
+         
          *
          * @param body
          * @throws DispositionReportFaultMessage
@@ -427,9 +431,15 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy
                         //TODO if referiental integrity is turned on, check to see if this is referenced anywhere and prevent the delete
                         List<String> entityKeyList = body.getTModelKey();
                         for (String entityKey : entityKeyList) {
-                                Object obj = em.find(org.apache.juddi.model.Tmodel.class, entityKey);
+                                org.apache.juddi.model.Tmodel obj = em.find(org.apache.juddi.model.Tmodel.class, entityKey);
+
+                                if (obj == null) {
+                                        throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.TModelNotFound", entityKey));
+                                }
+                                if (!obj.getNodeId().equals(node))
+                                        throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.TModelNodeOwner", entityKey + " this node " + node + " owning node " + obj.getNodeId()));
                                 em.remove(obj);
-                                ChangeRecord cr =UDDIPublicationImpl.getChangeRecord_deleteTModelDelete(entityKey, node);
+                                ChangeRecord cr = UDDIPublicationImpl.getChangeRecord_deleteTModelDelete(entityKey, node);
                                 ReplicationNotifier.Enqueue(cr);
                         }
 
@@ -1198,19 +1208,18 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy
                         if (!((Publisher) requestor).isAdmin()) {
                                 throw new UserMismatchException(new ErrorMessage("errors.AdminReqd"));
                         }
-                               
+
                         for (int i = 0; i < values.size(); i++) {
                                 //impersonate the user
                                 AuthToken authToken = sec.getAuthToken(values.get(i).getPublisherID());
-               
+
                                 SaveBusiness stm = new SaveBusiness();
-                                
+
                                 stm.setAuthInfo(authToken.getAuthInfo());
                                 stm.getBusinessEntity().addAll(values.get(i).getBusinessEntity());
                                 pub.saveBusiness(stm);
                         }
 
-                        
                         tx.commit();
                         long procTime = System.currentTimeMillis() - startTime;
                         serviceCounter.update(JUDDIQuery.ADMIN_SAVE_BUSINESS,
@@ -1230,7 +1239,7 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy
 
                 DispositionReport r = new DispositionReport();
                 return r;
-            
+
         }
 
         @Override
@@ -1244,7 +1253,7 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy
                         if (!((Publisher) requestor).isAdmin()) {
                                 throw new UserMismatchException(new ErrorMessage("errors.AdminReqd"));
                         }
-                        
+
                         for (int i = 0; i < values.size(); i++) {
                                 //impersonate the user
                                 AuthToken authToken = sec.getAuthToken(values.get(i).getPublisherID());
@@ -1436,9 +1445,9 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy
                         throw drfm;
                 } catch (Exception ex) {
                         //possible that there is no config to return
-                         logger.warn("Error caught, is there a replication config is avaiable? Returning a default config (no replication): " + ex.getMessage());
+                        logger.warn("Error caught, is there a replication config is avaiable? Returning a default config (no replication): " + ex.getMessage());
                         logger.debug("Error caught, is there a replication config is avaiable? Returning a default config (no replication): ", ex);
-                      
+
                         r.setCommunicationGraph(new CommunicationGraph());
                         Operator op = new Operator();
                         op.setOperatorNodeID(node);
@@ -1452,7 +1461,7 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy
                         r.getOperator().add(op);
                         r.getCommunicationGraph().getNode().add(node);
                         r.getCommunicationGraph().getControlledMessage().add("*");
-                         long procTime = System.currentTimeMillis() - startTime;
+                        long procTime = System.currentTimeMillis() - startTime;
                         r.setSerialNumber(0);
                         SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddkkmmZ");
                         r.setTimeOfConfigurationUpdate(sdf.format(new Date()));
@@ -1465,7 +1474,7 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy
 
                                 BusinessEntity rootbiz = em.find(BusinessEntity.class, AppConfig.getConfiguration().getString(Property.JUDDI_NODE_ROOT_BUSINESS));
                                 if (rootbiz != null) {
-                                        
+
                                         for (int i = 0; i < rootbiz.getContacts().size(); i++) {
                                                 Contact c = new Contact();
                                                 MappingModelToApi.mapContact(rootbiz.getContacts().get(i), c);
@@ -1479,7 +1488,7 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy
                         } catch (Exception ex1) {
                                 logger.warn("unexpected error", ex1);
                         }
-                        if (r.getRegistryContact().getContact()==null){
+                        if (r.getRegistryContact().getContact() == null) {
                                 r.getRegistryContact().setContact(new Contact());
                                 r.getRegistryContact().getContact().getPersonName().add(new PersonName("Unknown", null));
                         }
@@ -1495,7 +1504,7 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy
 
                 r.setMaximumTimeToGetChanges(BigInteger.ONE);
                 r.setMaximumTimeToSyncRegistry(BigInteger.ONE);
-               // JAXB.marshal(r, System.out);
+                // JAXB.marshal(r, System.out);
                 return r;
         }
 
@@ -1538,16 +1547,18 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy
 
         /**
          * {@inheritDoc }
+         *
          * @param body
          * @return item history or null if not found
          * @throws DispositionReportFaultMessage
-         * @throws RemoteException 
+         * @throws RemoteException
          */
         @Override
         public GetEntityHistoryMessageResponse getEntityHistory(GetEntityHistoryMessageRequest body) throws DispositionReportFaultMessage, RemoteException {
                 long startTime = System.currentTimeMillis();
-                if (body==null)
+                if (body == null) {
                         throw new InvalidValueException(new ErrorMessage("errors.NullInput"));
+                }
                 EntityManager em = PersistenceManager.getEntityManager();
                 EntityTransaction tx = em.getTransaction();
                 try {
@@ -1556,21 +1567,23 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy
                         if (!((Publisher) requestor).isAdmin()) {
                                 throw new UserMismatchException(new ErrorMessage("errors.AdminReqd"));
                         }
-                        if (body.getMaxRecords()<=0)
+                        if (body.getMaxRecords() <= 0) {
                                 body.setMaxRecords(20);
-                        if (body.getOffset() < 0)
+                        }
+                        if (body.getOffset() < 0) {
                                 body.setOffset(0);
+                        }
                         Query createQuery = em.createQuery("select m from ChangeRecord m where m.entityKey = :key order by m.id DESC");
                         createQuery.setMaxResults((int) body.getMaxRecords());
                         createQuery.setParameter("key", body.getEntityKey());
-                        createQuery.setFirstResult((int)body.getOffset());
+                        createQuery.setFirstResult((int) body.getOffset());
                         List<ChangeRecord> resultList = createQuery.getResultList();
                         GetEntityHistoryMessageResponse res = new GetEntityHistoryMessageResponse();
                         res.setChangeRecords(new ChangeRecords());
                         for (ChangeRecord cr : resultList) {
                                 res.getChangeRecords().getChangeRecord().add(MappingModelToApi.mapChangeRecord(cr));
                         }
-                        
+
                         tx.rollback();
                         long procTime = System.currentTimeMillis() - startTime;
                         serviceCounter.update(JUDDIQuery.ADMIN_GET_HISTORY,

http://git-wip-us.apache.org/repos/asf/juddi/blob/e9520847/juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java b/juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java
index dd0271f..8c18b7b 100644
--- a/juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java
+++ b/juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java
@@ -1671,15 +1671,9 @@ public class ValidatePublish extends ValidateUDDIApi {
                         if (!inserted) {
                                 throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.DuplicateKey", entityKey));
                         }
-
-                        Object obj = em.find(org.apache.juddi.model.Tmodel.class, entityKey);
-                        if (obj == null) {
-                                throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.TModelNotFound", entityKey));
-                        }
-
-                        //if (!publisher.isOwner((UddiEntity) obj)) {
-                        //        throw new UserMismatchException(new ErrorMessage("errors.usermismatch.InvalidOwner", entityKey));
-                        //}
+ 
+                        //removed a check for checking if the entity exists which was moved to the juddi api class
+                        //why? because we were looking up the same object twice in the database and its just not efficient
                 }
         }
         ////////////////////////////////////////////////////////////////////

http://git-wip-us.apache.org/repos/asf/juddi/blob/e9520847/juddi-core/src/main/resources/messages.properties
----------------------------------------------------------------------
diff --git a/juddi-core/src/main/resources/messages.properties b/juddi-core/src/main/resources/messages.properties
index 5b7addb..8848cfd 100644
--- a/juddi-core/src/main/resources/messages.properties
+++ b/juddi-core/src/main/resources/messages.properties
@@ -85,6 +85,7 @@ errors.invalidkey.BusinessNotFound=The business entity was not found for the giv
 errors.invalidkey.ServiceNotFound=The business service was not found for the given key
 errors.invalidkey.BindingTemplateNotFound=The binding template was not found for the given key
 errors.invalidkey.TModelNotFound=The technical model was not found for the given key
+errors.invalidkey.TModelNodeOwner=You've attempted to delete a tModel that is not owned by this node. Access the owning node to delete.
 errors.invalidkey.ParentServiceNotFound=The business service parent was not found for the given key
 errors.invalidkey.ParentBusinessNotFound=The business entity parent was not found for the given key
 errors.invalidkey.ServiceKeyNotProvidedWithProjection=Attempting to project a service when the service key was not provided.  The non-owning businessEntity cannot generate a key for a projected service

http://git-wip-us.apache.org/repos/asf/juddi/blob/e9520847/juddiv3-war/JAX-WS/CXF/WEB-INF/beans.xml
----------------------------------------------------------------------
diff --git a/juddiv3-war/JAX-WS/CXF/WEB-INF/beans.xml b/juddiv3-war/JAX-WS/CXF/WEB-INF/beans.xml
index 8e1c130..b7c1e09 100644
--- a/juddiv3-war/JAX-WS/CXF/WEB-INF/beans.xml
+++ b/juddiv3-war/JAX-WS/CXF/WEB-INF/beans.xml
@@ -105,7 +105,7 @@
 
    <jaxws:endpoint id="juddi-api" implementor="org.apache.juddi.api.impl.JUDDIApiImpl" address="/juddi-api">
     <jaxws:properties>
-      <entry key="schema-validation-enabled" value="true"/>
+      <entry key="schema-validation-enabled" value="false"/>
     </jaxws:properties>
   </jaxws:endpoint>
 

http://git-wip-us.apache.org/repos/asf/juddi/blob/e9520847/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckCommon.java
----------------------------------------------------------------------
diff --git a/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckCommon.java b/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckCommon.java
index ce8d05c..54a11a9 100644
--- a/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckCommon.java
+++ b/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckCommon.java
@@ -326,12 +326,12 @@ public class TckCommon {
         }
 
         public static void PrintMarker() {
-                System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>> FAILURE MARKER <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<");
-                System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>> FAILURE MARKER <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<");
-                System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>> FAILURE MARKER <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<");
-                System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>> FAILURE MARKER <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<");
-                System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>> FAILURE MARKER <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<");
-                System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>> FAILURE MARKER <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<");
+                System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>> MARKER <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<");
+                System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>> MARKER <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<");
+                System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>> MARKER <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<");
+                System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>> MARKER <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<");
+                System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>> MARKER <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<");
+                System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>> MARKER <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<");
         }
 
 }

http://git-wip-us.apache.org/repos/asf/juddi/blob/e9520847/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckTModel.java
----------------------------------------------------------------------
diff --git a/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckTModel.java b/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckTModel.java
index 812953d..a689cf0 100644
--- a/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckTModel.java
+++ b/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckTModel.java
@@ -155,7 +155,7 @@ public class TckTModel {
 
                         } catch (Exception e) {
                                 logger.error(e.getMessage(), e);
-                                Assert.fail("No exception should be thrown");
+                                Assert.fail("No exception should be thrown" + e.getMessage());
                         }
 
                 } else {

http://git-wip-us.apache.org/repos/asf/juddi/blob/e9520847/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 dda189e..34c36f3 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
@@ -42,12 +42,16 @@ import org.uddi.api_v3.BusinessEntity;
 import org.uddi.api_v3.BusinessService;
 import org.uddi.api_v3.BusinessServices;
 import org.uddi.api_v3.Contact;
+import org.uddi.api_v3.DeleteTModel;
 import org.uddi.api_v3.GetBusinessDetail;
 import org.uddi.api_v3.GetOperationalInfo;
+import org.uddi.api_v3.GetTModelDetail;
 import org.uddi.api_v3.Name;
 import org.uddi.api_v3.OperationalInfos;
 import org.uddi.api_v3.PersonName;
 import org.uddi.api_v3.SaveBusiness;
+import org.uddi.api_v3.TModel;
+import org.uddi.api_v3.TModelDetail;
 import org.uddi.custody_v3.KeyBag;
 import org.uddi.custody_v3.TransferEntities;
 import org.uddi.custody_v3.TransferToken;
@@ -85,10 +89,16 @@ public class JUDDI_300_MultiNodeIntegrationTest {
         private static UDDICustodyTransferPortType custodySam;
         private static UDDICustodyTransferPortType custodyMary;
         private static UDDIPublicationPortType publishMary;
+        private static UDDIPublicationPortType publishSam;
         private static UDDIInquiryPortType inquiryMary;
         private static UDDIInquiryPortType inquirySam;
         private static UDDIReplicationPortType replicationMary;
         private static UDDIReplicationPortType replicationSam;
+        static TckBusiness maryBizNode1;
+        static TckTModel maryTModelNode1;
+
+        static TckBusiness samBizNode2;
+        static TckTModel samTModelNode2;
 
         static final String CFG_node1_MARY = "uddiv3";
         static final String CFG_node2_SAM = "uddiv3-2";
@@ -136,6 +146,12 @@ public class JUDDI_300_MultiNodeIntegrationTest {
                 juddiApiServiceNode2 = node2.getJUDDIApiService();
                 custodySam = node2.getUDDICustodyTransferService();
                 inquirySam = node2.getUDDIInquiryService();
+                publishSam = node2.getUDDIPublishService();
+
+                samBizNode2 = new TckBusiness(publishSam, inquirySam);
+                samTModelNode2 = new TckTModel(publishSam, inquirySam);
+                maryBizNode1 = new TckBusiness(publishMary, inquiryMary);
+                maryTModelNode1 = new TckTModel(publishMary, inquiryMary);
 
                 if (!TckPublisher.isUDDIAuthMode()) {
                         TckSecurity.setCredentials((BindingProvider) juddiApiServiceNode1, TckPublisher.getRootPublisherId(), TckPublisher.getRootPassword());
@@ -148,6 +164,7 @@ public class JUDDI_300_MultiNodeIntegrationTest {
                         TckSecurity.setCredentials((BindingProvider) custodySam, TckPublisher.getSamPublisherId(), TckPublisher.getSamPassword());
                         TckSecurity.setCredentials((BindingProvider) inquirySam, TckPublisher.getSamPublisherId(), TckPublisher.getSamPassword());
                         TckSecurity.setCredentials((BindingProvider) replicationSam, TckPublisher.getSamPublisherId(), TckPublisher.getSamPassword());
+                        TckSecurity.setCredentials((BindingProvider) publishSam, TckPublisher.getSamPublisherId(), TckPublisher.getSamPassword());
 
                 }
         }
@@ -255,7 +272,9 @@ public class JUDDI_300_MultiNodeIntegrationTest {
                                 replicationNode1.getRegistryContact().getContact().getPersonName().add(new PersonName("unknown", null));
                         }
 
-                        JAXB.marshal(replicationNode1, System.out);
+                        if (TckCommon.isDebug()) {
+                                JAXB.marshal(replicationNode1, System.out);
+                        }
                         logger.info("Setting replication config on Node 1...");
                         juddiApiServiceNode1.setReplicationNodes(rootNode1Token, replicationNode1);
                         logger.info("Setting replication config on Node 2...");
@@ -268,10 +287,6 @@ public class JUDDI_300_MultiNodeIntegrationTest {
                 }
         }
 
-        public void testUnsetReplicationConfig() throws Exception {
-
-        }
-
         /**
          * transfer business from mary/node1 to sam/node2, then delete
          *
@@ -402,9 +417,11 @@ public class JUDDI_300_MultiNodeIntegrationTest {
 
                 Assert.assertNotNull(afterNode1);
                 Assert.assertNotNull(afterNode2);
-                JAXB.marshal(afterNode1, System.out);
-                JAXB.marshal(afterNode2, System.out);
+                if (TckCommon.isDebug()) {
+                        JAXB.marshal(afterNode1, System.out);
+                        JAXB.marshal(afterNode2, System.out);
 
+                }
                 //confirm we're replicated correctly
                 Assert.assertEquals(afterNode1.getOperationalInfo().get(0).getAuthorizedName(), afterNode2.getOperationalInfo().get(0).getAuthorizedName());
                 Assert.assertEquals(afterNode1.getOperationalInfo().get(0).getEntityKey(), afterNode2.getOperationalInfo().get(0).getEntityKey());
@@ -415,57 +432,134 @@ public class JUDDI_300_MultiNodeIntegrationTest {
                 Assert.assertEquals(afterNode1.getOperationalInfo().get(0).getAuthorizedName(), TckPublisher.getSamPublisherId());
                 Assert.assertNotEquals(beforeNode1.getOperationalInfo().get(0).getNodeID(), afterNode1.getOperationalInfo().get(0).getNodeID());
 
-                testUnsetReplicationConfig();
-
         }
 
-        @Ignore
+        /**
+         * covers business, tmodels and publisher assertions
+         *
+         * @throws Exception
+         */
         @Test
-        public void testReplicationPublisherAssertionAdd() throws Exception {
-        }
 
-        @Ignore
-        @Test
-        public void testReplicationPublisherAssertionDelete() throws Exception {
-        }
+        public void testReplicationTModelBusinessPublisherAssertionAddDelete() throws Exception {
+                Assume.assumeTrue(TckPublisher.isReplicationEnabled());
+                Assume.assumeTrue(TckPublisher.isJUDDI());
+                try {
+                        TckCommon.PrintMarker();
+                        TckCommon.PrintMarker();
+                        TckCommon.PrintMarker();
+                        logger.info("testReplicationTModelBusinessPublisherAssertionAddDelete");
+
+                        restTmodels();
+
+                        TModel saveMaryPublisherTmodel = maryTModelNode1.saveMaryPublisherTmodel(maryTokenNode1);
+
+                        BusinessEntity saveMaryPublisherBusiness = maryBizNode1.saveMaryPublisherBusiness(maryTokenNode1);
+
+                        // TModel saveSamSyndicatorTmodel = samTModelNode2.saveSamSyndicatorTmodel(samTokenNode2);
+                        BusinessEntity saveSamSyndicatorBusiness = samBizNode2.saveSamSyndicatorBusiness(samTokenNode2);
+
+                        getReplicationStatus();//block until synched
+
+                        //confirm mary's tmodel is on the other node
+                        GetTModelDetail findTModel = new GetTModelDetail();
+                        findTModel.setAuthInfo(samTokenNode2);
+                        findTModel.getTModelKey().add(TckTModel.MARY_PUBLISHER_TMODEL_KEY);
+                        TModelDetail tModelDetail = inquirySam.getTModelDetail(findTModel);
+                        Assert.assertNotNull(tModelDetail);
+                        Assert.assertNotNull(tModelDetail.getTModel());
+                        Assert.assertTrue(tModelDetail.getTModel().size() == 1);
+                        Assert.assertTrue(tModelDetail.getTModel().get(0).getTModelKey().equals(TckTModel.MARY_PUBLISHER_TMODEL_KEY));
+
+                        GetBusinessDetail gbd = new GetBusinessDetail();
+                        gbd.setAuthInfo(samTokenNode2);
+                        gbd.getBusinessKey().add(TckBusiness.MARY_BUSINESS_KEY);
+                        BusinessDetail businessDetail = inquirySam.getBusinessDetail(gbd);
+                        Assert.assertNotNull(businessDetail);
+                        Assert.assertNotNull(businessDetail.getBusinessEntity());
+                        Assert.assertTrue(businessDetail.getBusinessEntity().get(0).getBusinessKey().equals(TckBusiness.MARY_BUSINESS_KEY));
+
+                        //setup a publisher assertion
+                        
+                        //clean up
+                        maryBizNode1.deleteMaryPublisherBusiness(maryTokenNode1);
+                        maryTModelNode1.deleteMaryPublisherTmodel(maryTokenNode1);
+
+                        //getReplicationStatus();//block until synched
+                        int timeout = TckPublisher.getSubscriptionTimeout();
+                        businessDetail = null;
+                        while (timeout > 0) {
+                                logger.info("Waiting for the update...");
+                                try {
+                                        businessDetail = inquirySam.getBusinessDetail(gbd);
+
+                                } catch (Exception ex) {
+                                        logger.warn(ex.getMessage());
+                                        businessDetail = null;
+                                        break;
+                                }
+                                timeout--;
+                                Thread.sleep(1000);
 
-        @Ignore
-        @Test
-        public void testReplicationTModelAdd() throws Exception {
-        }
+                        }
+                        //check node2 for delete biz, should be gone
 
-        @Ignore
-        @Test
-        public void testReplicationTModelDelete() throws Exception {
-        }
+                        if (businessDetail != null) {
+                                Assert.fail(TckBusiness.MARY_BUSINESS_KEY + " wasn't deleted on node 2");
+                        }
 
-        @Ignore
-        @Test
-        public void testReplicationBusinessAdd() throws Exception {
+                        tModelDetail = inquirySam.getTModelDetail(findTModel);
+                        Assert.assertNotNull(tModelDetail);
+                        Assert.assertNotNull(tModelDetail.getTModel());
+                        Assert.assertNotNull(tModelDetail.getTModel().get(0));
+                        Assert.assertEquals(tModelDetail.getTModel().get(0).getTModelKey(), TckTModel.MARY_PUBLISHER_TMODEL_KEY);
+                        Assert.assertEquals(tModelDetail.getTModel().get(0).isDeleted(), true);
+
+                        TckCommon.PrintMarker();
+                        TckCommon.PrintMarker();
+                        TckCommon.PrintMarker();
+                } finally {
+                        
+                        samBizNode2.deleteSamSyndicatorBusiness(samTokenNode2);
+                        restTmodels();
+                        
+                }
+                //check node2 for a "hidden" tmodel should be accessible via getDetails
         }
 
-        @Ignore
         @Test
-        public void testReplicationBusinessDelete() throws Exception {
+        public void testReplicationPublisherAssertionSet() throws Exception {
+                Assume.assumeTrue(TckPublisher.isReplicationEnabled());
+                Assume.assumeTrue(TckPublisher.isJUDDI());
+                logger.info("testReplicationPublisherAssertionSet");
         }
-        
-        @Ignore
+
         @Test
         public void testReplicationServiceAdd() throws Exception {
+                Assume.assumeTrue(TckPublisher.isReplicationEnabled());
+                Assume.assumeTrue(TckPublisher.isJUDDI());
+                logger.info("testReplicationServiceAdd");
         }
 
-        @Ignore
         @Test
         public void testReplicationServiceDelete() throws Exception {
+                Assume.assumeTrue(TckPublisher.isReplicationEnabled());
+                Assume.assumeTrue(TckPublisher.isJUDDI());
+                logger.info("testReplicationServiceDelete");
         }
-         @Ignore
+
         @Test
         public void testReplicationBindingAdd() throws Exception {
+                Assume.assumeTrue(TckPublisher.isReplicationEnabled());
+                Assume.assumeTrue(TckPublisher.isJUDDI());
+                logger.info("testReplicationBindingAdd");
         }
-        
-        @Ignore
+
         @Test
         public void testReplicationBindingDelete() throws Exception {
+                Assume.assumeTrue(TckPublisher.isReplicationEnabled());
+                Assume.assumeTrue(TckPublisher.isJUDDI());
+                logger.info("testReplicationBindingDelete");
         }
 
         /**
@@ -474,8 +568,9 @@ public class JUDDI_300_MultiNodeIntegrationTest {
          * @throws Exception
          */
         private void getReplicationStatus() throws Exception {
-                logger.info("Getting replication status....Mary's node...");
+                logger.info("Getting replication status....Mary's node1...");
                 waitUntilSynched(replicationMary);
+                logger.info("Getting replication status....Sam's node2...");
                 waitUntilSynched(replicationSam);
         }
 
@@ -503,4 +598,68 @@ public class JUDDI_300_MultiNodeIntegrationTest {
 
         }
 
+        private void restTmodels() {
+                TckCommon.PrintMarker();
+                logger.info("resting tmodels");
+                DeleteTModel dtm = new DeleteTModel();
+                dtm.setAuthInfo(rootNode1Token);
+                dtm.getTModelKey().add(TckTModel.MARY_PUBLISHER_TMODEL_KEY);
+                try {
+                        juddiApiServiceNode1.adminDeleteTModel(dtm);
+                        logger.info("Node1 mary deleted");
+                } catch (Exception ex) {
+                        logger.info("unable to delete tmodel " + ex.getMessage());
+                }
+
+                dtm = new DeleteTModel();
+                dtm.setAuthInfo(rootNode1Token);
+                dtm.getTModelKey().add(TckTModel.JOE_PUBLISHER_TMODEL_KEY);
+                try {
+                        juddiApiServiceNode1.adminDeleteTModel(dtm);
+                        logger.info("Node1 joe deleted");
+                } catch (Exception ex) {
+                        logger.info("unable to delete tmodel " + ex.getMessage());
+                }
+
+                dtm = new DeleteTModel();
+                dtm.setAuthInfo(rootNode1Token);
+                dtm.getTModelKey().add(TckTModel.SAM_SYNDICATOR_TMODEL_KEY);
+                try {
+                        juddiApiServiceNode1.adminDeleteTModel(dtm);
+                        logger.info("Node1 sam deleted");
+                } catch (Exception ex) {
+                        logger.info("unable to delete tmodel " + ex.getMessage());
+                }
+
+                dtm = new DeleteTModel();
+                dtm.setAuthInfo(rootNode2Token);
+                dtm.getTModelKey().add(TckTModel.MARY_PUBLISHER_TMODEL_KEY);
+                try {
+                        juddiApiServiceNode2.adminDeleteTModel(dtm);
+                        logger.info("Node2 mary deleted");
+                } catch (Exception ex) {
+                        logger.info("unable to delete tmodel " + ex.getMessage());
+                }
+
+                dtm = new DeleteTModel();
+                dtm.setAuthInfo(rootNode2Token);
+                dtm.getTModelKey().add(TckTModel.JOE_PUBLISHER_TMODEL_KEY);
+                try {
+                        juddiApiServiceNode2.adminDeleteTModel(dtm);
+                        logger.info("Node2 joe deleted");
+                } catch (Exception ex) {
+                        logger.info("unable to delete tmodel " + ex.getMessage());
+                }
+
+                dtm = new DeleteTModel();
+                dtm.setAuthInfo(rootNode2Token);
+                dtm.getTModelKey().add(TckTModel.SAM_SYNDICATOR_TMODEL_KEY);
+                try {
+                        juddiApiServiceNode2.adminDeleteTModel(dtm);
+                        logger.info("Node2 sam deleted");
+                } catch (Exception ex) {
+                        logger.info("unable to delete tmodel " + ex.getMessage());
+                }
+        }
+
 }

http://git-wip-us.apache.org/repos/asf/juddi/blob/e9520847/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_170_ValueSetValidationIntegrationTest.java
----------------------------------------------------------------------
diff --git a/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_170_ValueSetValidationIntegrationTest.java b/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_170_ValueSetValidationIntegrationTest.java
index a6fc23b..a376ac4 100644
--- a/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_170_ValueSetValidationIntegrationTest.java
+++ b/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_170_ValueSetValidationIntegrationTest.java
@@ -85,6 +85,7 @@ public class UDDI_170_ValueSetValidationIntegrationTest implements UDDIValueSetV
         private static String authInfoMary = null;
         private static UDDIClient manager;
         private static boolean VALID = true;
+        static TckTModel maryTmodel=null;
 
         @BeforeClass
         public static void startRegistry() throws ConfigurationException {
@@ -116,10 +117,12 @@ public class UDDI_170_ValueSetValidationIntegrationTest implements UDDIValueSetV
                         security = transport.getUDDISecurityService();
                         authInfoMary = TckSecurity.getAuthToken(security, TckPublisher.getMaryPublisherId(), TckPublisher.getMaryPassword());
                         if (!TckPublisher.isUDDIAuthMode()) {
-                                TckSecurity.setCredentials((BindingProvider) inquiry, TckPublisher.getJoePublisherId(), TckPublisher.getJoePassword());
+                                TckSecurity.setCredentials((BindingProvider) inquiry, TckPublisher.getMaryPublisherId(), TckPublisher.getMaryPassword());
                                 TckSecurity.setCredentials((BindingProvider) publicationMary, TckPublisher.getMaryPublisherId(), TckPublisher.getMaryPassword());
                         }
 
+                        maryTmodel = new TckTModel(publicationMary, inquiry);
+                        maryTmodel.saveMaryPublisherTmodel(authInfoMary);
                 } catch (Exception e) {
                         logger.error(e.getMessage(), e);
                         Assert.fail("Could not obtain authInfo token.");
@@ -132,6 +135,7 @@ public class UDDI_170_ValueSetValidationIntegrationTest implements UDDIValueSetV
                 if (!TckPublisher.isEnabled()) {
                         return;
                 }
+                maryTmodel.deleteMaryPublisherTmodel(authInfoMary);
                 manager.stop();
         }
         final static String VSV_KEY = "uddi:juddi.apache.org:node1";
@@ -858,6 +862,7 @@ public class UDDI_170_ValueSetValidationIntegrationTest implements UDDIValueSetV
                 Assume.assumeTrue(TckPublisher.isEnabled());
                 Assume.assumeTrue(TckPublisher.isValueSetAPIEnabled());
                 System.out.println("ReplacedByValid6DifferentOwners");
+                
                 BusinessEntity tm = new BusinessEntity();
                 tm.setBusinessKey(TckTModel.MARY_KEY_PREFIX + "testbiz");
                 tm.getName().add(new Name("My old business", "en"));


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@juddi.apache.org
For additional commands, e-mail: commits-help@juddi.apache.org