You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scout-dev@ws.apache.org by ks...@apache.org on 2007/05/03 06:24:40 UTC

svn commit: r534703 - in /webservices/scout/trunk/modules/scout/src/java/org/apache/ws/scout: registry/BusinessQueryManagerImpl.java registry/infomodel/RegistryObjectImpl.java util/ScoutJaxrUddiHelper.java util/ScoutUddiJaxrHelper.java

Author: kstam
Date: Wed May  2 21:24:39 2007
New Revision: 534703

URL: http://svn.apache.org/viewvc?view=rev&rev=534703
Log:
SCOUT-30 Applying patch which enables the handling of classifications

Modified:
    webservices/scout/trunk/modules/scout/src/java/org/apache/ws/scout/registry/BusinessQueryManagerImpl.java
    webservices/scout/trunk/modules/scout/src/java/org/apache/ws/scout/registry/infomodel/RegistryObjectImpl.java
    webservices/scout/trunk/modules/scout/src/java/org/apache/ws/scout/util/ScoutJaxrUddiHelper.java
    webservices/scout/trunk/modules/scout/src/java/org/apache/ws/scout/util/ScoutUddiJaxrHelper.java

Modified: webservices/scout/trunk/modules/scout/src/java/org/apache/ws/scout/registry/BusinessQueryManagerImpl.java
URL: http://svn.apache.org/viewvc/webservices/scout/trunk/modules/scout/src/java/org/apache/ws/scout/registry/BusinessQueryManagerImpl.java?view=diff&rev=534703&r1=534702&r2=534703
==============================================================================
--- webservices/scout/trunk/modules/scout/src/java/org/apache/ws/scout/registry/BusinessQueryManagerImpl.java (original)
+++ webservices/scout/trunk/modules/scout/src/java/org/apache/ws/scout/registry/BusinessQueryManagerImpl.java Wed May  2 21:24:39 2007
@@ -24,6 +24,7 @@
 import org.apache.ws.scout.registry.infomodel.AssociationImpl;
 import org.apache.ws.scout.util.EnumerationHelper;
 import org.apache.ws.scout.util.ScoutUddiJaxrHelper;
+import org.apache.ws.scout.util.ScoutJaxrUddiHelper;
 
 import org.apache.ws.scout.uddi.AssertionStatusItem;
 import org.apache.ws.scout.uddi.AssertionStatusReport;
@@ -121,7 +122,10 @@
             FindQualifiers juddiFindQualifiers = mapFindQualifiers(findQualifiers);
             Name[] nameArray = mapNamePatterns(namePatterns);
             BusinessList result = registry.findBusiness(nameArray,
-                    null, null, null, null,
+                    null, 
+                    ScoutJaxrUddiHelper.getIdentifierBagFromExternalIdentifiers(externalIdentifiers), 
+                    ScoutJaxrUddiHelper.getCategoryBagFromClassifications(classifications), 
+                    null,
                     juddiFindQualifiers,
                     registryService.getMaxRows());
             BusinessInfo[] a = result.getBusinessInfos() != null ? result.getBusinessInfos().getBusinessInfoArray() : null;
@@ -475,25 +479,24 @@
         scheme.addChildConcept(c);
     }
 
-    public BulkResponse findClassificationSchemes(Collection findQualifiers,
-                                                  Collection namePatterns,
-                                                  Collection classifications,
-                                                  Collection externalLinks) throws JAXRException
-    {
-        //TODO: Handle this better
-        Collection col = new ArrayList();
-        Iterator iter = namePatterns.iterator();
-        String name = "";
-        while(iter.hasNext())
-        {
-          name = (String)iter.next();
-          break;
-        }
-
-        col.add(this.findClassificationSchemeByName(findQualifiers,name));
-        return new BulkResponseImpl(col);
-
-    }
+    public BulkResponse findClassificationSchemes(Collection findQualifiers, 
+    											  Collection namePatterns, 
+    											  Collection classifications, 
+    											  Collection externalLinks) throws JAXRException
+	{
+		//TODO: Handle this better
+		Collection col = new ArrayList();
+		Iterator iter = namePatterns.iterator();
+		String name = "";
+		while(iter.hasNext())
+		{
+			name = (String)iter.next();
+			break;
+		}
+		
+		col.add(this.findClassificationSchemeByName(findQualifiers,name));
+		return new BulkResponseImpl(col);
+	}
 
     public Concept findConceptByPath(String path) throws JAXRException
     {
@@ -523,7 +526,10 @@
             String namestr = (String) iter.next();
             try
             {
-                TModelList list = registry.findTModel(namestr, null, null, juddiFindQualifiers, 10);
+                TModelList list = registry.findTModel(namestr, 
+                        ScoutJaxrUddiHelper.getCategoryBagFromClassifications(classifications), 
+                        ScoutJaxrUddiHelper.getIdentifierBagFromExternalIdentifiers(externalIdentifiers), 
+                		juddiFindQualifiers, 10);
                 TModelInfos infos = null;
                 TModelInfo[] tmarr = null;
                 if (list != null) infos = list.getTModelInfos();
@@ -565,7 +571,10 @@
         try
         {
  
-            BindingDetail l = iRegistry.findBinding(serviceKey.getId(),null,null,juddiFindQualifiers,registryService.getMaxRows());
+            BindingDetail l = iRegistry.findBinding(serviceKey.getId(),
+                    ScoutJaxrUddiHelper.getCategoryBagFromClassifications(classifications), 
+            		null,
+            		juddiFindQualifiers,registryService.getMaxRows());
 
             /*
              * now convert  from jUDDI ServiceInfo objects to JAXR Services
@@ -635,8 +644,11 @@
                 id = orgKey.getId();
             }
 
-            ServiceList l = iRegistry.findService(id, juddiNames,
-                    null, null, juddiFindQualifiers, registryService.getMaxRows());
+            ServiceList l = iRegistry.findService(id, 
+            		juddiNames,
+                    ScoutJaxrUddiHelper.getCategoryBagFromClassifications(classifications), 
+                    null, 
+                    juddiFindQualifiers, registryService.getMaxRows());
 
             /*
              * now convert  from jUDDI ServiceInfo objects to JAXR Services

Modified: webservices/scout/trunk/modules/scout/src/java/org/apache/ws/scout/registry/infomodel/RegistryObjectImpl.java
URL: http://svn.apache.org/viewvc/webservices/scout/trunk/modules/scout/src/java/org/apache/ws/scout/registry/infomodel/RegistryObjectImpl.java?view=diff&rev=534703&r1=534702&r2=534703
==============================================================================
--- webservices/scout/trunk/modules/scout/src/java/org/apache/ws/scout/registry/infomodel/RegistryObjectImpl.java (original)
+++ webservices/scout/trunk/modules/scout/src/java/org/apache/ws/scout/registry/infomodel/RegistryObjectImpl.java Wed May  2 21:24:39 2007
@@ -109,10 +109,12 @@
 
     public void addClassifications(Collection collection)
     {
-        for (Iterator i = collection.iterator(); i.hasNext();)
-        {
-            Classification classification = (Classification) i.next();
-            classifications.add(classification);
+        if (collection!=null) {
+            for (Iterator i = collection.iterator(); i.hasNext();)
+            {
+                Classification classification = (Classification) i.next();
+                classifications.add(classification);
+            }
         }
     }
 
@@ -202,11 +204,13 @@
 
     public void addExternalIdentifiers(Collection collection)
     {
-        for (Iterator i = collection.iterator(); i.hasNext();)
-        {
-            ExternalIdentifier externalId = (ExternalIdentifier) i.next();
-            externalIds.add(externalId);
-            ((ExternalIdentifierImpl) externalId).setRegistryObject(this);
+        if (collection!=null) {
+            for (Iterator i = collection.iterator(); i.hasNext();)
+            {
+                ExternalIdentifier externalId = (ExternalIdentifier) i.next();
+                externalIds.add(externalId);
+                ((ExternalIdentifierImpl) externalId).setRegistryObject(this);
+            }
         }
     }
 

Modified: webservices/scout/trunk/modules/scout/src/java/org/apache/ws/scout/util/ScoutJaxrUddiHelper.java
URL: http://svn.apache.org/viewvc/webservices/scout/trunk/modules/scout/src/java/org/apache/ws/scout/util/ScoutJaxrUddiHelper.java?view=diff&rev=534703&r1=534702&r2=534703
==============================================================================
--- webservices/scout/trunk/modules/scout/src/java/org/apache/ws/scout/util/ScoutJaxrUddiHelper.java (original)
+++ webservices/scout/trunk/modules/scout/src/java/org/apache/ws/scout/util/ScoutJaxrUddiHelper.java Wed May  2 21:24:39 2007
@@ -40,6 +40,7 @@
 import org.apache.ws.scout.uddi.URLType;
 import org.apache.ws.scout.uddi.TModelInstanceDetails;
 import org.apache.ws.scout.uddi.TModelInstanceInfo;
+import org.apache.xmlbeans.XmlObject;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -311,7 +312,7 @@
                 bs.setServiceKey(serve.getKey().getId());
             }
 
-			addCategories(serve.getClassifications(), bs.addNewCategoryBag());
+			bs.setCategoryBag(getCategoryBagFromClassifications(serve.getClassifications()));
 
    		    // TODO: need to do ServiceBindings->BindingTemplates
    		    
@@ -370,8 +371,8 @@
 				emptyDesc.setStringValue(scheme.getDescription().getValue());
 			}
 
-			addIdentifiers(scheme.getExternalIdentifiers(), tm.addNewIdentifierBag());
-			addCategories(scheme.getClassifications(), tm.addNewCategoryBag());
+			tm.setIdentifierBag(getIdentifierBagFromExternalIdentifiers(scheme.getExternalIdentifiers()));
+			tm.setCategoryBag(getCategoryBagFromClassifications(scheme.getClassifications()));
 			
 			// ToDO: overviewDoc
 		} catch (Exception ud) {
@@ -414,8 +415,8 @@
 				emptyDesc.setStringValue(scheme.getDescription().getValue());
 			}
 
-			addIdentifiers(scheme.getExternalIdentifiers(), tm.addNewIdentifierBag());
-			addCategories(scheme.getClassifications(), tm.addNewCategoryBag());
+			tm.setIdentifierBag(getIdentifierBagFromExternalIdentifiers(scheme.getExternalIdentifiers()));
+			tm.setCategoryBag(getCategoryBagFromClassifications(scheme.getClassifications()));
 
 			// ToDO: overviewDoc
 
@@ -550,8 +551,8 @@
 				}
             }
 			
-		  addIdentifiers(org.getExternalIdentifiers(), biz.addNewIdentifierBag());
-		  addCategories(org.getClassifications(), biz.addNewCategoryBag());
+		  biz.setIdentifierBag(getIdentifierBagFromExternalIdentifiers(org.getExternalIdentifiers()));
+		  biz.setCategoryBag(getCategoryBagFromClassifications(org.getClassifications()));
 			
 		} catch (Exception ud) {
             throw new JAXRException("Apache JAXR Impl:", ud);
@@ -676,7 +677,7 @@
        return uri;
    }
 
-    /**
+	/**
      * According to JAXR Javadoc, there are two types of classification, internal and external and they use the Classification, Concept,     
      * and ClassificationScheme objects.  It seems the only difference between internal and external (as related to UDDI) is that the
      * name/value pair of the categorization is held in the Concept for internal classifications and the Classification for external (bypassing
@@ -690,12 +691,13 @@
      * @param destinationObj
      * @throws JAXRException
      */
-    private static void addCategories(Collection classifications, CategoryBag cbag) throws JAXRException {
+	public static CategoryBag getCategoryBagFromClassifications(Collection classifications) throws JAXRException {
     	try {
-			if (classifications == null || cbag == null)
-				return;
+			if (classifications == null)
+				return null;
     		
     		// Classifications
+			CategoryBag cbag = (CategoryBag)(XmlObject.Factory.newInstance()).changeType(CategoryBag.type);
 			Iterator classiter = classifications.iterator();
 			while (classiter.hasNext()) {
 				Classification classification = (Classification) classiter.next();
@@ -733,24 +735,26 @@
 					}
 				}
 			}
+			return cbag;
     	} catch (Exception ud) {
 			throw new JAXRException("Apache JAXR Impl:", ud);
 		}
     }
 	
-    /**
+	/**
      * Adds the objects identifiers from JAXR's external identifier collection
      * 
      * @param identifiers
      * @param ibag
      * @throws JAXRException
      */
-    private static void addIdentifiers(Collection identifiers, IdentifierBag ibag) throws JAXRException {
+	public static IdentifierBag getIdentifierBagFromExternalIdentifiers(Collection identifiers) throws JAXRException {
     	try {
-			if (identifiers == null || ibag == null)
-				return;
+			if (identifiers == null)
+				return null;
     		
     		// Identifiers
+			IdentifierBag ibag = (IdentifierBag)(XmlObject.Factory.newInstance()).changeType(IdentifierBag.type);
 			Iterator iditer = identifiers.iterator();
 			while (iditer.hasNext()) {
 				ExternalIdentifier extid = (ExternalIdentifier) iditer.next();
@@ -775,10 +779,10 @@
 					}
 				}
 			}
+			return ibag;
     	} catch (Exception ud) {
 			throw new JAXRException("Apache JAXR Impl:", ud);
 		}
     }
-
     
 }

Modified: webservices/scout/trunk/modules/scout/src/java/org/apache/ws/scout/util/ScoutUddiJaxrHelper.java
URL: http://svn.apache.org/viewvc/webservices/scout/trunk/modules/scout/src/java/org/apache/ws/scout/util/ScoutUddiJaxrHelper.java?view=diff&rev=534703&r1=534702&r2=534703
==============================================================================
--- webservices/scout/trunk/modules/scout/src/java/org/apache/ws/scout/util/ScoutUddiJaxrHelper.java (original)
+++ webservices/scout/trunk/modules/scout/src/java/org/apache/ws/scout/util/ScoutUddiJaxrHelper.java Wed May  2 21:24:39 2007
@@ -43,6 +43,7 @@
 import javax.xml.registry.LifeCycleManager;
 import javax.xml.registry.infomodel.*;
 import java.util.Collection;
+import java.util.ArrayList;
 
 /**
  * Helper class that does UDDI->Jaxr Mapping
@@ -131,9 +132,8 @@
          }
       }
 
-
-      addExternalIdentifiers(entity.getIdentifierBag(), org, lcm);
-      addClassifications(entity.getCategoryBag(), org, lcm);
+      org.addExternalIdentifiers(getExternalIdentifiers(entity.getIdentifierBag(), lcm));
+      org.addClassifications(getClassifications(entity.getCategoryBag(), lcm));
       
       return org;
    }
@@ -210,8 +210,8 @@
          }
       }
 
-      addExternalIdentifiers(entity.getIdentifierBag(), org, lcm);
-      addClassifications(entity.getCategoryBag(), org, lcm);
+      org.addExternalIdentifiers(getExternalIdentifiers(entity.getIdentifierBag(), lcm));
+      org.addClassifications(getClassifications(entity.getCategoryBag(), lcm));
       
       return org;
    }
@@ -256,7 +256,7 @@
           serve.addServiceBinding(getServiceBinding(bindingTemplate, lcm));
       }
       
-      addClassifications(bs.getCategoryBag(), serve, lcm);
+      serve.addClassifications(getClassifications(bs.getCategoryBag(), lcm));
       
       return serve;
    }
@@ -323,16 +323,15 @@
       TModel tmodel = tc != null && tc.length > 0 ? tc[0] : null;
       
       if (tmodel != null) {
-      concept.setKey(lcm.createKey(tmodel.getTModelKey()));
+    	  concept.setKey(lcm.createKey(tmodel.getTModelKey()));
     	  concept.setName(lcm.createInternationalString(tmodel.getName().getStringValue()));
 
-      Description desc = getDescription(tmodel);
+    	  Description desc = getDescription(tmodel);
     	  if( desc != null ) concept.setDescription(lcm.createInternationalString(desc.getStringValue()));
 
-          addExternalIdentifiers(tmodel.getIdentifierBag(), concept, lcm);
-    	  addClassifications(tmodel.getCategoryBag(), concept, lcm);
+          concept.addExternalIdentifiers(getExternalIdentifiers(tmodel.getIdentifierBag(), lcm));
+          concept.addClassifications(getClassifications(tmodel.getCategoryBag(), lcm));
       }
-
       return concept;
    }
 
@@ -346,8 +345,8 @@
       Description desc = getDescription(tmodel);
       concept.setDescription(lcm.createInternationalString(desc.getStringValue()));
 
-      addExternalIdentifiers(tmodel.getIdentifierBag(), concept, lcm);
-	  addClassifications(tmodel.getCategoryBag(), concept, lcm);
+      concept.addExternalIdentifiers(getExternalIdentifiers(tmodel.getIdentifierBag(), lcm));
+      concept.addClassifications(getClassifications(tmodel.getCategoryBag(), lcm));
 
       return concept;
    }
@@ -377,26 +376,29 @@
     * @param lcm
     * @throws JAXRException
     */
-   private static void addClassifications(CategoryBag cbag, RegistryObject destinationObj, LifeCycleManager lcm) throws JAXRException {
-      if (cbag != null) {
-          KeyedReference[] keyrarr = cbag.getKeyedReferenceArray();
-          for (int i = 0; keyrarr != null && i < keyrarr.length; i++)
-          {
-             KeyedReference keyr = (KeyedReference)keyrarr[i];
-             Classification classification = new ClassificationImpl(lcm);
-             classification.setValue(keyr.getKeyValue());
-             classification.setName(new InternationalStringImpl(keyr.getKeyName()));
-             
-             String tmodelKey = keyr.getTModelKey();
-             if (tmodelKey != null) {
-            	 ClassificationScheme scheme = new ClassificationSchemeImpl(lcm);
-            	 scheme.setKey(new KeyImpl(tmodelKey));
-            	 classification.setClassificationScheme(scheme);
-             }
-             destinationObj.addClassification(classification);
-          }
-      }
-   }
+   public static Collection getClassifications(CategoryBag cbag, LifeCycleManager lcm) throws JAXRException {
+	   Collection<Classification> classifications = null;
+	   if (cbag != null) {
+		    classifications = new ArrayList<Classification>();
+			KeyedReference[] keyrarr = cbag.getKeyedReferenceArray();
+			for (int i = 0; keyrarr != null && i < keyrarr.length; i++)
+			{
+				KeyedReference keyr = (KeyedReference)keyrarr[i];
+				Classification classification = new ClassificationImpl(lcm);
+				classification.setValue(keyr.getKeyValue());
+				classification.setName(new InternationalStringImpl(keyr.getKeyName()));
+				 
+				String tmodelKey = keyr.getTModelKey();
+				if (tmodelKey != null) {
+					ClassificationScheme scheme = new ClassificationSchemeImpl(lcm);
+					scheme.setKey(new KeyImpl(tmodelKey));
+					classification.setClassificationScheme(scheme);
+				}
+				classifications.add(classification);
+			}
+		}
+	    return classifications;
+	}
    
    /**
     * External Identifiers
@@ -406,8 +408,10 @@
     * @param lcm
     * @throws JAXRException
     */
-   private static void addExternalIdentifiers(IdentifierBag ibag, RegistryObject destinationObj, LifeCycleManager lcm) throws JAXRException {
+   public static Collection getExternalIdentifiers(IdentifierBag ibag, LifeCycleManager lcm) throws JAXRException {
+	  Collection<ExternalIdentifier> extidentifiers = null;
       if (ibag != null) {
+    	  extidentifiers = new ArrayList<ExternalIdentifier>();
           KeyedReference[] keyrarr = ibag.getKeyedReferenceArray();
           for (int i = 0; keyrarr != null && i < keyrarr.length; i++)
           {
@@ -422,9 +426,10 @@
             	 scheme.setKey(new KeyImpl(tmodelKey));
             	 extId.setIdentificationScheme(scheme);
              }
-             destinationObj.addExternalIdentifier(extId);
+             extidentifiers.add(extId);
           }
       }
+      return extidentifiers;
    }
    
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: scout-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: scout-dev-help@ws.apache.org