sis-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From desruisse...@apache.org
Subject svn commit: r1631443 [2/2] - in /sis/trunk: ./ core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/ core/sis-metadata/src/main/java/org/apache/sis/metadata/ core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/ core/sis-metadata/src...
Date Mon, 13 Oct 2014 15:50:42 GMT
Modified: sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/internal/jaxb/code/PT_LocaleTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/internal/jaxb/code/PT_LocaleTest.java?rev=1631443&r1=1631442&r2=1631443&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/internal/jaxb/code/PT_LocaleTest.java
[UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/internal/jaxb/code/PT_LocaleTest.java
[UTF-8] Mon Oct 13 15:50:41 2014
@@ -62,7 +62,7 @@ public final strictfp class PT_LocaleTes
      * </ul>
      */
     private static final Locale[] LOCALES = {
-            Locale.JAPANESE, Locale.CANADA, Locale.FRANCE, Locale.CANADA_FRENCH
+            Locale.ENGLISH, Locale.JAPANESE, Locale.CANADA, Locale.FRANCE, Locale.CANADA_FRENCH
     };
 
     /**
@@ -70,6 +70,9 @@ public final strictfp class PT_LocaleTes
      */
     private static final String XML =
             "<gmd:MD_Metadata xmlns:gmd=\"" + Namespaces.GMD + "\">\n" +
+            "  <gmd:language>\n" +
+            "    <gmd:LanguageCode codeList=\"http://schemas.opengis.net/iso/19139/20070417/resources/Codelist/gmxCodelists.xml#LanguageCode\"
codeListValue=\"eng\" codeSpace=\"eng\">English</gmd:LanguageCode>\n" +
+            "  </gmd:language>\n" +
             "  <gmd:locale>\n" +
             "    <gmd:PT_Locale>\n" +
             "      <gmd:languageCode>\n" +
@@ -117,7 +120,7 @@ public final strictfp class PT_LocaleTes
     @Test
     public void testMarshalling() throws JAXBException {
         final DefaultMetadata metadata = new DefaultMetadata();
-        metadata.setLocales(Arrays.asList(LOCALES));
+        metadata.setLanguages(Arrays.asList(LOCALES));
         assertXmlEquals(XML, marshal(metadata), "xlmns:*");
     }
 
@@ -129,6 +132,6 @@ public final strictfp class PT_LocaleTes
     @Test
     public void testUnmarshalling() throws JAXBException {
         final DefaultMetadata metadata = unmarshal(DefaultMetadata.class, XML);
-        assertArrayEquals(LOCALES, metadata.getLocales().toArray());
+        assertArrayEquals(LOCALES, metadata.getLanguages().toArray());
     }
 }

Modified: sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/MetadataTestCase.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/MetadataTestCase.java?rev=1631443&r1=1631442&r2=1631443&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/MetadataTestCase.java
[UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/MetadataTestCase.java
[UTF-8] Mon Oct 13 15:50:41 2014
@@ -21,6 +21,7 @@ import java.util.Locale;
 import java.util.Random;
 import java.util.Collection;
 import org.opengis.util.CodeList;
+import org.opengis.metadata.identification.CharacterSet;
 import org.apache.sis.util.Numbers;
 import org.apache.sis.util.ArraysExt;
 import org.apache.sis.util.collection.CheckedContainer;
@@ -128,6 +129,11 @@ public abstract strictfp class MetadataT
             return new Date(random.nextInt() * 1000L);
         }
         if (CodeList.class.isAssignableFrom(type)) try {
+            if (type == CharacterSet.class) {
+                // DefaultMetadata convert CharacterSet into Charset,
+                // but not all character sets are supported.
+                return CharacterSet.ISO_8859_1;
+            }
             final CodeList<?>[] codes = (CodeList<?>[]) type.getMethod("values",
(Class[]) null).invoke(null, (Object[]) null);
             return codes[random.nextInt(codes.length)];
         } catch (Exception e) { // (ReflectiveOperationException) on JDK7 branch.
@@ -294,6 +300,8 @@ public abstract strictfp class MetadataT
     @SuppressWarnings("deprecation")
     private static boolean skipTest(final Class<?> implementation, final String method)
{
         return implementation == org.apache.sis.metadata.iso.maintenance.DefaultScopeDescription.class
||
+              (implementation == org.apache.sis.metadata.iso.DefaultMetadata.class &&
+               method.equals("getDataSetUri")) ||
               (implementation == org.apache.sis.metadata.iso.citation.DefaultContact.class
&&
                method.equals("getPhone")) || // Deprecated method replaced by 'getPhones()'.
               (implementation == org.apache.sis.metadata.iso.lineage.DefaultSource.class
&&

Modified: sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/AllMetadataTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/AllMetadataTest.java?rev=1631443&r1=1631442&r2=1631443&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/AllMetadataTest.java
[UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/AllMetadataTest.java
[UTF-8] Mon Oct 13 15:50:41 2014
@@ -20,6 +20,7 @@ import java.lang.reflect.Modifier;
 import org.opengis.util.CodeList;
 import org.opengis.annotation.UML;
 import org.opengis.annotation.Specification;
+import org.opengis.metadata.content.FeatureCatalogueDescription;
 import org.apache.sis.metadata.MetadataStandard;
 import org.apache.sis.metadata.MetadataTestCase;
 import org.apache.sis.metadata.iso.identification.DefaultCoupledResource;
@@ -40,7 +41,7 @@ import static org.junit.Assert.*;
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.3 (derived from geotk-2.4)
- * @version 0.3
+ * @version 0.5
  * @module
  */
 @DependsOn(org.apache.sis.metadata.PropertyAccessorTest.class)
@@ -221,13 +222,16 @@ public final strictfp class AllMetadataT
      * @return {@inheritDoc}
      */
     @Override
-    protected String getExpectedXmlElementName(final UML uml) {
+    protected String getExpectedXmlElementName(final Class<?> type, final UML uml)
{
         String name = uml.identifier();
         if (name.equals("distributedComputingPlatform")) {
             name = "DCP";
-        }
-        if (name.equals("stepDateTime")) {
+        } else if (name.equals("stepDateTime")) {
             name = "dateTime";
+        } else if (name.equals("defaultLocale+otherLocale") ||
+                   type == FeatureCatalogueDescription.class && name.equals("locale"))
+        {
+            name = "language";
         }
         return name;
     }

Modified: sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/CustomMetadataTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/CustomMetadataTest.java?rev=1631443&r1=1631442&r2=1631443&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/CustomMetadataTest.java
[UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/CustomMetadataTest.java
[UTF-8] Mon Oct 13 15:50:41 2014
@@ -24,7 +24,6 @@ import java.lang.reflect.Proxy;
 import java.lang.reflect.Method;
 import java.lang.reflect.InvocationHandler;
 import javax.xml.bind.JAXBException;
-import org.opengis.metadata.Metadata;
 import org.opengis.metadata.identification.*;
 import org.opengis.metadata.citation.Citation;
 import org.opengis.metadata.citation.ResponsibleParty;
@@ -34,6 +33,8 @@ import org.opengis.metadata.extent.Exten
 import org.opengis.metadata.maintenance.MaintenanceInformation;
 import org.opengis.metadata.spatial.SpatialRepresentationType;
 import org.opengis.util.InternationalString;
+import org.apache.sis.util.iso.SimpleInternationalString;
+import org.apache.sis.metadata.iso.citation.DefaultCitation;
 import org.apache.sis.internal.system.DefaultFactories;
 import org.apache.sis.test.XMLTestCase;
 import org.apache.sis.xml.XML;
@@ -64,29 +65,29 @@ public final strictfp class CustomMetada
     public void testProxy() throws JAXBException {
         /*
          * A trivial metadata implementation which return the method name
-         * for every attribute of type String.
+         * for every attribute of type InternationalString.
          */
         final InvocationHandler handler = new InvocationHandler() {
             @Override public Object invoke(Object proxy, Method method, Object[] args) {
-                if (method.getReturnType() == String.class) {
-                    return method.getName();
+                if (method.getReturnType() == InternationalString.class) {
+                    return new SimpleInternationalString(method.getName());
                 }
                 return null;
             }
         };
-        Metadata data = (Metadata) Proxy.newProxyInstance(getClass().getClassLoader(),
-                    new Class<?>[] { Metadata.class }, handler);
+        Citation data = (Citation) Proxy.newProxyInstance(getClass().getClassLoader(),
+                    new Class<?>[] { Citation.class }, handler);
         /*
          * Wrap the metadata in a DefaultMetadata, and ensure
          * we can marshall it without an exception being throw.
          */
-        data = new DefaultMetadata(data);
+        data = new DefaultCitation(data);
         final String xml = XML.marshal(data);
         /*
          * A few simple checks.
          */
-        assertTrue(xml.contains("getMetadataStandardName"));
-        assertTrue(xml.contains("getMetadataStandardVersion"));
+        assertTrue(xml.contains("title"));
+        assertTrue(xml.contains("edition"));
     }
 
     /**

Modified: sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/DefaultMetadataTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/DefaultMetadataTest.java?rev=1631443&r1=1631442&r2=1631443&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/DefaultMetadataTest.java
[UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/DefaultMetadataTest.java
[UTF-8] Mon Oct 13 15:50:41 2014
@@ -16,17 +16,32 @@
  */
 package org.apache.sis.metadata.iso;
 
+import java.util.Date;
+import java.util.Locale;
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.Collection;
 import java.util.logging.LogRecord;
+import java.net.URISyntaxException;
 import javax.xml.bind.Unmarshaller;
 import javax.xml.bind.JAXBException;
+import org.opengis.metadata.citation.Citation;
+import org.opengis.metadata.citation.DateType;
+import org.opengis.metadata.maintenance.ScopeCode;
 import org.apache.sis.xml.XML;
 import org.apache.sis.xml.Namespaces;
 import org.apache.sis.xml.MarshallerPool;
 import org.apache.sis.util.logging.WarningListener;
+import org.apache.sis.util.iso.SimpleInternationalString;
+import org.apache.sis.metadata.iso.citation.DefaultCitation;
+import org.apache.sis.metadata.iso.citation.DefaultCitationDate;
 import org.apache.sis.test.XMLTestCase;
+import org.apache.sis.test.DependsOn;
 import org.junit.Test;
 
 import static org.apache.sis.test.Assert.*;
+import static org.apache.sis.test.TestUtilities.date;
+import static org.apache.sis.test.TestUtilities.getSingleton;
 
 
 /**
@@ -45,9 +60,10 @@ import static org.apache.sis.test.Assert
  * @author  Cédric Briançon (Geomatys)
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.3 (derived from geotk-2.5)
- * @version 0.4
+ * @version 0.5
  * @module
  */
+@DependsOn(org.apache.sis.internal.metadata.OtherLocalesTest.class)
 public final strictfp class DefaultMetadataTest extends XMLTestCase implements WarningListener<Object>
{
     /**
      * The resource key for the message of the warning that occurred while unmarshalling
a XML fragment,
@@ -122,4 +138,195 @@ public final strictfp class DefaultMetad
         assertEquals("warning", "NullCollectionElement_1", resourceKey);
         assertArrayEquals("warning", new String[] {"CheckedArrayList<ResponsibleParty>"},
parameters);
     }
+
+    /**
+     * Tests {@link DefaultMetadata#getFileIdentifier()} and {@link DefaultMetadata#setFileIdentifier(String)}
+     * legacy methods. Those methods should delegate to newer methods.
+     *
+     * @since 0.5
+     */
+    @Test
+    @SuppressWarnings("deprecation")
+    public void testFileIdentifier() {
+        final DefaultMetadata metadata = new DefaultMetadata();
+        assertNull("fileIdentifier", metadata.getFileIdentifier());
+        metadata.setFileIdentifier("Apache SIS/Metadata test");
+        assertEquals("metadataIdentifier", "Apache SIS/Metadata test", metadata.getMetadataIdentifier().getCode());
+        assertEquals("fileIdentifier",     "Apache SIS/Metadata test", metadata.getFileIdentifier());
+    }
+
+    /**
+     * Tests {@link DefaultMetadata#getLanguage()}, {@link DefaultMetadata#setLanguage(Locale)},
+     * {@link DefaultMetadata#getLocales()} and {@link DefaultMetadata#setLocales(Collection)}
+     * legacy methods. Those methods should delegate to newer methods.
+     *
+     * @since 0.5
+     */
+    @Test
+    @SuppressWarnings("deprecation")
+    public void testLocales() {
+        final DefaultMetadata metadata = new DefaultMetadata();
+        assertNull("language", metadata.getLanguage());
+        /*
+         * Set the default language, which shall be the first entry in the collection.
+         * The "other locales" property shall be unmodified by the "language" one.
+         */
+        metadata.setLanguage(Locale.JAPANESE);
+        assertLanguagesEquals(metadata, Locale.JAPANESE);
+        /*
+         * Add other languages. They should appear as additional entries after the first
one.
+         * The "language" property shall be unmodified by changes in the "other locales"
one.
+         */
+        metadata.setLocales(Arrays.asList(Locale.FRENCH, Locale.ENGLISH));
+        assertLanguagesEquals(metadata, Locale.JAPANESE, Locale.FRENCH, Locale.ENGLISH);
+        /*
+         * Ensure that the "locales" list is modifiable, since JAXB writes directly in it.
+         */
+        metadata.getLocales().clear();
+        assertLanguagesEquals(metadata, Locale.JAPANESE);
+        final Collection<Locale> locales = metadata.getLocales();
+        assertTrue(locales.add(Locale.KOREAN));
+        assertTrue(locales.add(Locale.ENGLISH));
+        assertLanguagesEquals(metadata, Locale.JAPANESE, Locale.KOREAN, Locale.ENGLISH);
+        /*
+         * Changing again the default language shall not change the other locales.
+         */
+        metadata.setLanguage(Locale.GERMAN);
+        assertLanguagesEquals(metadata, Locale.GERMAN, Locale.KOREAN, Locale.ENGLISH);
+    }
+
+    /**
+     * Compares the {@link DefaultMetadata#getLanguages()}, {@link DefaultMetadata#getLanguage()}
and
+     * {@link DefaultMetadata#getLocales()} values against the expected array.
+     */
+    @SuppressWarnings("deprecation")
+    private static void assertLanguagesEquals(final DefaultMetadata metadata, final Locale...
expected) {
+        assertArrayEquals("languages", expected,    metadata.getLanguages().toArray());
+        assertEquals     ("language",  expected[0], metadata.getLanguage());
+        assertArrayEquals("locales",   Arrays.copyOfRange(expected, 1, expected.length),
metadata.getLocales().toArray());
+    }
+
+    /**
+     * Tests {@link DefaultMetadata#getParentIdentifier()} and {@link DefaultMetadata#setParentIdentifier(String)}
+     * methods.
+     */
+    @Test
+    @SuppressWarnings("deprecation")
+    public void testParentIdentifier() {
+        final DefaultMetadata metadata = new DefaultMetadata();
+        assertNull("parentIdentifier", metadata.getParentIdentifier());
+        metadata.setParentIdentifier("ParentID");
+        assertEquals("parentIdentifier", "ParentID", metadata.getParentIdentifier());
+
+        DefaultCitation c = (DefaultCitation) metadata.getParentMetadata();
+        assertEquals("parentMetadata", "ParentID", c.getTitle().toString());
+        c.setTitle(new SimpleInternationalString("New parent"));
+        assertEquals("parentIdentifier", "New parent", metadata.getParentIdentifier());
+    }
+
+    /**
+     * Tests {@link DefaultMetadata#getHierarchyLevels()}, {@link DefaultMetadata#getHierarchyLevelNames()},
+     * {@link DefaultMetadata#setHierarchyLevel(Collection)} and {@link DefaultMetadata#setHierarchyLevelNames(Collection)}
+     * methods.
+     */
+    @Test
+    @SuppressWarnings("deprecation")
+    public void testHierarchyLevels() {
+        final String[]    names  = new String[] {"Bridges", "Golden Gate Bridge"};
+        final ScopeCode[] levels = new ScopeCode[] {ScopeCode.FEATURE_TYPE, ScopeCode.FEATURE};
+        final DefaultMetadata metadata = new DefaultMetadata();
+        assertTrue("hierarchyLevelNames", metadata.getHierarchyLevelNames().isEmpty());
+        assertTrue("hierarchyLevels",     metadata.getHierarchyLevels().isEmpty());
+
+        metadata.setHierarchyLevelNames(Arrays.asList(names));
+        metadata.setHierarchyLevels(Arrays.asList(levels));
+        assertArrayEquals("hierarchyLevelNames", names,  metadata.getHierarchyLevelNames().toArray());
+        assertArrayEquals("hierarchyLevels",     levels, metadata.getHierarchyLevels().toArray());
+        /*
+         * The above deprecated methods shall have created MetadataScope object. Verify that.
+         */
+        final Collection<DefaultMetadataScope> scopes = metadata.getMetadataScopes();
+        final Iterator<DefaultMetadataScope> it = scopes.iterator();
+        DefaultMetadataScope scope = it.next();
+        assertEquals("metadataScopes[0].name", "Bridges", scope.getName().toString());
+        assertEquals("metadataScopes[0].resourceScope", ScopeCode.FEATURE_TYPE, scope.getResourceScope());
+        scope = it.next();
+        assertEquals("metadataScopes[1].name", "Golden Gate Bridge", scope.getName().toString());
+        assertEquals("metadataScopes[1].resourceScope", ScopeCode.FEATURE, scope.getResourceScope());
+        /*
+         * Changes in the MetadataScope object shall be relfected immediately on the scope
collection.
+         * Verify that.
+         */
+        it.remove();
+        assertFalse(it.hasNext());
+        final DefaultMetadataScope c = new DefaultMetadataScope(levels[1] = ScopeCode.ATTRIBUTE_TYPE);
+        c.setName(new SimpleInternationalString(names[1] = "Clearance"));
+        assertTrue(scopes.add(c));
+        assertArrayEquals("hierarchyLevelNames", names,  metadata.getHierarchyLevelNames().toArray());
+        assertArrayEquals("hierarchyLevels",     levels, metadata.getHierarchyLevels().toArray());
+    }
+
+    /**
+     * Tests {@link DefaultMetadata#getDateStamp()} and {@link DefaultMetadata#setDateStamp(Date)}
methods.
+     */
+    @Test
+    @SuppressWarnings("deprecation")
+    public void testDateStamp() {
+        final DefaultMetadata metadata = new DefaultMetadata();
+        assertNull("dateStamp", metadata.getDateStamp());
+        /*
+         * Verifies that the deprecated method get its value from the CitationDate objects.
+         */
+        Date creation = date("2014-10-07 00:00:00");
+        final DefaultCitationDate[] dates = new DefaultCitationDate[] {
+                new DefaultCitationDate(date("2014-10-09 00:00:00"), DateType.valueOf("LAST_UPDATE")),
+                new DefaultCitationDate(creation, DateType.CREATION)
+        };
+        metadata.setDates(Arrays.asList(dates));
+        assertEquals("dateStamp", creation, metadata.getDateStamp());
+        /*
+         * Invoking the deprecated setters shall modify the CitationDate object
+         * associated to DateType.CREATION.
+         */
+        creation = date("2014-10-06 00:00:00");
+        metadata.setDateStamp(creation);
+        assertEquals("citationDates[1].date", creation, dates[1].getDate());
+        assertArrayEquals("dates", dates, metadata.getDates().toArray());
+    }
+
+    /**
+     * Tests {@link DefaultMetadata#getMetadataStandardName()}, {@link DefaultMetadata#getMetadataStandardVersion()},
+     * {@link DefaultMetadata#setMetadataStandardName(String)} and {@link DefaultMetadata#setMetadataStandardVersion(String)}
+     * methods.
+     */
+    @Test
+    @SuppressWarnings("deprecation")
+    public void testMetadataStandard() {
+        final DefaultMetadata metadata = new DefaultMetadata();
+        assertNull("metadataStandardName",    metadata.getMetadataStandardName());
+        assertNull("metadataStandardVersion", metadata.getMetadataStandardVersion());
+
+        String name = "ISO 19115-2 Geographic Information - Metadata Part 2 Extensions for
imagery and gridded data";
+        String version = "ISO 19115-2:2009(E)";
+        metadata.setMetadataStandardName(name);
+        metadata.setMetadataStandardVersion(version);
+        assertEquals("metadataStandardName",    name,    metadata.getMetadataStandardName());
+        assertEquals("metadataStandardVersion", version, metadata.getMetadataStandardVersion());
+        final Citation standard = getSingleton(metadata.getMetadataStandards());
+        assertEquals(name,    standard.getTitle()  .toString());
+        assertEquals(version, standard.getEdition().toString());
+    }
+
+    /**
+     * Tests {@link DefaultMetadata#getDataSetUri()}.
+     *
+     * @throws URISyntaxException Should not happen.
+     */
+    @Test
+    @SuppressWarnings("deprecation")
+    public void testDataSetUri() throws URISyntaxException {
+        final DefaultMetadata metadata = new DefaultMetadata();
+        metadata.setDataSetUri("file:/tmp/myfile.txt");
+        assertEquals("file:/tmp/myfile.txt", metadata.getDataSetUri());
+    }
 }

Modified: sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/identification/DefaultDataIdentificationTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/identification/DefaultDataIdentificationTest.java?rev=1631443&r1=1631442&r2=1631443&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/identification/DefaultDataIdentificationTest.java
[UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/identification/DefaultDataIdentificationTest.java
[UTF-8] Mon Oct 13 15:50:41 2014
@@ -16,6 +16,10 @@
  */
 package org.apache.sis.metadata.iso.identification;
 
+import java.util.Collection;
+import java.util.Map;
+import java.util.Locale;
+import org.opengis.metadata.citation.Citation;
 import org.opengis.metadata.citation.DateType;
 import org.opengis.metadata.identification.KeywordType;
 import org.opengis.metadata.spatial.SpatialRepresentationType;
@@ -29,20 +33,24 @@ import org.apache.sis.test.TestCase;
 import org.apache.sis.test.TestUtilities;
 import org.junit.Test;
 
+import static java.util.Arrays.asList;
 import static java.util.Collections.singleton;
 import static org.apache.sis.test.Assert.*;
 
+// Branch-specific imports
+import org.opengis.metadata.identification.CharacterSet;
+
 
 /**
  * Tests {@link DefaultDataIdentification}.
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.3
- * @version 0.3
+ * @version 0.5
  * @module
  */
 @DependsOn({
-    org.apache.sis.metadata.PropertyAccessorTest.class, // For properties order
+    org.apache.sis.metadata.ValueMapTest.class,
     org.apache.sis.metadata.iso.citation.DefaultCitationTest.class,
     org.apache.sis.metadata.iso.citation.DefaultCitationDateTest.class,
     org.apache.sis.metadata.iso.extent.DefaultGeographicBoundingBoxTest.class,
@@ -50,6 +58,11 @@ import static org.apache.sis.test.Assert
 })
 public final strictfp class DefaultDataIdentificationTest extends TestCase {
     /**
+     * The locales used in this test.
+     */
+    private static final Locale[] LOCALES = {Locale.US, Locale.ENGLISH};
+
+    /**
      * Creates the instance to test.
      */
     private static DefaultDataIdentification create() {
@@ -88,6 +101,9 @@ public final strictfp class DefaultDataI
          *  ├─Resource constraints
          *  │   └─Use limitation………………………………………………………
Freely available
          *  ├─Spatial representation type……………………………… Grid
+         *  ├─Language (1 of 2)…………………………………………………………
en_US
+         *  ├─Language (2 of 2)…………………………………………………………
en
+         *  ├─Character set……………………………………………………………………
US-ASCII
          *  └─Extent
          *      └─Geographic element
          *          ├─West bound longitude…………………………… 180°W
@@ -102,6 +118,8 @@ public final strictfp class DefaultDataI
         info.setDescriptiveKeywords(singleton(keywords));
         info.setResourceConstraints(singleton(new DefaultConstraints("Freely available")));
         info.setExtents(singleton(Extents.WORLD));
+        info.setLanguages(asList(LOCALES));
+        info.setCharacterSets(singleton(CharacterSet.US_ASCII));
         return info;
     }
 
@@ -135,6 +153,9 @@ public final strictfp class DefaultDataI
                 "  ├─Resource constraints\n" +
                 "  │   └─Use limitation……………………………… Freely
available\n" +
                 "  ├─Spatial representation type……… Grid\n" +
+                "  ├─Language (1 of 2)………………………………… en_US\n"
+
+                "  ├─Language (2 of 2)………………………………… en\n"
+
+                "  ├─Character set……………………………………………
US-ASCII\n" +
                 "  └─Extent\n" +
                 "      ├─Description………………………………………
World\n" +
                 "      └─Geographic element\n" +
@@ -145,4 +166,21 @@ public final strictfp class DefaultDataI
                 "          └─Extent type code……………… true\n",
             TestUtilities.formatNameAndValue(create().asTreeTable()));
     }
+
+    /**
+     * Tests {@link DefaultDataIdentification#asMap()}, in particular on the {@code "language"}
property.
+     * This property is handle in a special way since the declared UML identifier is
+     * {@code "defaultLocale+otherLocale"}.
+     */
+    @Test
+    public void testValueMap() {
+        final DefaultDataIdentification info = create();
+        final Map<String,Object> map = info.asMap();
+        assertEquals("abstract", "NCEP SST Global 5.0 x 2.5 degree model data", map.get("abstract").toString());
+        assertEquals("title", "Sea Surface Temperature Analysis Model", ((Citation) map.get("citation")).getTitle().toString());
+        assertEquals("spatialRepresentationType", singleton(SpatialRepresentationType.GRID),
map.get("spatialRepresentationType"));
+        assertArrayEquals("language",     LOCALES, ((Collection<?>) map.get("language")).toArray());
+        assertArrayEquals("languages",    LOCALES, ((Collection<?>) map.get("languages")).toArray());
+        assertArrayEquals("getLanguages", LOCALES, ((Collection<?>) map.get("getLanguages")).toArray());
+    }
 }

Modified: sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/test/suite/MetadataTestSuite.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/test/suite/MetadataTestSuite.java?rev=1631443&r1=1631442&r2=1631443&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/test/suite/MetadataTestSuite.java
[UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/test/suite/MetadataTestSuite.java
[UTF-8] Mon Oct 13 15:50:41 2014
@@ -32,6 +32,7 @@ import org.junit.BeforeClass;
 @Suite.SuiteClasses({
     org.apache.sis.internal.metadata.MetadataUtilitiesTest.class,
     org.apache.sis.internal.metadata.ReferencingUtilitiesTest.class,
+    org.apache.sis.internal.metadata.OtherLocalesTest.class,
 
     // Classes using Java reflection.
     org.apache.sis.metadata.PropertyInformationTest.class,

Modified: sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/Code.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/Code.java?rev=1631443&r1=1631442&r2=1631443&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/Code.java
[UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/Code.java
[UTF-8] Mon Oct 13 15:50:41 2014
@@ -35,7 +35,7 @@ import static org.apache.sis.internal.me
  * @author  Cédric Briançon (Geomatys)
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.4 (derived from geotk-3.00)
- * @version 0.4
+ * @version 0.5
  * @module
  */
 @XmlType(name = "CodeType")

Modified: sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/test/integration/ReferencingInMetadataTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/test/integration/ReferencingInMetadataTest.java?rev=1631443&r1=1631442&r2=1631443&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/test/integration/ReferencingInMetadataTest.java
[UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/test/integration/ReferencingInMetadataTest.java
[UTF-8] Mon Oct 13 15:50:41 2014
@@ -92,7 +92,7 @@ public final strictfp class ReferencingI
          *   </gmd:CI_ResponsibleParty>
          * </gmd:contact>
          */
-        final ResponsibleParty contact = getSingleton(metadata.getContacts());
+        final ResponsibleParty contact = (ResponsibleParty) getSingleton(metadata.getContacts());
         final OnlineResource onlineResource = contact.getContactInfo().getOnlineResource();
         assertNotNull("onlineResource", onlineResource);
         assertEquals("organisationName", "Apache SIS", contact.getOrganisationName().toString());

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/internal/jdk7/StandardCharsets.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/internal/jdk7/StandardCharsets.java?rev=1631443&r1=1631442&r2=1631443&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/internal/jdk7/StandardCharsets.java
[UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/internal/jdk7/StandardCharsets.java
[UTF-8] Mon Oct 13 15:50:41 2014
@@ -49,4 +49,9 @@ public final class StandardCharsets {
      * ISO/IEC 8859-1, Information technology - 8-bit single byte coded graphic character
sets - Part 1 : Latin alphabet No.1.
      */
     public static final Charset ISO_8859_1 = Charset.forName("ISO-8859-1");
+
+    /**
+     * Seven-bit ASCII, a.k.a. ISO646-US.
+     */
+    public static final Charset US_ASCII = Charset.forName("US-ASCII");
 }

Modified: sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/AnnotationsTestCase.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/AnnotationsTestCase.java?rev=1631443&r1=1631442&r2=1631443&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/AnnotationsTestCase.java
[UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/AnnotationsTestCase.java
[UTF-8] Mon Oct 13 15:50:41 2014
@@ -61,7 +61,7 @@ import static org.apache.sis.test.TestUt
  * @author  Cédric Briançon (Geomatys)
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.3 (derived from geotk-3.05)
- * @version 0.3
+ * @version 0.5
  * @module
  */
 public abstract strictfp class AnnotationsTestCase extends TestCase {
@@ -245,10 +245,11 @@ public abstract strictfp class Annotatio
     /**
      * Returns the name of the XML element for the given UML element.
      *
-     * @param  uml The UML element.
+     * @param  type The GeoAPI interface which contains the property.
+     * @param  uml The UML element of a property in the {@code type} interface.
      * @return The corresponding XML element name.
      */
-    protected String getExpectedXmlElementName(final UML uml) {
+    protected String getExpectedXmlElementName(final Class<?> type, final UML uml)
{
         return uml.identifier();
     }
 
@@ -564,7 +565,7 @@ public abstract strictfp class Annotatio
                  * is because subclasses may choose to override the above test method.
                  */
                 if (uml != null) {
-                    assertEquals("Wrong @XmlElement.name().", getExpectedXmlElementName(uml),
element.name());
+                    assertEquals("Wrong @XmlElement.name().", getExpectedXmlElementName(type,
uml), element.name());
                     assertEquals("Wrong @XmlElement.required().", uml.obligation() == Obligation.MANDATORY,
element.required());
                 }
                 /*

Modified: sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/mock/MetadataMock.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/mock/MetadataMock.java?rev=1631443&r1=1631442&r2=1631443&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/mock/MetadataMock.java [UTF-8]
(original)
+++ sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/mock/MetadataMock.java [UTF-8]
Mon Oct 13 15:50:41 2014
@@ -47,7 +47,7 @@ import org.apache.sis.xml.Namespaces;
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.4
- * @version 0.4
+ * @version 0.5
  * @module
  */
 @XmlRootElement(name = "MD_Metadata", namespace = Namespaces.GMD)
@@ -81,6 +81,7 @@ public final strictfp class MetadataMock
      * @return {@code null}.
      */
     @Override
+    @Deprecated
     public String getFileIdentifier() {
         return null;
     }
@@ -91,6 +92,7 @@ public final strictfp class MetadataMock
      * @return {@link #language}
      */
     @Override
+    @Deprecated
     public Locale getLanguage() {
         return language;
     }
@@ -100,6 +102,17 @@ public final strictfp class MetadataMock
      * @return {@code null}.
      */
     @Override
+    @Deprecated
+    public Collection<Locale> getLocales() {
+        return null;
+    }
+
+    /**
+     * Undefined property.
+     * @return {@code null}.
+     */
+    @Override
+    @Deprecated
     public CharacterSet getCharacterSet() {
         return null;
     }
@@ -109,6 +122,7 @@ public final strictfp class MetadataMock
      * @return {@code null}.
      */
     @Override
+    @Deprecated
     public String getParentIdentifier() {
         return null;
     }
@@ -118,6 +132,7 @@ public final strictfp class MetadataMock
      * @return {@code null}.
      */
     @Override
+    @Deprecated
     public Collection<ScopeCode> getHierarchyLevels() {
         return null;
     }
@@ -127,6 +142,7 @@ public final strictfp class MetadataMock
      * @return {@code null}.
      */
     @Override
+    @Deprecated
     public Collection<String> getHierarchyLevelNames() {
         return null;
     }
@@ -145,6 +161,7 @@ public final strictfp class MetadataMock
      * @return {@code null}.
      */
     @Override
+    @Deprecated
     public Date getDateStamp() {
         return null;
     }
@@ -154,6 +171,7 @@ public final strictfp class MetadataMock
      * @return {@code null}.
      */
     @Override
+    @Deprecated
     public String getMetadataStandardName() {
         return null;
     }
@@ -163,6 +181,7 @@ public final strictfp class MetadataMock
      * @return {@code null}.
      */
     @Override
+    @Deprecated
     public String getMetadataStandardVersion() {
         return null;
     }
@@ -172,6 +191,7 @@ public final strictfp class MetadataMock
      * @return {@code null}.
      */
     @Override
+    @Deprecated
     public String getDataSetUri() {
         return null;
     }
@@ -181,15 +201,6 @@ public final strictfp class MetadataMock
      * @return {@code null}.
      */
     @Override
-    public Collection<Locale> getLocales() {
-        return null;
-    }
-
-    /**
-     * Undefined property.
-     * @return {@code null}.
-     */
-    @Override
     public Collection<? extends SpatialRepresentation> getSpatialRepresentationInfo()
{
         return null;
     }

Modified: sis/trunk/core/sis-utility/src/test/java/org/apache/sis/util/CharSequencesTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/test/java/org/apache/sis/util/CharSequencesTest.java?rev=1631443&r1=1631442&r2=1631443&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/test/java/org/apache/sis/util/CharSequencesTest.java [UTF-8]
(original)
+++ sis/trunk/core/sis-utility/src/test/java/org/apache/sis/util/CharSequencesTest.java [UTF-8]
Mon Oct 13 15:50:41 2014
@@ -34,7 +34,7 @@ import static org.apache.sis.util.CharSe
  * @author  Martin Desruisseaux (Geomatys)
  * @author  Johann Sorel (Geomatys)
  * @since   0.3 (derived from geotk-3.00)
- * @version 0.4
+ * @version 0.5
  * @module
  */
 @DependsOn({
@@ -299,6 +299,16 @@ public final strictfp class CharSequence
     }
 
     /**
+     * Tests the {@link CharSequences#camelCaseToSentence(CharSequence)} method.
+     */
+    @Test
+    @DependsOnMethod("testCamelCaseToWords")
+    public void testCamelCaseToSentence() {
+        assertEquals("Default locale", camelCaseToSentence("defaultLocale").toString());
+        assertNull(camelCaseToSentence(null));
+    }
+
+    /**
      * Tests the {@link CharSequences#camelCaseToWords(CharSequence, boolean)} method.
      */
     @Test

Modified: sis/trunk/ide-project/NetBeans/nbproject/project.properties
URL: http://svn.apache.org/viewvc/sis/trunk/ide-project/NetBeans/nbproject/project.properties?rev=1631443&r1=1631442&r2=1631443&view=diff
==============================================================================
--- sis/trunk/ide-project/NetBeans/nbproject/project.properties [ISO-8859-1] (original)
+++ sis/trunk/ide-project/NetBeans/nbproject/project.properties [ISO-8859-1] Mon Oct 13 15:50:41
2014
@@ -81,10 +81,10 @@ jdom1.version        = 1.0
 jdom2.version        = 2.0.4
 jee.version          = 6.0
 osgi.version         = 5.0.0
-netcdf.version       = 4.3.21
+netcdf.version       = 4.4.2
 joda-time.version    = 2.2
-httpclient.version   = 3.1
-slf4j.version        = 1.6.4
+httpclient.version   = 4.2.6
+slf4j.version        = 1.7.5
 junit.version        = 4.11
 hamcrest.version     = 1.3
 
@@ -103,7 +103,7 @@ javac.classpath=\
     ${maven.repository}/rome/rome/${rome.version}/rome-${rome.version}.jar:\
     ${maven.repository}/jdom/jdom/${jdom1.version}/jdom-${jdom1.version}.jar:\
     ${maven.repository}/javax/javaee-api/${jee.version}/javaee-api-${jee.version}.jar:\
-    ${maven.repository}/edu/ucar/netcdf/${netcdf.version}/netcdf-${netcdf.version}.jar:\
+    ${maven.repository}/edu/ucar/cdm/${netcdf.version}/cdm-${netcdf.version}.jar:\
     ${maven.repository}/org/osgi/org.osgi.core/${osgi.version}/org.osgi.core-${osgi.version}.jar
 javac.processorpath=\
     ${javac.classpath}
@@ -126,6 +126,7 @@ run.test.classpath=\
     ${build.test.classes.dir}:\
     ${maven.repository}/org/jdom/jdom2/${jdom2.version}/jdom2-${jdom2.version}.jar:\
     ${maven.repository}/edu/ucar/udunits/${netcdf.version}/udunits-${netcdf.version}.jar:\
+    ${maven.repository}/edu/ucar/httpservices/${netcdf.version}/httpservices-${netcdf.version}.jar:\
     ${maven.repository}/joda-time/joda-time/${joda-time.version}/joda-time-${joda-time.version}.jar:\
     ${maven.repository}/commons-httpclient/commons-httpclient/${httpclient.version}/commons-httpclient-${httpclient.version}.jar:\
     ${maven.repository}/org/slf4j/slf4j-api/${slf4j.version}/slf4j-api-${slf4j.version}.jar:\

Modified: sis/trunk/pom.xml
URL: http://svn.apache.org/viewvc/sis/trunk/pom.xml?rev=1631443&r1=1631442&r2=1631443&view=diff
==============================================================================
--- sis/trunk/pom.xml (original)
+++ sis/trunk/pom.xml Mon Oct 13 15:50:41 2014
@@ -369,7 +369,7 @@ Apache SIS is a free software, Java lang
       </dependency>
       <dependency>
         <groupId>edu.ucar</groupId>
-        <artifactId>netcdf</artifactId>
+        <artifactId>cdm</artifactId>
         <version>${netcdf.version}</version>
         <scope>provided</scope>
       </dependency>
@@ -402,7 +402,7 @@ Apache SIS is a free software, Java lang
          The last properties in this list depend on the Apache SIS branch.
        =================================================================== -->
   <properties>
-    <netcdf.version>4.3.21</netcdf.version>
+    <netcdf.version>4.4.2</netcdf.version> <!-- Last version compatible with
JDK6. -->
     <findbugs.version>2.5.3</findbugs.version>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <website.encoding>UTF-8</website.encoding>

Modified: sis/trunk/storage/sis-netcdf/pom.xml
URL: http://svn.apache.org/viewvc/sis/trunk/storage/sis-netcdf/pom.xml?rev=1631443&r1=1631442&r2=1631443&view=diff
==============================================================================
--- sis/trunk/storage/sis-netcdf/pom.xml (original)
+++ sis/trunk/storage/sis-netcdf/pom.xml Mon Oct 13 15:50:41 2014
@@ -114,7 +114,7 @@ Bridge between NetCDF Climate and Foreca
     </dependency>
     <dependency>
       <groupId>edu.ucar</groupId>
-      <artifactId>netcdf</artifactId>
+      <artifactId>cdm</artifactId>
       <optional>true</optional>
     </dependency>
 

Modified: sis/trunk/storage/sis-netcdf/src/test/java/org/apache/sis/storage/netcdf/MetadataReaderTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/storage/sis-netcdf/src/test/java/org/apache/sis/storage/netcdf/MetadataReaderTest.java?rev=1631443&r1=1631442&r2=1631443&view=diff
==============================================================================
--- sis/trunk/storage/sis-netcdf/src/test/java/org/apache/sis/storage/netcdf/MetadataReaderTest.java
[UTF-8] (original)
+++ sis/trunk/storage/sis-netcdf/src/test/java/org/apache/sis/storage/netcdf/MetadataReaderTest.java
[UTF-8] Mon Oct 13 15:50:41 2014
@@ -90,14 +90,10 @@ public final strictfp class MetadataRead
         final String text = formatNameAndValue(DefaultMetadata.castOrCopy(actual).asTreeTable());
         assertMultilinesEquals(
             "Metadata\n" +
-            "  ├─File identifier…………………………………………………………………………
edu.ucar.unidata:NCEP/SST/Global_5x2p5deg/SST_Global_5x2p5deg_20050922_0000.nc\n" +
-            "  ├─Hierarchy level…………………………………………………………………………
Dataset\n" +
             "  ├─Contact\n" +
             "  │   ├─Role……………………………………………………………………………………………
Point of contact\n" +
             "  │   └─Party\n" +
             "  │       └─Name…………………………………………………………………………………
NOAA/NWS/NCEP\n" +
-            "  ├─Metadata standard name………………………………………………………
ISO 19115-2 Geographic Information - Metadata Part 2 Extensions for imagery and gridded data\n"
+
-            "  ├─Metadata standard version………………………………………………
ISO 19115-2:2009(E)\n" +
             "  ├─Spatial representation info\n" +
             "  │   ├─Number of dimensions…………………………………………………
3\n" +
             "  │   ├─Axis dimension properties (1 of 3)\n" +
@@ -153,9 +149,16 @@ public final strictfp class MetadataRead
             "  │       └─Attribute\n" +
             "  │           ├─Sequence identifier………………………………
SST\n" +
             "  │           └─Description……………………………………………………
Sea temperature\n" +
-            "  └─Data quality info\n" +
-            "      └─Lineage\n" +
-            "          └─Statement……………………………………………………………………
2003-04-07 12:12:50 - created by gribtocdl" +
-            "              2005-09-26T21:50:00 - edavis - add attributes for dataset discovery\n",
text);
+            "  ├─Data quality info\n" +
+            "  │   └─Lineage\n" +
+            "  │       └─Statement……………………………………………………………………
2003-04-07 12:12:50 - created by gribtocdl" +
+            "              2005-09-26T21:50:00 - edavis - add attributes for dataset discovery\n"
+
+            "  ├─Metadata scope\n" +
+            "  │   └─Resource scope…………………………………………………………………
Dataset\n" +
+            "  ├─Metadata identifier\n" +
+            "  │   └─Code……………………………………………………………………………………………
edu.ucar.unidata:NCEP/SST/Global_5x2p5deg/SST_Global_5x2p5deg_20050922_0000.nc\n" +
+            "  └─Metadata standard\n" +
+            "      ├─Title…………………………………………………………………………………………
ISO 19115-2 Geographic Information - Metadata Part 2 Extensions for imagery and gridded data\n"
+
+            "      └─Edition……………………………………………………………………………………
ISO 19115-2:2009(E)\n", text);
     }
 }

Modified: sis/trunk/storage/sis-storage/src/test/java/org/apache/sis/internal/storage/xml/XMLStoreTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/storage/sis-storage/src/test/java/org/apache/sis/internal/storage/xml/XMLStoreTest.java?rev=1631443&r1=1631442&r2=1631443&view=diff
==============================================================================
--- sis/trunk/storage/sis-storage/src/test/java/org/apache/sis/internal/storage/xml/XMLStoreTest.java
[UTF-8] (original)
+++ sis/trunk/storage/sis-storage/src/test/java/org/apache/sis/internal/storage/xml/XMLStoreTest.java
[UTF-8] Mon Oct 13 15:50:41 2014
@@ -99,7 +99,7 @@ public final strictfp class XMLStoreTest
         } finally {
             store.close();
         }
-        final ResponsibleParty party  = getSingleton(metadata.getContacts());
+        final ResponsibleParty party  = (ResponsibleParty) getSingleton(metadata.getContacts());
         final OnlineResource resource = party.getContactInfo().getOnlineResource();
 
         assertEquals(Locale.ENGLISH,              metadata.getLanguage());



Mime
View raw message