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/16 15:12:35 UTC
juddi git commit: JUDDI-906 attempting to resolve build issues due to
expired tokens JUDDI-241 all UDDI elements are now replicated and deleted
correctly, with the exception of data conflicts
Repository: juddi
Updated Branches:
refs/heads/master b60789165 -> d924443cd
JUDDI-906 attempting to resolve build issues due to expired tokens
JUDDI-241 all UDDI elements are now replicated and deleted correctly, with the exception of data conflicts
Project: http://git-wip-us.apache.org/repos/asf/juddi/repo
Commit: http://git-wip-us.apache.org/repos/asf/juddi/commit/d924443c
Tree: http://git-wip-us.apache.org/repos/asf/juddi/tree/d924443c
Diff: http://git-wip-us.apache.org/repos/asf/juddi/diff/d924443c
Branch: refs/heads/master
Commit: d924443cdb5f3465ec23d5f2f67de7b8e1521610
Parents: b607891
Author: Alex <al...@apache.org>
Authored: Fri Jan 16 09:12:22 2015 -0500
Committer: Alex <al...@apache.org>
Committed: Fri Jan 16 09:12:22 2015 -0500
----------------------------------------------------------------------
.../org/apache/juddi/api/impl/JUDDIApiImpl.java | 7 +-
.../juddi/api/impl/UDDIPublicationImpl.java | 2 +-
.../juddi/api/impl/UDDIReplicationImpl.java | 11 +-
.../api/impl/UDDIValueSetValidationImpl.java | 30 +-
.../apache/juddi/v3/tck/TckBusinessService.java | 1 +
.../tck/JUDDI_300_MultiNodeIntegrationTest.java | 722 ++++++++++++++-----
...090_SubscriptionListenerIntegrationBase.java | 5 -
7 files changed, 567 insertions(+), 211 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/juddi/blob/d924443c/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 db08195..ca69eba 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
@@ -429,6 +429,7 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy
new ValidatePublish(publisher).validateAdminDeleteTModel(em, body);
//TODO if referiental integrity is turned on, check to see if this is referenced anywhere and prevent the delete
+ List<ChangeRecord> changes = new ArrayList<ChangeRecord>();
List<String> entityKeyList = body.getTModelKey();
for (String entityKey : entityKeyList) {
org.apache.juddi.model.Tmodel obj = em.find(org.apache.juddi.model.Tmodel.class, entityKey);
@@ -439,11 +440,13 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy
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);
- ReplicationNotifier.Enqueue(cr);
+ changes.add( UDDIPublicationImpl.getChangeRecord_deleteTModelDelete(entityKey, node));
+
}
tx.commit();
+ for (ChangeRecord cr: changes)
+ ReplicationNotifier.Enqueue(cr);
long procTime = System.currentTimeMillis() - startTime;
serviceCounter.update(JUDDIQuery.ADMIN_DELETE_TMODEL,
QueryStatus.SUCCESS, procTime);
http://git-wip-us.apache.org/repos/asf/juddi/blob/d924443c/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIPublicationImpl.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIPublicationImpl.java b/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIPublicationImpl.java
index 111fda0..2417db9 100644
--- a/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIPublicationImpl.java
+++ b/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIPublicationImpl.java
@@ -1357,7 +1357,7 @@ public class UDDIPublicationImpl extends AuthenticatedService implements UDDIPub
ChangeRecord cr = new ChangeRecord();
cr.setEntityKey(entityKey);
cr.setNodeID(node);
- cr.setRecordType(ChangeRecord.RecordType.ChangeRecordHide);
+ cr.setRecordType(ChangeRecord.RecordType.ChangeRecordDelete);
org.uddi.repl_v3.ChangeRecord crapi = new org.uddi.repl_v3.ChangeRecord();
crapi.setChangeID(new ChangeRecordIDType(node, -1L));
http://git-wip-us.apache.org/repos/asf/juddi/blob/d924443c/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 c32f264..8f20593 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
@@ -269,7 +269,7 @@ public class UDDIReplicationImpl extends AuthenticatedService implements UDDIRep
//ok now we need to persist the change records
logger.info("Change records retrieved from " + poll + ", " + records.size());
for (int i = 0; i < records.size(); i++) {
- logger.info("Change records retrieved " + records.get(i).getChangeID().getNodeID() + " USN " + records.get(i).getChangeID().getOriginatingUSN());
+ //logger.info("Change records retrieved " + records.get(i).getChangeID().getNodeID() + " USN " + records.get(i).getChangeID().getOriginatingUSN());
PersistChangeRecord(records.get(i));
}
recordsreturned = records.size();
@@ -325,7 +325,7 @@ public class UDDIReplicationImpl extends AuthenticatedService implements UDDIRep
mapChangeRecord.setId(null);
em.persist(mapChangeRecord);
tx.commit();
- logger.debug("Remote CR saved, it was from " + mapChangeRecord.getNodeID()
+ logger.info("Remote CR saved, it was from " + mapChangeRecord.getNodeID()
+ " USN:" + mapChangeRecord.getOriginatingUSN()
+ " Type:" + mapChangeRecord.getRecordType().name()
+ " Key:" + mapChangeRecord.getEntityKey()
@@ -359,7 +359,12 @@ public class UDDIReplicationImpl extends AuthenticatedService implements UDDIRep
* administrative function to
* permanently remove a tModel.
*/
- pub.deleteTModel(rec.getChangeRecordDelete().getTModelKey(), em);
+ Object tm=em.find(Tmodel.class, rec.getChangeRecordDelete().getTModelKey());
+ if (tm!=null)
+ em.remove(tm);
+ else
+ logger.error("failed to adminstratively delete tmodel because it doesn't exist. " + rec.getChangeRecordDelete().getTModelKey());
+ //pub.deleteTModel(rec.getChangeRecordDelete().getTModelKey(), em);
}
}
if (rec.getChangeRecordDeleteAssertion() != null && rec.getChangeRecordDeleteAssertion().getPublisherAssertion() != null) {
http://git-wip-us.apache.org/repos/asf/juddi/blob/d924443c/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIValueSetValidationImpl.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIValueSetValidationImpl.java b/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIValueSetValidationImpl.java
index b3f4bbb..291f603 100644
--- a/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIValueSetValidationImpl.java
+++ b/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIValueSetValidationImpl.java
@@ -297,35 +297,7 @@ public class UDDIValueSetValidationImpl extends AuthenticatedService implements
return ret;
}
- private void validateTmodelInstanceDetails(List<TModelInstanceInfo> tModelInstanceInfo, String xpath) {
- /*
- if (tModelInstanceInfo == null) {
- return;
- }
- String err = "";
- for (int i = 0; i < tModelInstanceInfo.size(); i++) {
- List<String> validValues = getValidValues(tModelInstanceInfo.get(i).getTModelKey());
- if (validValues != null) {
- //compare against the instance info
- if (tModelInstanceInfo.get(i).getInstanceDetails() == null) {
- err += xpath + ".(" + i + ").instanceDetails=null ";
- } else {
- boolean ok = false;
- for (int k = 0; k < validValues.size(); k++) {
- if (validValues.get(k).equals(tModelInstanceInfo.get(i).getInstanceDetails().getInstanceParms())) {
- ok = true;
- }
- }
- if (!ok) {
- err += xpath + ".(" + i + ").instanceDetails.instanceParams ";
- }
- }
- }
- }
- if (err.length() > 0) {
- throw new InvalidValueException(new ErrorMessage("errors.valuesetvalidation.invalidcontent", err));
- }*/
- }
+
public static String ConvertKeyToClass(String tmodelkey) {
http://git-wip-us.apache.org/repos/asf/juddi/blob/d924443c/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckBusinessService.java
----------------------------------------------------------------------
diff --git a/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckBusinessService.java b/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckBusinessService.java
index ab012b4..7487876 100644
--- a/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckBusinessService.java
+++ b/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckBusinessService.java
@@ -45,6 +45,7 @@ public class TckBusinessService
public final static String JOE_SERVICE_KEY_2 = "uddi:uddi.joepublisher.com:servicetwo";
public final static String SAM_SERVICE_XML = "uddi_data/samsyndicator/businessService.xml";
public final static String SAM_SERVICE_KEY = "uddi:www.samco.com:listingservice";
+ public final static String SAM_SERVICE_BINDING_KEY="uddi:www.samco.com:listservice-accesspoint";
public final static String RIFTSAW_PROCESS_XML = "uddi_data/bpel/riftsaw/WSDLPort.xml";
public final static String RIFTSAW_PROCESS_KEY = "uddi:riftsaw.jboss.org:ticket-service";
public final static String JOE_BINDING_KEY_1="uddi:uddi.joepublisher.com:bindingone";
http://git-wip-us.apache.org/repos/asf/juddi/blob/d924443c/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 177ba86..83f6103 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
@@ -17,6 +17,8 @@ package org.apache.juddi.v3.tck;
import java.math.BigInteger;
import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
import javax.xml.bind.JAXB;
import javax.xml.datatype.XMLGregorianCalendar;
import javax.xml.ws.BindingProvider;
@@ -38,6 +40,7 @@ import org.junit.Test;
import org.uddi.api_v3.AccessPoint;
import org.uddi.api_v3.AddPublisherAssertions;
import org.uddi.api_v3.AssertionStatusItem;
+import org.uddi.api_v3.BindingDetail;
import org.uddi.api_v3.BindingTemplate;
import org.uddi.api_v3.BindingTemplates;
import org.uddi.api_v3.BusinessDetail;
@@ -46,17 +49,26 @@ import org.uddi.api_v3.BusinessService;
import org.uddi.api_v3.BusinessServices;
import org.uddi.api_v3.CompletionStatus;
import org.uddi.api_v3.Contact;
+import org.uddi.api_v3.DeleteBinding;
+import org.uddi.api_v3.DeleteBusiness;
import org.uddi.api_v3.DeletePublisherAssertions;
+import org.uddi.api_v3.DeleteService;
import org.uddi.api_v3.DeleteTModel;
+import org.uddi.api_v3.Description;
+import org.uddi.api_v3.FindTModel;
+import org.uddi.api_v3.GetBindingDetail;
import org.uddi.api_v3.GetBusinessDetail;
import org.uddi.api_v3.GetOperationalInfo;
+import org.uddi.api_v3.GetServiceDetail;
import org.uddi.api_v3.GetTModelDetail;
import org.uddi.api_v3.KeyedReference;
import org.uddi.api_v3.Name;
import org.uddi.api_v3.OperationalInfos;
import org.uddi.api_v3.PersonName;
import org.uddi.api_v3.PublisherAssertion;
+import org.uddi.api_v3.SaveBinding;
import org.uddi.api_v3.SaveBusiness;
+import org.uddi.api_v3.ServiceDetail;
import org.uddi.api_v3.TModel;
import org.uddi.api_v3.TModelDetail;
import org.uddi.custody_v3.KeyBag;
@@ -96,14 +108,15 @@ public class JUDDI_300_MultiNodeIntegrationTest {
private static UDDICustodyTransferPortType custodySam;
private static UDDICustodyTransferPortType custodyMary;
private static UDDIPublicationPortType publishMary;
- private static UDDIPublicationPortType publishSam;
+ private static UDDIPublicationPortType publishSamNode2;
private static UDDIInquiryPortType inquiryMary;
- private static UDDIInquiryPortType inquirySam;
+ private static UDDIInquiryPortType inquirySamNode2;
private static UDDIReplicationPortType replicationMary;
private static UDDIReplicationPortType replicationSam;
static TckBusiness maryBizNode1;
static TckTModel maryTModelNode1;
+ static TckBusinessService samServiceNode2;
static TckBusiness samBizNode2;
static TckTModel samTModelNode2;
@@ -152,11 +165,12 @@ public class JUDDI_300_MultiNodeIntegrationTest {
((BindingProvider) replicationSam).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, manager.getClientConfig().getUDDINode(CFG_node2_SAM).getReplicationUrl());
juddiApiServiceNode2 = node2.getJUDDIApiService();
custodySam = node2.getUDDICustodyTransferService();
- inquirySam = node2.getUDDIInquiryService();
- publishSam = node2.getUDDIPublishService();
+ inquirySamNode2 = node2.getUDDIInquiryService();
+ publishSamNode2 = node2.getUDDIPublishService();
+ samServiceNode2 = new TckBusinessService(publishSamNode2, inquirySamNode2);
- samBizNode2 = new TckBusiness(publishSam, inquirySam);
- samTModelNode2 = new TckTModel(publishSam, inquirySam);
+ samBizNode2 = new TckBusiness(publishSamNode2, inquirySamNode2);
+ samTModelNode2 = new TckTModel(publishSamNode2, inquirySamNode2);
maryBizNode1 = new TckBusiness(publishMary, inquiryMary);
maryTModelNode1 = new TckTModel(publishMary, inquiryMary);
@@ -169,9 +183,9 @@ public class JUDDI_300_MultiNodeIntegrationTest {
TckSecurity.setCredentials((BindingProvider) replicationMary, TckPublisher.getMaryPublisherId(), TckPublisher.getMaryPassword());
TckSecurity.setCredentials((BindingProvider) custodySam, TckPublisher.getSamPublisherId(), TckPublisher.getSamPassword());
- TckSecurity.setCredentials((BindingProvider) inquirySam, TckPublisher.getSamPublisherId(), TckPublisher.getSamPassword());
+ TckSecurity.setCredentials((BindingProvider) inquirySamNode2, TckPublisher.getSamPublisherId(), TckPublisher.getSamPassword());
TckSecurity.setCredentials((BindingProvider) replicationSam, TckPublisher.getSamPublisherId(), TckPublisher.getSamPassword());
- TckSecurity.setCredentials((BindingProvider) publishSam, TckPublisher.getSamPublisherId(), TckPublisher.getSamPassword());
+ TckSecurity.setCredentials((BindingProvider) publishSamNode2, TckPublisher.getSamPublisherId(), TckPublisher.getSamPassword());
}
}
@@ -302,143 +316,148 @@ public class JUDDI_300_MultiNodeIntegrationTest {
@Test
public void testMultiNodeBusinessCustodyTransfer() throws Exception {
logger.info("testMultiNodeBusinessCustodyTransfer");
- Assume.assumeTrue(TckPublisher.isReplicationEnabled() && TckPublisher.isCustodyTransferEnabled());
- Assume.assumeTrue(TckPublisher.isJUDDI());
- refreshTokens();
- testSetupReplicationConfig();
-
- getReplicationStatus();
-
- //create mary's business, node1
- BusinessEntity mary = new BusinessEntity();
- mary.getName().add(new Name("Mary's biz on " + CFG_node1_MARY, null));
- mary.setBusinessServices(new BusinessServices());
- BusinessService bs = new BusinessService();
- bs.getName().add(new Name("Mary's service", null));
- bs.setBindingTemplates(new BindingTemplates());
- BindingTemplate bt = new BindingTemplate();
- bt.setAccessPoint(new AccessPoint("http://localhost/mary", "wsdlDeployment"));
- bs.getBindingTemplates().getBindingTemplate().add(bt);
- mary.getBusinessServices().getBusinessService().add(bs);
-
- SaveBusiness sb = new SaveBusiness();
- sb.setAuthInfo(maryTokenNode1);
- sb.getBusinessEntity().add(mary);
- BusinessDetail saveBusiness = publishMary.saveBusiness(sb);
-
- Thread.sleep(5000); //sleep a bit and wait for replication to do it's thing
-
- GetOperationalInfo operationalInfo = new GetOperationalInfo();
- operationalInfo.setAuthInfo(maryTokenNode1);
- operationalInfo.getEntityKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
- OperationalInfos beforeNode1 = inquiryMary.getOperationalInfo(operationalInfo);
-
- operationalInfo.setAuthInfo(samTokenNode2);
- OperationalInfos beforeNode2 = null;
- int timeout = TckPublisher.getSubscriptionTimeout();
- while (timeout > 0) {
- logger.info("Waiting for the update...");
- try {
- GetBusinessDetail gbd = new GetBusinessDetail();
- gbd.setAuthInfo(samTokenNode2);
- gbd.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
-
- BusinessDetail businessDetail = inquirySam.getBusinessDetail(gbd);
- if (businessDetail != null
- && !businessDetail.getBusinessEntity().isEmpty()) {
- logger.info("Mary's business exists on Sams node, grabbing the operational info to confirm ownership...");
+ try {
+ Assume.assumeTrue(TckPublisher.isReplicationEnabled() && TckPublisher.isCustodyTransferEnabled());
+ Assume.assumeTrue(TckPublisher.isJUDDI());
+ refreshTokens();
+ testSetupReplicationConfig();
+
+ getReplicationStatus();
+
+ //create mary's business, node1
+ BusinessEntity mary = new BusinessEntity();
+ mary.getName().add(new Name("Mary's biz on " + CFG_node1_MARY, null));
+ mary.setBusinessServices(new BusinessServices());
+ BusinessService bs = new BusinessService();
+ bs.getName().add(new Name("Mary's service", null));
+ bs.setBindingTemplates(new BindingTemplates());
+ BindingTemplate bt = new BindingTemplate();
+ bt.setAccessPoint(new AccessPoint("http://localhost/mary", "wsdlDeployment"));
+ bs.getBindingTemplates().getBindingTemplate().add(bt);
+ mary.getBusinessServices().getBusinessService().add(bs);
+
+ SaveBusiness sb = new SaveBusiness();
+ sb.setAuthInfo(maryTokenNode1);
+ sb.getBusinessEntity().add(mary);
+ BusinessDetail saveBusiness = publishMary.saveBusiness(sb);
+
+ Thread.sleep(5000); //sleep a bit and wait for replication to do it's thing
+
+ GetOperationalInfo operationalInfo = new GetOperationalInfo();
+ operationalInfo.setAuthInfo(maryTokenNode1);
+ operationalInfo.getEntityKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
+ OperationalInfos beforeNode1 = inquiryMary.getOperationalInfo(operationalInfo);
+
+ operationalInfo.setAuthInfo(samTokenNode2);
+ OperationalInfos beforeNode2 = null;
+ int timeout = TckPublisher.getSubscriptionTimeout();
+ while (timeout > 0) {
+ logger.info("Waiting for the update...");
+ try {
+ GetBusinessDetail gbd = new GetBusinessDetail();
+ gbd.setAuthInfo(samTokenNode2);
+ gbd.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
+
+ BusinessDetail businessDetail = inquirySamNode2.getBusinessDetail(gbd);
+ if (businessDetail != null
+ && !businessDetail.getBusinessEntity().isEmpty()) {
+ logger.info("Mary's business exists on Sams node, grabbing the operational info to confirm ownership...");
+ }
+ beforeNode2 = inquirySamNode2.getOperationalInfo(operationalInfo);
+ break;
+ } catch (Exception ex) {
+ logger.warn(ex.getMessage());
}
- beforeNode2 = inquirySam.getOperationalInfo(operationalInfo);
- break;
- } catch (Exception ex) {
- logger.warn(ex.getMessage());
- }
- timeout--;
- Thread.sleep(1000);
+ timeout--;
+ Thread.sleep(1000);
- }
- Assert.assertNotNull(beforeNode1);
- Assert.assertNotNull(beforeNode2);
-
- JAXB.marshal(beforeNode1, System.out);
- JAXB.marshal(beforeNode2, System.out);
- //confirm we're replicated correctly
- Assert.assertEquals(beforeNode1.getOperationalInfo().get(0).getAuthorizedName(), beforeNode2.getOperationalInfo().get(0).getAuthorizedName());
- Assert.assertEquals(beforeNode1.getOperationalInfo().get(0).getEntityKey(), beforeNode2.getOperationalInfo().get(0).getEntityKey());
- Assert.assertEquals(beforeNode1.getOperationalInfo().get(0).getEntityKey(), saveBusiness.getBusinessEntity().get(0).getBusinessKey());
- Assert.assertEquals(beforeNode1.getOperationalInfo().get(0).getNodeID(), beforeNode2.getOperationalInfo().get(0).getNodeID());
-
- //get a transfer token, node1
- KeyBag kb = new KeyBag();
- kb.getKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
- Holder<String> sourceNode = new Holder<String>();
- Holder<XMLGregorianCalendar> expiration = new Holder<XMLGregorianCalendar>();
- Holder<byte[]> token = new Holder<byte[]>();
- custodyMary.getTransferToken(maryTokenNode1, kb, sourceNode, expiration, token);
-
- //sam accepts the transfer token, node 2
- TransferEntities transferEntities = new TransferEntities();
- transferEntities.setAuthInfo(samTokenNode2);
- transferEntities.setKeyBag(kb);
- transferEntities.setTransferToken(new TransferToken());
- transferEntities.getTransferToken().setExpirationTime(expiration.value);
- transferEntities.getTransferToken().setNodeID(sourceNode.value);
- transferEntities.getTransferToken().setOpaqueToken(token.value);
- custodySam.transferEntities(transferEntities);
- //stuff happens
- //Thread.sleep(5000);
- //confirm the transfer
- timeout = TckPublisher.getSubscriptionTimeout();
- OperationalInfos afterNode1 = null;
- OperationalInfos afterNode2 = null;
- while (timeout > 0) {
- logger.info("Waiting for the update...");
- try {
- operationalInfo.setAuthInfo(maryTokenNode1);
- //operationalInfo.getEntityKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
- afterNode1 = inquiryMary.getOperationalInfo(operationalInfo);
- if (afterNode1.getOperationalInfo().get(0).getAuthorizedName().equals(TckPublisher.getSamPublisherId())) {
- logger.info("Mary's biz on node 1 is now owned by Sam");
- //node 1 is up to date
- operationalInfo.setAuthInfo(samTokenNode2);
- afterNode2 = inquirySam.getOperationalInfo(operationalInfo);
- if (afterNode2.getOperationalInfo().get(0).getAuthorizedName().equals(TckPublisher.getSamPublisherId())) {
- //node 2 is up to date
- logger.info("Mary's biz on node 2 is now owned by Sam");
- break;
+ }
+ Assert.assertNotNull(beforeNode1);
+ Assert.assertNotNull(beforeNode2);
+
+ JAXB.marshal(beforeNode1, System.out);
+ JAXB.marshal(beforeNode2, System.out);
+ //confirm we're replicated correctly
+ Assert.assertEquals(beforeNode1.getOperationalInfo().get(0).getAuthorizedName(), beforeNode2.getOperationalInfo().get(0).getAuthorizedName());
+ Assert.assertEquals(beforeNode1.getOperationalInfo().get(0).getEntityKey(), beforeNode2.getOperationalInfo().get(0).getEntityKey());
+ Assert.assertEquals(beforeNode1.getOperationalInfo().get(0).getEntityKey(), saveBusiness.getBusinessEntity().get(0).getBusinessKey());
+ Assert.assertEquals(beforeNode1.getOperationalInfo().get(0).getNodeID(), beforeNode2.getOperationalInfo().get(0).getNodeID());
+
+ //get a transfer token, node1
+ KeyBag kb = new KeyBag();
+ kb.getKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
+ Holder<String> sourceNode = new Holder<String>();
+ Holder<XMLGregorianCalendar> expiration = new Holder<XMLGregorianCalendar>();
+ Holder<byte[]> token = new Holder<byte[]>();
+ custodyMary.getTransferToken(maryTokenNode1, kb, sourceNode, expiration, token);
+
+ //sam accepts the transfer token, node 2
+ TransferEntities transferEntities = new TransferEntities();
+ transferEntities.setAuthInfo(samTokenNode2);
+ transferEntities.setKeyBag(kb);
+ transferEntities.setTransferToken(new TransferToken());
+ transferEntities.getTransferToken().setExpirationTime(expiration.value);
+ transferEntities.getTransferToken().setNodeID(sourceNode.value);
+ transferEntities.getTransferToken().setOpaqueToken(token.value);
+ custodySam.transferEntities(transferEntities);
+ //stuff happens
+ //Thread.sleep(5000);
+ //confirm the transfer
+ timeout = TckPublisher.getSubscriptionTimeout();
+ OperationalInfos afterNode1 = null;
+ OperationalInfos afterNode2 = null;
+ while (timeout > 0) {
+ logger.info("Waiting for the update...");
+ try {
+ operationalInfo.setAuthInfo(maryTokenNode1);
+ //operationalInfo.getEntityKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
+ afterNode1 = inquiryMary.getOperationalInfo(operationalInfo);
+ if (afterNode1.getOperationalInfo().get(0).getAuthorizedName().equals(TckPublisher.getSamPublisherId())) {
+ logger.info("Mary's biz on node 1 is now owned by Sam");
+ //node 1 is up to date
+ operationalInfo.setAuthInfo(samTokenNode2);
+ afterNode2 = inquirySamNode2.getOperationalInfo(operationalInfo);
+ if (afterNode2.getOperationalInfo().get(0).getAuthorizedName().equals(TckPublisher.getSamPublisherId())) {
+ //node 2 is up to date
+ logger.info("Mary's biz on node 2 is now owned by Sam");
+ break;
+ } else {
+ logger.info("Mary's biz on node 2 is still owned by Mary");
+ }
} else {
- logger.info("Mary's biz on node 2 is still owned by Mary");
+ logger.info("Mary's biz on node 1 is still owned by Mary");
}
- } else {
- logger.info("Mary's biz on node 1 is still owned by Mary");
+ } catch (Exception ex) {
+ logger.warn(ex.getMessage());
}
- } catch (Exception ex) {
- logger.warn(ex.getMessage());
- }
- timeout--;
- Thread.sleep(1000);
+ timeout--;
+ Thread.sleep(1000);
- }
- //operationalInfo.setAuthInfo(maryTokenNode1);
- // operationalInfo.getEntityKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
+ }
+ //operationalInfo.setAuthInfo(maryTokenNode1);
+ // operationalInfo.getEntityKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
- Assert.assertNotNull(afterNode1);
- Assert.assertNotNull(afterNode2);
- if (TckCommon.isDebug()) {
- JAXB.marshal(afterNode1, System.out);
- JAXB.marshal(afterNode2, System.out);
+ Assert.assertNotNull(afterNode1);
+ Assert.assertNotNull(afterNode2);
+ 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());
- Assert.assertEquals(afterNode1.getOperationalInfo().get(0).getEntityKey(), saveBusiness.getBusinessEntity().get(0).getBusinessKey());
- Assert.assertEquals(afterNode1.getOperationalInfo().get(0).getNodeID(), afterNode2.getOperationalInfo().get(0).getNodeID());
- //confirm that the entity now belongs to sam
+ }
+ //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());
+ Assert.assertEquals(afterNode1.getOperationalInfo().get(0).getEntityKey(), saveBusiness.getBusinessEntity().get(0).getBusinessKey());
+ Assert.assertEquals(afterNode1.getOperationalInfo().get(0).getNodeID(), afterNode2.getOperationalInfo().get(0).getNodeID());
+ //confirm that the entity now belongs to sam
- Assert.assertEquals(afterNode1.getOperationalInfo().get(0).getAuthorizedName(), TckPublisher.getSamPublisherId());
- Assert.assertNotEquals(beforeNode1.getOperationalInfo().get(0).getNodeID(), afterNode1.getOperationalInfo().get(0).getNodeID());
+ Assert.assertEquals(afterNode1.getOperationalInfo().get(0).getAuthorizedName(), TckPublisher.getSamPublisherId());
+ Assert.assertNotEquals(beforeNode1.getOperationalInfo().get(0).getNodeID(), afterNode1.getOperationalInfo().get(0).getNodeID());
+ } finally {
+ resetTmodels();
+ resetBusinesses();
+ }
}
/**
@@ -447,7 +466,7 @@ public class JUDDI_300_MultiNodeIntegrationTest {
* @throws Exception
*/
@Test
-
+ @Ignore
public void testReplicationTModelBusinessPublisherAssertionAddDelete() throws Exception {
Assume.assumeTrue(TckPublisher.isReplicationEnabled());
Assume.assumeTrue(TckPublisher.isJUDDI());
@@ -455,7 +474,8 @@ public class JUDDI_300_MultiNodeIntegrationTest {
TckCommon.PrintMarker();
logger.info("testReplicationTModelBusinessPublisherAssertionAddDelete");
- restTmodels();
+ resetTmodels();
+ resetBusinesses();
TModel saveMaryPublisherTmodel = maryTModelNode1.saveMaryPublisherTmodel(maryTokenNode1);
@@ -476,7 +496,7 @@ public class JUDDI_300_MultiNodeIntegrationTest {
while (timeout > 0) {
logger.info("Waiting for the update...");
try {
- tModelDetail = inquirySam.getTModelDetail(findTModel);
+ tModelDetail = inquirySamNode2.getTModelDetail(findTModel);
break;
} catch (Exception ex) {
logger.warn(ex.getMessage());
@@ -503,7 +523,7 @@ public class JUDDI_300_MultiNodeIntegrationTest {
while (timeout > 0) {
logger.info("Waiting for the update...");
try {
- businessDetail = inquirySam.getBusinessDetail(gbd);
+ businessDetail = inquirySamNode2.getBusinessDetail(gbd);
break;
} catch (Exception ex) {
logger.warn(ex.getMessage());
@@ -528,12 +548,12 @@ public class JUDDI_300_MultiNodeIntegrationTest {
AddPublisherAssertions apa = new AddPublisherAssertions();
apa.setAuthInfo(samTokenNode2);
apa.getPublisherAssertion().add(pa);
- publishSam.addPublisherAssertions(apa);
+ publishSamNode2.addPublisherAssertions(apa);
logger.info("Confirming that the assertion is saved on node2 (sam, origin)");
List<AssertionStatusItem> assertionStatusReport = null;
boolean found = false;
- assertionStatusReport = publishSam.getAssertionStatusReport(samTokenNode2, null);
+ assertionStatusReport = publishSamNode2.getAssertionStatusReport(samTokenNode2, null);
logger.info("Publisher assertions returned: " + assertionStatusReport.size());
for (int x = 0; x < assertionStatusReport.size(); x++) {
JAXB.marshal(assertionStatusReport.get(x), System.out);
@@ -583,11 +603,11 @@ public class JUDDI_300_MultiNodeIntegrationTest {
}
Assert.assertTrue("Assertion wasn't replicated", found);
-
+
logger.info("Publisher Assertion replicated...");
logger.info("confirming the pa is still on node 2 origin (sam)");
found = false;
- assertionStatusReport = publishSam.getAssertionStatusReport(samTokenNode2, null);
+ assertionStatusReport = publishSamNode2.getAssertionStatusReport(samTokenNode2, null);
logger.info("Publisher assertions returned: " + assertionStatusReport.size());
for (int x = 0; x < assertionStatusReport.size(); x++) {
JAXB.marshal(assertionStatusReport.get(x), System.out);
@@ -602,16 +622,16 @@ public class JUDDI_300_MultiNodeIntegrationTest {
}
Assert.assertTrue("The PA is not found on node 2(origin), very strange", found);
-
+
//delete the pa
DeletePublisherAssertions dpa = new DeletePublisherAssertions();
dpa.setAuthInfo(samTokenNode2);
dpa.getPublisherAssertion().add(pa);
- String sam = TckCommon.DumpAllBusinesses(samTokenNode2, inquirySam);
+ String sam = TckCommon.DumpAllBusinesses(samTokenNode2, inquirySamNode2);
String mary = TckCommon.DumpAllBusinesses(maryTokenNode1, inquiryMary);
logger.info("Publisher Assertion deletion...");
try {
- publishSam.deletePublisherAssertions(dpa);
+ publishSamNode2.deletePublisherAssertions(dpa);
} catch (Exception ex) {
ex.printStackTrace();
logger.info("Sam's businesses " + sam);
@@ -663,7 +683,7 @@ public class JUDDI_300_MultiNodeIntegrationTest {
while (timeout > 0) {
logger.info("Waiting for the update...");
try {
- businessDetail = inquirySam.getBusinessDetail(gbd);
+ businessDetail = inquirySamNode2.getBusinessDetail(gbd);
} catch (Exception ex) {
logger.warn(ex.getMessage());
@@ -681,7 +701,7 @@ public class JUDDI_300_MultiNodeIntegrationTest {
}
logger.info("Mary's business deletion was replicated");
- tModelDetail = inquirySam.getTModelDetail(findTModel);
+ tModelDetail = inquirySamNode2.getTModelDetail(findTModel);
Assert.assertNotNull(tModelDetail);
Assert.assertNotNull(tModelDetail.getTModel());
Assert.assertNotNull(tModelDetail.getTModel().get(0));
@@ -693,7 +713,8 @@ public class JUDDI_300_MultiNodeIntegrationTest {
} finally {
samBizNode2.deleteSamSyndicatorBusiness(samTokenNode2);
- restTmodels();
+ resetTmodels();
+ resetBusinesses();
}
//check node2 for a "hidden" tmodel should be accessible via getDetails
@@ -706,32 +727,298 @@ public class JUDDI_300_MultiNodeIntegrationTest {
logger.info("testReplicationPublisherAssertionSet");
}
+ /**
+ * covers adding and removing a service and a binding
+ *
+ * @throws Exception
+ */
@Test
- public void testReplicationServiceAdd() throws Exception {
+ public void testReplicationServiceBindingAddRemove() throws Exception {
Assume.assumeTrue(TckPublisher.isReplicationEnabled());
Assume.assumeTrue(TckPublisher.isJUDDI());
- logger.info("testReplicationServiceAdd");
- }
+ logger.info("testReplicationServiceBindingAddRemove");
- @Test
- public void testReplicationServiceDelete() throws Exception {
- Assume.assumeTrue(TckPublisher.isReplicationEnabled());
- Assume.assumeTrue(TckPublisher.isJUDDI());
- logger.info("testReplicationServiceDelete");
- }
+ try {
+ TckCommon.PrintMarker();
- @Test
- public void testReplicationBindingAdd() throws Exception {
- Assume.assumeTrue(TckPublisher.isReplicationEnabled());
- Assume.assumeTrue(TckPublisher.isJUDDI());
- logger.info("testReplicationBindingAdd");
- }
+ resetBusinesses();
+ resetTmodels();
+
+ samTModelNode2.saveSamSyndicatorTmodel(samTokenNode2);
+ samBizNode2.saveSamSyndicatorBusiness(samTokenNode2);
+
+ // getReplicationStatus();//block until synched
+ //confirm sam's tmodel is on the other node
+ GetTModelDetail findTModel = new GetTModelDetail();
+ findTModel.setAuthInfo(maryTokenNode1);
+ findTModel.getTModelKey().add(TckTModel.SAM_SYNDICATOR_TMODEL_KEY);
+ TModelDetail tModelDetail = null;
+
+ int timeout = TckPublisher.getSubscriptionTimeout();
+
+ while (timeout > 0) {
+ logger.info("Waiting for the update...");
+ try {
+ tModelDetail = inquiryMary.getTModelDetail(findTModel);
+ break;
+ } catch (Exception ex) {
+ logger.warn(ex.getMessage());
+ tModelDetail = null;
+
+ }
+ timeout--;
+ Thread.sleep(1000);
+
+ }
+
+ Assert.assertNotNull(tModelDetail);
+ Assert.assertNotNull(tModelDetail.getTModel());
+ Assert.assertTrue(tModelDetail.getTModel().size() == 1);
+ Assert.assertTrue(tModelDetail.getTModel().get(0).getTModelKey().equals(TckTModel.SAM_SYNDICATOR_TMODEL_KEY));
+
+ GetBusinessDetail gbd = new GetBusinessDetail();
+ gbd.setAuthInfo(maryTokenNode1);
+ gbd.getBusinessKey().add(TckBusiness.SAM_BUSINESS_KEY);
+
+ //confirm mary's biz made it too
+ timeout = TckPublisher.getSubscriptionTimeout();
+ BusinessDetail businessDetail = null;
+ while (timeout > 0) {
+ logger.info("Waiting for the update...");
+ try {
+ businessDetail = inquiryMary.getBusinessDetail(gbd);
+ break;
+ } catch (Exception ex) {
+ logger.warn(ex.getMessage());
+ businessDetail = null;
+
+ }
+ timeout--;
+ Thread.sleep(1000);
+
+ }
+
+ Assert.assertNotNull(businessDetail);
+ Assert.assertNotNull(businessDetail.getBusinessEntity());
+ Assert.assertTrue(businessDetail.getBusinessEntity().get(0).getBusinessKey().equals(TckBusiness.SAM_BUSINESS_KEY));
+ logger.info("Business replicated");
+
+ //save a service
+ samServiceNode2.saveSamSyndicatorService(samTokenNode2);
+
+ GetServiceDetail gsd = new GetServiceDetail();
+ gsd.setAuthInfo(maryTokenNode1);
+ gsd.getServiceKey().add(TckBusinessService.SAM_SERVICE_KEY);
+
+ //confirm sam's service made it too
+ timeout = TckPublisher.getSubscriptionTimeout();
+ ServiceDetail sd = null;
+ while (timeout > 0) {
+ logger.info("Waiting for the update...");
+ try {
+ sd = inquiryMary.getServiceDetail(gsd);
+ break;
+ } catch (Exception ex) {
+ logger.warn(ex.getMessage());
+ sd = null;
+
+ }
+ timeout--;
+ Thread.sleep(1000);
+
+ }
+
+ Assert.assertNotNull(sd);
+ Assert.assertNotNull(sd.getBusinessService());
+ Assert.assertTrue(sd.getBusinessService().get(0).getBusinessKey().equals(TckBusiness.SAM_BUSINESS_KEY));
+ Assert.assertTrue(sd.getBusinessService().get(0).getServiceKey().equals(TckBusinessService.SAM_SERVICE_KEY));
+ logger.info("Service replicated");
+
+ BindingTemplate newbt = new BindingTemplate();
+ newbt.setServiceKey(TckBusinessService.SAM_SERVICE_KEY);
+ newbt.setAccessPoint(new AccessPoint("http://localhost", "wsdlDeployment"));
+ newbt.getDescription().add(new Description("a new accesspoint that's replicated!", "en"));
+ SaveBinding saveBind = new SaveBinding();
+ saveBind.setAuthInfo(samTokenNode2);
+ saveBind.getBindingTemplate().add(newbt);
+ logger.info("Binding saved");
+ BindingDetail saveBinding = publishSamNode2.saveBinding(saveBind);
+
+ GetBindingDetail bindingDetail = new GetBindingDetail();
+ bindingDetail.setAuthInfo(maryTokenNode1);
+ bindingDetail.getBindingKey().add(saveBinding.getBindingTemplate().get(0).getBindingKey());
+
+ //confirm sam's binding made it too
+ timeout = TckPublisher.getSubscriptionTimeout();
+ BindingDetail savedMary = null;
+ while (timeout > 0) {
+ logger.info("Waiting for the update...");
+ try {
+ savedMary = inquiryMary.getBindingDetail(bindingDetail);
+ break;
+ } catch (Exception ex) {
+ logger.warn(ex.getMessage());
+ savedMary = null;
+
+ }
+ timeout--;
+ Thread.sleep(1000);
+
+ }
+ Assert.assertNotNull(savedMary);
+ Assert.assertNotNull(savedMary.getBindingTemplate());
+ Assert.assertNotNull(savedMary.getBindingTemplate().get(0));
+ Assert.assertEquals(savedMary.getBindingTemplate().get(0).getBindingKey(), saveBinding.getBindingTemplate().get(0).getBindingKey());
+ Assert.assertEquals(savedMary.getBindingTemplate().get(0).getServiceKey(), saveBinding.getBindingTemplate().get(0).getServiceKey());
+ logger.info("Binding was replicated");
+
+ //delete the binding
+ DeleteBinding db = new DeleteBinding();
+ db.setAuthInfo(samTokenNode2);
+ db.getBindingKey().add(saveBinding.getBindingTemplate().get(0).getBindingKey());
+ publishSamNode2.deleteBinding(db);
+ logger.info("binding deleted");
+
+ //confirm deletion
+ timeout = TckPublisher.getSubscriptionTimeout();
+ BindingDetail gbindd = null;
+ GetBindingDetail getBindingDetail = new GetBindingDetail();
+ getBindingDetail.setAuthInfo(maryTokenNode1);
+ getBindingDetail.getBindingKey().add(saveBinding.getBindingTemplate().get(0).getBindingKey());
+ while (timeout > 0) {
+ logger.info("Waiting for the update...");
+ try {
+ gbindd = inquiryMary.getBindingDetail(getBindingDetail);
+
+ } catch (Exception ex) {
+ logger.warn(ex.getMessage());
+ gbindd = null;
+ break;
+ }
+ timeout--;
+ Thread.sleep(1000);
+
+ }
+ //check node2 for delete biz, should be gone
+
+ if (gbindd != null) {
+ Assert.fail(saveBinding.getBindingTemplate().get(0).getBindingKey() + " wasn't deleted on node 1");
+ }
+ logger.info("binding deletion was replicated");
+
+ //delete the service
+ DeleteService delsvc = new DeleteService();
+ delsvc.setAuthInfo(samTokenNode2);
+ delsvc.getServiceKey().add(TckBusinessService.SAM_SERVICE_KEY);
+ publishSamNode2.deleteService(delsvc);
+ logger.info("service deleted");
+
+ ServiceDetail sdd = null;
+ //confirm deletion
+ GetServiceDetail getServiceDetail = new GetServiceDetail();
+ getServiceDetail.setAuthInfo(maryTokenNode1);
+ getServiceDetail.getServiceKey().add(TckBusinessService.SAM_SERVICE_KEY);
+ timeout = TckPublisher.getSubscriptionTimeout();
+ while (timeout > 0) {
+ logger.info("Waiting for the update...");
+ try {
+ sdd = inquiryMary.getServiceDetail(getServiceDetail);
+
+ } catch (Exception ex) {
+ logger.warn(ex.getMessage());
+ sdd = null;
+ break;
+ }
+ timeout--;
+ Thread.sleep(1000);
+
+ }
+ //check node2 for delete biz, should be gone
+
+ if (sdd != null) {
+ Assert.fail(TckBusinessService.SAM_SERVICE_KEY + " wasn't deleted on node 1");
+ }
+ logger.info("service deletion was replicated");
+
+ //clean up
+ samBizNode2.deleteSamSyndicatorBusiness(samTokenNode2);
+ samTModelNode2.deleteSamSyndicatorTmodel(samTokenNode2);
+
+ //delete both
+ timeout = TckPublisher.getSubscriptionTimeout();
+ businessDetail = null;
+
+ while (timeout > 0) {
+ logger.info("Waiting for the update...");
+ try {
+ businessDetail = inquiryMary.getBusinessDetail(gbd);
+
+ } catch (Exception ex) {
+ logger.warn(ex.getMessage());
+ businessDetail = null;
+ break;
+ }
+ timeout--;
+ Thread.sleep(1000);
+
+ }
+ //check node2 for delete biz, should be gone
+
+ if (businessDetail != null) {
+ Assert.fail(TckBusiness.SAM_BUSINESS_KEY + " wasn't deleted on node 1");
+ }
+ logger.info("sam's business deletion was replicated");
+
+ tModelDetail = inquiryMary.getTModelDetail(findTModel);
+ Assert.assertNotNull(tModelDetail);
+ Assert.assertNotNull(tModelDetail.getTModel());
+ Assert.assertNotNull(tModelDetail.getTModel().get(0));
+ Assert.assertEquals(tModelDetail.getTModel().get(0).getTModelKey(), TckTModel.SAM_SYNDICATOR_TMODEL_KEY);
+ Assert.assertEquals(tModelDetail.getTModel().get(0).isDeleted(), true);
+ logger.info("sam's tModel was deleted(hidden) replicated");
+ // TckCommon.PrintMarker();
+
+ } finally {
+ /*try {
+ DeleteBusiness db = new DeleteBusiness();
+ db.setAuthInfo(samTokenNode2);
+ db.getBusinessKey().add(TckBusiness.SAM_BUSINESS_KEY);
+ publishSamNode2.deleteBusiness(db);
+ int timeout = TckPublisher.getSubscriptionTimeout();
+ GetBusinessDetail findTModel = new GetBusinessDetail();
+ findTModel.setAuthInfo(maryTokenNode1);
+ findTModel.getBusinessKey().add(TckBusiness.SAM_BUSINESS_KEY);
+ BusinessDetail tModelDetail = null;
+ while (timeout > 0) {
+ logger.info("Waiting for the update...");
+ try {
+ tModelDetail = inquiryMary.getBusinessDetail(findTModel);
+ // JAXB.marshal(tModelDetail, System.out);
+ //
+ } catch (Exception ex) {
+ logger.warn(ex.getMessage());
+ tModelDetail = null;
+ break;
+
+ }
+ timeout--;
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException ex) {
+
+ }
+
+ }
+ Assert.assertNull(tModelDetail);
+
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ Assert.fail(ex.getMessage());
+ }*/
+ resetTmodels();
+
+ }
- @Test
- public void testReplicationBindingDelete() throws Exception {
- Assume.assumeTrue(TckPublisher.isReplicationEnabled());
- Assume.assumeTrue(TckPublisher.isJUDDI());
- logger.info("testReplicationBindingDelete");
}
/**
@@ -770,15 +1057,16 @@ public class JUDDI_300_MultiNodeIntegrationTest {
}
- private void restTmodels() {
+ private void resetTmodels() {
- logger.info("resting tmodels");
+ logger.info("resetting 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");
+ waitForTModelAdminDeletion(dtm.getTModelKey().get(0), inquirySamNode2, samTokenNode2);
} catch (Exception ex) {
logger.info("unable to delete tmodel " + ex.getMessage());
}
@@ -789,6 +1077,7 @@ public class JUDDI_300_MultiNodeIntegrationTest {
try {
juddiApiServiceNode1.adminDeleteTModel(dtm);
logger.info("Node1 joe deleted");
+ waitForTModelAdminDeletion(dtm.getTModelKey().get(0), inquirySamNode2, samTokenNode2);
} catch (Exception ex) {
logger.info("unable to delete tmodel " + ex.getMessage());
}
@@ -799,6 +1088,7 @@ public class JUDDI_300_MultiNodeIntegrationTest {
try {
juddiApiServiceNode1.adminDeleteTModel(dtm);
logger.info("Node1 sam deleted");
+ waitForTModelAdminDeletion(dtm.getTModelKey().get(0), inquirySamNode2, samTokenNode2);
} catch (Exception ex) {
logger.info("unable to delete tmodel " + ex.getMessage());
}
@@ -809,6 +1099,7 @@ public class JUDDI_300_MultiNodeIntegrationTest {
try {
juddiApiServiceNode2.adminDeleteTModel(dtm);
logger.info("Node2 mary deleted");
+ waitForTModelAdminDeletion(dtm.getTModelKey().get(0), inquiryMary, maryTokenNode1);
} catch (Exception ex) {
logger.info("unable to delete tmodel " + ex.getMessage());
}
@@ -819,6 +1110,7 @@ public class JUDDI_300_MultiNodeIntegrationTest {
try {
juddiApiServiceNode2.adminDeleteTModel(dtm);
logger.info("Node2 joe deleted");
+ waitForTModelAdminDeletion(dtm.getTModelKey().get(0), inquiryMary, maryTokenNode1);
} catch (Exception ex) {
logger.info("unable to delete tmodel " + ex.getMessage());
}
@@ -829,9 +1121,97 @@ public class JUDDI_300_MultiNodeIntegrationTest {
try {
juddiApiServiceNode2.adminDeleteTModel(dtm);
logger.info("Node2 sam deleted");
+ waitForTModelAdminDeletion(dtm.getTModelKey().get(0), inquiryMary, maryTokenNode1);
} catch (Exception ex) {
logger.info("unable to delete tmodel " + ex.getMessage());
}
}
+ private void resetBusinesses() {
+ logger.info("resetting businesses");
+ DeleteBusiness dtm = new DeleteBusiness();
+ dtm.setAuthInfo(rootNode1Token);
+ dtm.getBusinessKey().add(TckBusiness.MARY_BUSINESS_KEY);
+ try {
+ publishMary.deleteBusiness(dtm);
+ logger.info("Node1 mary deleted");
+ } catch (Exception ex) {
+ logger.info("unable to delete business " + ex.getMessage());
+ }
+ dtm.setAuthInfo(rootNode2Token);
+ try {
+ publishSamNode2.deleteBusiness(dtm);
+ logger.info("Node2 mary deleted");
+ } catch (Exception ex) {
+ logger.info("unable to delete business " + ex.getMessage());
+ }
+
+ dtm = new DeleteBusiness();
+ dtm.setAuthInfo(rootNode1Token);
+ dtm.getBusinessKey().add(TckBusiness.JOE_BUSINESS_KEY);
+ try {
+ publishMary.deleteBusiness(dtm);
+ logger.info("Node1 joe deleted");
+ } catch (Exception ex) {
+ logger.info("unable to delete business " + ex.getMessage());
+ }
+ dtm.setAuthInfo(rootNode2Token);
+ try {
+ publishSamNode2.deleteBusiness(dtm);
+ logger.info("Node2 joe deleted");
+ } catch (Exception ex) {
+ logger.info("unable to delete business " + ex.getMessage());
+ }
+
+ dtm = new DeleteBusiness();
+ dtm.setAuthInfo(rootNode1Token);
+ dtm.getBusinessKey().add(TckBusiness.SAM_BUSINESS_KEY);
+ try {
+ publishMary.deleteBusiness(dtm);
+ logger.info("Node1 sam deleted");
+ } catch (Exception ex) {
+ logger.info("unable to delete business " + ex.getMessage());
+ }
+ dtm.setAuthInfo(rootNode2Token);
+ try {
+ publishSamNode2.deleteBusiness(dtm);
+ logger.info("Node2 sam deleted");
+ } catch (Exception ex) {
+ logger.info("unable to delete business " + ex.getMessage());
+ }
+
+ }
+
+ private void waitForTModelAdminDeletion(String tModelKey, UDDIInquiryPortType inquiry, String token) {
+
+ int timeout = TckPublisher.getSubscriptionTimeout();
+ GetTModelDetail findTModel = new GetTModelDetail();
+ findTModel.setAuthInfo(token);
+ findTModel.getTModelKey().add(tModelKey);
+ TModelDetail tModelDetail = null;
+ while (timeout > 0) {
+ logger.info("Waiting for the update...");
+ try {
+ tModelDetail = inquiry.getTModelDetail(findTModel);
+ // JAXB.marshal(tModelDetail, System.out);
+ //
+ } catch (Exception ex) {
+ logger.warn(ex.getMessage());
+ tModelDetail = null;
+ break;
+
+ }
+ timeout--;
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException ex) {
+
+ }
+
+ }
+ Assert.assertNull("the tModel with the key " + tModelKey + " wasn't deleted", tModelDetail);
+ logger.info("******************** " + tModelKey + " confired removed at all nodes");
+
+ }
+
}
http://git-wip-us.apache.org/repos/asf/juddi/blob/d924443c/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 70a80c0..22191e1 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
@@ -485,8 +485,6 @@ public abstract class UDDI_090_SubscriptionListenerIntegrationBase {
try {
reset();
- String before = TckCommon.DumpAllTModels(authInfoJoe, inquiryJoe);
-
tckTModelJoe.saveJoePublisherTmodel(authInfoJoe);
tckTModelJoe.saveTModels(authInfoJoe, TckTModel.JOE_PUBLISHER_TMODEL_XML_SUBSCRIPTION3);
TModel saveMaryPublisherTmodel = tckTModelMary.saveMaryPublisherTmodel(authInfoMary);
@@ -518,9 +516,6 @@ public abstract class UDDI_090_SubscriptionListenerIntegrationBase {
boolean found = verifyDelivery("a new description");
if (!found) {
- logger.warn("Test failed, dumping business list");
- logger.warn("BEFORE " + before);
- logger.warn("After " + TckCommon.DumpAllBusinesses(authInfoJoe, inquiryJoe));
TckCommon.PrintMarker();
Assert.fail("Notification does not contain the correct service.");
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@juddi.apache.org
For additional commands, e-mail: commits-help@juddi.apache.org