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));