SCOUT-52 refactoring and adding unittests, fixing associations.
git-svn-id: https://svn.apache.org/repos/asf/webservices/scout/trunk@592188 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/scout/src/main/java/org/apache/ws/scout/registry/BulkResponseImpl.java b/scout/src/main/java/org/apache/ws/scout/registry/BulkResponseImpl.java
index e283c8b..e6e24d9 100644
--- a/scout/src/main/java/org/apache/ws/scout/registry/BulkResponseImpl.java
+++ b/scout/src/main/java/org/apache/ws/scout/registry/BulkResponseImpl.java
@@ -35,7 +35,7 @@
private boolean partialResponse = false;
private Collection<Exception> exceptions = new ArrayList<Exception>();
- private LinkedHashSet<? extends Object> collection = new LinkedHashSet<Object>();
+ private Collection<? extends Object> collection = new ArrayList<Object>();
/**
* Creates a new instance of BulkResponseImpl
*/
@@ -87,7 +87,7 @@
this.partialResponse = b;
}
- public void setCollection(LinkedHashSet<? extends Object> coll) throws JAXRException
+ public void setCollection(Collection<? extends Object> coll) throws JAXRException
{
this.collection = coll;
}
diff --git a/scout/src/main/java/org/apache/ws/scout/registry/BusinessLifeCycleManagerImpl.java b/scout/src/main/java/org/apache/ws/scout/registry/BusinessLifeCycleManagerImpl.java
index 839c8fa..a3827c3 100644
--- a/scout/src/main/java/org/apache/ws/scout/registry/BusinessLifeCycleManagerImpl.java
+++ b/scout/src/main/java/org/apache/ws/scout/registry/BusinessLifeCycleManagerImpl.java
@@ -47,6 +47,8 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.ws.scout.registry.infomodel.ConceptImpl;
+import org.apache.ws.scout.registry.infomodel.InternationalStringImpl;
import org.apache.ws.scout.registry.infomodel.KeyImpl;
import org.apache.ws.scout.uddi.AssertionStatusItem;
import org.apache.ws.scout.uddi.AssertionStatusReport;
@@ -228,45 +230,48 @@
}
- public BulkResponse saveAssociations(Collection asso, boolean replace) throws JAXRException { //TODO
+ public BulkResponse saveAssociations(Collection associations, boolean replace) throws JAXRException {
BulkResponseImpl bulk = new BulkResponseImpl();
- PublisherAssertion[] sarr = new PublisherAssertion[asso.size()];
+ PublisherAssertion[] sarr = new PublisherAssertion[associations.size()];
- LinkedHashSet<String> coll = new LinkedHashSet<String>();
+ Collection<Key> coll = new ArrayList<Key>();
Collection<Exception> exceptions = new ArrayList<Exception>();
- Iterator iter = asso.iterator();
+ Iterator iter = associations.iterator();
int currLoc = 0;
while (iter.hasNext()) {
- try {
- PublisherAssertion pa = ScoutJaxrUddiHelper.getPubAssertionFromJAXRAssociation((Association) iter.next());
+
+ Association association = (Association) iter.next();
+ association.getSourceObject();
+ PublisherAssertion pa = ScoutJaxrUddiHelper.getPubAssertionFromJAXRAssociation(association);
sarr[currLoc] = pa;
currLoc++;
- }
- catch (ClassCastException ce) {
- throw new UnexpectedObjectException();
- }
- }
- // Save PublisherAssertion
- PublisherAssertions bd = null;
- try {
- bd = (PublisherAssertions) executeOperation(sarr, "SAVE_ASSOCIATION");
- }
- catch (RegistryException e) {
- exceptions.add(new SaveException(e));
- bulk.setExceptions(exceptions);
- bulk.setStatus(JAXRResponse.STATUS_FAILURE);
- return bulk;
- }
- if(bd != null)
- {
- PublisherAssertion[] keyarr = bd.getPublisherAssertionArray();
- for (int i = 0; keyarr != null && i < keyarr.length; i++) {
- PublisherAssertion result = (PublisherAssertion) keyarr[i];
- KeyedReference kr = result.getKeyedReference();
- coll.add(kr.getTModelKey()); //TODO:Verify This
-
- }
+
+ // Save PublisherAssertion
+ PublisherAssertions bd = null;
+ try {
+ bd = (PublisherAssertions) executeOperation(sarr, "SAVE_ASSOCIATION");
+ }
+ catch (RegistryException e) {
+ exceptions.add(new SaveException(e));
+ bulk.setExceptions(exceptions);
+ bulk.setStatus(JAXRResponse.STATUS_FAILURE);
+ return bulk;
+ }
+ if(bd != null)
+ {
+ PublisherAssertion[] keyarr = bd.getPublisherAssertionArray();
+ for (int i = 0; keyarr != null && i < keyarr.length; i++) {
+ PublisherAssertion result = (PublisherAssertion) keyarr[i];
+ KeyedReference keyr = result.getKeyedReference();
+ Concept c = new ConceptImpl(getRegistryService().getBusinessLifeCycleManager());
+ c.setName(new InternationalStringImpl(keyr.getKeyName()));
+ c.setKey( new KeyImpl(keyr.getTModelKey()) );
+ c.setValue(keyr.getKeyValue());
+ association.setAssociationType(c);
+ coll.add(association.getKey());
+ }
+ }
}
bulk.setCollection(coll);
bulk.setExceptions(exceptions);
diff --git a/scout/src/test/java/org/apache/ws/scout/registry/BusinessLifeCyleManagerlTest.java b/scout/src/test/java/org/apache/ws/scout/registry/BusinessLifeCyleManagerlTest.java
index 14cda5c..0d9ac09 100644
--- a/scout/src/test/java/org/apache/ws/scout/registry/BusinessLifeCyleManagerlTest.java
+++ b/scout/src/test/java/org/apache/ws/scout/registry/BusinessLifeCyleManagerlTest.java
@@ -5,6 +5,7 @@
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Iterator;
import javax.xml.registry.BulkResponse;
import javax.xml.registry.JAXRException;
@@ -222,9 +223,40 @@
try {
RegistryService rs = connection.getRegistryService();
blm = rs.getBusinessLifeCycleManager();
- Collection<Association> associations = new ArrayList<Association>();
- //Association association = blm.createAssociation(targetObject, Association.);
+ bqm = rs.getBusinessQueryManager();
+ Creator creator = new Creator(blm);
+ System.out.println("\nCreating temporary organizations...\n");
+ Organization sOrg = creator.createOrganization("sourceOrg");
+ Organization tOrg = creator.createOrganization("targetOrg");
+ Collection<Organization> organizations = new ArrayList<Organization>();
+ organizations.add(sOrg);
+ organizations.add(tOrg);
+ BulkResponse br = blm.saveOrganizations(organizations);
+ assertEquals(BulkResponse.STATUS_SUCCESS, br.getStatus());
+ //setting the keys on the organizations
+ Collection<Key> keys = (Collection<Key>) br.getCollection();
+ Iterator<Key> iterator = keys.iterator();
+ sOrg.setKey(iterator.next());
+ tOrg.setKey(iterator.next());
+ //creating the RelatedTo Association between these two organizations
+ Concept type = bqm.findConceptByPath("AssociationType/RelatedTo");
+ Association association = blm.createAssociation(tOrg, type);
+ sOrg.addAssociation(association);
+ ArrayList<Association> associations = new ArrayList<Association>();
+ associations.add(association);
+ //save associations
+ BulkResponse br2 = blm.saveAssociations(associations, true);
+ assertEquals(BulkResponse.STATUS_SUCCESS, br2.getStatus());
+
+ //delete association
+ BulkResponse br3 = blm.deleteAssociations((Collection<Key>)br2.getCollection());
+ assertEquals(BulkResponse.STATUS_SUCCESS, br3.getStatus());
+
+ //delete organizations
+ BulkResponse br4 = blm.deleteOrganizations((Collection<Key>)br.getCollection());
+ assertEquals(BulkResponse.STATUS_SUCCESS, br4.getStatus());
+
} catch (JAXRException je) {
fail(je.getMessage());
}
diff --git a/scout/src/test/java/org/apache/ws/scout/registry/qa/JAXR030AssociationsTest.java b/scout/src/test/java/org/apache/ws/scout/registry/qa/JAXR030AssociationsTest.java
index 85c6a4b..a89a3d4 100644
--- a/scout/src/test/java/org/apache/ws/scout/registry/qa/JAXR030AssociationsTest.java
+++ b/scout/src/test/java/org/apache/ws/scout/registry/qa/JAXR030AssociationsTest.java
@@ -102,17 +102,13 @@
organizations.add(org1);
organizations.add(org2);
blm.saveOrganizations(organizations);
-
-
+
System.out.println("\nSearching for newly created organizations...\n");
ArrayList<Organization> orgs = findTempOrgs();
-
sOrg = orgs.get(0);
tOrg = orgs.get(1);
System.out.println("\nCreating association...\n");
-
- //TODO this does not actually succeed!
createAssociation(sOrg, tOrg);
// All created ... now try to delete.