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/01 14:47:38 UTC
svn commit: r534045 - in
/webservices/scout/trunk/modules/scout/src/java/org/apache/ws/scout/util:
ScoutJaxrUddiHelper.java ScoutUddiJaxrHelper.java
Author: kstam
Date: Tue May 1 05:47:37 2007
New Revision: 534045
URL: http://svn.apache.org/viewvc?view=rev&rev=534045
Log:
Applying patch for SCOUT-23 supplied by Jeff Faath.
Modified:
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/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=534045&r1=534044&r2=534045
==============================================================================
--- 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 Tue May 1 05:47:37 2007
@@ -36,6 +36,7 @@
import org.apache.ws.scout.uddi.Description;
import org.apache.ws.scout.uddi.HostingRedirector;
import org.apache.ws.scout.uddi.IdentifierBag;
+import org.apache.ws.scout.uddi.CategoryBag;
import org.apache.ws.scout.uddi.URLType;
import org.apache.ws.scout.uddi.TModelInstanceDetails;
import org.apache.ws.scout.uddi.TModelInstanceInfo;
@@ -310,6 +311,10 @@
bs.setServiceKey(serve.getKey().getId());
}
+ addCategories(serve.getClassifications(), bs.addNewCategoryBag());
+
+ // TODO: need to do ServiceBindings->BindingTemplates
+
log.debug("BusinessService=" + bs.toString());
} catch (Exception ud) {
throw new JAXRException("Apache JAXR Impl:", ud);
@@ -364,7 +369,11 @@
if (scheme.getDescription() != null && scheme.getDescription().getValue() != null) {
emptyDesc.setStringValue(scheme.getDescription().getValue());
}
- // ToDO: overviewDoc,identifierBag,categoryBag
+
+ addIdentifiers(scheme.getExternalIdentifiers(), tm.addNewIdentifierBag());
+ addCategories(scheme.getClassifications(), tm.addNewCategoryBag());
+
+ // ToDO: overviewDoc
} catch (Exception ud) {
throw new JAXRException("Apache JAXR Impl:", ud);
}
@@ -373,7 +382,7 @@
public static TModel getTModelFromJAXRConcept(Concept scheme)
throws JAXRException {
- TModel tm = TModel.Factory.newInstance();
+ TModel tm = TModel.Factory.newInstance();
if (scheme == null)
return null;
try {
@@ -405,13 +414,17 @@
emptyDesc.setStringValue(scheme.getDescription().getValue());
}
- // ToDO: overviewDoc,identifierBag,categoryBag
+ addIdentifiers(scheme.getExternalIdentifiers(), tm.addNewIdentifierBag());
+ addCategories(scheme.getClassifications(), tm.addNewCategoryBag());
+
+ // ToDO: overviewDoc
+
} catch (Exception ud) {
throw new JAXRException("Apache JAXR Impl:", ud);
}
return tm;
}
-
+
public static BusinessEntity getBusinessEntityFromJAXROrg(Organization org)
throws JAXRException {
BusinessEntity biz = BusinessEntity.Factory.newInstance();
@@ -536,26 +549,10 @@
emptyDU.setStringValue(link.getExternalURI());
}
}
- // External Identifiers
- Collection exid = org.getExternalIdentifiers();
- Iterator exiditer = exid.iterator();
- while (exiditer.hasNext()) {
- ExternalIdentifier ei = (ExternalIdentifier) exiditer.next();
-
- IdentifierBag ibag = biz.addNewIdentifierBag();
- KeyedReference keyr = ibag.addNewKeyedReference();
- Key ekey = ei.getKey();
- if (ekey != null && ekey.getId() != null)
- keyr.setTModelKey(ekey.getId());
-
- if (ei.getValue() != null) {
- keyr.setKeyValue(ei.getValue());
- }
-
- if (ei.getName() != null && ei.getName().getValue() != null) {
- keyr.setKeyName(ei.getName().getValue());
- }
- }
+
+ addIdentifiers(org.getExternalIdentifiers(), biz.addNewIdentifierBag());
+ addCategories(org.getClassifications(), biz.addNewCategoryBag());
+
} catch (Exception ud) {
throw new JAXRException("Apache JAXR Impl:", ud);
}
@@ -679,4 +676,109 @@
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
+ * the Concept entirely).
+ *
+ * The translation to UDDI is simple. Relevant objects have a category bag which contains a bunch of KeyedReferences (name/value pairs).
+ * These KeyedReferences optionally refer to a tModel that identifies the type of category (translates to the ClassificationScheme key). If
+ * this is set and the tModel doesn't exist in the UDDI registry, then an invalid key error will occur when trying to save the object.
+ *
+ * @param regObj
+ * @param destinationObj
+ * @throws JAXRException
+ */
+ private static void addCategories(Collection classifications, CategoryBag cbag) throws JAXRException {
+ try {
+ if (classifications == null || cbag == null)
+ return;
+
+ // Classifications
+ Iterator classiter = classifications.iterator();
+ while (classiter.hasNext()) {
+ Classification classification = (Classification) classiter.next();
+ if (classification != null ) {
+ KeyedReference keyr = cbag.addNewKeyedReference();
+
+ InternationalStringImpl iname = null;
+ String value = null;
+ ClassificationScheme scheme = classification.getClassificationScheme();
+ if (classification.isExternal()) {
+ iname = (InternationalStringImpl) ((RegistryObject) classification).getName();
+ value = classification.getValue();
+ scheme = classification.getClassificationScheme();
+ }
+ else {
+ Concept concept = classification.getConcept();
+ if (concept != null) {
+ iname = (InternationalStringImpl) ((RegistryObject) concept).getName();
+ value = concept.getValue();
+ scheme = concept.getClassificationScheme();
+ }
+ }
+
+ String name = iname.getValue();
+ if (name != null)
+ keyr.setKeyName(name);
+
+ if (value != null)
+ keyr.setKeyValue(value);
+
+ if (scheme != null) {
+ Key key = scheme.getKey();
+ if (key != null && key.getId() != null)
+ keyr.setTModelKey(key.getId());
+ }
+ }
+ }
+ } 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 {
+ try {
+ if (identifiers == null || ibag == null)
+ return;
+
+ // Identifiers
+ Iterator iditer = identifiers.iterator();
+ while (iditer.hasNext()) {
+ ExternalIdentifier extid = (ExternalIdentifier) iditer.next();
+ if (extid != null ) {
+ KeyedReference keyr = ibag.addNewKeyedReference();
+
+ InternationalStringImpl iname = (InternationalStringImpl) ((RegistryObject) extid).getName();
+ String value = extid.getValue();
+ ClassificationScheme scheme = extid.getIdentificationScheme();
+
+ String name = iname.getValue();
+ if (name != null)
+ keyr.setKeyName(name);
+
+ if (value != null)
+ keyr.setKeyValue(value);
+
+ if (scheme != null) {
+ Key key = scheme.getKey();
+ if (key != null && key.getId() != null)
+ keyr.setTModelKey(key.getId());
+ }
+ }
+ }
+ } 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=534045&r1=534044&r2=534045
==============================================================================
--- 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 Tue May 1 05:47:37 2007
@@ -31,6 +31,7 @@
import org.apache.ws.scout.uddi.DiscoveryURL;
import org.apache.ws.scout.uddi.DiscoveryURLs;
import org.apache.ws.scout.uddi.IdentifierBag;
+import org.apache.ws.scout.uddi.CategoryBag;
import org.apache.ws.scout.uddi.KeyedReference;
import org.apache.ws.scout.uddi.Name;
import org.apache.ws.scout.uddi.ServiceInfo;
@@ -131,22 +132,9 @@
}
- //External Identifiers
- IdentifierBag ibag = entity.getIdentifierBag();
- if (ibag != null)
- {
- KeyedReference[] keyrarr = ibag.getKeyedReferenceArray();
- for (int i = 0; keyrarr != null && i < keyrarr.length; i++)
- {
- KeyedReference keyr = (KeyedReference)keyrarr[i];
- ExternalIdentifier eid = new ExternalIdentifierImpl(lcm);
- String kkey = keyr.getTModelKey();
- if (kkey != null) eid.setKey(new KeyImpl(kkey));
- eid.setValue(keyr.getKeyValue());
- eid.setName(new InternationalStringImpl(keyr.getKeyName()));
- org.addExternalIdentifier(eid);
- }
- }
+ addExternalIdentifiers(entity.getIdentifierBag(), org, lcm);
+ addClassifications(entity.getCategoryBag(), org, lcm);
+
return org;
}
@@ -222,22 +210,9 @@
}
}
- //External Identifiers
- IdentifierBag ibag = entity.getIdentifierBag();
- if (ibag != null)
- {
- KeyedReference[] keyrarr = ibag.getKeyedReferenceArray();
- for (int i = 0; keyrarr != null && i < keyrarr.length; i++)
- {
- KeyedReference keyr = (KeyedReference)keyrarr[i];
- ExternalIdentifier eid = new ExternalIdentifierImpl(lcm);
- String kkey = keyr.getTModelKey();
- if (kkey != null) eid.setKey(new KeyImpl(kkey));
- eid.setValue(keyr.getKeyValue());
- eid.setName(new InternationalStringImpl(keyr.getKeyName()));
- org.addExternalIdentifier(eid);
- }
- }
+ addExternalIdentifiers(entity.getIdentifierBag(), org, lcm);
+ addClassifications(entity.getCategoryBag(), org, lcm);
+
return org;
}
@@ -281,6 +256,8 @@
serve.addServiceBinding(getServiceBinding(bindingTemplate, lcm));
}
+ addClassifications(bs.getCategoryBag(), serve, lcm);
+
return serve;
}
@@ -351,6 +328,9 @@
Description desc = getDescription(tmodel);
if( desc != null ) concept.setDescription(lcm.createInternationalString(desc.getStringValue()));
+
+ addExternalIdentifiers(tmodel.getIdentifierBag(), concept, lcm);
+ addClassifications(tmodel.getCategoryBag(), concept, lcm);
}
return concept;
@@ -366,6 +346,9 @@
Description desc = getDescription(tmodel);
concept.setDescription(lcm.createInternationalString(desc.getStringValue()));
+ addExternalIdentifiers(tmodel.getIdentifierBag(), concept, lcm);
+ addClassifications(tmodel.getCategoryBag(), concept, lcm);
+
return concept;
}
@@ -386,4 +369,62 @@
return desc;
}
+ /**
+ * Classifications - going to assume all are external since UDDI does not use "Concepts".
+ *
+ * @param cbag
+ * @param destinationObj
+ * @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);
+ }
+ }
+ }
+
+ /**
+ * External Identifiers
+ *
+ * @param ibag
+ * @param destinationObj
+ * @param lcm
+ * @throws JAXRException
+ */
+ private static void addExternalIdentifiers(IdentifierBag ibag, RegistryObject destinationObj, LifeCycleManager lcm) throws JAXRException {
+ if (ibag != null) {
+ KeyedReference[] keyrarr = ibag.getKeyedReferenceArray();
+ for (int i = 0; keyrarr != null && i < keyrarr.length; i++)
+ {
+ KeyedReference keyr = (KeyedReference)keyrarr[i];
+ ExternalIdentifier extId = new ExternalIdentifierImpl(lcm);
+ extId.setValue(keyr.getKeyValue());
+ extId.setName(new InternationalStringImpl(keyr.getKeyName()));
+
+ String tmodelKey = keyr.getTModelKey();
+ if (tmodelKey != null) {
+ ClassificationScheme scheme = new ClassificationSchemeImpl(lcm);
+ scheme.setKey(new KeyImpl(tmodelKey));
+ extId.setIdentificationScheme(scheme);
+ }
+ destinationObj.addExternalIdentifier(extId);
+ }
+ }
+ }
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: scout-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: scout-dev-help@ws.apache.org