SCOUT-99
Make sure we copy over all the localized strings and not just the first one.
git-svn-id: https://svn.apache.org/repos/asf/webservices/scout/trunk@955333 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/ws/scout/util/ScoutUddiJaxrHelper.java b/src/main/java/org/apache/ws/scout/util/ScoutUddiJaxrHelper.java
index 9d8529d..c56cdd6 100644
--- a/src/main/java/org/apache/ws/scout/util/ScoutUddiJaxrHelper.java
+++ b/src/main/java/org/apache/ws/scout/util/ScoutUddiJaxrHelper.java
@@ -112,19 +112,32 @@
throws JAXRException
{
List<Name> namesList = businessEntity.getName();
- Name n = null;
- if (namesList.size()>0) n = namesList.get(0);
-
List<Description> descriptionList = businessEntity.getDescription();
- Description desc =null;
- if (descriptionList.size()>0) desc = descriptionList.get(0);
Organization org = new OrganizationImpl(lifeCycleManager);
- if(n != null ) {
- org.setName(getIString(n.getLang(), n.getValue(), lifeCycleManager));
+ if ((namesList != null) && (namesList.size() > 0)) {
+ InternationalString is = null;
+ for (int i = 0; i < namesList.size(); i++) {
+ Name n = namesList.get(i);
+ if (is == null) {
+ is = getIString(n.getLang(), n.getValue(), lifeCycleManager);
+ } else {
+ is.setValue(getLocale(n.getLang()), n.getValue());
+ }
+ }
+ org.setName(is);
}
- if( desc != null) {
- org.setDescription(getIString(desc.getLang(), desc.getValue(), lifeCycleManager));
+ if ((descriptionList != null) && (descriptionList.size() > 0)) {
+ InternationalString is = null;
+ for (int i = 0; i < descriptionList.size(); i++) {
+ Description desc = descriptionList.get(i);
+ if (is == null) {
+ is = getIString(desc.getLang(), desc.getValue(), lifeCycleManager);
+ } else {
+ is.setValue(getLocale(desc.getLang()), desc.getValue());
+ }
+ }
+ org.setDescription(is);
}
org.setKey(lifeCycleManager.createKey(businessEntity.getBusinessKey()));
@@ -196,20 +209,35 @@
throw new JAXRException("Unexpected count of organizations in BusinessDetail: " + bizEntityList.size());
}
BusinessEntity entity = bizEntityList.get(0);
- Name n = null;
- if (entity.getName().size()>0) n = entity.getName().get(0);
-
+ List<Name> namesList = entity.getName();
List<Description> descriptionList = entity.getDescription();
- Description desc =null;
- if (descriptionList.size()>0) desc = descriptionList.get(0);
Organization org = new OrganizationImpl(lifeCycleManager);
- if( n != null ) {
- org.setName(getIString(n.getLang(), n.getValue(), lifeCycleManager));
+ if ((namesList != null) && (namesList.size() > 0)) {
+ InternationalString is = null;
+ for (int i = 0; i < namesList.size(); i++) {
+ Name n = namesList.get(i);
+ if (is == null) {
+ is = getIString(n.getLang(), n.getValue(), lifeCycleManager);
+ } else {
+ is.setValue(getLocale(n.getLang()), n.getValue());
+ }
+ }
+ org.setName(is);
}
- if( desc != null ) {
- org.setDescription(getIString(desc.getLang(), desc.getValue(), lifeCycleManager));
+ if ((descriptionList != null) && (descriptionList.size() > 0)) {
+ InternationalString is = null;
+ for (int i = 0; i < descriptionList.size(); i++) {
+ Description desc = descriptionList.get(i);
+ if (is == null) {
+ is = getIString(desc.getLang(), desc.getValue(), lifeCycleManager);
+ } else {
+ is.setValue(getLocale(desc.getLang()), desc.getValue());
+ }
+ }
+ org.setDescription(is);
}
+
org.setKey(lifeCycleManager.createKey(entity.getBusinessKey()));
//Set Services also
@@ -353,20 +381,31 @@
serve.setKey(lifeCycleManager.createKey(keystr));
}
- Name n = null;
- if (businessService.getName().size()>0) n = businessService.getName().get(0);
+ List<Name> namesList = businessService.getName();
+ List<Description> descriptionList = businessService.getDescription();
- if (n != null) {
- String name = n.getValue();
- serve.setName(lifeCycleManager.createInternationalString(getLocale(n.getLang()), name));
+ InternationalString is = null;
+ for (int i = 0; i < namesList.size(); i++) {
+ Name n = namesList.get(i);
+ if (is == null) {
+ is = lifeCycleManager.createInternationalString(getLocale(n.getLang()), n.getValue());
+ } else {
+ is.setValue(getLocale(n.getLang()), n.getValue());
+ }
}
-
- Description desc =null;
- if (businessService.getDescription().size()>0) desc = businessService.getDescription().get(0);
- if (desc != null ) {
- serve.setDescription(lifeCycleManager.createInternationalString(getLocale(desc.getLang()), desc.getValue()));
+ serve.setName(is);
+
+ InternationalString dis = null;
+ for (int i = 0; i < namesList.size(); i++) {
+ Description desc = descriptionList.get(i);
+ if (dis == null) {
+ dis = lifeCycleManager.createInternationalString(getLocale(desc.getLang()), desc.getValue());
+ } else {
+ dis.setValue(getLocale(desc.getLang()), desc.getValue());
+ }
}
-
+ serve.setDescription(dis);
+
//Populate the ServiceBindings for this Service
BindingTemplates bts = businessService.getBindingTemplates();
List<BindingTemplate> bindingTemplateList = bts.getBindingTemplate();
@@ -390,12 +429,18 @@
service.setKey(lifeCycleManager.createKey(keystr));
}
- Name n = null;
- if (serviceInfo.getName().size()>0) n = serviceInfo.getName().get(0);
- if (n != null) {
- String name = n.getValue();
- service.setName(lifeCycleManager.createInternationalString(getLocale(n.getLang()), name));
+ List<Name> namesList = serviceInfo.getName();
+ InternationalString is = null;
+ for (int i = 0; i < namesList.size(); i++) {
+ Name n = namesList.get(i);
+ if (is == null) {
+ is = lifeCycleManager.createInternationalString(getLocale(n.getLang()), n.getValue());
+ } else {
+ is.setValue(getLocale(n.getLang()), n.getValue());
+ }
}
+ service.setName(is);
+
return service;
}
diff --git a/src/test/java/org/apache/ws/scout/registry/JAXRLocaleTest.java b/src/test/java/org/apache/ws/scout/registry/JAXRLocaleTest.java
index 139ed74..2b49c6f 100644
--- a/src/test/java/org/apache/ws/scout/registry/JAXRLocaleTest.java
+++ b/src/test/java/org/apache/ws/scout/registry/JAXRLocaleTest.java
@@ -80,8 +80,10 @@
Organization organization = (Organization) blm.createObject(BusinessLifeCycleManager.ORGANIZATION);
is = getIString(locale, "Apache Scout Org");
+ is.setValue(Locale.JAPANESE, "Apache Scoot Org");
organization.setName(is);
is = getIString(locale, "This is the org for Apache Scout Test");
+ is.setValue(Locale.JAPANESE, "This is the org for Apache Scout Test");
organization.setDescription(is);
Collection<Organization> organizations = new ArrayList<Organization>();
@@ -99,16 +101,22 @@
assertEquals(organization.getName().getValue(locale),
organization1.getName().getValue(locale));
+ assertEquals(organization.getName().getValue(Locale.JAPANESE),
+ organization1.getName().getValue(Locale.JAPANESE));
assertEquals(organization.getDescription().getValue(locale),
organization1.getDescription().getValue(locale));
-
+ assertEquals(organization.getDescription().getValue(Locale.JAPANESE),
+ organization1.getDescription().getValue(Locale.JAPANESE));
+
// create Service
Service service = (Service) blm.createObject(BusinessLifeCycleManager.SERVICE);
is = getIString(locale, "Apache Scout Service");
+ is.setValue(Locale.JAPANESE, "Apache Scoot Service");
service.setName(is);
is = getIString(locale, "This is the service for Apache Scout Test");
+ is.setValue(Locale.JAPANESE, "This is the service for Apache Scoot Test");
service.setDescription(is);
organization1.addService(service);
@@ -128,6 +136,8 @@
assertEquals(service.getName().getValue(locale),
service1.getName().getValue(locale));
+ assertEquals(service.getName().getValue(Locale.JAPANESE),
+ service1.getName().getValue(Locale.JAPANESE));
assertEquals(service.getDescription().getValue(locale),
service1.getDescription().getValue(locale));