Author: kstam
Date: Thu Aug 6 16:07:29 2009
New Revision: 801690
URL: http://svn.apache.org/viewvc?rev=801690&view=rev
Log:
SCOUT-88 Fixing the handling of associations.
Added:
webservices/scout/branches/scout-1.1/src/test/java/org/apache/ws/scout/registry/JAXBTest.java
Modified:
webservices/scout/branches/scout-1.1/pom.xml
webservices/scout/branches/scout-1.1/src/main/java/org/apache/ws/scout/model/uddi/v2/AssertionStatusReport.java
webservices/scout/branches/scout-1.1/src/main/java/org/apache/ws/scout/registry/BusinessLifeCycleManagerImpl.java
webservices/scout/branches/scout-1.1/src/main/java/org/apache/ws/scout/registry/BusinessQueryManagerImpl.java
webservices/scout/branches/scout-1.1/src/main/java/org/apache/ws/scout/registry/RegistryImpl.java
webservices/scout/branches/scout-1.1/src/site/xdoc/index.xml
webservices/scout/branches/scout-1.1/src/site/xdoc/releases.xml
webservices/scout/branches/scout-1.1/src/test/java/org/apache/ws/scout/registry/qa/JAXR030AssociationsTest.java
Modified: webservices/scout/branches/scout-1.1/pom.xml
URL:
http://svn.apache.org/viewvc/webservices/scout/branches/scout-1.1/pom.xml?rev=801690&r1=801689&r2=801690&view=diff
==============================================================================
--- webservices/scout/branches/scout-1.1/pom.xml (original)
+++ webservices/scout/branches/scout-1.1/pom.xml Thu Aug 6 16:07:29 2009
@@ -228,7 +228,7 @@
<dependency>
<groupId>org.apache.juddi</groupId>
<artifactId>juddi</artifactId>
- <version>2.0rc7</version>
+ <version>2.0.1</version>
<scope>test</scope>
</dependency>
@@ -238,7 +238,14 @@
<version>10.1.2.1</version>
<scope>test</scope>
</dependency>
-
+ <!--
+ <dependency>
+ <groupId>mysql</groupId>
+ <artifactId>mysql-connector-java</artifactId>
+ <version>5.1.6</version>
+ <scope>test</scope>
+ </dependency>
+ -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
Modified:
webservices/scout/branches/scout-1.1/src/main/java/org/apache/ws/scout/model/uddi/v2/AssertionStatusReport.java
URL:
http://svn.apache.org/viewvc/webservices/scout/branches/scout-1.1/src/main/java/org/apache/ws/scout/model/uddi/v2/AssertionStatusReport.java?rev=801690&r1=801689&r2=801690&view=diff
==============================================================================
---
webservices/scout/branches/scout-1.1/src/main/java/org/apache/ws/scout/model/uddi/v2/AssertionStatusReport.java
(original)
+++
webservices/scout/branches/scout-1.1/src/main/java/org/apache/ws/scout/model/uddi/v2/AssertionStatusReport.java
Thu Aug 6 16:07:29 2009
@@ -14,6 +14,7 @@
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
@@ -43,7 +44,8 @@
"assertionStatusItem"
})
public class AssertionStatusReport {
-
+
+ @XmlElement(required = true)
protected List<AssertionStatusItem> assertionStatusItem;
@XmlAttribute(required = true)
protected String generic;
Modified:
webservices/scout/branches/scout-1.1/src/main/java/org/apache/ws/scout/registry/BusinessLifeCycleManagerImpl.java
URL:
http://svn.apache.org/viewvc/webservices/scout/branches/scout-1.1/src/main/java/org/apache/ws/scout/registry/BusinessLifeCycleManagerImpl.java?rev=801690&r1=801689&r2=801690&view=diff
==============================================================================
---
webservices/scout/branches/scout-1.1/src/main/java/org/apache/ws/scout/registry/BusinessLifeCycleManagerImpl.java
(original)
+++
webservices/scout/branches/scout-1.1/src/main/java/org/apache/ws/scout/registry/BusinessLifeCycleManagerImpl.java
Thu Aug 6 16:07:29 2009
@@ -611,81 +611,42 @@
private void clearPublisherAssertions( String authinfo,IRegistry ireg)
{
- Vector<PublisherAssertion> pasvect = null;
- PublisherAssertion[] pasarr = null;
+ Vector<PublisherAssertion> pasvect = new Vector<PublisherAssertion>();
+
try
{
AssertionStatusReport report =
ireg.getAssertionStatusReport(authinfo,"status:complete");
List<AssertionStatusItem> assertionStatusItemList =
report.getAssertionStatusItem();
- AssertionStatusItem[] assertionStatusItemArr =
- new AssertionStatusItem[assertionStatusItemList.size()];
+ for (AssertionStatusItem assertionStatusItem :
assertionStatusItemList) {
+ pasvect.add(this.getPublisherAssertion(assertionStatusItem));
+ }
- int len = assertionStatusItemArr != null?
assertionStatusItemArr.length : 0;
- for (int i = 0; i < len; i++)
- {
- AssertionStatusItem asi = assertionStatusItemArr[i];
- /* String sourceKey = asi.getFromKey();
- String targetKey = asi.getToKey();
- PublisherAssertion pa = new PublisherAssertion();
- pa.setFromKey(sourceKey);
- pa.setToKey(targetKey);
- KeyedReference keyr = asi.getKeyedReference();
- pa.setKeyedReference(keyr);
- pa.setTModelKey(keyr.getTModelKey());
- pa.setKeyName(keyr.getKeyName());
- pa.setKeyValue(keyr.getKeyValue());
- if(pasvect == null) pasvect = new Vector(len);
- pasvect.add(pa);*/
- if(pasvect == null) pasvect = new
Vector<PublisherAssertion>(len);
- pasvect.add(this.getPublisherAssertion(asi));
- }
report =
ireg.getAssertionStatusReport(authinfo,"status:toKey_incomplete");
- assertionStatusItemArr =
report.getAssertionStatusItem().toArray(assertionStatusItemArr);
-
- len = assertionStatusItemArr != null? assertionStatusItemArr.length
: 0;
- for (int i = 0; i < len; i++)
- {
- AssertionStatusItem asi = (AssertionStatusItem)
assertionStatusItemArr[i];
- if(pasvect == null) pasvect = new
Vector<PublisherAssertion>(len);
- pasvect.add(this.getPublisherAssertion(asi));
- }
+ assertionStatusItemList = report.getAssertionStatusItem();
+ for (AssertionStatusItem assertionStatusItem :
assertionStatusItemList) {
+ pasvect.add(this.getPublisherAssertion(assertionStatusItem));
+ }
report =
ireg.getAssertionStatusReport(authinfo,"status:fromKey_incomplete");
- assertionStatusItemArr =
report.getAssertionStatusItem().toArray(assertionStatusItemArr);
-
- len = assertionStatusItemArr != null? assertionStatusItemArr.length
: 0;
- for (int i = 0; i < len; i++)
- {
- AssertionStatusItem asi = (AssertionStatusItem)
assertionStatusItemArr[i];
- if(pasvect == null) pasvect = new
Vector<PublisherAssertion>(len);
- pasvect.add(this.getPublisherAssertion(asi));
- }
-
- if (pasvect != null) {
- pasarr = new PublisherAssertion[pasvect.size()];
- Iterator iter = pasvect.iterator();
- int pasarrPos = 0;
- while (iter.hasNext()) {
- pasarr[pasarrPos] = ((PublisherAssertion)
iter.next());
- pasarrPos++;
- }
+ assertionStatusItemList = report.getAssertionStatusItem();
+ for (AssertionStatusItem assertionStatusItem :
assertionStatusItemList) {
+ pasvect.add(this.getPublisherAssertion(assertionStatusItem));
+ }
+
+ if (pasvect.size() > 0) {
+ PublisherAssertion[] pasarr = new
PublisherAssertion[pasvect.size()];
+ int i=0;
+ for (PublisherAssertion publisherAssertion : pasvect) {
+ pasarr[i++] = publisherAssertion;
+ }
+ ireg.deletePublisherAssertions(authinfo, pasarr);
}
}
catch (RegistryException e)
{
throw new RuntimeException(e);
}
-
- if(pasarr != null && pasarr.length > 0)
- try
- {
- ireg.deletePublisherAssertions(authinfo, pasarr);
- }
- catch (RegistryException e)
- {
- log.debug("Ignoring exception " + e.getMessage(),e);
- }
- }
+ }
Modified:
webservices/scout/branches/scout-1.1/src/main/java/org/apache/ws/scout/registry/BusinessQueryManagerImpl.java
URL:
http://svn.apache.org/viewvc/webservices/scout/branches/scout-1.1/src/main/java/org/apache/ws/scout/registry/BusinessQueryManagerImpl.java?rev=801690&r1=801689&r2=801690&view=diff
==============================================================================
---
webservices/scout/branches/scout-1.1/src/main/java/org/apache/ws/scout/registry/BusinessQueryManagerImpl.java
(original)
+++
webservices/scout/branches/scout-1.1/src/main/java/org/apache/ws/scout/registry/BusinessQueryManagerImpl.java
Thu Aug 6 16:07:29 2009
@@ -178,19 +178,22 @@
for (PublisherAssertion pas : publisherAssertionList) {
String sourceKey = pas.getFromKey();
String targetKey = pas.getToKey();
- Collection<Key> orgcol = new ArrayList<Key>();
- orgcol.add(new KeyImpl(sourceKey));
- orgcol.add(new KeyImpl(targetKey));
- BulkResponse bl = getRegistryObjects(orgcol,
LifeCycleManager.ORGANIZATION);
- Association asso =
ScoutUddiJaxrHelper.getAssociation(bl.getCollection(),
-
registryService.getBusinessLifeCycleManager());
- KeyedReference keyr = pas.getKeyedReference();
- Concept c = new
ConceptImpl(getRegistryService().getBusinessLifeCycleManager());
- c.setName(new InternationalStringImpl(keyr.getKeyName()));
- c.setKey( new KeyImpl(keyr.getTModelKey()) );
- c.setValue(keyr.getKeyValue());
- asso.setAssociationType(c);
- col.add(asso);
+ if ((sourceObjectId==null || sourceObjectId.equals(sourceKey))
+ && (targetObjectId==null || targetObjectId.equals(targetKey)))
{
+ Collection<Key> orgcol = new ArrayList<Key>();
+ orgcol.add(new KeyImpl(sourceKey));
+ orgcol.add(new KeyImpl(targetKey));
+ BulkResponse bl = getRegistryObjects(orgcol,
LifeCycleManager.ORGANIZATION);
+ Association asso =
ScoutUddiJaxrHelper.getAssociation(bl.getCollection(),
+
registryService.getBusinessLifeCycleManager());
+ KeyedReference keyr = pas.getKeyedReference();
+ Concept c = new
ConceptImpl(getRegistryService().getBusinessLifeCycleManager());
+ c.setName(new
InternationalStringImpl(keyr.getKeyName()));
+ c.setKey( new KeyImpl(keyr.getTModelKey()) );
+ c.setValue(keyr.getKeyValue());
+ asso.setAssociationType(c);
+ col.add(asso);
+ }
}
return new BulkResponseImpl(col);
} catch (RegistryException e)
@@ -840,13 +843,9 @@
{
RegisteredInfo ri =
registry.getRegisteredInfo(auth.getAuthInfo());
if (ri != null) {
- BusinessInfos infos = ri.getBusinessInfos();
- if (infos != null) {
- List<BusinessInfo> bizInfoList =
infos.getBusinessInfo();
- for (BusinessInfo businessInfo: bizInfoList) {
- BusinessDetail detail =
registry.getBusinessDetail(businessInfo.getBusinessKey());
-
col.add(registryService.getLifeCycleManagerImpl().createOrganization(detail));
- }
+ for (String key:keys) {
+ BusinessDetail detail =
registry.getBusinessDetail(key);
+
col.add(registryService.getLifeCycleManagerImpl().createOrganization(detail));
}
}
} catch (RegistryException e) {
Modified:
webservices/scout/branches/scout-1.1/src/main/java/org/apache/ws/scout/registry/RegistryImpl.java
URL:
http://svn.apache.org/viewvc/webservices/scout/branches/scout-1.1/src/main/java/org/apache/ws/scout/registry/RegistryImpl.java?rev=801690&r1=801689&r2=801690&view=diff
==============================================================================
---
webservices/scout/branches/scout-1.1/src/main/java/org/apache/ws/scout/registry/RegistryImpl.java
(original)
+++
webservices/scout/branches/scout-1.1/src/main/java/org/apache/ws/scout/registry/RegistryImpl.java
Thu Aug 6 16:07:29 2009
@@ -18,6 +18,7 @@
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
+import java.io.StringReader;
import java.net.URI;
import java.net.URISyntaxException;
import java.security.AccessController;
@@ -33,6 +34,9 @@
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.Source;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamSource;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -82,6 +86,7 @@
import org.apache.ws.scout.model.uddi.v2.TModelDetail;
import org.apache.ws.scout.model.uddi.v2.TModelList;
import org.apache.ws.scout.transport.Transport;
+import org.apache.ws.scout.util.XMLUtils;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
@@ -297,7 +302,13 @@
JAXBElement<?> uddiResponse = null;
try {
- uddiResponse = (JAXBElement<?>)
unmarshaller.unmarshal(response);
+ String xml = XMLUtils.convertNodeToXMLString(response);
+ log.debug("Response is: " + xml);
+
+ StringReader reader = new StringReader(xml);
+ uddiResponse = (JAXBElement<?>)
unmarshaller.unmarshal(new StreamSource(reader));
+ //It is probably faster not to go to a String, but JAXB has
issues with this
+ //uddiResponse = (JAXBElement<?>)
unmarshaller.unmarshal(response);
} catch (JAXBException xmle) {
throw (new RegistryException(xmle));
}
Modified: webservices/scout/branches/scout-1.1/src/site/xdoc/index.xml
URL:
http://svn.apache.org/viewvc/webservices/scout/branches/scout-1.1/src/site/xdoc/index.xml?rev=801690&r1=801689&r2=801690&view=diff
==============================================================================
--- webservices/scout/branches/scout-1.1/src/site/xdoc/index.xml (original)
+++ webservices/scout/branches/scout-1.1/src/site/xdoc/index.xml Thu Aug 6
16:07:29 2009
@@ -43,6 +43,7 @@
</section>
<section name="News">
+ <p><strong>Aug 3, 2009</strong> Version 1.1 uses JAXB for XML
binding and passes TCK</p>
<p><strong>May 5, 2009</strong> Version 1.0 is now available</p>
</section>
Modified: webservices/scout/branches/scout-1.1/src/site/xdoc/releases.xml
URL:
http://svn.apache.org/viewvc/webservices/scout/branches/scout-1.1/src/site/xdoc/releases.xml?rev=801690&r1=801689&r2=801690&view=diff
==============================================================================
--- webservices/scout/branches/scout-1.1/src/site/xdoc/releases.xml (original)
+++ webservices/scout/branches/scout-1.1/src/site/xdoc/releases.xml Thu Aug 6
16:07:29 2009
@@ -17,20 +17,30 @@
<td><strong>Description</strong></td>
</tr>
<tr>
- <td><a
href="http://people.apache.org/repo/m2-ibiblio-rsync-repository/org/apache/ws/scout/scout/1.0/scout-1.0.jar">scout-1.0</a><br/>
- <a
href="http://people.apache.org/repo/m2-ibiblio-rsync-repository/org/apache/ws/scout/jaxr-api/1.0/jaxr-api-1.0.jar">jaxr-api-1.0</a></td>
+ <td><a
href="https://repository.apache.org/content/groups/public/org/apache/ws/scout/scout/1.1/scout-1.1.jar">scout-1.1</a></td>
+ <td>3 August, 2009</td>
+ <td>Version 1.1. of Scout</td>
+ </tr>
+ <tr>
+ <td><a
href="https://repository.apache.org/content/groups/public/org/apache/ws/scout/scout/1.1-rc1/scout-1.1-rc1.jar">scout-1.1-rc1</a></td>
+ <td>27 July, 2009</td>
+ <td>Release Candidate #1 for Version 1.1. of Scout</td>
+ </tr>
+ <tr>
+ <td><a
href="https://repository.apache.org/content/groups/public/org/apache/ws/scout/scout/1.0/scout-1.0.jar">scout-1.0</a><br/>
+ <a
href="https://repository.apache.org/content/groups/public/org/apache/ws/scout/jaxr-api/1.0/jaxr-api-1.0.jar">jaxr-api-1.0</a></td>
<td>5 May, 2009</td>
<td>Version 1.0</td>
</tr>
<tr>
- <td><a
href="http://people.apache.org/repo/m2-ibiblio-rsync-repository/org/apache/ws/scout/scout/1.0rc2/scout-1.0rc2.jar">scout-1.0rc2</a><br/>
- <a
href="http://people.apache.org/repo/m2-ibiblio-rsync-repository/org/apache/ws/scout/jaxr-api/1.0rc2/jaxr-api-1.0rc2.jar">jaxr-api-1.0rc2</a></td>
+ <td><a
href="https://repository.apache.org/content/groups/public/org/apache/ws/scout/scout/1.0rc2/scout-1.0rc2.jar">scout-1.0rc2</a><br/>
+ <a
href="https://repository.apache.org/content/groups/public/org/apache/ws/scout/jaxr-api/1.0rc2/jaxr-api-1.0rc2.jar">jaxr-api-1.0rc2</a></td>
<td>22 August, 2008</td>
<td>Release Candidate #2 for Version 1.0.</td>
</tr>
<tr>
- <td><a
href="http://people.apache.org/repo/m2-ibiblio-rsync-repository/org/apache/ws/scout/scout/1.0rc1/scout-1.0rc1.jar">scout-1.0rc1</a><br/>
- <a
href="http://people.apache.org/repo/m2-ibiblio-rsync-repository/org/apache/ws/scout/jaxr-api/1.0rc1/jaxr-api-1.0rc1.jar">jaxr-api-1.0rc1</a></td>
+ <td><a
href="https://repository.apache.org/content/groups/public/org/apache/ws/scout/scout/1.0rc1/scout-1.0rc1.jar">scout-1.0rc1</a><br/>
+ <a
href="https://repository.apache.org/content/groups/public/org/apache/ws/scout/jaxr-api/1.0rc1/jaxr-api-1.0rc1.jar">jaxr-api-1.0rc1</a></td>
<td>26 July, 2007</td>
<td>Release Candidate #1 for Version 1.0.</td>
</tr>
Added:
webservices/scout/branches/scout-1.1/src/test/java/org/apache/ws/scout/registry/JAXBTest.java
URL:
http://svn.apache.org/viewvc/webservices/scout/branches/scout-1.1/src/test/java/org/apache/ws/scout/registry/JAXBTest.java?rev=801690&view=auto
==============================================================================
---
webservices/scout/branches/scout-1.1/src/test/java/org/apache/ws/scout/registry/JAXBTest.java
(added)
+++
webservices/scout/branches/scout-1.1/src/test/java/org/apache/ws/scout/registry/JAXBTest.java
Thu Aug 6 16:07:29 2009
@@ -0,0 +1,70 @@
+package org.apache.ws.scout.registry;
+
+import static junit.framework.Assert.assertEquals;
+import static junit.framework.Assert.fail;
+
+import java.io.StringReader;
+import java.util.List;
+
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Unmarshaller;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.transform.stream.StreamSource;
+
+import org.apache.ws.scout.model.uddi.v2.AssertionStatusReport;
+import org.junit.Test;
+import org.w3c.dom.Document;
+import org.xml.sax.InputSource;
+
+public class JAXBTest {
+
+ private static String
PUBLISHER_ASSERTION_RESPONSE="<assertionStatusReport generic=\"2.0\"
operator=\"jUDDI.org\" xmlns=\"urn:uddi-org:api_v2\"><assertionStatusItem
completionStatus=\"status:fromKey_incomplete\"><fromKey>5173FA70-81E6-11DE-B7B9-A9A7A2431DC4</fromKey><toKey>517AD840-81E6-11DE-B7B9-C5758FAC28A0</toKey><keyedReference
keyName=\"Concept\" keyValue=\"Implements\"
tModelKey=\"UUID:DB77450D-9FA8-45D4-A7BC-04411D14E384\"/><keysOwned><fromKey>5173FA70-81E6-11DE-B7B9-A9A7A2431DC4</fromKey></keysOwned></assertionStatusItem></assertionStatusReport>";
+
+ /**
+ * Test handling of utf8 characters
+ */
+ @Test
+ public void unmarshallUTF8()
+ {
+ try {
+ JAXBContext
jaxbContext=JAXBContext.newInstance("org.apache.ws.scout.model.uddi.v2");
+ Unmarshaller unMarshaller =
jaxbContext.createUnmarshaller();
+ StringReader reader = new
StringReader(PUBLISHER_ASSERTION_RESPONSE);
+ JAXBElement<AssertionStatusReport> utf8Element =
unMarshaller.unmarshal(new StreamSource(reader),AssertionStatusReport.class);
+
List<org.apache.ws.scout.model.uddi.v2.AssertionStatusItem> items =
utf8Element.getValue().getAssertionStatusItem();
+ System.out.println(items);
+ } catch (JAXBException jaxbe) {
+ fail("No exception should be thrown");
+ }
+ }
+
+ @Test
+ public void unmarshallElement()
+ {
+ try {
+ JAXBContext
jaxbContext=JAXBContext.newInstance("org.apache.ws.scout.model.uddi.v2");
+ Unmarshaller unMarshaller =
jaxbContext.createUnmarshaller();
+
+ DocumentBuilderFactory factory =
DocumentBuilderFactory.newInstance();
+ factory.setNamespaceAware(true);
+ DocumentBuilder db = factory.newDocumentBuilder();
+ InputSource is = new InputSource();
+ is.setCharacterStream(new
StringReader(PUBLISHER_ASSERTION_RESPONSE));
+ Document document = db.parse(is);
+
+ JAXBElement<AssertionStatusReport> utf8Element =
unMarshaller.unmarshal(document,AssertionStatusReport.class);
+
List<org.apache.ws.scout.model.uddi.v2.AssertionStatusItem> items =
utf8Element.getValue().getAssertionStatusItem();
+ System.out.println(items);
+ } catch (Exception jaxbe) {
+ fail("No exception should be thrown");
+ }
+ }
+
+
+
+
+
+}
Modified:
webservices/scout/branches/scout-1.1/src/test/java/org/apache/ws/scout/registry/qa/JAXR030AssociationsTest.java
URL:
http://svn.apache.org/viewvc/webservices/scout/branches/scout-1.1/src/test/java/org/apache/ws/scout/registry/qa/JAXR030AssociationsTest.java?rev=801690&r1=801689&r2=801690&view=diff
==============================================================================
---
webservices/scout/branches/scout-1.1/src/test/java/org/apache/ws/scout/registry/qa/JAXR030AssociationsTest.java
(original)
+++
webservices/scout/branches/scout-1.1/src/test/java/org/apache/ws/scout/registry/qa/JAXR030AssociationsTest.java
Thu Aug 6 16:07:29 2009
@@ -132,6 +132,7 @@
if(associationResp.getExceptions() != null)
{
+
System.out.println(associationResp.getExceptions());
fail("Association lookup failed");
}
else
@@ -146,18 +147,18 @@
while(iterAss.hasNext())
{
Association assc = (Association) iterAss.next();
- if(assc.getKey().getId().equals(associationID))
- fail("Deleted Association found");
+ if(assc.getKey().getId().equals(associationID)) {
+ System.out.println("found: " + associationID);
+ fail("Deleted Association found");
+ }
}
}
}
- } catch (JAXRException e) {
+ } catch (Exception e) {
e.printStackTrace();
fail(e.getMessage());
- } finally {
-
- }
+ }
}
private void createAssociation(Organization sOrg, Organization tOrg)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]