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/07/10 20:46:25 UTC
svn commit: r555036 - in /webservices/scout/trunk/scout/src:
main/java/org/apache/ws/scout/util/ScoutJaxrUddiHelper.java
main/java/org/apache/ws/scout/util/ScoutUddiJaxrHelper.java
test/java/org/apache/ws/scout/registry/JAXRLocaleTest.java
Author: kstam
Date: Tue Jul 10 11:46:24 2007
New Revision: 555036
URL: http://svn.apache.org/viewvc?view=rev&rev=555036
Log:
SCOUT-40, Applying patch by Jarek Gawor to fix incorrect handling of InternationalString.
Added:
webservices/scout/trunk/scout/src/test/java/org/apache/ws/scout/registry/JAXRLocaleTest.java (with props)
Modified:
webservices/scout/trunk/scout/src/main/java/org/apache/ws/scout/util/ScoutJaxrUddiHelper.java
webservices/scout/trunk/scout/src/main/java/org/apache/ws/scout/util/ScoutUddiJaxrHelper.java
Modified: webservices/scout/trunk/scout/src/main/java/org/apache/ws/scout/util/ScoutJaxrUddiHelper.java
URL: http://svn.apache.org/viewvc/webservices/scout/trunk/scout/src/main/java/org/apache/ws/scout/util/ScoutJaxrUddiHelper.java?view=diff&rev=555036&r1=555035&r2=555036
==============================================================================
--- webservices/scout/trunk/scout/src/main/java/org/apache/ws/scout/util/ScoutJaxrUddiHelper.java (original)
+++ webservices/scout/trunk/scout/src/main/java/org/apache/ws/scout/util/ScoutJaxrUddiHelper.java Tue Jul 10 11:46:24 2007
@@ -18,7 +18,6 @@
import java.util.Collection;
import java.util.Iterator;
-import java.util.Locale;
import java.util.StringTokenizer;
import javax.xml.registry.JAXRException;
@@ -29,7 +28,9 @@
import javax.xml.registry.infomodel.EmailAddress;
import javax.xml.registry.infomodel.ExternalIdentifier;
import javax.xml.registry.infomodel.ExternalLink;
+import javax.xml.registry.infomodel.InternationalString;
import javax.xml.registry.infomodel.Key;
+import javax.xml.registry.infomodel.LocalizedString;
import javax.xml.registry.infomodel.Organization;
import javax.xml.registry.infomodel.PostalAddress;
import javax.xml.registry.infomodel.RegistryObject;
@@ -172,16 +173,16 @@
if (svc != null && svc.getKey() != null && svc.getKey().getId() != null) {
bt.setServiceKey(svc.getKey().getId());
}
-
- Description emptyDesc = bt.addNewDescription();
-
- if (((RegistryObject) serve).getDescription() != null &&
- ((RegistryObject) serve).getDescription().getValue() != null) {
-
- emptyDesc.setStringValue(((RegistryObject) serve)
- .getDescription().getValue());
-
- }
+
+ InternationalString idesc = ((RegistryObject) serve).getDescription();
+
+ if (idesc != null) {
+ for (LocalizedString locName : idesc.getLocalizedStrings()) {
+ Description desc = bt.addNewDescription();
+ desc.setStringValue(locName.getValue());
+ desc.setLang(locName.getLocale().getLanguage());
+ }
+ }
// SpecificationLink
Collection slcol = serve.getSpecificationLinks();
@@ -286,24 +287,23 @@
Service serve) throws JAXRException {
BusinessService bs = BusinessService.Factory.newInstance();
try {
- InternationalStringImpl iname = (InternationalStringImpl) ((RegistryObject) serve)
- .getName();
- String name = iname.getValue();
- // bs.setDefaultNameString( name,
- // Locale.getDefault().getLanguage());
- Name emptyName = bs.addNewName();
-
- if (name != null) emptyName.setStringValue(name);
- emptyName.setLang(Locale.getDefault().getLanguage());
-
- Description emptyDesc = bs.addNewDescription();
-
- if (((RegistryObject) serve).getDescription() != null &&
- ((RegistryObject) serve).getDescription().getValue() != null) {
-
- emptyDesc.setStringValue(((RegistryObject) serve).getDescription()
- .getValue());
+ InternationalString iname = ((RegistryObject) serve).getName();
+
+ for (LocalizedString locName : iname.getLocalizedStrings()) {
+ Name name = bs.addNewName();
+ name.setStringValue(locName.getValue());
+ name.setLang(locName.getLocale().getLanguage());
}
+
+ InternationalString idesc = ((RegistryObject) serve).getDescription();
+
+ if (idesc != null) {
+ for (LocalizedString locName : idesc.getLocalizedStrings()) {
+ Description desc = bs.addNewDescription();
+ desc.setStringValue(locName.getValue());
+ desc.setLang(locName.getLocale().getLanguage());
+ }
+ }
Organization o = serve.getProvidingOrganization();
@@ -370,21 +370,22 @@
tm.setOperator(s.getName());
}
- InternationalStringImpl iname = (InternationalStringImpl) ((RegistryObject) scheme)
- .getName();
- String name = iname.getValue();
-
- Name emptyName = tm.addNewName();
-
- if (name != null) {
- emptyName.setStringValue(name);
+ InternationalString iname = ((RegistryObject) scheme).getName();
+
+ for (LocalizedString locName : iname.getLocalizedStrings()) {
+ Name name = tm.addNewName();
+ name.setStringValue(locName.getValue());
+ name.setLang(locName.getLocale().getLanguage());
}
- emptyName.setLang(Locale.getDefault().getLanguage());
-
- Description emptyDesc = tm.addNewDescription();
+
+ InternationalString idesc = ((RegistryObject) scheme).getDescription();
- if (scheme.getDescription() != null && scheme.getDescription().getValue() != null) {
- emptyDesc.setStringValue(scheme.getDescription().getValue());
+ if (idesc != null) {
+ for (LocalizedString locName : idesc.getLocalizedStrings()) {
+ Description desc = tm.addNewDescription();
+ desc.setStringValue(locName.getValue());
+ desc.setLang(locName.getLocale().getLanguage());
+ }
}
tm.setIdentifierBag(getIdentifierBagFromExternalIdentifiers(scheme.getExternalIdentifiers()));
@@ -414,22 +415,23 @@
if (sl2 != null && sl2.getName() != null)
tm.setOperator(sl2.getName());
- InternationalStringImpl iname = (InternationalStringImpl) ((RegistryObject) scheme)
- .getName();
- String name = iname.getValue();
-
- Name emptyName = tm.addNewName();
+ InternationalString iname = ((RegistryObject) scheme).getName();
- if (name != null) {
- emptyName.setStringValue(name);
+ for (LocalizedString locName : iname.getLocalizedStrings()) {
+ Name name = tm.addNewName();
+ name.setStringValue(locName.getValue());
+ name.setLang(locName.getLocale().getLanguage());
}
- emptyName.setLang(Locale.getDefault().getLanguage());
-
- Description emptyDesc = tm.addNewDescription();
- if (scheme.getDescription() != null && scheme.getDescription().getValue() != null) {
- emptyDesc.setStringValue(scheme.getDescription().getValue());
- }
+ InternationalString idesc = ((RegistryObject) scheme).getDescription();
+
+ if (idesc != null) {
+ for (LocalizedString locName : idesc.getLocalizedStrings()) {
+ Description desc = tm.addNewDescription();
+ desc.setStringValue(locName.getValue());
+ desc.setLang(locName.getLocale().getLanguage());
+ }
+ }
tm.setIdentifierBag(getIdentifierBagFromExternalIdentifiers(scheme.getExternalIdentifiers()));
tm.setCategoryBag(getCategoryBagFromClassifications(scheme.getClassifications()));
@@ -454,21 +456,27 @@
if (key != null && key.getId() != null)
biz.setBusinessKey(key.getId());
// Lets get the Organization attributes at the top level
- String language = Locale.getDefault().getLanguage();
-
- Name emptyName = biz.addNewName();
- if (org.getName() != null && org.getName().getValue() != null) {
- emptyName.setStringValue(org.getName().getValue());
+ InternationalString iname = org.getName();
+
+ if (iname != null) {
+ for (LocalizedString locName : iname.getLocalizedStrings()) {
+ Name name = biz.addNewName();
+ name.setStringValue(locName.getValue());
+ name.setLang(locName.getLocale().getLanguage());
+ }
}
- emptyName.setLang(language);
-
- Description emptyDesc = biz.addNewDescription();
- if (org.getDescription() != null && org.getDescription().getValue() != null) {
- emptyDesc.setStringValue(org.getDescription().getValue());
+ InternationalString idesc = org.getDescription();
+
+ if (idesc != null) {
+ for (LocalizedString locName : idesc.getLocalizedStrings()) {
+ Description desc = biz.addNewDescription();
+ desc.setStringValue(locName.getValue());
+ desc.setLang(locName.getLocale().getLanguage());
+ }
}
-
+
if (org.getPrimaryContact() != null &&
org.getPrimaryContact().getPersonName()!= null &&
org.getPrimaryContact().getPersonName().getFullName() != null) {
Modified: webservices/scout/trunk/scout/src/main/java/org/apache/ws/scout/util/ScoutUddiJaxrHelper.java
URL: http://svn.apache.org/viewvc/webservices/scout/trunk/scout/src/main/java/org/apache/ws/scout/util/ScoutUddiJaxrHelper.java?view=diff&rev=555036&r1=555035&r2=555036
==============================================================================
--- webservices/scout/trunk/scout/src/main/java/org/apache/ws/scout/util/ScoutUddiJaxrHelper.java (original)
+++ webservices/scout/trunk/scout/src/main/java/org/apache/ws/scout/util/ScoutUddiJaxrHelper.java Tue Jul 10 11:46:24 2007
@@ -18,6 +18,7 @@
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Locale;
import javax.xml.registry.JAXRException;
import javax.xml.registry.LifeCycleManager;
@@ -98,8 +99,12 @@
Description desc = descarray != null && descarray.length > 0 ? descarray[0]: null;
Organization org = new OrganizationImpl(lcm);
- if(name != null ) org.setName(getIString(name, lcm));
- if( desc != null) org.setDescription(getIString((String)desc.getStringValue(), lcm));
+ if(name != null ) {
+ org.setName(getIString(n.getLang(), name, lcm));
+ }
+ if( desc != null) {
+ org.setDescription(getIString(desc.getLang(), desc.getStringValue(), lcm));
+ }
org.setKey(lcm.createKey(entity.getBusinessKey()));
//Set Services also
@@ -176,8 +181,12 @@
Description desc = descarr != null && descarr.length > 0 ? descarr[0] : null;
Organization org = new OrganizationImpl(lcm);
- if( name != null ) org.setName(getIString(name, lcm));
- if( desc != null ) org.setDescription(getIString(desc.getStringValue(), lcm));
+ if( name != null ) {
+ org.setName(getIString(n.getLang(), name, lcm));
+ }
+ if( desc != null ) {
+ org.setDescription(getIString(desc.getLang(), desc.getStringValue(), lcm));
+ }
org.setKey(lcm.createKey(entity.getBusinessKey()));
//Set Services also
@@ -239,6 +248,12 @@
return org;
}
+ private static InternationalString getIString(String lang, String str, LifeCycleManager blm)
+ throws JAXRException
+ {
+ return blm.createInternationalString(getLocale(lang), str);
+ }
+
public static InternationalString getIString(String str, LifeCycleManager blm)
throws JAXRException
{
@@ -263,12 +278,14 @@
if (n != null) {
String name = n.getStringValue();
- serve.setName(lcm.createInternationalString(name));
+ serve.setName(lcm.createInternationalString(getLocale(n.getLang()), name));
}
Description[] descarr = bs.getDescriptionArray();
Description desc = descarr != null && descarr.length > 0 ? descarr[0] : null;
- if(desc != null ) serve.setDescription(lcm.createInternationalString(desc.getStringValue()));
+ if (desc != null ) {
+ serve.setDescription(lcm.createInternationalString(getLocale(desc.getLang()), desc.getStringValue()));
+ }
//Populate the ServiceBindings for this Service
BindingTemplates bts = bs.getBindingTemplates();
@@ -301,7 +318,7 @@
if (n != null) {
String name = n.getStringValue();
- service.setName(lcm.createInternationalString(name));
+ service.setName(lcm.createInternationalString(getLocale(n.getLang()), name));
}
return service;
@@ -347,10 +364,12 @@
if (tmodel != null) {
concept.setKey(lcm.createKey(tmodel.getTModelKey()));
- concept.setName(lcm.createInternationalString(tmodel.getName().getStringValue()));
+ concept.setName(lcm.createInternationalString(getLocale(tmodel.getName().getLang()), tmodel.getName().getStringValue()));
Description desc = getDescription(tmodel);
- if( desc != null ) concept.setDescription(lcm.createInternationalString(desc.getStringValue()));
+ if( desc != null ) {
+ concept.setDescription(lcm.createInternationalString(getLocale(desc.getLang()), desc.getStringValue()));
+ }
concept.addExternalIdentifiers(getExternalIdentifiers(tmodel.getIdentifierBag(), lcm));
concept.addClassifications(getClassifications(tmodel.getCategoryBag(), lcm));
@@ -363,11 +382,11 @@
{
Concept concept = new ConceptImpl(lcm);
concept.setKey(lcm.createKey(tmodel.getTModelKey()));
- concept.setName(lcm.createInternationalString(tmodel.getName().getStringValue()));
+ concept.setName(lcm.createInternationalString(getLocale(tmodel.getName().getLang()), tmodel.getName().getStringValue()));
Description desc = getDescription(tmodel);
if (desc != null) {
- concept.setDescription(lcm.createInternationalString(desc.getStringValue()));
+ concept.setDescription(lcm.createInternationalString(getLocale(desc.getLang()), desc.getStringValue()));
}
concept.addExternalIdentifiers(getExternalIdentifiers(tmodel.getIdentifierBag(), lcm));
@@ -381,7 +400,7 @@
{
Concept concept = new ConceptImpl(lcm);
concept.setKey(lcm.createKey(tm.getTModelKey()));
- concept.setName(lcm.createInternationalString(tm.getName().getStringValue()));
+ concept.setName(lcm.createInternationalString(getLocale(tm.getName().getLang()), tm.getName().getStringValue()));
return concept;
}
@@ -457,4 +476,13 @@
return extidentifiers;
}
+ private static Locale getLocale(String lang) {
+ if (lang == null || lang.trim().length() == 0) {
+ return Locale.getDefault();
+ } else if (lang.equalsIgnoreCase(Locale.getDefault().getLanguage())) {
+ return Locale.getDefault();
+ } else {
+ return new Locale(lang);
+ }
+ }
}
Added: webservices/scout/trunk/scout/src/test/java/org/apache/ws/scout/registry/JAXRLocaleTest.java
URL: http://svn.apache.org/viewvc/webservices/scout/trunk/scout/src/test/java/org/apache/ws/scout/registry/JAXRLocaleTest.java?view=auto&rev=555036
==============================================================================
--- webservices/scout/trunk/scout/src/test/java/org/apache/ws/scout/registry/JAXRLocaleTest.java (added)
+++ webservices/scout/trunk/scout/src/test/java/org/apache/ws/scout/registry/JAXRLocaleTest.java Tue Jul 10 11:46:24 2007
@@ -0,0 +1,199 @@
+/**
+ *
+ * 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.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.Locale;
+
+import javax.xml.registry.BulkResponse;
+import javax.xml.registry.BusinessLifeCycleManager;
+import javax.xml.registry.BusinessQueryManager;
+import javax.xml.registry.JAXRException;
+import javax.xml.registry.JAXRResponse;
+import javax.xml.registry.LifeCycleManager;
+import javax.xml.registry.RegistryService;
+import javax.xml.registry.infomodel.Concept;
+import javax.xml.registry.infomodel.InternationalString;
+import javax.xml.registry.infomodel.Key;
+import javax.xml.registry.infomodel.Organization;
+import javax.xml.registry.infomodel.Service;
+
+import org.apache.ws.scout.BaseTestCase;
+
+/**
+ */
+public class JAXRLocaleTest extends BaseTestCase
+{
+ private BusinessLifeCycleManager blm = null;
+
+ public void setUp()
+ {
+ super.setUp();
+ }
+
+ public void tearDown()
+ {
+ super.tearDown();
+ }
+
+ public void testPublishOrganizationAndService() throws Exception {
+ login();
+
+ RegistryService rs = connection.getRegistryService();
+ BusinessQueryManager bqm = rs.getBusinessQueryManager();
+ blm = rs.getBusinessLifeCycleManager();
+
+ InternationalString is;
+ BulkResponse br;
+ Key key;
+ Locale locale = Locale.GERMAN;
+
+ // create Organization
+
+ Organization organization = (Organization) blm.createObject(BusinessLifeCycleManager.ORGANIZATION);
+
+ is = getIString(locale, "Apache Scout Org");
+ organization.setName(is);
+ is = getIString(locale, "This is the org for Apache Scout Test");
+ organization.setDescription(is);
+
+ Collection<Organization> organizations = new ArrayList<Organization>();
+ organizations.add(organization);
+
+ br = blm.saveOrganizations(organizations);
+ checkResponse(br);
+
+ assertEquals(1, br.getCollection().size());
+ key = (Key) br.getCollection().iterator().next();
+
+ Organization organization1 = (Organization) bqm.getRegistryObject(key.getId(), LifeCycleManager.ORGANIZATION);
+
+ System.out.println(organization1.getName().getValue() + " " + organization1.getDescription().getValue());
+
+ assertEquals(organization.getName().getValue(locale),
+ organization1.getName().getValue(locale));
+
+ assertEquals(organization.getDescription().getValue(locale),
+ organization1.getDescription().getValue(locale));
+
+ // create Service
+ Service service = (Service) blm.createObject(BusinessLifeCycleManager.SERVICE);
+
+ is = getIString(locale, "Apache Scout Service");
+ service.setName(is);
+ is = getIString(locale, "This is the service for Apache Scout Test");
+ service.setDescription(is);
+
+ organization1.addService(service);
+
+ Collection<Service> services = new ArrayList<Service>();
+ services.add(service);
+
+ br = blm.saveServices(services);
+ checkResponse(br);
+
+ assertEquals(1, br.getCollection().size());
+ key = (Key) br.getCollection().iterator().next();
+
+ Service service1 = (Service) bqm.getRegistryObject(key.getId(), LifeCycleManager.SERVICE);
+
+ System.out.println(service1.getName().getValue() + " " + service1.getDescription().getValue());
+
+ assertEquals(service.getName().getValue(locale),
+ service1.getName().getValue(locale));
+
+ assertEquals(service.getDescription().getValue(locale),
+ service1.getDescription().getValue(locale));
+
+ }
+
+ public void testPublishConcept() throws Exception {
+ login();
+
+ RegistryService rs = connection.getRegistryService();
+ BusinessQueryManager bqm = rs.getBusinessQueryManager();
+ blm = rs.getBusinessLifeCycleManager();
+
+ Locale locale = Locale.GERMAN;
+
+ Concept concept = (Concept) blm.createObject(BusinessLifeCycleManager.CONCEPT);
+ InternationalString is;
+
+ is = getIString(locale, "Apache Scout Concept -- APACHE SCOUT TEST");
+ concept.setName(is);
+ is = getIString(locale, "This is the concept for Apache Scout Test");
+ concept.setDescription(is);
+
+ Collection<Concept> concepts = new ArrayList<Concept>();
+ concepts.add(concept);
+
+ BulkResponse br = blm.saveConcepts(concepts);
+ checkResponse(br);
+
+ assertEquals(1, br.getCollection().size());
+ Key key = (Key) br.getCollection().iterator().next();
+
+ Concept concept1 = (Concept) bqm.getRegistryObject(key.getId(), LifeCycleManager.CONCEPT);
+
+ System.out.println(concept1.getName().getValue() + " " + concept1.getDescription().getValue());
+
+ /*
+ * XXXX: This does not work properly as Juddy does not store the xml:lang attribute
+ * in its data structure (or db) for a Concept.
+ */
+ // assertEquals(concept.getName().getValue(locale),
+ // concept1.getName().getValue(locale));
+
+ assertEquals(concept.getDescription().getValue(locale),
+ concept1.getDescription().getValue(locale));
+ }
+
+ private void checkResponse(BulkResponse br) throws JAXRException {
+ if (br.getStatus() == JAXRResponse.STATUS_SUCCESS)
+ {
+ System.out.println("Object saved.");
+ Collection coll = br.getCollection();
+ Iterator iter = coll.iterator();
+ while (iter.hasNext())
+ {
+ Key key = (Key) iter.next();
+ System.out.println("Saved Key=" + key.getId());
+ }//end while
+ } else
+ {
+ System.err.println("JAXRExceptions " +
+ "occurred during save:");
+ Collection exceptions = br.getExceptions();
+ Iterator iter = exceptions.iterator();
+ while (iter.hasNext())
+ {
+ Exception e = (Exception) iter.next();
+ System.err.println(e.toString());
+ fail(e.toString());
+ }
+ }
+ }
+
+ private InternationalString getIString(Locale locale, String str)
+ throws JAXRException
+ {
+ return blm.createInternationalString(locale, str);
+ }
+
+}
Propchange: webservices/scout/trunk/scout/src/test/java/org/apache/ws/scout/registry/JAXRLocaleTest.java
------------------------------------------------------------------------------
svn:eol-style = native
---------------------------------------------------------------------
To unsubscribe, e-mail: scout-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: scout-dev-help@ws.apache.org