Repository: juddi Updated Branches: refs/heads/master ba85baa1c -> 2ba82c8ea
JUDDI-913 fixed and tested Project: http://git-wip-us.apache.org/repos/asf/juddi/repo Commit: http://git-wip-us.apache.org/repos/asf/juddi/commit/2ba82c8e Tree: http://git-wip-us.apache.org/repos/asf/juddi/tree/2ba82c8e Diff: http://git-wip-us.apache.org/repos/asf/juddi/diff/2ba82c8e Branch: refs/heads/master Commit: 2ba82c8ea43ed7e405dda8f4e3894d109ab89ca8 Parents: ba85baa Author: Alex <[email protected]> Authored: Sun Jan 18 21:36:07 2015 -0500 Committer: Alex <[email protected]> Committed: Sun Jan 18 21:36:07 2015 -0500 ---------------------------------------------------------------------- .../juddi/api/impl/UDDIPublicationImpl.java | 57 +++++-- .../apache/juddi/mapping/MappingApiToModel.java | 10 +- .../apache/juddi/mapping/MappingModelToApi.java | 4 +- .../apache/juddi/model/PublisherAssertion.java | 9 +- .../java/org/apache/juddi/model/Signature.java | 33 ++-- .../impl/API_060_PublisherAssertionTest.java | 170 +++++++++++++------ 6 files changed, 199 insertions(+), 84 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/juddi/blob/2ba82c8e/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 a62e1c6..0139497 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 @@ -25,6 +25,7 @@ import java.util.List; import javax.jws.WebService; import javax.persistence.EntityManager; import javax.persistence.EntityTransaction; +import javax.persistence.Query; import javax.xml.bind.JAXB; import javax.xml.datatype.DatatypeConfigurationException; import javax.xml.datatype.DatatypeFactory; @@ -43,9 +44,9 @@ import org.apache.juddi.model.BindingTemplate; import org.apache.juddi.model.BusinessEntity; import org.apache.juddi.model.BusinessService; import org.apache.juddi.model.ChangeRecord; +import org.apache.juddi.model.Signature; import org.apache.juddi.model.Tmodel; import org.apache.juddi.model.UddiEntityPublisher; -import org.apache.juddi.query.DeletePublisherAssertionByBusinessQuery; import org.apache.juddi.query.FetchBusinessEntitiesQuery; import org.apache.juddi.query.FetchTModelsQuery; import org.apache.juddi.query.FindBusinessByPublisherQuery; @@ -156,6 +157,9 @@ public class UDDIPublicationImpl extends AuthenticatedService implements UDDIPub if (publisher.isOwner(existingPubAssertion.getBusinessEntityByToKey())) { existingPubAssertion.setToCheck("true"); } + //it's also possible that the signatures have changed + removeExistingPublisherAssertionSignatures(existingPubAssertion.getBusinessEntityByFromKey().getEntityKey(), existingPubAssertion.getBusinessEntityByToKey().getEntityKey(), em); + savePushliserAssertionSignatures(existingPubAssertion.getBusinessEntityByFromKey().getEntityKey(), existingPubAssertion.getBusinessEntityByToKey().getEntityKey(), modelPubAssertion.getSignatures(), em); em.merge(existingPubAssertion); persistNewAssertion = false; @@ -164,6 +168,7 @@ public class UDDIPublicationImpl extends AuthenticatedService implements UDDIPub // Otherwise, it is a new relationship between these entities. Remove the old one so the new one can be added. // TODO: the model only seems to allow one assertion per two business (primary key is fromKey and toKey). Spec seems to imply as // many relationships as desired (the differentiator would be the keyedRef values). + removeExistingPublisherAssertionSignatures(existingPubAssertion.getBusinessEntityByFromKey().getEntityKey(), existingPubAssertion.getBusinessEntityByToKey().getEntityKey(), em); em.remove(existingPubAssertion); changes.add(getChangeRecord_deletePublisherAssertion(apiPubAssertion, node, true, true, System.currentTimeMillis())); } @@ -185,6 +190,8 @@ public class UDDIPublicationImpl extends AuthenticatedService implements UDDIPub modelPubAssertion.setToCheck("true"); } modelPubAssertion.setModified(new Date()); + savePushliserAssertionSignatures(modelPubAssertion.getBusinessEntityByFromKey().getEntityKey(), modelPubAssertion.getBusinessEntityByToKey().getEntityKey(), modelPubAssertion.getSignatures(), em); + em.persist(modelPubAssertion); changes.add(getChangeRecord_NewAssertion(apiPubAssertion, modelPubAssertion, node)); @@ -359,9 +366,15 @@ public class UDDIPublicationImpl extends AuthenticatedService implements UDDIPub } if ("false".equalsIgnoreCase(existingPubAssertion.getToCheck()) && "false".equalsIgnoreCase(existingPubAssertion.getFromCheck())) { + logger.info("Publisher assertion updated database via replication"); + removeExistingPublisherAssertionSignatures(existingPubAssertion.getBusinessEntityByFromKey().getEntityKey(), existingPubAssertion.getBusinessEntityByToKey().getEntityKey(), em); em.remove(existingPubAssertion); } else { existingPubAssertion.setModified(new Date()); + logger.info("Publisher assertion updated database via replication"); + removeExistingPublisherAssertionSignatures(existingPubAssertion.getBusinessEntityByFromKey().getEntityKey(), existingPubAssertion.getBusinessEntityByToKey().getEntityKey(), em); + savePushliserAssertionSignatures(existingPubAssertion.getBusinessEntityByFromKey().getEntityKey(), + existingPubAssertion.getBusinessEntityByToKey().getEntityKey(), modelPubAssertion.getSignatures(), em); em.persist(existingPubAssertion); } @@ -419,11 +432,15 @@ public class UDDIPublicationImpl extends AuthenticatedService implements UDDIPub } if ("false".equalsIgnoreCase(existingPubAssertion.getToCheck()) && "false".equalsIgnoreCase(existingPubAssertion.getFromCheck())) { - logger.info("!!!Deletion of publisher assertion from database via replication"); + logger.info("Deletion of publisher assertion from database via replication"); + removeExistingPublisherAssertionSignatures(existingPubAssertion.getBusinessEntityByFromKey().getEntityKey(), existingPubAssertion.getBusinessEntityByToKey().getEntityKey(), em); em.remove(existingPubAssertion); } else { existingPubAssertion.setModified(new Date()); - logger.info("!!!Publisher assertion update database via replication"); + logger.info("Publisher assertion updated database via replication"); + removeExistingPublisherAssertionSignatures(existingPubAssertion.getBusinessEntityByFromKey().getEntityKey(), existingPubAssertion.getBusinessEntityByToKey().getEntityKey(), em); + savePushliserAssertionSignatures(existingPubAssertion.getBusinessEntityByFromKey().getEntityKey(), + existingPubAssertion.getBusinessEntityByToKey().getEntityKey(), modelPubAssertion.getSignatures(), em); em.persist(existingPubAssertion); } @@ -927,7 +944,7 @@ public class UDDIPublicationImpl extends AuthenticatedService implements UDDIPub List<ChangeRecord> changes = new ArrayList<ChangeRecord>(); for (org.uddi.api_v3.TModel apiTModel : apiTModelList) { - // Object obj=em.find( org.apache.juddi.model.Tmodel.class, apiTModel.getTModelKey()); + // Object obj=em.find( org.apache.juddi.model.Tmodel.class, apiTModel.getTModelKey()); //just making changes to an existing tModel, no worries org.apache.juddi.model.Tmodel modelTModel = new org.apache.juddi.model.Tmodel(); @@ -940,14 +957,14 @@ public class UDDIPublicationImpl extends AuthenticatedService implements UDDIPub result.getTModel().add(apiTModel); changes.add(getChangeRecord(modelTModel, apiTModel, node)); /* - //TODO JUDDI-915 - if (obj != null) { + //TODO JUDDI-915 + if (obj != null) { - changes.add(getChangeRecord(modelTModel, apiTModel, node)); - } else { - //special case for replication, must setup a new data conditional change record - changes.add(getChangeRecordConditional(modelTModel, apiTModel, node)); - }*/ + changes.add(getChangeRecord(modelTModel, apiTModel, node)); + } else { + //special case for replication, must setup a new data conditional change record + changes.add(getChangeRecordConditional(modelTModel, apiTModel, node)); + }*/ } @@ -1574,4 +1591,22 @@ public class UDDIPublicationImpl extends AuthenticatedService implements UDDIPub return cr; } + private void removeExistingPublisherAssertionSignatures(String from, String to, EntityManager em) { + Query createQuery = em.createQuery("delete from Signature pa where pa.publisherAssertionFromKey=:from and pa.publisherAssertionToKey=:to"); + createQuery.setParameter("from", from); + createQuery.setParameter("to", to); + createQuery.executeUpdate(); + } + + private void savePushliserAssertionSignatures(String from, String to, List<Signature> signatures, EntityManager em) { + if (signatures == null) { + return; + } + for (Signature s : signatures) { + s.setPublisherAssertionFromKey(from); + s.setPublisherAssertionToKey(to); + em.persist(s); + } + } + } http://git-wip-us.apache.org/repos/asf/juddi/blob/2ba82c8e/juddi-core/src/main/java/org/apache/juddi/mapping/MappingApiToModel.java ---------------------------------------------------------------------- diff --git a/juddi-core/src/main/java/org/apache/juddi/mapping/MappingApiToModel.java b/juddi-core/src/main/java/org/apache/juddi/mapping/MappingApiToModel.java index 0648a02..1dd95a4 100644 --- a/juddi-core/src/main/java/org/apache/juddi/mapping/MappingApiToModel.java +++ b/juddi-core/src/main/java/org/apache/juddi/mapping/MappingApiToModel.java @@ -1004,10 +1004,14 @@ public class MappingApiToModel { } if (!apiPubAssertion.getSignature().isEmpty()) { - /* modelPubAssertion.setSignatures(mapApiSignaturesToModelSignatures(apiPubAssertion.getSignature())); + modelPubAssertion.setSignatures(mapApiSignaturesToModelSignatures(apiPubAssertion.getSignature())); for (Signature s : modelPubAssertion.getSignatures()) - s.setPublisherAssertion(modelPubAssertion); - */ + { s.setPublisherAssertionFromKey(modelPubAssertion.getBusinessEntityByFromKey().getEntityKey()); + s.setPublisherAssertionToKey(modelPubAssertion.getBusinessEntityByToKey().getEntityKey()); + + } + + } } http://git-wip-us.apache.org/repos/asf/juddi/blob/2ba82c8e/juddi-core/src/main/java/org/apache/juddi/mapping/MappingModelToApi.java ---------------------------------------------------------------------- diff --git a/juddi-core/src/main/java/org/apache/juddi/mapping/MappingModelToApi.java b/juddi-core/src/main/java/org/apache/juddi/mapping/MappingModelToApi.java index 98d3ec9..f622097 100644 --- a/juddi-core/src/main/java/org/apache/juddi/mapping/MappingModelToApi.java +++ b/juddi-core/src/main/java/org/apache/juddi/mapping/MappingModelToApi.java @@ -1018,11 +1018,11 @@ public class MappingModelToApi { keyedRef.setKeyName(modelPublisherAssertion.getKeyName()); keyedRef.setKeyValue(modelPublisherAssertion.getKeyValue()); - /* if (modelPublisherAssertion.getSignatures()!=null && + if (modelPublisherAssertion.getSignatures()!=null && !modelPublisherAssertion.getSignatures().isEmpty()) { mapSignature(modelPublisherAssertion.getSignatures(), apiPublisherAssertion.getSignature()); - }*/ + } apiPublisherAssertion.setKeyedReference(keyedRef); } http://git-wip-us.apache.org/repos/asf/juddi/blob/2ba82c8e/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 3f9d592..c00269d 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 @@ -28,7 +28,6 @@ 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; @@ -95,6 +94,8 @@ public class PublisherAssertion implements java.io.Serializable { public void setId(PublisherAssertionId id) { this.id = id; } + + @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "to_key", nullable = false, insertable = false, updatable = false) @@ -170,13 +171,15 @@ public class PublisherAssertion implements java.io.Serializable { return (this.id.equals(rhs.id)); } - /* + @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY) public List<Signature> getSignatures() { + if (signatures==null) + signatures=new ArrayList<Signature>(); return signatures; } public void setSignatures(List<Signature> signatures) { this.signatures = signatures; - }*/ + } } http://git-wip-us.apache.org/repos/asf/juddi/blob/2ba82c8e/juddi-core/src/main/java/org/apache/juddi/model/Signature.java ---------------------------------------------------------------------- diff --git a/juddi-core/src/main/java/org/apache/juddi/model/Signature.java b/juddi-core/src/main/java/org/apache/juddi/model/Signature.java index 3b36265..856014a 100644 --- a/juddi-core/src/main/java/org/apache/juddi/model/Signature.java +++ b/juddi-core/src/main/java/org/apache/juddi/model/Signature.java @@ -24,7 +24,6 @@ import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; -import javax.persistence.JoinColumns; import javax.persistence.ManyToOne; import javax.persistence.OneToMany; import javax.persistence.OrderBy; @@ -50,7 +49,8 @@ public class Signature implements java.io.Serializable { private ReplicationConfiguration replConfig; private Tmodel tmodel; private String xmlID; - private PublisherAssertion assertion; + private String assertionFromKey; + private String assertionToKey; @Id @GeneratedValue(strategy=GenerationType.AUTO) @@ -72,18 +72,23 @@ public class Signature implements java.io.Serializable { this.bindingTemplate = bindingTemplate; } - /*@ManyToOne - @JoinColumns({ - @JoinColumn(name = "fromKey", nullable = true), - @JoinColumn(name = "toKey", nullable = true) - }) - public PublisherAssertion getPublisherAssertion() { - return assertion; - } - - public void setPublisherAssertion(PublisherAssertion item) { - this.assertion = item; - }*/ + + + @Column(nullable = true, length = 255, name = "passertionfrom") + public String getPublisherAssertionFromKey() { + return assertionFromKey; + } + + public void setPublisherAssertionFromKey(String item) { + this.assertionFromKey = item; + } + @Column(nullable = true, length = 255, name = "passertionto") + public String getPublisherAssertionToKey() { + return assertionFromKey; + } + public void setPublisherAssertionToKey(String item) { + this.assertionToKey = item; + } @ManyToOne http://git-wip-us.apache.org/repos/asf/juddi/blob/2ba82c8e/juddi-core/src/test/java/org/apache/juddi/api/impl/API_060_PublisherAssertionTest.java ---------------------------------------------------------------------- diff --git a/juddi-core/src/test/java/org/apache/juddi/api/impl/API_060_PublisherAssertionTest.java b/juddi-core/src/test/java/org/apache/juddi/api/impl/API_060_PublisherAssertionTest.java index e11148f..7ff6e80 100644 --- a/juddi-core/src/test/java/org/apache/juddi/api/impl/API_060_PublisherAssertionTest.java +++ b/juddi-core/src/test/java/org/apache/juddi/api/impl/API_060_PublisherAssertionTest.java @@ -17,11 +17,13 @@ package org.apache.juddi.api.impl; /** * @author <a href="mailto:[email protected]">Jeff Faath</a> * @author <a href="mailto:[email protected]">Kurt T Stam</a> - * * @author <a href="mailto:[email protected]">Kurt T Stam</a> + * @author <a href="mailto:[email protected]">Alex O'Ree</a> */ import java.rmi.RemoteException; +import java.security.cert.CertificateException; import java.util.ArrayList; import java.util.List; +import java.util.concurrent.atomic.AtomicReference; import javax.xml.bind.JAXB; import javax.xml.ws.Holder; @@ -31,6 +33,7 @@ import org.apache.commons.logging.LogFactory; import org.apache.juddi.Registry; import org.apache.juddi.jaxb.EntityCreator; import org.apache.juddi.v3.client.UDDIConstants; +import org.apache.juddi.v3.client.cryptor.DigSigUtil; import org.apache.juddi.v3.tck.TckBusiness; import org.apache.juddi.v3.tck.TckFindEntity; import org.apache.juddi.v3.tck.TckPublisher; @@ -41,6 +44,7 @@ import org.junit.AfterClass; import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; +import org.uddi.api_v3.AddPublisherAssertions; import org.uddi.api_v3.AssertionStatusItem; import org.uddi.api_v3.CompletionStatus; import org.uddi.api_v3.DeletePublisherAssertions; @@ -75,7 +79,7 @@ public class API_060_PublisherAssertionTest { authInfoSam = TckSecurity.getAuthToken(security, TckPublisher.getSamPublisherId(), TckPublisher.getSamPassword()); authInfoMary = TckSecurity.getAuthToken(security, TckPublisher.getMaryPublisherId(), TckPublisher.getMaryPassword()); String root = TckSecurity.getAuthToken(security, TckPublisher.getUDDIPublisherId(), TckPublisher.getUDDIPassword()); - tckTModel.saveTmodels(root); + tckTModel.saveTmodels(root); } catch (RemoteException e) { logger.error(e.getMessage(), e); Assert.fail("Could not obtain authInfo token." + e.getMessage()); @@ -209,58 +213,55 @@ public class API_060_PublisherAssertionTest { //use Set with no inputs //confirm all are deleted try { - + tckTModel.saveJoePublisherTmodel(authInfoJoe); tckTModel.saveSamSyndicatorTmodel(authInfoSam); tckBusiness.saveJoePublisherBusiness(authInfoJoe); tckBusiness.saveSamSyndicatorBusiness(authInfoSam); - Holder<List<PublisherAssertion>> x = new Holder<List<PublisherAssertion>>(); + Holder<List<PublisherAssertion>> x = new Holder<List<PublisherAssertion>>(); x.value = new ArrayList<PublisherAssertion>(); logger.info("Clearing all Joe's publisher assertions...."); pub.setPublisherAssertions(authInfoJoe, x); - + logger.info("Clearing all Sam's publisher assertions...."); pub.setPublisherAssertions(authInfoSam, x); - - - + logger.info("Confirming we're clear"); - List<PublisherAssertion> before = pub.getPublisherAssertions(authInfoJoe); + List<PublisherAssertion> before = pub.getPublisherAssertions(authInfoJoe); Assert.assertNotNull(before); Assert.assertTrue(before.isEmpty()); - System.out.println(before.size()); + System.out.println(before.size()); for (int i = 0; i < before.size(); i++) { JAXB.marshal(before.get(i), System.out); } - + before = pub.getPublisherAssertions(authInfoSam); Assert.assertNotNull(before); Assert.assertTrue(before.isEmpty()); - System.out.println(before.size()); + System.out.println(before.size()); for (int i = 0; i < before.size(); i++) { JAXB.marshal(before.get(i), System.out); } - + List<AssertionStatusItem> assertionStatusReport = pub.getAssertionStatusReport(authInfoJoe, null); Assert.assertTrue(assertionStatusReport.isEmpty()); - + assertionStatusReport = pub.getAssertionStatusReport(authInfoSam, null); Assert.assertTrue(assertionStatusReport.isEmpty()); - + logger.info("Saving 1/2 publisher assertion...."); List<PublisherAssertion> onehalfPA = tckAssertion.saveJoePublisherPublisherAssertion(authInfoJoe); - before = pub.getPublisherAssertions(authInfoJoe); Assert.assertNotNull(before); Assert.assertFalse(before.isEmpty()); - System.out.println(before.size()); + System.out.println(before.size()); for (int i = 0; i < before.size(); i++) { JAXB.marshal(before.get(i), System.out); } //PublisherAssertion paIn = (PublisherAssertion)EntityCreator.buildFromDoc(TckPublisherAssertion.JOE_ASSERT_XML, "org.uddi.api_v3"); //dp.getPublisherAssertion().add(paIn); - x = new Holder<List<PublisherAssertion>>(); + x = new Holder<List<PublisherAssertion>>(); x.value = new ArrayList<PublisherAssertion>(); logger.info("Clearing all publisher assertions...."); pub.setPublisherAssertions(authInfoJoe, x); @@ -269,7 +270,7 @@ public class API_060_PublisherAssertionTest { JAXB.marshal(x.value.get(i), System.out); } - logger.info("Fetch all publisher assertions....there should be none"); + logger.info("Fetch all publisher assertions....there should be none"); List<PublisherAssertion> publisherAssertions = pub.getPublisherAssertions(authInfoJoe); System.out.println(publisherAssertions.size()); for (int i = 0; i < publisherAssertions.size(); i++) { @@ -323,82 +324,82 @@ public class API_060_PublisherAssertionTest { //create 1/2 PA //use Set with a new PA //confirm first PA is gone and the new PA exists - try { - + try { + tckTModel.saveJoePublisherTmodel(authInfoJoe); tckTModel.saveSamSyndicatorTmodel(authInfoSam); tckTModel.saveMaryPublisherTmodel(authInfoMary); tckBusiness.saveJoePublisherBusiness(authInfoJoe); tckBusiness.saveSamSyndicatorBusiness(authInfoSam); tckBusiness.saveMaryPublisherBusiness(authInfoMary); - Holder<List<PublisherAssertion>> x = new Holder<List<PublisherAssertion>>(); + Holder<List<PublisherAssertion>> x = new Holder<List<PublisherAssertion>>(); x.value = new ArrayList<PublisherAssertion>(); logger.info("Clearing all Joe's publisher assertions...."); pub.setPublisherAssertions(authInfoJoe, x); - + logger.info("Clearing all Sam's publisher assertions...."); pub.setPublisherAssertions(authInfoSam, x); - + logger.info("Clearing all Mary's publisher assertions...."); pub.setPublisherAssertions(authInfoMary, x); - - - + logger.info("Confirming we're clear"); - List<PublisherAssertion> before = pub.getPublisherAssertions(authInfoJoe); + List<PublisherAssertion> before = pub.getPublisherAssertions(authInfoJoe); Assert.assertNotNull(before); - - System.out.println(before.size()); + + System.out.println(before.size()); for (int i = 0; i < before.size(); i++) { JAXB.marshal(before.get(i), System.out); - }Assert.assertTrue(before.isEmpty()); - + } + Assert.assertTrue(before.isEmpty()); + before = pub.getPublisherAssertions(authInfoSam); Assert.assertNotNull(before); - - System.out.println(before.size()); + + System.out.println(before.size()); for (int i = 0; i < before.size(); i++) { JAXB.marshal(before.get(i), System.out); - }Assert.assertTrue(before.isEmpty()); - + } + Assert.assertTrue(before.isEmpty()); + before = pub.getPublisherAssertions(authInfoMary); Assert.assertNotNull(before); - - System.out.println(before.size()); + + System.out.println(before.size()); for (int i = 0; i < before.size(); i++) { JAXB.marshal(before.get(i), System.out); - }Assert.assertTrue(before.isEmpty()); - + } + Assert.assertTrue(before.isEmpty()); + List<AssertionStatusItem> assertionStatusReport = pub.getAssertionStatusReport(authInfoJoe, null); Assert.assertTrue(assertionStatusReport.isEmpty()); - + assertionStatusReport = pub.getAssertionStatusReport(authInfoSam, null); Assert.assertTrue(assertionStatusReport.isEmpty()); - + assertionStatusReport = pub.getAssertionStatusReport(authInfoMary, null); Assert.assertTrue(assertionStatusReport.isEmpty()); - + logger.info("Saving 1/2 publisher assertion...."); List<PublisherAssertion> onehalfPA = tckAssertion.saveJoePublisherPublisherAssertion(authInfoJoe); - before = pub.getPublisherAssertions(authInfoJoe); Assert.assertNotNull(before); Assert.assertFalse(before.isEmpty()); - System.out.println(before.size()); + System.out.println(before.size()); for (int i = 0; i < before.size(); i++) { JAXB.marshal(before.get(i), System.out); } //PublisherAssertion paIn = (PublisherAssertion)EntityCreator.buildFromDoc(TckPublisherAssertion.JOE_ASSERT_XML, "org.uddi.api_v3"); //dp.getPublisherAssertion().add(paIn); - x = new Holder<List<PublisherAssertion>>(); + x = new Holder<List<PublisherAssertion>>(); x.value = new ArrayList<PublisherAssertion>(); PublisherAssertion pa = new PublisherAssertion(); - + pa.setFromKey(TckBusiness.JOE_BUSINESS_KEY); pa.setToKey(TckBusiness.MARY_BUSINESS_KEY); pa.setKeyedReference(new KeyedReference(UDDIConstants.RELATIONSHIPS, "parent-child", "child")); - + x.value.add(pa); logger.info("Using set to clear existing and add a new publisher assertion...."); pub.setPublisherAssertions(authInfoJoe, x); @@ -407,7 +408,7 @@ public class API_060_PublisherAssertionTest { JAXB.marshal(x.value.get(i), System.out); } - logger.info("Fetch all publisher assertions....there should be 1"); + logger.info("Fetch all publisher assertions....there should be 1"); List<PublisherAssertion> publisherAssertions = pub.getPublisherAssertions(authInfoJoe); System.out.println(publisherAssertions.size()); for (int i = 0; i < publisherAssertions.size(); i++) { @@ -418,7 +419,7 @@ public class API_060_PublisherAssertionTest { Assert.assertEquals(publisherAssertions.get(0).getKeyedReference().getKeyName(), pa.getKeyedReference().getKeyName()); Assert.assertEquals(publisherAssertions.get(0).getKeyedReference().getKeyValue(), pa.getKeyedReference().getKeyValue()); Assert.assertEquals(publisherAssertions.get(0).getKeyedReference().getTModelKey(), pa.getKeyedReference().getTModelKey()); - + // } finally { //tckAssertion.deleteJoePublisherPublisherAssertion(authInfoJoe); @@ -429,6 +430,73 @@ public class API_060_PublisherAssertionTest { tckTModel.deleteSamSyndicatorTmodel(authInfoSam); tckTModel.deleteMaryPublisherTmodel(authInfoMary); } - + + } + DigSigUtil ds; + + void SetCertStoreSettigns() { + ds.put(DigSigUtil.SIGNATURE_KEYSTORE_FILE, "./src/test/resources/keystore.jks"); + ds.put(DigSigUtil.SIGNATURE_KEYSTORE_FILETYPE, "JKS"); + ds.put(DigSigUtil.SIGNATURE_KEYSTORE_FILE_PASSWORD, "Test"); + ds.put(DigSigUtil.SIGNATURE_KEYSTORE_KEY_ALIAS, "Test"); + ds.put(DigSigUtil.TRUSTSTORE_FILE, "./src/test/resources/truststore.jks"); + ds.put(DigSigUtil.TRUSTSTORE_FILETYPE, "JKS"); + ds.put(DigSigUtil.TRUSTSTORE_FILE_PASSWORD, "Test"); + } + + void Default() throws CertificateException { + ds = new DigSigUtil(); + SetCertStoreSettigns(); + ds.put(DigSigUtil.SIGNATURE_OPTION_CERT_INCLUSION_BASE64, "true"); + } + + @Test + public void testPublisherAssertionSignatures() throws Exception { + try { + Default(); + tckTModel.saveJoePublisherTmodel(authInfoJoe); + tckTModel.saveSamSyndicatorTmodel(authInfoSam); + tckBusiness.saveJoePublisherBusiness(authInfoJoe); + tckBusiness.saveSamSyndicatorBusiness(authInfoSam); + AddPublisherAssertions ap = new AddPublisherAssertions(); + ap.setAuthInfo(authInfoJoe); + + PublisherAssertion paIn = (PublisherAssertion) EntityCreator.buildFromDoc(TckPublisherAssertion.JOE_ASSERT_XML, "org.uddi.api_v3"); + paIn = ds.signUddiEntity(paIn); + + ap.getPublisherAssertion().add(paIn); + Assert.assertFalse(paIn.getSignature().isEmpty()); + pub.addPublisherAssertions(ap); + + List<PublisherAssertion> onehalfPA = tckAssertion.saveJoePublisherPublisherAssertion(authInfoJoe); + + + Assert.assertNotNull(onehalfPA); + Assert.assertFalse(onehalfPA.get(0).getSignature().isEmpty()); + Assert.assertFalse(onehalfPA.isEmpty()); + + Assert.assertNotNull(onehalfPA); + Assert.assertFalse(onehalfPA.get(0).getSignature().isEmpty()); + Assert.assertFalse(onehalfPA.isEmpty()); + Assert.assertEquals(paIn.getSignature().size(),onehalfPA.get(0).getSignature().size()); + Assert.assertEquals(paIn.getSignature().get(0).getId(),onehalfPA.get(0).getSignature().get(0).getId()); + Assert.assertEquals(paIn.getSignature().get(0).getKeyInfo().getId(),onehalfPA.get(0).getSignature().get(0).getKeyInfo().getId()); + Assert.assertEquals(paIn.getSignature().get(0).getKeyInfo().getContent().size(),onehalfPA.get(0).getSignature().get(0).getKeyInfo().getContent().size()); + + Assert.assertEquals(paIn.getSignature().get(0).getSignedInfo().getCanonicalizationMethod().getAlgorithm(),onehalfPA.get(0).getSignature().get(0).getSignedInfo().getCanonicalizationMethod().getAlgorithm()); + Assert.assertEquals(paIn.getSignature().get(0).getSignedInfo().getId(),onehalfPA.get(0).getSignature().get(0).getSignedInfo().getId()); + Assert.assertEquals(paIn.getSignature().get(0).getSignedInfo().getReference().size(),onehalfPA.get(0).getSignature().get(0).getSignedInfo().getReference().size()); + AtomicReference<String> outmsg=new AtomicReference<String>(); + boolean success=ds.verifySignedUddiEntity(onehalfPA.get(0), outmsg); + Assert.assertTrue(outmsg.get(), success); + + // + } finally { + //tckAssertion.deleteJoePublisherPublisherAssertion(authInfoJoe); + tckBusiness.deleteJoePublisherBusiness(authInfoJoe); + tckBusiness.deleteSamSyndicatorBusiness(authInfoSam); + tckTModel.deleteJoePublisherTmodel(authInfoJoe); + tckTModel.deleteSamSyndicatorTmodel(authInfoSam); + } } } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
