Author: tcunning
Date: Sun Sep  6 23:21:23 2009
New Revision: 811951

URL: http://svn.apache.org/viewvc?rev=811951&view=rev
Log:
SCOUT-66
Add support for UDDI v 3.0.

Added:
    
webservices/scout/trunk/src/main/java/org/apache/ws/scout/registry/BusinessLifeCycleManagerV3Impl.java
    
webservices/scout/trunk/src/main/java/org/apache/ws/scout/registry/BusinessQueryManagerV3Impl.java
    
webservices/scout/trunk/src/main/java/org/apache/ws/scout/registry/IRegistryBase.java
    
webservices/scout/trunk/src/main/java/org/apache/ws/scout/registry/IRegistryV3.java
    
webservices/scout/trunk/src/main/java/org/apache/ws/scout/registry/RegistryV3Exception.java
    
webservices/scout/trunk/src/main/java/org/apache/ws/scout/registry/RegistryV3Impl.java
    
webservices/scout/trunk/src/main/java/org/apache/ws/scout/transport/JAXRTransportException.java
    
webservices/scout/trunk/src/main/java/org/apache/ws/scout/transport/TransportException.java
    
webservices/scout/trunk/src/main/java/org/apache/ws/scout/util/ScoutJaxrUddiV3Helper.java
    
webservices/scout/trunk/src/main/java/org/apache/ws/scout/util/ScoutUddiV3JaxrHelper.java
    webservices/scout/trunk/src/test/resources/scoutv3.properties-example
Modified:
    webservices/scout/trunk/pom.xml
    
webservices/scout/trunk/src/main/java/org/apache/ws/scout/registry/BusinessLifeCycleManagerImpl.java
    
webservices/scout/trunk/src/main/java/org/apache/ws/scout/registry/BusinessQueryManagerImpl.java
    
webservices/scout/trunk/src/main/java/org/apache/ws/scout/registry/ConnectionFactoryImpl.java
    
webservices/scout/trunk/src/main/java/org/apache/ws/scout/registry/ConnectionImpl.java
    
webservices/scout/trunk/src/main/java/org/apache/ws/scout/registry/IRegistry.java
    
webservices/scout/trunk/src/main/java/org/apache/ws/scout/registry/LifeCycleManagerImpl.java
    
webservices/scout/trunk/src/main/java/org/apache/ws/scout/registry/RegistryImpl.java
    
webservices/scout/trunk/src/main/java/org/apache/ws/scout/registry/RegistryServiceImpl.java
    
webservices/scout/trunk/src/main/java/org/apache/ws/scout/transport/AxisTransport.java
    
webservices/scout/trunk/src/main/java/org/apache/ws/scout/transport/LocalTransport.java
    
webservices/scout/trunk/src/main/java/org/apache/ws/scout/transport/RMITransport.java
    
webservices/scout/trunk/src/main/java/org/apache/ws/scout/transport/Transport.java
    webservices/scout/trunk/src/test/java/org/apache/ws/scout/BaseTestCase.java
    webservices/scout/trunk/src/test/java/org/apache/ws/scout/Finder.java
    
webservices/scout/trunk/src/test/java/org/apache/ws/scout/registry/BusinessLifeCyleManagerlTest.java
    
webservices/scout/trunk/src/test/java/org/apache/ws/scout/registry/BusinessQueryManagerTest.java
    
webservices/scout/trunk/src/test/java/org/apache/ws/scout/registry/LifeCycleManagerTest.java
    
webservices/scout/trunk/src/test/java/org/apache/ws/scout/registry/RegistryServiceTest.java
    
webservices/scout/trunk/src/test/java/org/apache/ws/scout/registry/qa/JAXR030AssociationsTest.java
    
webservices/scout/trunk/src/test/java/org/apache/ws/scout/registry/qa/JAXR050ServiceBindingTest.java
    
webservices/scout/trunk/src/test/java/org/apache/ws/scout/registry/qa/JAXR060RegistryTest.java

Modified: webservices/scout/trunk/pom.xml
URL: 
http://svn.apache.org/viewvc/webservices/scout/trunk/pom.xml?rev=811951&r1=811950&r2=811951&view=diff
==============================================================================
--- webservices/scout/trunk/pom.xml (original)
+++ webservices/scout/trunk/pom.xml Sun Sep  6 23:21:23 2009
@@ -250,6 +250,12 @@
             <scope>test</scope>
         </dependency>
 
+       <dependency>
+           <groupId>org.apache.juddi</groupId>
+           <artifactId>uddi-ws</artifactId>
+           <version>3.0.0.SNAPSHOT</version>
+       </dependency>
+
         <dependency>
             <groupId>org.apache.derby</groupId>
             <artifactId>derby</artifactId>

Modified: 
webservices/scout/trunk/src/main/java/org/apache/ws/scout/registry/BusinessLifeCycleManagerImpl.java
URL: 
http://svn.apache.org/viewvc/webservices/scout/trunk/src/main/java/org/apache/ws/scout/registry/BusinessLifeCycleManagerImpl.java?rev=811951&r1=811950&r2=811951&view=diff
==============================================================================
--- 
webservices/scout/trunk/src/main/java/org/apache/ws/scout/registry/BusinessLifeCycleManagerImpl.java
 (original)
+++ 
webservices/scout/trunk/src/main/java/org/apache/ws/scout/registry/BusinessLifeCycleManagerImpl.java
 Sun Sep  6 23:21:23 2009
@@ -55,21 +55,28 @@
 import org.apache.ws.scout.model.uddi.v2.BindingTemplate;
 import org.apache.ws.scout.model.uddi.v2.BusinessDetail;
 import org.apache.ws.scout.model.uddi.v2.BusinessEntity;
+import org.apache.ws.scout.model.uddi.v2.BusinessInfo;
 import org.apache.ws.scout.model.uddi.v2.BusinessService;
+import org.apache.ws.scout.model.uddi.v2.Description;
 import org.apache.ws.scout.model.uddi.v2.DispositionReport;
 import org.apache.ws.scout.model.uddi.v2.ErrInfo;
 import org.apache.ws.scout.model.uddi.v2.KeyedReference;
+import org.apache.ws.scout.model.uddi.v2.Name;
 import org.apache.ws.scout.model.uddi.v2.ObjectFactory;
 import org.apache.ws.scout.model.uddi.v2.PublisherAssertion;
 import org.apache.ws.scout.model.uddi.v2.PublisherAssertions;
 import org.apache.ws.scout.model.uddi.v2.Result;
 import org.apache.ws.scout.model.uddi.v2.ServiceDetail;
+import org.apache.ws.scout.model.uddi.v2.ServiceInfo;
 import org.apache.ws.scout.model.uddi.v2.TModel;
 import org.apache.ws.scout.model.uddi.v2.TModelDetail;
 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.registry.infomodel.OrganizationImpl;
+import org.apache.ws.scout.registry.infomodel.ServiceImpl;
 import org.apache.ws.scout.util.ScoutJaxrUddiHelper;
+import org.apache.ws.scout.util.ScoutUddiJaxrHelper;
 
 /**
  * Implements JAXR BusinessLifeCycleManager Interface.
@@ -77,6 +84,7 @@
  *
  * @author <a href="mailto:[email protected]";>Anil Saldhana</a>
  * @author <a href="mailto:[email protected]";>Geir Magnusson Jr.</a>
+ * @author <a href="mailto:[email protected]";>Tom Cunningham</a>
  */
 public class BusinessLifeCycleManagerImpl extends LifeCycleManagerImpl
         implements BusinessLifeCycleManager, Serializable {
@@ -551,7 +559,7 @@
             throw new IllegalStateException("No registry");
         }
 
-        IRegistry ireg =  registry.getRegistry();
+        IRegistry ireg =  (IRegistry) registry.getRegistry();
 
         ConnectionImpl connection = registry.getConnection();
         AuthToken token = getAuthToken(connection, ireg);
@@ -817,4 +825,46 @@
        }return pa;
     }
 
+    Organization createOrganization(BusinessDetail bizDetail) throws 
JAXRException {
+        return ScoutUddiJaxrHelper.getOrganization(bizDetail, this);
+    }    
+    
+    Organization createOrganization(BusinessInfo bizInfo) throws JAXRException 
{
+        String key = bizInfo.getBusinessKey();
+        List<Name> names = bizInfo.getName(); 
+        
+        List<Description> descriptions = bizInfo.getDescription();
+        List<ServiceInfo> serviceInfos = 
bizInfo.getServiceInfos().getServiceInfo();
+        
+        OrganizationImpl org = new OrganizationImpl(this);
+        org.setKey(createKey(key));
+        if (names != null && names.size() > 0) {
+            org.setName(createInternationalString(names.get(0).getValue()));
+        }
+        if (descriptions != null && descriptions.size() > 0) {
+            
org.setDescription(createInternationalString(descriptions.get(0).getValue()));
+        }
+        if (serviceInfos != null && serviceInfos.size() > 0) {
+            List<Service> services = new 
ArrayList<Service>(serviceInfos.size());
+            for (int i = 0; i < serviceInfos.size(); i++) {
+                ServiceInfo serviceInfo = serviceInfos.get(i);
+                services.add(createService(serviceInfo));
+            }
+            org.addServices(services);
+        }
+
+        return org;
+    }
+
+    Service createService(ServiceInfo serviceInfo) throws JAXRException {
+        String key = serviceInfo.getServiceKey();
+        List<Name> names = serviceInfo.getName();
+        ServiceImpl service = new ServiceImpl(this);
+        service.setKey(createKey(key));
+        if (names != null && names.size() > 0) {
+            
service.setName(createInternationalString(names.get(0).getValue()));
+        }
+        return service;
+    }
+
 }

Added: 
webservices/scout/trunk/src/main/java/org/apache/ws/scout/registry/BusinessLifeCycleManagerV3Impl.java
URL: 
http://svn.apache.org/viewvc/webservices/scout/trunk/src/main/java/org/apache/ws/scout/registry/BusinessLifeCycleManagerV3Impl.java?rev=811951&view=auto
==============================================================================
--- 
webservices/scout/trunk/src/main/java/org/apache/ws/scout/registry/BusinessLifeCycleManagerV3Impl.java
 (added)
+++ 
webservices/scout/trunk/src/main/java/org/apache/ws/scout/registry/BusinessLifeCycleManagerV3Impl.java
 Sun Sep  6 23:21:23 2009
@@ -0,0 +1,851 @@
+/**
+ *
+ * Copyright 2004 The Apache Software Foundation
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.ws.scout.registry;
+
+import java.io.Serializable;
+import java.net.PasswordAuthentication;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.Vector;
+
+import javax.xml.registry.BulkResponse;
+import javax.xml.registry.BusinessLifeCycleManager;
+import javax.xml.registry.DeleteException;
+import javax.xml.registry.InvalidRequestException;
+import javax.xml.registry.JAXRException;
+import javax.xml.registry.JAXRResponse;
+import javax.xml.registry.LifeCycleManager;
+import javax.xml.registry.RegistryService;
+import javax.xml.registry.SaveException;
+import javax.xml.registry.UnexpectedObjectException;
+import javax.xml.registry.infomodel.Association;
+import javax.xml.registry.infomodel.ClassificationScheme;
+import javax.xml.registry.infomodel.Concept;
+import javax.xml.registry.infomodel.Key;
+import javax.xml.registry.infomodel.Organization;
+import javax.xml.registry.infomodel.RegistryObject;
+import javax.xml.registry.infomodel.Service;
+import javax.xml.registry.infomodel.ServiceBinding;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.uddi.api_v3.*;
+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.registry.infomodel.OrganizationImpl;
+import org.apache.ws.scout.registry.infomodel.ServiceImpl;
+import org.apache.ws.scout.util.ScoutJaxrUddiHelper;
+import org.apache.ws.scout.util.ScoutJaxrUddiV3Helper;
+import org.apache.ws.scout.util.ScoutUddiJaxrHelper;
+import org.apache.ws.scout.util.ScoutUddiV3JaxrHelper;
+
+/**
+ * Implements JAXR BusinessLifeCycleManager Interface.
+ * For futher details, look into the JAXR API Javadoc.
+ *
+ * @author <a href="mailto:[email protected]";>Anil Saldhana</a>
+ * @author <a href="mailto:[email protected]";>Geir Magnusson Jr.</a>
+ * @author <a href="mailto:[email protected]";>Tom Cunningham</a>
+ */
+public class BusinessLifeCycleManagerV3Impl extends LifeCycleManagerImpl
+        implements BusinessLifeCycleManager, Serializable {
+       
+       
+    private static final long serialVersionUID = 1L;
+    private Log log = LogFactory.getLog(this.getClass());
+    
+    private transient ObjectFactory objectFactory = new ObjectFactory();
+       
+    public BusinessLifeCycleManagerV3Impl(RegistryService registry) {
+        super(registry);
+        if(objectFactory == null)
+               objectFactory = new ObjectFactory();
+    }
+
+    /**
+     * Deletes one or more previously submitted objects from the registry
+     * using the object keys and a specified objectType attribute.
+     *
+     * @param keys
+     * @param objectType
+     * @return BulkResponse object
+     * @throws JAXRException
+     */
+    public BulkResponse deleteObjects(Collection keys, String objectType) 
throws JAXRException {
+        BulkResponse bulk = null;
+
+        if (objectType == LifeCycleManager.ASSOCIATION) {
+            bulk = this.deleteAssociations(keys);
+        }
+        else if (objectType == LifeCycleManager.CLASSIFICATION_SCHEME) {
+            bulk = this.deleteClassificationSchemes(keys);
+        }
+        else if (objectType == LifeCycleManager.CONCEPT) {
+            bulk = this.deleteConcepts(keys);
+        }
+        else if (objectType == LifeCycleManager.ORGANIZATION) {
+            bulk = this.deleteOrganizations(keys);
+        }
+        else if (objectType == LifeCycleManager.SERVICE) {
+            bulk = this.deleteServices(keys);
+        }
+        else if (objectType == LifeCycleManager.SERVICE_BINDING) {
+            bulk = this.deleteServiceBindings(keys);
+        }
+        else {
+            throw new JAXRException("Delete Operation for " + objectType + " 
not implemented by Scout");
+        }
+
+        return bulk;
+    }
+
+    public BulkResponse deleteAssociations(Collection associationKeys) throws 
JAXRException {
+        return this.deleteOperation(associationKeys, "DELETE_ASSOCIATION");
+    }
+
+    public BulkResponse deleteClassificationSchemes(Collection schemeKeys) 
throws JAXRException {
+        return this.deleteOperation(schemeKeys, "DELETE_CLASSIFICATIONSCHEME");
+    }
+
+    public BulkResponse deleteConcepts(Collection conceptKeys) throws 
JAXRException {
+        return this.deleteOperation(conceptKeys, "DELETE_CONCEPT");
+    }
+
+    public BulkResponse deleteOrganizations(Collection orgkeys) throws 
JAXRException {
+        return this.deleteOperation(orgkeys, "DELETE_ORG");
+    }
+
+    public BulkResponse deleteServiceBindings(Collection bindingKeys) throws 
JAXRException {
+        return this.deleteOperation(bindingKeys, "DELETE_SERVICEBINDING");
+    }
+
+    public BulkResponse deleteServices(Collection serviceKeys) throws 
JAXRException {
+        return this.deleteOperation(serviceKeys, "DELETE_SERVICE");
+    }
+
+    /**
+     * Saves one or more Objects to the registry. An object may be a
+     * RegistryObject  subclass instance. If an object is not in the registry,
+     * it is created in the registry.  If it already exists in the registry
+     * and has been modified, then its  state is updated (replaced) in the
+     * registry
+     * <p/>
+     * TODO:Check if juddi can provide a facility to store a collection of 
heterogenous
+     * objects
+     * <p/>
+     * TODO - does this belong here?  it's really an overload of
+     * LifecycleManager.saveObjects, but all the help we need
+     * like saveOrganization() is up here...
+     *
+     * @param col
+     * @return a BulkResponse containing the Collection of keys for those 
objects
+     *         that were saved successfully and any SaveException that was 
encountered
+     *         in case of partial commit
+     * @throws JAXRException
+     */
+    public BulkResponse saveObjects(Collection col) throws JAXRException {
+
+        Iterator iter = col.iterator();
+
+        LinkedHashSet<Object> suc = new LinkedHashSet<Object>();
+        Collection<Exception> exc = new ArrayList<Exception>();
+
+        while (iter.hasNext()) {
+            RegistryObject reg = (RegistryObject) iter.next();
+
+            BulkResponse br = null;
+
+            Collection<RegistryObject> c = new ArrayList<RegistryObject>();
+            c.add(reg);
+
+            if (reg instanceof javax.xml.registry.infomodel.Association) {
+                br = saveAssociations(c, true);
+            }
+            else if (reg instanceof 
javax.xml.registry.infomodel.ClassificationScheme) {
+                br = saveClassificationSchemes(c);
+            }
+            else if (reg instanceof javax.xml.registry.infomodel.Concept) {
+                br = saveConcepts(c);
+            }
+            else if (reg instanceof javax.xml.registry.infomodel.Organization) 
{
+                br = saveOrganizations(c);
+            }
+            else if (reg instanceof javax.xml.registry.infomodel.Service) {
+                br = saveServices(c);
+            }
+            else if (reg instanceof 
javax.xml.registry.infomodel.ServiceBinding) {
+                br = saveServiceBindings(c);
+            }
+            else {
+                throw new JAXRException("Delete Operation for " + 
reg.getClass() 
+                        + " not implemented by Scout");
+            }
+
+            if (br.getCollection() != null) {
+                suc.addAll(br.getCollection());
+            }
+
+            if (br.getExceptions() != null) {
+                exc.addAll(br.getExceptions());
+            }
+        }
+
+        BulkResponseImpl bulk = new BulkResponseImpl();
+
+        /*
+         *  TODO - what is the right status?
+         */
+        bulk.setStatus(JAXRResponse.STATUS_SUCCESS);
+
+        bulk.setCollection(suc);
+        bulk.setExceptions(exc);
+
+        return bulk;
+    }
+
+
+    public BulkResponse saveAssociations(Collection associations, boolean 
replace) throws JAXRException {
+        BulkResponseImpl bulk = new BulkResponseImpl();
+        PublisherAssertion[] sarr = new 
PublisherAssertion[associations.size()];
+
+        Collection<Key> coll = new ArrayList<Key>();
+        Collection<Exception> exceptions = new ArrayList<Exception>();
+
+        Iterator iter = associations.iterator();
+        int currLoc = 0;
+        while (iter.hasNext()) {
+            
+                Association association = (Association) iter.next();
+                association.getSourceObject();
+                PublisherAssertion pa = 
ScoutJaxrUddiV3Helper.getPubAssertionFromJAXRAssociation(association);
+                sarr[currLoc] = pa;
+                currLoc++;
+            
+                // Save PublisherAssertion
+                PublisherAssertions bd = null;
+                try {
+                    bd = (PublisherAssertions) executeOperation(sarr, 
"SAVE_ASSOCIATION");
+                }
+                catch (RegistryV3Exception e) {
+                    exceptions.add(new SaveException(e));
+                    bulk.setExceptions(exceptions);
+                    bulk.setStatus(JAXRResponse.STATUS_FAILURE);
+                    return bulk;
+                }
+                if(bd != null)
+                {
+                       List<PublisherAssertion> publisherAssertionList = 
bd.getPublisherAssertion();
+                       PublisherAssertion[] keyarr = new 
PublisherAssertion[publisherAssertionList.size()];
+                       publisherAssertionList.toArray(keyarr);
+                       
+                       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);
+
+        return bulk;
+    }
+
+    public BulkResponse saveClassificationSchemes(Collection schemes) throws 
JAXRException {
+        //Now we need to convert the collection into a vector for juddi
+        BulkResponseImpl bulk = new BulkResponseImpl();
+        TModel[] entityarr = new TModel[schemes.size()];
+
+        LinkedHashSet<Key> coll = new LinkedHashSet<Key>();
+        Collection<Exception> exceptions = new ArrayList<Exception>();
+
+        Iterator iter = schemes.iterator();
+        int currLoc = 0;
+        while (iter.hasNext()) {
+            try {
+                TModel en =
+                               
ScoutJaxrUddiV3Helper.getTModelFromJAXRClassificationScheme((ClassificationScheme)
 iter.next());
+                entityarr[currLoc] = en;
+                currLoc++;
+            }
+            catch (ClassCastException ce) {
+                throw new UnexpectedObjectException();
+            }
+        }
+        log.debug("Method:save_classificationscheme: ENlength=" + 
entityarr.length);
+        // Save business
+        TModelDetail td = null;
+        try {
+            td = (TModelDetail) executeOperation(entityarr, "SAVE_TMODEL");
+        }
+        catch (RegistryV3Exception e) {
+            exceptions.add(new SaveException(e.getLocalizedMessage()));
+            bulk.setStatus(JAXRResponse.STATUS_FAILURE);
+            return bulk;
+        }
+
+        List<TModel> tmodelList = td.getTModel();
+        entityarr = new TModel[tmodelList.size()];
+        tmodelList.toArray(entityarr); 
+        log.debug("After Saving TModel. Obtained vector size:" + entityarr != 
null ? entityarr.length : 0);
+        for (int i = 0; entityarr != null && i < entityarr.length; i++) {
+            TModel tm = (TModel) entityarr[i];
+            coll.add(new KeyImpl(tm.getTModelKey()));
+        }
+
+        bulk.setCollection(coll);
+        bulk.setExceptions(exceptions);
+
+        return bulk;
+    }
+
+    public BulkResponse saveConcepts(Collection concepts) throws JAXRException 
{
+        //Now we need to convert the collection into a vector for juddi
+        BulkResponseImpl bulk = new BulkResponseImpl();
+        TModel[] entityarr = new TModel[concepts.size()];
+
+        LinkedHashSet<Key> coll = new LinkedHashSet<Key>();
+        Collection<Exception> exceptions = new ArrayList<Exception>();
+
+        Iterator iter = concepts.iterator();
+        int currLoc = 0;
+        while (iter.hasNext()) {
+            try {
+                TModel en =
+                       
ScoutJaxrUddiV3Helper.getTModelFromJAXRConcept((Concept) iter.next());
+                entityarr[currLoc] = en;
+                currLoc++;
+            }
+            catch (ClassCastException ce) {
+                throw new UnexpectedObjectException();
+            }
+        }
+        log.debug("Method:save_concept: ENlength=" + entityarr.length);
+        // Save business
+        TModelDetail td = null;
+        try {
+            td = (TModelDetail) executeOperation(entityarr, "SAVE_TMODEL");
+        }
+        catch (RegistryV3Exception e) {
+            exceptions.add(new SaveException(e.getLocalizedMessage()));
+            bulk.setStatus(JAXRResponse.STATUS_FAILURE);
+            return bulk;
+        }
+
+        List<TModel> tmodelList = td.getTModel();
+        entityarr = new TModel[tmodelList.size()];
+        tmodelList.toArray(entityarr);
+        
+        log.debug("After Saving TModel. Obtained vector size:" + entityarr != 
null ? entityarr.length : 0);
+        for (int i = 0; entityarr != null && i < entityarr.length; i++) {
+            TModel tm = (TModel) entityarr[i];
+            coll.add(new KeyImpl(tm.getTModelKey()));
+        }
+
+        bulk.setCollection(coll);
+        bulk.setExceptions(exceptions);
+
+        return bulk;
+    }
+
+    public BulkResponse saveOrganizations(Collection organizations) throws 
JAXRException {
+        //Now we need to convert the collection into a vector for juddi
+        BulkResponseImpl bulk = new BulkResponseImpl();
+        BusinessEntity[] entityarr = new BusinessEntity[organizations.size()];
+
+        LinkedHashSet<Key> coll = new LinkedHashSet<Key>();
+        Collection<Exception> exceptions = new ArrayList<Exception>();
+
+        Iterator iter = organizations.iterator();
+        int currLoc = 0;
+        while (iter.hasNext()) {
+            try {
+                BusinessEntity en =
+                       
ScoutJaxrUddiV3Helper.getBusinessEntityFromJAXROrg((Organization) iter.next());
+                entityarr[currLoc] = en;
+                currLoc++;
+            }
+            catch (ClassCastException ce) {
+                throw new UnexpectedObjectException();
+            }
+        }
+        log.debug("Method:save_business: ENlength=" + entityarr.length);
+        // Save business
+        BusinessDetail bd = null;
+        try {
+            bd = (BusinessDetail) executeOperation(entityarr, "SAVE_ORG");
+        }
+        catch (RegistryV3Exception e) {
+            exceptions.add(new SaveException(e.getLocalizedMessage()));
+            bulk.setStatus(JAXRResponse.STATUS_FAILURE);
+            return bulk;
+        }
+
+        List<BusinessEntity> bizEntityList = bd.getBusinessEntity();
+        
+        entityarr = new BusinessEntity[bizEntityList.size()];
+        bizEntityList.toArray(entityarr);
+        
+        log.debug("After Saving Business. Obtained vector size:" + entityarr 
!= null ? entityarr.length : 0);
+        for (int i = 0; entityarr != null && i < entityarr.length; i++) {
+            BusinessEntity entity = (BusinessEntity) entityarr[i];
+            coll.add(new KeyImpl(entity.getBusinessKey()));
+        }
+
+        bulk.setCollection(coll);
+        bulk.setExceptions(exceptions);
+
+        return bulk;
+    }
+
+    public BulkResponse saveServiceBindings(Collection bindings) throws 
JAXRException {
+        BulkResponseImpl bulk = new BulkResponseImpl();
+        BindingTemplate[] sbarr = new BindingTemplate[bindings.size()];
+
+        LinkedHashSet<Key> coll = new LinkedHashSet<Key>();
+        Collection<Exception> exceptions = new ArrayList<Exception>();
+
+        Iterator iter = bindings.iterator();
+        int currLoc = 0;
+        while (iter.hasNext()) {
+            try {
+                BindingTemplate bs = 
ScoutJaxrUddiV3Helper.getBindingTemplateFromJAXRSB((ServiceBinding) 
iter.next());
+                sbarr[currLoc] = bs;
+                currLoc++;
+            }
+            catch (ClassCastException ce) {
+                throw new UnexpectedObjectException();
+            }
+        }
+        // Save ServiceBinding
+        BindingDetail bd = null;
+        try {
+            bd = (BindingDetail) executeOperation(sbarr, 
"SAVE_SERVICE_BINDING");
+        }
+        catch (RegistryV3Exception e) {
+            exceptions.add(new SaveException(e.getLocalizedMessage()));
+            bulk.setStatus(JAXRResponse.STATUS_FAILURE);
+            return bulk;
+        }
+
+        List<BindingTemplate> bindingTemplateList = bd.getBindingTemplate();
+        sbarr = new BindingTemplate[bindingTemplateList.size()];
+        bindingTemplateList.toArray(sbarr);
+        
+        for (int i = 0; sbarr != null && i < sbarr.length; i++) {
+            BindingTemplate bt = (BindingTemplate) sbarr[i];
+            coll.add(new KeyImpl(bt.getBindingKey()));
+        }
+        if (coll.size()>0) {
+            bulk.setCollection(coll);
+        }
+        bulk.setExceptions(exceptions);
+
+        return bulk;
+    }
+
+    public BulkResponse saveServices(Collection services) throws JAXRException 
{
+        BulkResponseImpl bulk = new BulkResponseImpl();
+        BusinessService[] sarr = new BusinessService[services.size()];
+
+        LinkedHashSet<Key> coll = new LinkedHashSet<Key>();
+        Collection<Exception> exceptions = new ArrayList<Exception>();
+
+
+        Iterator iter = services.iterator();
+        int currLoc = 0;
+        while (iter.hasNext()) {
+            try {
+                BusinessService bs = 
ScoutJaxrUddiV3Helper.getBusinessServiceFromJAXRService((Service) iter.next());
+                sarr[currLoc] = bs;
+                currLoc++;
+            }
+            catch (ClassCastException ce) {
+                throw new UnexpectedObjectException();
+            }
+        }
+        // Save Service
+        ServiceDetail sd = null;
+        try {
+            sd = (ServiceDetail) executeOperation(sarr, "SAVE_SERVICE");
+        }
+        catch (RegistryV3Exception e) {
+            exceptions.add(new SaveException(e.getLocalizedMessage()));
+            bulk.setStatus(JAXRResponse.STATUS_FAILURE);
+            return bulk;
+        }
+
+        List<BusinessService> bizServiceList = sd.getBusinessService();
+        sarr = new BusinessService[bizServiceList.size()];
+        bizServiceList.toArray(sarr);
+        
+        for (int i = 0; sarr != null && i < sarr.length; i++) {
+            BusinessService entity = (BusinessService) sarr[i];
+            coll.add(new KeyImpl(entity.getServiceKey()));
+        }
+        bulk.setCollection(coll);
+        bulk.setExceptions(exceptions);
+
+        return bulk;
+    }
+
+    public void confirmAssociation(Association assoc) throws JAXRException, 
InvalidRequestException {
+       //Store it in the UDDI registry
+       HashSet<Association> col = new HashSet<Association>();
+       col.add(assoc);
+       BulkResponse br = this.saveAssociations(col, true);
+       if(br.getExceptions()!= null)
+          throw new JAXRException("Confiming the Association Failed");
+    }
+
+    public void unConfirmAssociation(Association assoc) throws JAXRException, 
InvalidRequestException {
+       //TODO
+       //Delete it from the UDDI registry
+       Collection<Key> col = new ArrayList<Key>();
+       col.add(assoc.getKey());
+       BulkResponse br = this.deleteAssociations(col);
+       if(br.getExceptions()!= null)
+          throw new JAXRException("UnConfiming the Association Failed");
+    }
+
+    //Protected Methods
+    protected Object executeOperation(Object dataarray, String op)
+            throws RegistryV3Exception, JAXRException {
+        if (registry == null) {
+            throw new IllegalStateException("No registry");
+        }
+
+        IRegistryV3 ireg = (IRegistryV3) registry.getRegistry();
+        
+        ConnectionImpl connection = registry.getConnection();
+        AuthToken token = getAuthToken(connection, ireg);
+        if (token == null) {
+            throw new IllegalStateException("No auth token returned");
+        }
+
+        Object regobj;
+        if(op.equalsIgnoreCase("SAVE_ASSOCIATION"))
+        {
+            regobj = ireg.setPublisherAssertions(token.getAuthInfo(), 
(PublisherAssertion[]) dataarray);
+        } else
+        if (op.equalsIgnoreCase("SAVE_SERVICE")) {
+            regobj = ireg.saveService(token.getAuthInfo(), 
(BusinessService[])dataarray);
+        }
+        else if (op.equalsIgnoreCase("SAVE_SERVICE_BINDING")) {
+            regobj = ireg.saveBinding(token.getAuthInfo(), (BindingTemplate[]) 
dataarray);
+        }
+        else if (op.equalsIgnoreCase("SAVE_ORG")) {
+            regobj = ireg.saveBusiness(token.getAuthInfo(), (BusinessEntity[]) 
dataarray);
+        }
+        else if (op.equalsIgnoreCase("SAVE_TMODEL")) {
+            regobj = ireg.saveTModel(token.getAuthInfo(), (TModel[]) 
dataarray);
+        }
+        else if (op.equalsIgnoreCase("DELETE_ORG")) {
+            clearPublisherAssertions(token.getAuthInfo(), ireg);
+            regobj = ireg.deleteBusiness(token.getAuthInfo(), (String[]) 
dataarray);
+        }
+        else if (op.equalsIgnoreCase("DELETE_SERVICE")) {
+            regobj = ireg.deleteService(token.getAuthInfo(), (String[]) 
dataarray);
+        }
+        else if (op.equalsIgnoreCase("DELETE_SERVICEBINDING")) {
+            regobj = ireg.deleteBinding(token.getAuthInfo(), (String[]) 
dataarray);
+        }
+        else if (op.equalsIgnoreCase("DELETE_CONCEPT")) {
+            regobj = ireg.deleteTModel(token.getAuthInfo(), (String[]) 
dataarray);
+        }
+        else if (op.equalsIgnoreCase("DELETE_ASSOCIATION")) {
+           int len = ((String[]) dataarray).length;
+            PublisherAssertion[] paarr = new PublisherAssertion[len];
+            for(int i=0;i<len;i++)
+            {
+               String keystr = ((String[])dataarray)[i];
+               paarr[i] = 
ScoutJaxrUddiV3Helper.getPubAssertionFromJAXRAssociationKey(keystr);
+            }
+            regobj = ireg.deletePublisherAssertions(token.getAuthInfo(), 
paarr);
+        }
+        else if (op.equalsIgnoreCase("DELETE_CLASSIFICATIONSCHEME")) {
+            regobj = ireg.deleteTModel(token.getAuthInfo(), (String[]) 
dataarray);
+        }
+        else {
+            throw new JAXRException("Unsupported operation:" + op);
+        }
+
+        return regobj;
+    }
+
+    private void clearPublisherAssertions( String authinfo,IRegistryV3 ireg)
+    {
+       Vector<PublisherAssertion> pasvect  = null;
+       PublisherAssertion[] pasarr  = null;
+       try
+       {
+          AssertionStatusReport report = 
ireg.getAssertionStatusReport(authinfo,"status:complete");
+          List<AssertionStatusItem> assertionStatusItemList = 
report.getAssertionStatusItem();
+          AssertionStatusItem[] assertionStatusItemArr = 
+                 new AssertionStatusItem[assertionStatusItemList.size()];
+
+          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));
+          }
+
+          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++;
+                 }
+          }
+       }
+       catch (RegistryV3Exception e)
+       {
+          throw new RuntimeException(e);
+       }
+
+          if(pasarr != null && pasarr.length > 0)
+             try
+             {
+                ireg.deletePublisherAssertions(authinfo, pasarr);
+             }
+             catch (RegistryV3Exception e)
+             { 
+                log.debug("Ignoring exception " + e.getMessage(),e);
+             }
+       }
+
+
+
+    protected BulkResponse deleteOperation(Collection<Key> keys, String op)
+            throws JAXRException {
+        if(keys == null)
+        throw new JAXRException("Keys provided to "+op+" are null");
+       
+        //Now we need to convert the collection into a vector for juddi
+        BulkResponseImpl bulk = new BulkResponseImpl();
+        String[] keyarr = new String[keys.size()];
+        Result[] keyResultArr;
+
+        LinkedHashSet<Key> coll = new LinkedHashSet<Key>();
+        Collection<Exception> exceptions = new ArrayList<Exception>();
+
+        try {
+            Iterator iter = keys.iterator();
+            int currLoc = 0;
+            while (iter.hasNext()) {
+                Key key = (Key) iter.next();
+                keyarr[currLoc] = key.getId();
+                currLoc++;
+            }
+            // Save business
+            DispositionReport bd = (DispositionReport) 
executeOperation(keyarr, op);
+            List<Result> resultList = bd.getResult();
+            keyResultArr = new Result[resultList.size()];
+            resultList.toArray(keyResultArr); 
+            
+            log.debug("After deleting Business. Obtained vector size:" + 
keyResultArr != null ? keyResultArr.length : 0);
+            for (int i = 0; keyResultArr != null && i < keyResultArr.length; 
i++) {
+                Result result = (Result) keyResultArr[i];
+                int errno = result.getErrno();
+                if (errno == 0) {
+                    coll.addAll(keys);
+                }
+                else {
+                    ErrInfo errinfo = result.getErrInfo();
+                    DeleteException de = new 
DeleteException(errinfo.getErrCode() + ":" + errinfo.getValue());
+                    bulk.setStatus(JAXRResponse.STATUS_FAILURE);
+                    exceptions.add(de);
+                }
+            }
+        }
+        catch (RegistryV3Exception regExcept) {
+
+            /*
+             * jUDDI (and prollie others) throw an exception on any fault in
+             * the transaction w/ the registry, so we don't get any partial
+             * success
+             */
+            DeleteException de = new DeleteException(regExcept.getFaultCode()
+                    + ":" + regExcept.getFaultString(), regExcept);
+
+            bulk.setStatus(JAXRResponse.STATUS_FAILURE);
+            exceptions.add(de);
+        }
+        catch (JAXRException tran) {
+            exceptions.add(new JAXRException("Apache JAXR Impl:", tran));
+            bulk.setStatus(JAXRResponse.STATUS_FAILURE);
+        }
+
+        bulk.setCollection(coll);
+        bulk.setExceptions(exceptions);
+
+        return bulk;
+    }
+
+
+    /**
+     * Get the Auth Token from the registry
+     *
+     * @param connection
+     * @param ireg
+     * @return auth token
+     * @throws JAXRException
+     */
+    private AuthToken getAuthToken(ConnectionImpl connection, IRegistryV3 ireg)
+            throws JAXRException {
+        Set creds = connection.getCredentials();
+        String username = "", pwd = "";
+        if (creds != null) {
+               Iterator it = creds.iterator();
+               while (it.hasNext()) {
+                       PasswordAuthentication pass = (PasswordAuthentication) 
it.next();
+                       username = pass.getUserName();
+                       pwd = new String(pass.getPassword());
+               }
+        }
+
+        AuthToken token = null;
+        try {
+            token = ireg.getAuthToken(username, pwd);
+        }
+        catch (Exception e)
+        { 
+            throw new JAXRException(e);
+        }
+        return token;
+    }
+
+    private PublisherAssertion getPublisherAssertion(AssertionStatusItem asi)
+    {
+       PublisherAssertion pa = this.objectFactory.createPublisherAssertion();
+        
+       if(asi != null)
+       {
+            String sourceKey = asi.getFromKey();
+            String targetKey = asi.getToKey();
+        
+            if (sourceKey != null) {
+            pa.setFromKey(sourceKey);
+            }
+            
+            if (targetKey != null) {
+            pa.setToKey(targetKey);
+            }
+            
+            KeyedReference keyr = asi.getKeyedReference();
+            
+            if (keyr != null) {
+            pa.setKeyedReference(keyr);
+            }
+            //pa.setTModelKey(keyr.getTModelKey());
+            //pa.setKeyName(keyr.getKeyName());
+            //pa.setKeyValue(keyr.getKeyValue()); // -CBC- These are redundant?
+               
+       }return pa;
+    }
+    
+    Organization createOrganization(BusinessDetail bizDetail) throws 
JAXRException {
+        return ScoutUddiV3JaxrHelper.getOrganization(bizDetail, this);
+    }    
+    
+    Organization createOrganization(BusinessInfo bizInfo) throws JAXRException 
{
+        String key = bizInfo.getBusinessKey();
+        List<Name> names = bizInfo.getName(); 
+        
+        List<Description> descriptions = bizInfo.getDescription();
+        List<ServiceInfo> serviceInfos = 
bizInfo.getServiceInfos().getServiceInfo();
+        
+        OrganizationImpl org = new OrganizationImpl(this);
+        org.setKey(createKey(key));
+        if (names != null && names.size() > 0) {
+            org.setName(createInternationalString(names.get(0).getValue()));
+        }
+        if (descriptions != null && descriptions.size() > 0) {
+            
org.setDescription(createInternationalString(descriptions.get(0).getValue()));
+        }
+        if (serviceInfos != null && serviceInfos.size() > 0) {
+            List<Service> services = new 
ArrayList<Service>(serviceInfos.size());
+            for (int i = 0; i < serviceInfos.size(); i++) {
+                ServiceInfo serviceInfo = serviceInfos.get(i);
+                services.add(createService(serviceInfo));
+            }
+            org.addServices(services);
+        }
+
+        return org;
+    }
+
+    Service createService(ServiceInfo serviceInfo) throws JAXRException {
+        String key = serviceInfo.getServiceKey();
+        List<Name> names = serviceInfo.getName();
+        ServiceImpl service = new ServiceImpl(this);
+        service.setKey(createKey(key));
+        if (names != null && names.size() > 0) {
+            
service.setName(createInternationalString(names.get(0).getValue()));
+        }
+        return service;
+    }
+
+}

Modified: 
webservices/scout/trunk/src/main/java/org/apache/ws/scout/registry/BusinessQueryManagerImpl.java
URL: 
http://svn.apache.org/viewvc/webservices/scout/trunk/src/main/java/org/apache/ws/scout/registry/BusinessQueryManagerImpl.java?rev=811951&r1=811950&r2=811951&view=diff
==============================================================================
--- 
webservices/scout/trunk/src/main/java/org/apache/ws/scout/registry/BusinessQueryManagerImpl.java
 (original)
+++ 
webservices/scout/trunk/src/main/java/org/apache/ws/scout/registry/BusinessQueryManagerImpl.java
 Sun Sep  6 23:21:23 2009
@@ -126,7 +126,7 @@
                                           Collection externalIdentifiers,
                                           Collection externalLinks) throws 
JAXRException
     {
-        IRegistry registry = registryService.getRegistry();
+        IRegistry registry = (IRegistry) registryService.getRegistry();
         try
         {
             FindQualifiers juddiFindQualifiers = 
mapFindQualifiers(findQualifiers);
@@ -148,8 +148,8 @@
                for (BusinessInfo businessInfo : bizInfoList) {
                     //Now get the details on the individual biz
                     BusinessDetail detail = 
registry.getBusinessDetail(businessInfo.getBusinessKey());
-                    
orgs.add(registryService.getLifeCycleManagerImpl().createOrganization(detail));
-                               }
+                    
orgs.add(((BusinessLifeCycleManagerImpl)registryService.getLifeCycleManagerImpl()).createOrganization(detail));
+                }
                bizInfoArr = new BusinessInfo[bizInfoList.size()];
                bizInfoList.toArray(bizInfoArr);
             }
@@ -166,7 +166,7 @@
                                          Collection associationTypes) throws 
JAXRException
     {
         //TODO: Currently we just return all the Association objects owned by 
the caller
-        IRegistry registry = registryService.getRegistry();
+        IRegistry registry = (IRegistry) registryService.getRegistry();
         try
         {
             ConnectionImpl con = 
((RegistryServiceImpl)getRegistryService()).getConnection();
@@ -205,7 +205,7 @@
                                                Collection associationTypes) 
throws JAXRException
     {
         //TODO: Currently we just return all the Association objects owned by 
the caller
-        IRegistry registry = registryService.getRegistry();
+        IRegistry registry = (IRegistry) registryService.getRegistry();
         try
         {
             ConnectionImpl con = 
((RegistryServiceImpl)getRegistryService()).getConnection();
@@ -423,7 +423,7 @@
             else {
 
                 //Lets ask the uddi registry if it has the TModels
-                IRegistry registry = registryService.getRegistry();
+                IRegistry registry = (IRegistry) registryService.getRegistry();
                 FindQualifiers juddiFindQualifiers = 
mapFindQualifiers(findQualifiers);
                 try
                 {
@@ -513,7 +513,7 @@
         LinkedHashSet<Concept> col = new LinkedHashSet<Concept>();
 
         //Lets ask the uddi registry if it has the TModels
-        IRegistry registry = registryService.getRegistry();
+        IRegistry registry = (IRegistry) registryService.getRegistry();
         FindQualifiers juddiFindQualifiers = mapFindQualifiers(findQualifiers);
         Iterator iter = null;
         if (namePatterns != null) iter = namePatterns.iterator();
@@ -558,7 +558,7 @@
     {
         BulkResponseImpl blkRes = new BulkResponseImpl();
 
-        IRegistry iRegistry = registryService.getRegistry();
+        IRegistry iRegistry = (IRegistry) registryService.getRegistry();
         FindQualifiers juddiFindQualifiers = mapFindQualifiers(findQualifiers);
 
         try
@@ -623,7 +623,7 @@
     {
         BulkResponseImpl blkRes = new BulkResponseImpl();
 
-        IRegistry iRegistry = registryService.getRegistry();
+        IRegistry iRegistry = (IRegistry) registryService.getRegistry();
         FindQualifiers juddiFindQualifiers = mapFindQualifiers(findQualifiers);
         Name[] juddiNames = mapNamePatterns(namePatterns);
 
@@ -677,7 +677,7 @@
 
     public RegistryObject getRegistryObject(String id, String objectType) 
throws JAXRException
     {
-        IRegistry registry = registryService.getRegistry();
+        IRegistry registry = (IRegistry) registryService.getRegistry();
         BusinessLifeCycleManager lcm = 
registryService.getBusinessLifeCycleManager();
 
         if 
(LifeCycleManager.CLASSIFICATION_SCHEME.equalsIgnoreCase(objectType)) {
@@ -803,7 +803,7 @@
 
     public BulkResponse getRegistryObjects(Collection objectKeys, String 
objectType) throws JAXRException
     {
-        IRegistry registry = registryService.getRegistry();
+        IRegistry registry = (IRegistry) registryService.getRegistry();
         //Convert into a vector of strings
         String[] keys = new String[objectKeys.size()];
         int currLoc = 0;
@@ -845,7 +845,7 @@
                         List<BusinessInfo> bizInfoList = 
infos.getBusinessInfo();
                         for (BusinessInfo businessInfo: bizInfoList) {
                             BusinessDetail detail = 
registry.getBusinessDetail(businessInfo.getBusinessKey());
-                            
col.add(registryService.getLifeCycleManagerImpl().createOrganization(detail));
+                            
col.add(((BusinessLifeCycleManagerImpl)registryService.getLifeCycleManagerImpl()).createOrganization(detail));
                         }
                     }
                 }
@@ -902,7 +902,7 @@
     public BulkResponse getRegistryObjects(String id) throws JAXRException
     {
         if (LifeCycleManager.ORGANIZATION.equalsIgnoreCase(id)) {
-            IRegistry registry = registryService.getRegistry();
+            IRegistry registry = (IRegistry) registryService.getRegistry();
                ConnectionImpl con = 
((RegistryServiceImpl)getRegistryService()).getConnection();
             AuthToken auth = this.getAuthToken(con,registry);
                LinkedHashSet<Organization> orgs = null;
@@ -914,7 +914,7 @@
                        orgs = new LinkedHashSet<Organization>();
                        for (BusinessInfo businessInfo : bizInfoList) {
                                BusinessDetail detail = 
registry.getBusinessDetail(businessInfo.getBusinessKey());
-                        
orgs.add(registryService.getLifeCycleManagerImpl().createOrganization(detail));
+                        
orgs.add(((BusinessLifeCycleManagerImpl)registryService.getLifeCycleManagerImpl()).createOrganization(detail));
                                        }
                }
                



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to