sis-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From desruisse...@apache.org
Subject svn commit: r1517896 [1/2] - in /sis/trunk: ./ application/sis-console/src/main/artifact/ core/sis-build-helper/src/main/java/org/apache/sis/internal/maven/ core/sis-build-helper/src/site/apt/ core/sis-metadata/src/main/java/org/apache/sis/internal/jax...
Date Tue, 27 Aug 2013 17:49:41 GMT
Author: desruisseaux
Date: Tue Aug 27 17:49:40 2013
New Revision: 1517896

URL: http://svn.apache.org/r1517896
Log:
Merge from the JDK6 branch.

Added:
    sis/trunk/.gitignore
      - copied unchanged from r1517895, sis/branches/JDK6/.gitignore
    sis/trunk/application/sis-console/src/main/artifact/LICENSE
      - copied unchanged from r1517895, sis/branches/JDK6/application/sis-console/src/main/artifact/LICENSE
    sis/trunk/application/sis-console/src/main/artifact/NOTICE
      - copied unchanged from r1517895, sis/branches/JDK6/application/sis-console/src/main/artifact/NOTICE
    sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/MD_Metadata.java
      - copied unchanged from r1517895, sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/MD_Metadata.java
    sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/Authority.java
      - copied unchanged from r1517895, sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/Authority.java
    sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/io/
      - copied from r1517895, sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/io/
    sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/AbstractIdentifiedObject.java
      - copied unchanged from r1517895, sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/AbstractIdentifiedObject.java
    sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/IdentifiedObjects.java
      - copied unchanged from r1517895, sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/IdentifiedObjects.java
    sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/Properties.java
      - copied unchanged from r1517895, sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/Properties.java
    sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/
      - copied from r1517895, sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/
    sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/io/
      - copied from r1517895, sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/io/
    sis/trunk/core/sis-utility/src/main/java/org/apache/sis/internal/simple/SimpleIdentifiedObject.java
      - copied unchanged from r1517895, sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/internal/simple/SimpleIdentifiedObject.java
    sis/trunk/profiles/
      - copied from r1517895, sis/branches/JDK6/profiles/
    sis/trunk/storage/sis-shapefile/
      - copied from r1517895, sis/branches/JDK6/storage/sis-shapefile/
Modified:
    sis/trunk/   (props changed)
    sis/trunk/NOTICE
    sis/trunk/core/sis-build-helper/src/main/java/org/apache/sis/internal/maven/Assembler.java
    sis/trunk/core/sis-build-helper/src/main/java/org/apache/sis/internal/maven/BundleCreator.java
    sis/trunk/core/sis-build-helper/src/main/java/org/apache/sis/internal/maven/Filenames.java
    sis/trunk/core/sis-build-helper/src/site/apt/index.apt
    sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/RS_ReferenceSystem.java
    sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/ReferenceSystemMetadata.java
    sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/package-info.java
    sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/InformationMap.java   (props changed)
    sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/ImmutableIdentifier.java
    sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/Citations.java
    sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/MetadataStandardTest.java
    sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/citation/HardCodedCitations.java
    sis/trunk/core/sis-referencing/pom.xml
    sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/CRS.java
    sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/test/suite/ReferencingTestSuite.java
    sis/trunk/core/sis-utility/src/main/java/org/apache/sis/internal/simple/SimpleCitation.java
    sis/trunk/core/sis-utility/src/main/java/org/apache/sis/internal/simple/SimpleReferenceIdentifier.java
    sis/trunk/core/sis-utility/src/main/java/org/apache/sis/internal/util/Citations.java
    sis/trunk/core/sis-utility/src/main/java/org/apache/sis/internal/util/X364.java
    sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/ArgumentChecks.java
    sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/CharSequences.java
    sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/Static.java
    sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/UnconvertibleObjectException.java
    sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/UnsupportedImplementationException.java
    sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.java
    sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.properties
    sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors_fr.properties
    sis/trunk/core/sis-utility/src/main/java/org/apache/sis/xml/Namespaces.java
    sis/trunk/core/sis-utility/src/test/java/org/apache/sis/util/CharSequencesTest.java
    sis/trunk/ide-project/NetBeans/build.xml
    sis/trunk/ide-project/NetBeans/nbproject/build-impl.xml
    sis/trunk/ide-project/NetBeans/nbproject/genfiles.properties
    sis/trunk/ide-project/NetBeans/nbproject/project.properties
    sis/trunk/ide-project/NetBeans/nbproject/project.xml
    sis/trunk/pom.xml
    sis/trunk/profiles/pom.xml
    sis/trunk/profiles/sis-french-profile/pom.xml
    sis/trunk/storage/pom.xml
    sis/trunk/storage/sis-netcdf/src/test/java/org/apache/sis/internal/netcdf/VariableTest.java   (props changed)
    sis/trunk/storage/sis-shapefile/pom.xml

Propchange: sis/trunk/
------------------------------------------------------------------------------
  Merged /sis/branches/JDK7:r1515996-1517892
  Merged /sis/branches/JDK6:r1516009-1517895

Modified: sis/trunk/NOTICE
URL: http://svn.apache.org/viewvc/sis/trunk/NOTICE?rev=1517896&r1=1517895&r2=1517896&view=diff
==============================================================================
--- sis/trunk/NOTICE (original)
+++ sis/trunk/NOTICE Tue Aug 27 17:49:40 2013
@@ -8,5 +8,8 @@ The Javadoc contains documentation from 
 (OGC®) specifications (http://www.opengeospatial.org/standards/), also
 known as OpenGIS.
 
-The test suite includes software developed by
-the JUnit community (http://github.com/junit-team/junit.contrib/)
+Some modules use the Esri Geometry API developed by ESRI
+(http://github.com/Esri/geometry-api-java/)
+
+The test suite uses software developed by the JUnit community
+(http://github.com/junit-team/junit.contrib/)

Modified: sis/trunk/core/sis-build-helper/src/main/java/org/apache/sis/internal/maven/Assembler.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-build-helper/src/main/java/org/apache/sis/internal/maven/Assembler.java?rev=1517896&r1=1517895&r2=1517896&view=diff
==============================================================================
--- sis/trunk/core/sis-build-helper/src/main/java/org/apache/sis/internal/maven/Assembler.java [UTF-8] (original)
+++ sis/trunk/core/sis-build-helper/src/main/java/org/apache/sis/internal/maven/Assembler.java [UTF-8] Tue Aug 27 17:49:40 2013
@@ -40,8 +40,9 @@ import static org.apache.sis.internal.ma
  * Do not forget the <code>--non-recursive</code> option, otherwise the Mojo will be executed many time.
  *
  * <p><b>Current limitation:</b>
- * The directory to ZIP is hard-coded to <code>application/sis-console/src/main/artifact</code>,
- * and the final name is hard coded to <code>apache-sis-&lt;version&gt;.zip</code> for now.</p>
+ * The current implementation uses some hard-coded paths and filenames.
+ * See the <cite>Distribution file and Pack200 bundle</cite> section in the <code>src/site/apt/index.apt</code>
+ * file for more information.</p>
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.4

Modified: sis/trunk/core/sis-build-helper/src/main/java/org/apache/sis/internal/maven/BundleCreator.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-build-helper/src/main/java/org/apache/sis/internal/maven/BundleCreator.java?rev=1517896&r1=1517895&r2=1517896&view=diff
==============================================================================
--- sis/trunk/core/sis-build-helper/src/main/java/org/apache/sis/internal/maven/BundleCreator.java [UTF-8] (original)
+++ sis/trunk/core/sis-build-helper/src/main/java/org/apache/sis/internal/maven/BundleCreator.java [UTF-8] Tue Aug 27 17:49:40 2013
@@ -34,7 +34,9 @@ import static org.apache.sis.internal.ma
  * Do not forget the <code>--non-recursive</code> option, otherwise the Mojo will be executed many time.
  *
  * <p><b>Current limitation:</b>
- * The final name is hard coded to <code>apache-sis-&lt;version&gt;.pack.gz</code> for now.</p>
+ * The current implementation uses some hard-coded paths and filenames.
+ * See the <cite>Distribution file and Pack200 bundle</cite> section in the <code>src/site/apt/index.apt</code>
+ * file for more information.</p>
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.3 (derived from geotk-3.00)

Modified: sis/trunk/core/sis-build-helper/src/main/java/org/apache/sis/internal/maven/Filenames.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-build-helper/src/main/java/org/apache/sis/internal/maven/Filenames.java?rev=1517896&r1=1517895&r2=1517896&view=diff
==============================================================================
--- sis/trunk/core/sis-build-helper/src/main/java/org/apache/sis/internal/maven/Filenames.java [UTF-8] (original)
+++ sis/trunk/core/sis-build-helper/src/main/java/org/apache/sis/internal/maven/Filenames.java [UTF-8] Tue Aug 27 17:49:40 2013
@@ -23,6 +23,10 @@ import java.io.IOException;
 /**
  * Hard-coded file and directory names used by this package.
  *
+ * <p><b>Reminder:</b>
+ * If the above constants are modified, please remind to edit the <cite>Distribution file
+ * and Pack200 bundle</cite> section in the <code>src/site/apt/index.apt</code> file.</p>
+ *
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.4
  * @version 0.4
@@ -30,39 +34,45 @@ import java.io.IOException;
  */
 final class Filenames {
     /**
-     * The target directory.
+     * The target directory. This directory name is hard-coded instead than using a property annotated
+     * by {@code @parameter default-value="${project.build.directory}"} - or alternatively by invoking
+     * {@code MavenProject.getModel().getBuild().getDirectory()}, because we need the target directory
+     * of the project root rather than the directory of the module being built.
      */
     static final String TARGET_DIRECTORY = "target";
 
     /**
-     * The sub-directory (inside {@code target}) for binaries.
+     * The sub-directory inside {@value #TARGET_DIRECTORY} for binaries.
      */
     static final String BINARIES_DIRECTORY = "binaries";
 
     /**
-     * The name of the file where to list SIS JAR files and their dependencies
-     * on platforms that do not support hard links.
+     * The name of the file inside {@value #BINARIES_DIRECTORY} where to list SIS JAR files and their
+     * dependencies on platforms that do not support hard links.
      */
     static final String CONTENT_FILE = "content.txt";
 
     /**
-     * The sub-directory (inside {@code target}) containing pack files.
+     * The sub-directory inside {@value #TARGET_DIRECTORY} containing pack files.
      * This directory will be automatically created if it does not already exist.
      */
     static final String DISTRIBUTION_DIRECTORY = "distribution";
 
     /**
-     * The directory to zip for creating the distribution ZIP file.
+     * The path to the directory (relative to the project root) to zip for creating the distribution ZIP file.
      */
     static final String ARTIFACT_PATH = "application/sis-console/src/main/artifact";
 
     /**
-     * The name of the {@code lib} directory in the artifact.
+     * The name of the sub-directory inside {@value #ARTIFACT_PATH} where the Pack200 file will be located.
+     * Note that we will not write in the real directory, but only in the directory structure which is
+     * reproduced in the ZIP file.
      */
     static final String LIB_DIRECTORY = "lib";
 
     /**
-     * The big JAR file which will contains everything, without extension.
+     * The name (without extension) of the big JAR file which will contains everything.
+     * This file will be located in the {@value #LIB_DIRECTORY} directory.
      */
     static final String FATJAR_FILE = "sis";
 

Modified: sis/trunk/core/sis-build-helper/src/site/apt/index.apt
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-build-helper/src/site/apt/index.apt?rev=1517896&r1=1517895&r2=1517896&view=diff
==============================================================================
--- sis/trunk/core/sis-build-helper/src/site/apt/index.apt [UTF-8] (original)
+++ sis/trunk/core/sis-build-helper/src/site/apt/index.apt [UTF-8] Tue Aug 27 17:49:40 2013
@@ -147,33 +147,54 @@ Building Apache SIS
 +-----------------------------------------------------
 
 
-* Pack200 bundle
+* Distribution file and Pack200 bundle
 
-  To merges the binaries produced by the above step and compress them using Pack200,
-  invoke the following from the command line. Do not forget the <<<--non-recursive>>>
-  option, otherwise the Mojo will waste CPU by executing itself many time.
+  The Pack200 bundle is a file with the <<<.pack.gz>>> extension containing all SIS modules except <<<sis-webapp>>>
+  (because Web applications use an other packaging) together with their dependencies.
+  Pack200 files are uncompressed by the <<<unpack200>>> command provided in JDK/JRE installation.
+  However for users convenience, we provide a shell script for uncompressing and launching the SIS
+  command line tool in a single step. That shell script, together with the Pack200 file and other
+  files (<<<README>>>, <<<LICENSE>>>, <etc.>) are bundled in a ZIP file created as below:
+
+-------------------------------------------------------------------
+   mvn org.apache.sis.core:sis-build-helper:dist --non-recursive
+-------------------------------------------------------------------
+
+  Do not forget the <<<--non-recursive>>> option, otherwise the Mojo will waste CPU by executing itself many time.
+  Optionally, the Apache SIS version can be inserted as a 4th element between <<<sis-build-helper:>>> and <<<:dist>>>
+  if there is many versions of the plugin in the local repository.
+
+  The result will be created in the <<<target/distribution/apache-sis-<version>.zip>>> file.
+  To test, uncompress in any directory and execute <<<apache-sis-<version>/bin/sis>>>.
+  The Pack200 file will be automatically uncompressed when first needed.
+
+
+** Generating the Pack200 file alone
+
+  If only the Pack200 file is desired, without the distribution ZIP file,
+  one can use the following command:
 
 -------------------------------------------------------------------
    mvn org.apache.sis.core:sis-build-helper:pack --non-recursive
 -------------------------------------------------------------------
 
-  The above command should create a <<<target/binaries/sis-\<version\>.pack.gz>>> file.
+  The above command should create a <<<target/distribution/apache-sis-\<version\>.pack.gz>>> file.
   To uncompress that file, use the following command:
 
-----------------------------------------------------------------
-   unpack200 --remove-pack-file sis-<version>.pack.gz sis.jar
-----------------------------------------------------------------
+-----------------------------------------------------------------------
+   unpack200 --remove-pack-file apache-sis-<version>.pack.gz sis.jar
+-----------------------------------------------------------------------
 
   The Pack200 bundle does not include the <<<sis-webapp>>> module because the later can be downloaded
   as a <<<WAR>>> file from the Maven repository.
 
 
-* Distribution file
+** Known limitations
 
-  The distribution file is a ZIP file containing the same Pack200 bundle than above,
-  together with a <<<README>>> file, configuration files and convenience shell scripts.
-  The distribution file is generated as below:
+  The current plugin implementation has some hard-coded values, especially:
 
--------------------------------------------------------------------
-   mvn org.apache.sis.core:sis-build-helper:dist --non-recursive
--------------------------------------------------------------------
+    * The ZIP file content is copied from the <<<application/sis-console/src/main/artifact>>> directory.
+
+    * The Pack200 file path inside the ZIP file is hard-coded to <<<lib/sis.pack.gz>>>.
+
+    * The final filename is hard-coded to <<<apache-sis-<version>.zip>>>.

Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/RS_ReferenceSystem.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/RS_ReferenceSystem.java?rev=1517896&r1=1517895&r2=1517896&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/RS_ReferenceSystem.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/RS_ReferenceSystem.java [UTF-8] Tue Aug 27 17:49:40 2013
@@ -16,10 +16,8 @@
  */
 package org.apache.sis.internal.jaxb.metadata;
 
-import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlElementRef;
 import org.opengis.referencing.ReferenceSystem;
-import org.apache.sis.xml.Namespaces;
 import org.apache.sis.internal.jaxb.gco.PropertyType;
 
 
@@ -29,10 +27,10 @@ import org.apache.sis.internal.jaxb.gco.
  *
  * @author  Guilhem Legal (Geomatys)
  * @since   0.3 (derived from geotk-3.00)
- * @version 0.3
+ * @version 0.4
  * @module
  */
-public class RS_ReferenceSystem extends PropertyType<RS_ReferenceSystem, ReferenceSystem> {
+public final class RS_ReferenceSystem extends PropertyType<RS_ReferenceSystem, ReferenceSystem> {
     /**
      * Empty constructor for JAXB only.
      */
@@ -96,46 +94,4 @@ public class RS_ReferenceSystem extends 
     public void setElement(final ReferenceSystemMetadata metadata) {
         this.metadata = metadata;
     }
-
-    /**
-     * A hook for the French profile.
-     *
-     * @return The metadata to be marshalled.
-     *
-     * @todo We need a better plugin mechanism.
-     */
-    @XmlElement(name = "FRA_DirectReferenceSystem", namespace = Namespaces.FRA)
-    public ReferenceSystemMetadata getDirectReferenceSystem() {
-        return null;
-    }
-
-    /**
-     * Setter method for the French profile hook.
-     *
-     * @param metadata The unmarshalled metadata.
-     */
-    public void setDirectReferenceSystem(final ReferenceSystemMetadata metadata) {
-        this.metadata = metadata;
-    }
-
-    /**
-     * A hook for the French profile.
-     *
-     * @return The metadata to be marshalled.
-     *
-     * @todo We need a better plugin mechanism.
-     */
-    @XmlElement(name = "FRA_IndirectReferenceSystem", namespace = Namespaces.FRA)
-    public ReferenceSystemMetadata getIndirectReferenceSystem() {
-        return null;
-    }
-
-    /**
-     * Setter method for the French profile hook.
-     *
-     * @param metadata The unmarshalled metadata.
-     */
-    public void setIndirectReferenceSystem(final ReferenceSystemMetadata metadata) {
-        this.metadata = metadata;
-    }
 }

Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/ReferenceSystemMetadata.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/ReferenceSystemMetadata.java?rev=1517896&r1=1517895&r2=1517896&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/ReferenceSystemMetadata.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/ReferenceSystemMetadata.java [UTF-8] Tue Aug 27 17:49:40 2013
@@ -16,23 +16,13 @@
  */
 package org.apache.sis.internal.jaxb.metadata;
 
-import java.util.Set;
-import java.util.Collection;
-import java.util.Collections;
-import java.io.Serializable;
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
-import org.opengis.util.GenericName;
-import org.opengis.util.InternationalString;
-import org.opengis.metadata.citation.Citation;
-import org.opengis.metadata.extent.Extent;
 import org.opengis.referencing.ReferenceSystem;
 import org.opengis.referencing.ReferenceIdentifier;
-import org.apache.sis.util.iso.DefaultNameSpace;
-
-// Related to JDK7
-import org.apache.sis.internal.jdk7.Objects;
+import org.apache.sis.internal.simple.SimpleIdentifiedObject;
+import org.apache.sis.util.ComparisonMode;
 
 
 /**
@@ -54,20 +44,13 @@ import org.apache.sis.internal.jdk7.Obje
  * @see org.apache.sis.referencing.AbstractReferenceSystem
  */
 @XmlRootElement(name = "MD_ReferenceSystem")
-public class ReferenceSystemMetadata implements ReferenceSystem, Serializable {
+public class ReferenceSystemMetadata extends SimpleIdentifiedObject implements ReferenceSystem {
     /**
      * For cross-version compatibility.
      */
     private static final long serialVersionUID = 2810145397032096087L;
 
     /**
-     * The primary name by which this object is identified.
-     */
-    @XmlElement
-    @XmlJavaTypeAdapter(RS_Identifier.class)
-    private ReferenceIdentifier referenceSystemIdentifier;
-
-    /**
      * Creates a reference system without identifier.
      * This constructor is mainly for JAXB.
      */
@@ -80,7 +63,7 @@ public class ReferenceSystemMetadata imp
      * @param crs The reference system to partially copy.
      */
     public ReferenceSystemMetadata(final ReferenceSystem crs) {
-        referenceSystemIdentifier = crs.getName();
+        super(crs);
     }
 
     /**
@@ -89,142 +72,39 @@ public class ReferenceSystemMetadata imp
      * @param name The primary name by which this object is identified.
      */
     public ReferenceSystemMetadata(final ReferenceIdentifier name) {
-        referenceSystemIdentifier = name;
+        super(name);
     }
 
     /**
      * Returns the primary name by which this object is identified.
+     *
+     * @return The identifier given at construction time.
      */
     @Override
+    @XmlElement(name = "referenceSystemIdentifier")
+    @XmlJavaTypeAdapter(RS_Identifier.class)
     public ReferenceIdentifier getName() {
-        return referenceSystemIdentifier;
-    }
-
-    /**
-     * Current implementation returns an empty set.
-     */
-    @Override
-    public Set<ReferenceIdentifier> getIdentifiers() {
-        return Collections.emptySet();
+        return super.getName();
     }
 
     /**
-     * Current implementation returns an empty set.
-     */
-    @Override
-    public Collection<GenericName> getAlias() {
-        return Collections.emptySet();
-    }
-
-    /**
-     * Current implementation returns {@code null}.
-     */
-    @Override
-    public Extent getDomainOfValidity() {
-        return null;
-    }
-
-    /**
-     * Current implementation returns {@code null}.
-     */
-    @Override
-    public InternationalString getScope() {
-        return null;
-    }
-
-    /**
-     * Current implementation returns {@code null}.
-     */
-    @Override
-    public InternationalString getRemarks() {
-        return null;
-    }
-
-    /**
-     * Returns a hash code value for this object.
+     * Sets the primary name by which this object is identified.
+     *
+     * @param name The new primary name.
      */
-    @Override
-    public int hashCode() {
-        int code = (int) serialVersionUID;
-        final ReferenceIdentifier id = referenceSystemIdentifier;
-        if (id != null) {
-            code ^= id.hashCode();
-        }
-        return code;
+    public void setName(final ReferenceIdentifier name) {
+        referenceSystemIdentifier = name;
     }
 
     /**
      * Compares this object with the given one for equality.
      *
-     * @param object The object to compare with this reference system.
+     * @param  object The object to compare with this reference system.
+     * @param  mode The strictness level of the comparison.
      * @return {@code true} if both objects are equal.
      */
     @Override
-    public boolean equals(final Object object) {
-        if (object == this) {
-            return true;
-        }
-        if (object != null && object.getClass() == getClass()) {
-            final ReferenceSystemMetadata that = (ReferenceSystemMetadata) object;
-            return Objects.equals(referenceSystemIdentifier, that.referenceSystemIdentifier);
-        }
-        return false;
-    }
-
-    /**
-     * Throws an exception in all cases, since this object can't be formatted in a valid WKT.
-     *
-     * @throws UnsupportedOperationException Always thrown.
-     */
-    @Override
-    public String toWKT() throws UnsupportedOperationException {
-        throw new UnsupportedOperationException();
-    }
-
-    /**
-     * Returns a pseudo-WKT representation.
-     */
-    @Override
-    public String toString() {
-        final String code, codespace;
-        final Citation authority;
-        final ReferenceIdentifier id = referenceSystemIdentifier;
-        if (id != null) {
-            code      = id.getCode();
-            codespace = id.getCodeSpace();
-            authority = id.getAuthority();
-        } else {
-            code      = null;
-            codespace = null;
-            authority = null;
-        }
-        return toString("RS", authority, codespace, code, false);
-    }
-
-    /**
-     * Returns a pseudo-WKT representation.
-     *
-     * @param  type       The WKT heading text.
-     * @param  authority  The authority to write in the {@code "AUTHORITY"} element.
-     * @param  codespace  Usually an abbreviation of the authority name.
-     * @param  code       The code to write in the {@code "AUTHORITY"} element, or {@code null} if none.
-     * @param  deprecated {@code true} if the object to format is deprecated.
-     * @return The pseudo-WKT.
-     */
-    public static String toString(final String type, final Citation authority,
-            final String codespace, final String code, final boolean deprecated)
-    {
-        final StringBuilder buffer = new StringBuilder(type).append("[\"");
-        if (codespace != null) {
-            buffer.append(codespace).append(DefaultNameSpace.DEFAULT_SEPARATOR);
-        }
-        buffer.append(code).append('"');
-        if (authority != null) {
-            buffer.append(", AUTHORITY[\"").append(authority.getTitle()).append("\"]");
-        }
-        if (deprecated) {
-            buffer.append(", DEPRECATED");
-        }
-        return buffer.append(']').toString();
+    public boolean equals(final Object object, final ComparisonMode mode) {
+        return super.equals(object, mode) && (object instanceof ReferenceSystem);
     }
 }

Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/package-info.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/package-info.java?rev=1517896&r1=1517895&r2=1517896&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/package-info.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/package-info.java [UTF-8] Tue Aug 27 17:49:40 2013
@@ -58,8 +58,7 @@
 @XmlSchema(elementFormDefault = XmlNsForm.QUALIFIED, namespace = Namespaces.GMD, xmlns = {
     @XmlNs(prefix = "gmd", namespaceURI = Namespaces.GMD),
     @XmlNs(prefix = "gco", namespaceURI = Namespaces.GCO),
-    @XmlNs(prefix = "xsi", namespaceURI = Namespaces.XSI),
-    @XmlNs(prefix = "fra", namespaceURI = Namespaces.FRA)
+    @XmlNs(prefix = "xsi", namespaceURI = Namespaces.XSI)
 })
 @XmlAccessorType(XmlAccessType.NONE)
 package org.apache.sis.internal.jaxb.metadata;

Propchange: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/InformationMap.java
------------------------------------------------------------------------------
--- svn:mime-type (original)
+++ svn:mime-type Tue Aug 27 17:49:40 2013
@@ -1 +1 @@
-text/plain
+text/plain;charset=UTF-8

Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/ImmutableIdentifier.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/ImmutableIdentifier.java?rev=1517896&r1=1517895&r2=1517896&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/ImmutableIdentifier.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/ImmutableIdentifier.java [UTF-8] Tue Aug 27 17:49:40 2013
@@ -38,8 +38,8 @@ import org.apache.sis.util.iso.SimpleInt
 import org.apache.sis.util.iso.DefaultInternationalString;
 import org.apache.sis.metadata.iso.citation.Citations;
 import org.apache.sis.internal.jaxb.metadata.CI_Citation;
-import org.apache.sis.internal.jaxb.metadata.ReferenceSystemMetadata;
 import org.apache.sis.internal.jaxb.gco.StringAdapter;
+import org.apache.sis.internal.simple.SimpleIdentifiedObject;
 
 import static org.apache.sis.util.ArgumentChecks.ensureNonNull;
 import static org.opengis.referencing.IdentifiedObject.REMARKS_KEY;
@@ -504,6 +504,6 @@ public class ImmutableIdentifier impleme
      */
     @Override
     public String toString() {
-        return ReferenceSystemMetadata.toString("IDENTIFIER", authority, codeSpace, code, isDeprecated());
+        return SimpleIdentifiedObject.toString("IDENTIFIER", authority, codeSpace, code, isDeprecated());
     }
 }

Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/Citations.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/Citations.java?rev=1517896&r1=1517895&r2=1517896&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/Citations.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/Citations.java [UTF-8] Tue Aug 27 17:49:40 2013
@@ -37,7 +37,7 @@ import org.apache.sis.util.CharSequences
  *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @since   0.3 (derived from geotk-2.2)
- * @version 0.3
+ * @version 0.4
  * @module
  */
 public final class Citations extends Static {
@@ -58,6 +58,84 @@ public final class Citations extends Sta
     public static final Citation OGC = new SimpleCitation("OGC");
 
     /**
+     * The <a href="http://sis.apache.org">Apache SIS</a> project.
+     *
+     * @since 0.4
+     */
+    public static final Citation SIS = new SimpleCitation("SIS");
+
+    /**
+     * The <a href="http://www.esri.com">ESRI</a> organization.
+     * This company defines many Coordinate Reference Systems in addition to the {@linkplain #EPSG} ones.
+     *
+     * @see org.apache.sis.io.wkt.Convention#ESRI
+     * @category Organization
+     *
+     * @since 0.4
+     */
+    public static final Citation ESRI = new SimpleCitation("ESRI");
+
+    /**
+     * The <a href="http://www.oracle.com">Oracle</a> organization.
+     *
+     * @see org.apache.sis.io.wkt.Convention#ORACLE
+     * @category Organization
+     *
+     * @since 0.4
+     */
+    public static final Citation ORACLE = new SimpleCitation("Oracle");
+
+    /**
+     * The <a href="http://www.unidata.ucar.edu/software/netcdf-java">NetCDF</a> specification.
+     *
+     * @see org.apache.sis.io.wkt.Convention#NETCDF
+     * @category Specification
+     *
+     * @since 0.4
+     */
+    public static final Citation NETCDF = new SimpleCitation("NetCDF");
+
+    /**
+     * The <a href="http://www.remotesensing.org/geotiff/geotiff.html">GeoTIFF</a> specification.
+     *
+     * @see org.apache.sis.io.wkt.Convention#GEOTIFF
+     * @category Specification
+     *
+     * @since 0.4
+     */
+    public static final Citation GEOTIFF = new SimpleCitation("GeoTIFF");
+
+    /**
+     * The <a href="http://trac.osgeo.org/proj/">Proj.4</a> project.
+     *
+     * @see org.apache.sis.io.wkt.Convention#PROJ4
+     * @category Code space
+     *
+     * @since 0.4
+     */
+    public static final IdentifierSpace<String> PROJ4 = new Authority<String>("Proj.4", "PROJ4");
+
+    /**
+     * The <a href="http://www.epsg.org">European Petroleum Survey Group</a> authority.
+     * This citation is used as an authority for
+     * {@linkplain org.opengis.referencing.crs.CoordinateReferenceSystem coordinate reference system}
+     * identifiers. When searching an {@linkplain org.opengis.referencing.crs.CRSAuthorityFactory CRS
+     * authority factory} on EPSG data, SIS compares the {@code "EPSG"} string against the
+     * {@linkplain Citation#getIdentifiers identifiers} (or against the {@linkplain Citation#getTitle
+     * title} and {@linkplain Citation#getAlternateTitles alternate titles} if there is no identifier)
+     * using the {@link #identifierMatches(Citation,String) identifierMatches} method.
+     *
+     * @see #AUTO
+     * @see #AUTO2
+     * @see #CRS
+     * @see org.apache.sis.io.wkt.Convention#EPSG
+     * @category Code space
+     *
+     * @since 0.4
+     */
+    public static final IdentifierSpace<Integer> EPSG = new Authority<Integer>("EPSG", "EPSG");
+
+    /**
      * <cite>International Standard Book Number</cite> (ISBN) defined by ISO-2108.
      * The ISO-19115 metadata standard defines a specific attribute for this information,
      * but the SIS library handles it like any other identifier.
@@ -83,7 +161,7 @@ public final class Citations extends Sta
      * List of citations declared in this class.
      */
     private static final Citation[] AUTHORITIES = {
-        ISO, OGC, ISBN, ISSN
+        ISO, OGC, SIS, ESRI, ORACLE, NETCDF, GEOTIFF, PROJ4, EPSG, ISBN, ISSN
     };
 
     /**

Modified: sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/MetadataStandardTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/MetadataStandardTest.java?rev=1517896&r1=1517895&r2=1517896&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/MetadataStandardTest.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/MetadataStandardTest.java [UTF-8] Tue Aug 27 17:49:40 2013
@@ -152,7 +152,7 @@ public final strictfp class MetadataStan
         final Map<String,Object> map = MetadataStandard.ISO_19115.asValueMap(instance,
                 KeyNamePolicy.JAVABEANS_PROPERTY, ValueExistencePolicy.NON_EMPTY);
         assertFalse("The properties map shall not be empty.", map.isEmpty());
-        assertEquals("Unexpected number of properties.", 4, map.size());
+        assertEquals("Unexpected number of properties.", 5, map.size());
         /*
          * Verify the set of keys in the ValueMap.
          *
@@ -161,12 +161,14 @@ public final strictfp class MetadataStan
          * PropertyAccessorTest.testConstructor().
          */
         final Set<String> keys = map.keySet();
-        assertEquals("[title, alternateTitles, identifiers, presentationForms]", keys.toString());
+        assertEquals("[title, alternateTitles, identifiers, citedResponsibleParties, presentationForms]", keys.toString());
         assertTrue  ("Shall exist and be defined.",   keys.contains("title"));
         assertTrue  ("Shall exist and be defined.",   keys.contains("getTitle"));
         assertTrue  ("Shall exist and be defined.",   keys.contains("identifier"));
         assertTrue  ("Shall exist and be defined.",   keys.contains("identifiers"));
         assertTrue  ("Shall exist and be defined.",   keys.contains("getIdentifiers"));
+        assertTrue  ("Shall exist and be defined.",   keys.contains("citedResponsibleParty"));
+        assertTrue  ("Shall exist and be defined.",   keys.contains("citedResponsibleParties"));
         assertFalse ("Shall exist but be undefined.", keys.contains("ISBN"));
         assertFalse ("Shall not exists.",             keys.contains("dummy"));
         /*

Modified: sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/citation/HardCodedCitations.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/citation/HardCodedCitations.java?rev=1517896&r1=1517895&r2=1517896&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/citation/HardCodedCitations.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/citation/HardCodedCitations.java [UTF-8] Tue Aug 27 17:49:40 2013
@@ -16,9 +16,12 @@
  */
 package org.apache.sis.metadata.iso.citation;
 
+import java.net.URI;
 import java.util.Collection;
 import org.opengis.metadata.Identifier;
+import org.opengis.metadata.citation.Role;
 import org.opengis.metadata.citation.Citation;
+import org.opengis.metadata.citation.OnLineFunction;
 import org.opengis.metadata.citation.PresentationForm;
 import org.apache.sis.metadata.iso.DefaultIdentifier;
 import org.apache.sis.util.iso.SimpleInternationalString;
@@ -37,7 +40,7 @@ import static java.util.Collections.sing
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.3 (derived from geotk-2.4)
- * @version 0.3
+ * @version 0.4
  * @module
  */
 public final strictfp class HardCodedCitations extends Static {
@@ -91,10 +94,19 @@ public final strictfp class HardCodedCit
      */
     public static final DefaultCitation EPSG;
     static {
-        final DefaultCitation c = new DefaultCitation("European Petroleum Survey Group");
+        final SimpleInternationalString title = new SimpleInternationalString("European Petroleum Survey Group");
+        final DefaultOnlineResource r = new DefaultOnlineResource(URI.create("http://www.epsg.org"));
+        r.setFunction(OnLineFunction.INFORMATION);
+
+        final DefaultResponsibleParty p = new DefaultResponsibleParty(Role.PRINCIPAL_INVESTIGATOR);
+        p.setOrganisationName(title);
+        p.setContactInfo(new DefaultContact(r));
+
+        final DefaultCitation c = new DefaultCitation(title);
         c.setAlternateTitles(singleton(new SimpleInternationalString("EPSG")));
         c.setPresentationForms(singleton(PresentationForm.TABLE_DIGITAL));
         c.getIdentifiers().add(new DefaultIdentifier("EPSG"));
+        c.getCitedResponsibleParties().add(p);
         c.freeze();
         EPSG = c;
     }

Modified: sis/trunk/core/sis-referencing/pom.xml
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/pom.xml?rev=1517896&r1=1517895&r2=1517896&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/pom.xml (original)
+++ sis/trunk/core/sis-referencing/pom.xml Tue Aug 27 17:49:40 2013
@@ -117,6 +117,11 @@ Implementations of Coordinate Reference 
       <version>${project.version}</version>
     </dependency>
     <dependency>
+      <groupId>org.apache.sis.core</groupId>
+      <artifactId>sis-metadata</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
       <groupId>org.opengis</groupId>
       <artifactId>geoapi</artifactId>
     </dependency>

Modified: sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/CRS.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/CRS.java?rev=1517896&r1=1517895&r2=1517896&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/CRS.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/CRS.java [UTF-8] Tue Aug 27 17:49:40 2013
@@ -27,7 +27,7 @@ import static org.apache.sis.util.Argume
 /**
  * Static methods working on {@linkplain CoordinateReferenceSystem Coordinate Reference Systems}.
  *
- * @author Martin Desruisseaux (IRD, Geomatys)
+ * @author  Martin Desruisseaux (IRD, Geomatys)
  * @since   0.3 (derived from geotk-2.1)
  * @version 0.3
  * @module

Modified: sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/test/suite/ReferencingTestSuite.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/test/suite/ReferencingTestSuite.java?rev=1517896&r1=1517895&r2=1517896&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/test/suite/ReferencingTestSuite.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/test/suite/ReferencingTestSuite.java [UTF-8] Tue Aug 27 17:49:40 2013
@@ -38,7 +38,10 @@ import org.junit.BeforeClass;
     org.apache.sis.geometry.GeneralEnvelopeTest.class,
     org.apache.sis.geometry.SubEnvelopeTest.class,
     org.apache.sis.geometry.ImmutableEnvelopeTest.class,
-    org.apache.sis.geometry.Envelope2DTest.class
+    org.apache.sis.geometry.Envelope2DTest.class,
+    org.apache.sis.io.wkt.ConventionTest.class,
+    org.apache.sis.io.wkt.SymbolsTest.class,
+    org.apache.sis.io.wkt.FormatterTest.class
 })
 public final strictfp class ReferencingTestSuite extends TestSuite {
     /**

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/internal/simple/SimpleCitation.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/internal/simple/SimpleCitation.java?rev=1517896&r1=1517895&r2=1517896&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/internal/simple/SimpleCitation.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/internal/simple/SimpleCitation.java [UTF-8] Tue Aug 27 17:49:40 2013
@@ -20,7 +20,6 @@ import java.util.Date;
 import java.util.Collection;
 import java.util.Collections;
 import java.io.Serializable;
-
 import org.opengis.metadata.Identifier;
 import org.opengis.metadata.citation.Citation;
 import org.opengis.metadata.citation.CitationDate;
@@ -36,7 +35,7 @@ import org.apache.sis.internal.jdk7.Obje
 
 
 /**
- * A trivial implementation of {@link Citation}.
+ * A trivial implementation of {@link Citation} containing only a title.
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.3 (derived from geotk-3.19)
@@ -65,6 +64,8 @@ public class SimpleCitation implements C
 
     /**
      * Returns the title as an international string.
+     *
+     * @return The title given at construction time.
      */
     @Override
     public InternationalString getTitle() {
@@ -75,6 +76,8 @@ public class SimpleCitation implements C
      * Methods inherited from the {@link Citation} interface which are
      * not of interest to this {@code SimpleCitation} implementation.
      * Those methods will be removed in the JDK8 branch.
+     *
+     * @return An empty list.
      */
     @Override public Collection<InternationalString>  getAlternateTitles()         {return Collections.emptyList();}
     @Override public Collection<CitationDate>         getDates()                   {return Collections.emptyList();}

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/internal/simple/SimpleReferenceIdentifier.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/internal/simple/SimpleReferenceIdentifier.java?rev=1517896&r1=1517895&r2=1517896&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/internal/simple/SimpleReferenceIdentifier.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/internal/simple/SimpleReferenceIdentifier.java [UTF-8] Tue Aug 27 17:49:40 2013
@@ -85,6 +85,8 @@ public class SimpleReferenceIdentifier i
      * bibliographical reference to an international standard such as ISO 19115.
      *
      * <p>The default implementation returns the citation specified at construction time;</p>
+     *
+     * @return The authority given at construction time, or {@code null} if none.
      */
     @Override
     public Citation getAuthority() {
@@ -95,6 +97,8 @@ public class SimpleReferenceIdentifier i
      * Returns the name or identifier of the person or organization responsible for namespace,
      * or {@code null} if none. The default implementation returns the shortest identifier of
      * the {@linkplain #getAuthority() authority}, if any.
+     *
+     * @return A code space inferred from the authority given at construction time, or {@code null} if none.
      */
     @Override
     public String getCodeSpace() {
@@ -107,6 +111,8 @@ public class SimpleReferenceIdentifier i
      * referenced by the {@linkplain #getAuthority() authority} citation.
      *
      * <p>The default implementation returns the code specified at construction time;</p>
+     *
+     * @return The code given at construction time, or {@code null} if none.
      */
     @Override
     public String getCode() {
@@ -117,6 +123,8 @@ public class SimpleReferenceIdentifier i
      * Version identifier for the namespace, as specified by the code authority.
      * When appropriate, the edition is identified by the effective date, coded
      * using ISO 8601 date format.
+     *
+     * @return A version inferred from the authority given at construction time, or {@code null} if none.
      */
     @Override
     public String getVersion() {

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/internal/util/Citations.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/internal/util/Citations.java?rev=1517896&r1=1517895&r2=1517896&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/internal/util/Citations.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/internal/util/Citations.java [UTF-8] Tue Aug 27 17:49:40 2013
@@ -61,7 +61,7 @@ public final class Citations extends Sta
      * @param  collection The collection from which to get the iterator, or {@code null}.
      * @return The iterator over the given collection elements, or {@code null}.
      */
-    private static <E> Iterator<E> iterator(final Collection<E> collection) {
+    public static <E> Iterator<E> iterator(final Collection<E> collection) {
         return (collection != null && !collection.isEmpty()) ? collection.iterator() : null;
     }
 

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/internal/util/X364.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/internal/util/X364.java?rev=1517896&r1=1517895&r2=1517896&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/internal/util/X364.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/internal/util/X364.java [UTF-8] Tue Aug 27 17:49:40 2013
@@ -18,6 +18,7 @@ package org.apache.sis.internal.util;
 
 import java.util.Arrays;
 import org.apache.sis.util.CharSequences;
+import org.apache.sis.util.ArgumentChecks;
 import org.apache.sis.util.resources.Errors;
 
 
@@ -259,6 +260,7 @@ search: do {
      */
     public static X364 forColorName(String color) throws IllegalArgumentException {
         color = CharSequences.trimWhitespaces(color);
+        ArgumentChecks.ensureNonEmpty("color", color);
         for (final X364 code : NAMED) {
             if (color.equalsIgnoreCase(code.color)) {
                 return code;

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/ArgumentChecks.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/ArgumentChecks.java?rev=1517896&r1=1517895&r2=1517896&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/ArgumentChecks.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/ArgumentChecks.java [UTF-8] Tue Aug 27 17:49:40 2013
@@ -79,7 +79,7 @@ import org.apache.sis.util.resources.Err
  *
  * @author Martin Desruisseaux (Geomatys)
  * @since   0.3 (derived from geotk-3.17)
- * @version 0.3
+ * @version 0.4
  * @module
  */
 public final class ArgumentChecks extends Static {
@@ -534,13 +534,30 @@ public final class ArgumentChecks extend
     }
 
     /**
+     * Ensures that the given integer is a valid Unicode code point. The range of valid code points goes
+     * from {@link Character#MIN_CODE_POINT U+0000} to {@link Character#MAX_CODE_POINT U+10FFFF} inclusive.
+     *
+     * @param  name The name of the argument to be checked. Used only if an exception is thrown.
+     * @param  code The Unicode code point to verify.
+     * @throws IllegalArgumentException if the given value is not a valid Unicode code point.
+     *
+     * @since 0.4
+     */
+    public static void ensureValidUnicodeCodePoint(final String name, final int code) throws IllegalArgumentException {
+        if (!Character.isValidCodePoint(code)) {
+            throw new IllegalArgumentException(Errors.format(Errors.Keys.IllegalUnicodeCodePoint_2, name,
+                    (code < Character.MIN_CODE_POINT) ? code : "U+" + Integer.toHexString(code).toUpperCase()));
+        }
+    }
+
+    /**
      * Ensures that the given CRS, if non-null, has the expected number of dimensions.
      * This method does nothing if the given coordinate reference system is null.
      *
      * @param  name     The name of the argument to be checked. Used only if an exception is thrown.
      * @param  expected The expected number of dimensions.
      * @param  crs      The coordinate reference system to check for its dimension, or {@code null}.
-     * @throws MismatchedDimensionException If the given coordinate reference system is non-null
+     * @throws MismatchedDimensionException if the given coordinate reference system is non-null
      *         and does not have the expected number of dimensions.
      */
     public static void ensureDimensionMatches(final String name, final int expected,

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/CharSequences.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/CharSequences.java?rev=1517896&r1=1517895&r2=1517896&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/CharSequences.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/CharSequences.java [UTF-8] Tue Aug 27 17:49:40 2013
@@ -75,7 +75,7 @@ import static org.apache.sis.internal.jd
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.3 (derived from geotk-3.00)
- * @version 0.3
+ * @version 0.4
  * @module
  *
  * @see StringBuilders
@@ -1755,35 +1755,70 @@ cmp:    while (ia < lga) {
     }
 
     /**
-     * Returns {@code true} if the given character sequence starts with the given prefix.
+     * Returns {@code true} if the given text at the given offset contains the given part,
+     * optionally in a case-insensitive way. This method is equivalent to the following code,
+     * except that this method works on arbitrary {@link CharSequence} objects instead than
+     * {@link String}s only:
      *
-     * @param  text        The characters sequence to test.
-     * @param  prefix      The expected prefix.
-     * @param  ignoreCase  {@code true} if the case should be ignored.
-     * @return {@code true} if the given sequence starts with the given prefix.
+     * {@preformat java
+     *     return text.regionMatches(ignoreCase, offset, part, 0, part.length());
+     * }
+     *
+     * This method does not thrown {@code IndexOutOfBoundsException}. Instead if
+     * {@code fromIndex < 0} or {@code fromIndex + part.length() > text.length()},
+     * then this method returns {@code false}.
+     *
+     * @param text       The character sequence for which to tests for the presence of {@code part}.
+     * @param fromIndex  The offset in {@code text} where to test for the presence of {@code part}.
+     * @param part       The part which may be present in {@code text}.
+     * @param ignoreCase {@code true} if the case should be ignored.
+     * @return {@code true} if {@code text} contains {@code part} at the given {@code offset}.
      * @throws NullPointerException if any of the arguments is null.
+     *
+     * @see String#regionMatches(boolean, int, String, int, int)
+     *
+     * @since 0.4
      */
-    public static boolean startsWith(final CharSequence text, final CharSequence prefix, final boolean ignoreCase) {
-        final int lgs = text.length();
-        final int lgp = prefix.length();
-        int is = 0;
-        int ip = 0;
-        while (ip < lgp) {
-            if (is >= lgs) {
+    public static boolean regionMatches(final CharSequence text, int fromIndex, final CharSequence part, final boolean ignoreCase) {
+        if (!ignoreCase) {
+            return regionMatches(text, fromIndex, part);
+        }
+        // Do not check for String cases. We do not want to delegate to String.regionMatches
+        // because we compare code points while String.regionMatches(…) compares characters.
+        final int limit  = text.length();
+        final int length = part.length();
+        if (fromIndex < 0) { // Not checked before because we want NullPointerException if an argument is null.
+            return false;
+        }
+        for (int i=0; i<length;) {
+            if (fromIndex >= limit) {
                 return false;
             }
-            final int cs = codePointAt(text, is);
-            final int cp = codePointAt(prefix,   ip);
-            if (cs != cp && (!ignoreCase || !equalsIgnoreCase(cs, cp))) {
+            final int c1 = codePointAt(part, i);
+            final int c2 = codePointAt(text, fromIndex);
+            if (c1 != c2 && !equalsIgnoreCase(c1, c2)) {
                 return false;
             }
-            is += charCount(cs);
-            ip += charCount(cp);
+            fromIndex += charCount(c2);
+            i += charCount(c1);
         }
         return true;
     }
 
     /**
+     * Returns {@code true} if the given character sequence starts with the given prefix.
+     *
+     * @param  text        The characters sequence to test.
+     * @param  prefix      The expected prefix.
+     * @param  ignoreCase  {@code true} if the case should be ignored.
+     * @return {@code true} if the given sequence starts with the given prefix.
+     * @throws NullPointerException if any of the arguments is null.
+     */
+    public static boolean startsWith(final CharSequence text, final CharSequence prefix, final boolean ignoreCase) {
+        return regionMatches(text, 0, prefix, ignoreCase);
+    }
+
+    /**
      * Returns {@code true} if the given character sequence ends with the given suffix.
      *
      * @param  text        The characters sequence to test.

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/Static.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/Static.java?rev=1517896&r1=1517895&r2=1517896&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/Static.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/Static.java [UTF-8] Tue Aug 27 17:49:40 2013
@@ -54,6 +54,9 @@ package org.apache.sis.util;
  *     <td>Extract information from {@link org.opengis.metadata.extent.Extent} objects.</td></tr>
  * <tr><td>{@link org.apache.sis.geometry.Envelopes}</td>
  *     <td>Parse, format and transform {@linkplain org.opengis.geometry.Envelope envelopes}.</td></tr>
+ * <tr><td>{@link org.apache.sis.referencing.IdentifiedObjects}</td>
+ *     <td>Handle names, identifiers or properties of
+ *         {@linkplain org.opengis.referencing.IdentifiedObject identified objects}.</td></tr>
  *
  * <tr><th colspan="2" class="hsep">Input / Output (including CRS, XML, images)</th></tr>
  * <tr><td>{@link org.apache.sis.io.IO}</td>

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/UnconvertibleObjectException.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/UnconvertibleObjectException.java?rev=1517896&r1=1517895&r2=1517896&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/UnconvertibleObjectException.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/UnconvertibleObjectException.java [UTF-8] Tue Aug 27 17:49:40 2013
@@ -47,28 +47,28 @@ public class UnconvertibleObjectExceptio
     /**
      * Constructs a new exception with the specified detail message.
      *
-     * @param message The detail message.
+     * @param message The detail message, or {@code null} if none.
      */
-    public UnconvertibleObjectException(String message) {
+    public UnconvertibleObjectException(final String message) {
         super(message);
     }
 
     /**
      * Constructs a new exception with the specified detail message and cause.
      *
-     * @param message The detail message.
-     * @param cause The cause.
+     * @param message The detail message, or {@code null} if none.
+     * @param cause The cause, or {@code null} if none.
      */
-    public UnconvertibleObjectException(String message, Throwable cause) {
+    public UnconvertibleObjectException(final String message, final Throwable cause) {
         super(message, cause);
     }
 
     /**
      * Constructs a new exception with the specified cause.
      *
-     * @param cause The cause.
+     * @param cause The cause, or {@code null} if none.
      */
-    public UnconvertibleObjectException(Throwable cause) {
+    public UnconvertibleObjectException(final Throwable cause) {
         super(cause);
     }
 }

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/UnsupportedImplementationException.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/UnsupportedImplementationException.java?rev=1517896&r1=1517895&r2=1517896&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/UnsupportedImplementationException.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/UnsupportedImplementationException.java [UTF-8] Tue Aug 27 17:49:40 2013
@@ -39,7 +39,7 @@ public class UnsupportedImplementationEx
     /**
      * Constructs an exception with the specified detail message.
      *
-     * @param message The detail message.
+     * @param message The detail message, or {@code null} if none.
      */
     public UnsupportedImplementationException(final String message) {
         super(message);
@@ -59,7 +59,7 @@ public class UnsupportedImplementationEx
      * and a cause.
      *
      * @param classe The unexpected implementation class.
-     * @param cause  The cause for the exception.
+     * @param cause  The cause for the exception, or {@code null} if none.
      */
     public UnsupportedImplementationException(final Class<?> classe, final Exception cause) {
         super(Errors.format(Errors.Keys.UnsupportedImplementation_1, classe), cause);

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.java?rev=1517896&r1=1517895&r2=1517896&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.java [UTF-8] Tue Aug 27 17:49:40 2013
@@ -104,6 +104,11 @@ public final class Errors extends Indexe
         public static final int CanNotRead_1 = 108;
 
         /**
+         * Can not represent “{1}” in the {0} format.
+         */
+        public static final int CanNotRepresentInFormat_2 = 110;
+
+        /**
          * Can not set a value for property “{0}”.
          */
         public static final int CanNotSetPropertyValue_1 = 75;
@@ -246,6 +251,11 @@ public final class Errors extends Indexe
         public static final int IllegalRange_2 = 11;
 
         /**
+         * Value {1} for “{0}” is not a valid Unicode code point.
+         */
+        public static final int IllegalUnicodeCodePoint_2 = 112;
+
+        /**
          * Property “{0}” has an incompatible value.
          */
         public static final int IncompatiblePropertyValue_1 = 86;
@@ -296,6 +306,11 @@ public final class Errors extends Indexe
         public static final int MandatoryAttribute_2 = 22;
 
         /**
+         * Mismatched array lengths.
+         */
+        public static final int MismatchedArrayLengths = 111;
+
+        /**
          * The coordinate reference system must be the same for all objects.
          */
         public static final int MismatchedCRS = 57;
@@ -436,6 +451,11 @@ public final class Errors extends Indexe
         public static final int NotAPrimitiveWrapper_1 = 10;
 
         /**
+         * Text “{0}” is not a Unicode identifier.
+         */
+        public static final int NotAUnicodeIdentifier_1 = 113;
+
+        /**
          * Class ‘{0}’ is not a comparable.
          */
         public static final int NotComparableClass_1 = 66;

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.properties
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.properties?rev=1517896&r1=1517895&r2=1517896&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.properties [ISO-8859-1] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.properties [ISO-8859-1] Tue Aug 27 17:49:40 2013
@@ -32,6 +32,7 @@ CanNotInstantiate_1             = Can no
 CanNotOpen_1                    = Can not open \u201c{0}\u201d.
 CanNotParseFile_2               = Can not parse \u201c{1}\u201d as a file in the {0} format.
 CanNotRead_1                    = Can not read \u201c{0}\u201d.
+CanNotRepresentInFormat_2       = Can not represent \u201c{1}\u201d in the {0} format.
 CanNotSetPropertyValue_1        = Can not set a value for property \u201c{0}\u201d.
 ClassNotFinal_1                 = Class \u2018{0}\u2019 is not final.
 CloneNotSupported_1             = Can not clone an object of type \u2018{0}\u2019.
@@ -59,6 +60,7 @@ IllegalMemberType_2             = Member
 IllegalOrdinateRange_3          = The [{0} \u2026 {1}] range of ordinate values is not valid for the \u201c{2}\u201d axis.
 IllegalPropertyClass_2          = Property \u2018{0}\u2019 can be associated to an instance of \u2018{1}\u2019.
 IllegalRange_2                  = Range [{0} \u2026 {1}] is not valid.
+IllegalUnicodeCodePoint_2       = Value {1} for \u201c{0}\u201d is not a valid Unicode code point.
 IncompatiblePropertyValue_1     = Property \u201c{0}\u201d has an incompatible value.
 IncompatibleUnits_2             = Units \u201c{0}\u201d and \u201c{1}\u201d are incompatible.
 InconsistentAttribute_2         = Value \u201c{1}\u201d of attribute \u2018{0}\u2019 is inconsistent with other attributes.
@@ -70,6 +72,7 @@ InfiniteRecursivity             = Infini
 InsufficientArgumentSize_3      = Argument \u2018{0}\u2019 shall contain at least {1} elements. A number of {2} is insufficient.
 KeyCollision_1                  = A different value is already associated to the \u201c{0}\u201d key.
 MandatoryAttribute_2            = Attribute \u201c{0}\u201d is mandatory for an object of type \u2018{1}\u2019.
+MismatchedArrayLengths          = Mismatched array lengths.
 MismatchedCRS                   = The coordinate reference system must be the same for all objects.
 MismatchedDimension_2           = Mismatched object dimension: {0}D and {1}D.
 MismatchedDimension_3           = Argument \u2018{0}\u2019 has {2} dimension{2,choice,1#|2#s}, while {1} was expected.
@@ -95,6 +98,7 @@ NonScaleUnit_1                  = \u201c
 NonTemporalUnit_1               = \u201c{0}\u201d is not a time unit.
 NotANumber_1                    = Argument \u2018{0}\u2019 shall not be NaN (Not-a-Number).
 NotAPrimitiveWrapper_1          = Class \u2018{0}\u2019 is not a primitive type wrapper.
+NotAUnicodeIdentifier_1         = Text \u201c{0}\u201d is not a Unicode identifier.
 NotComparableClass_1            = Class \u2018{0}\u2019 is not a comparable.
 NoSuchElement_1                 = Element \u201c{0}\u201d has not been found.
 NoSuchProperty_2                = No property named \u201c{0}\u201d has been found in \u201c{1}\u201d.

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors_fr.properties
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors_fr.properties?rev=1517896&r1=1517895&r2=1517896&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors_fr.properties [ISO-8859-1] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors_fr.properties [ISO-8859-1] Tue Aug 27 17:49:40 2013
@@ -22,6 +22,7 @@ CanNotInstantiate_1             = Ne peu
 CanNotOpen_1                    = Ne peut pas ouvrir \u201c{0}\u201d.
 CanNotParseFile_2               = Ne peut pas lire \u201c{1}\u201d comme un fichier au format {0}.
 CanNotRead_1                    = Ne peut pas lire \u201c{0}\u201d.
+CanNotRepresentInFormat_2       = Ne peut pas repr\u00e9senter \u201c{1}\u201d dans le format {0}.
 CanNotSetPropertyValue_1        = Ne peut pas d\u00e9finir une valeur pour la propri\u00e9t\u00e9 \u201c{0}\u201d.
 ClassNotFinal_1                 = La classe \u2018{0}\u2019 n\u2019est pas finale.
 CloneNotSupported_1             = Un objet de type \u2018{0}\u2019 ne peut pas \u00eatre clon\u00e9.
@@ -49,6 +50,7 @@ IllegalMemberType_2             = Le mem
 IllegalOrdinateRange_3          = La plage de valeurs de coordonn\u00e9es [{1} \u2026 {2}] n\u2019est pas valide pour l\u2019axe \u201c{0}\u201d.
 IllegalPropertyClass_2          = La propri\u00e9t\u00e9 \u2018{0}\u2019 ne peut pas \u00eatre associ\u00e9e \u00e0 une valeur de type \u2018{1}\u2019.
 IllegalRange_2                  = La plage [{0} \u2026 {1}] n\u2019est pas valide.
+IllegalUnicodeCodePoint_2       = La valeur {1} de \u201c{0}\u201d n\u2019est pas un code Unicode valide.
 IncompatiblePropertyValue_1     = La valeur de la propri\u00e9t\u00e9 \u201c{0}\u201d n\u2019est pas compatible.
 IncompatibleUnits_2             = Les unit\u00e9s \u201c{0}\u201d et \u201c{1}\u201d ne sont pas compatibles.
 InconsistentAttribute_2         = La valeur \u201c{1}\u201d de l\u2019attribut \u2018{0}\u2019 n\u2019est pas coh\u00e9rente avec celles des autres attributs.
@@ -60,6 +62,7 @@ InfiniteRecursivity             = R\u00e
 InsufficientArgumentSize_3      = L\u2019argument \u2018{0}\u2019 doit contenir au moins {1} \u00e9l\u00e9ments. Un nombre de {2} est insuffisant.
 KeyCollision_1                  = Une valeur diff\u00e9rente est d\u00e9j\u00e0 associ\u00e9e \u00e0 la cl\u00e9 \u201c{0}\u201d.
 MandatoryAttribute_2            = L\u2019attribut \u201c{0}\u201d est obligatoire pour un objet de type \u2018{1}\u2019.
+MismatchedArrayLengths          = Les dimensions des tableaux ne correspondent pas.
 MismatchedCRS                   = Le syst\u00e8me de r\u00e9f\u00e9rence des coordonn\u00e9es doit \u00eatre le m\u00eame pour tous les objets.
 MismatchedDimension_2           = Les dimensions des objets ({0}D et {1}D) ne concordent pas.
 MismatchedDimension_3           = L\u2019argument \u2018{0}\u2019 a {2} dimension{2,choice,1#|2#s}, alors qu\u2019on en attendait {1}.
@@ -85,6 +88,7 @@ NonScaleUnit_1                  = \u201c
 NonTemporalUnit_1               = \u201c{0}\u201d n\u2019est pas une unit\u00e9 de temps.
 NotANumber_1                    = L\u2019argument \u2018{0}\u2019 ne doit pas \u00eatre NaN (Not-a-Number).
 NotAPrimitiveWrapper_1          = La classe \u2018{0}\u2019 n\u2019est pas un adaptateur d\u2019un type primitif.
+NotAUnicodeIdentifier_1         = Le texte \u201c{0}\u201d n\u2019est pas un identifiant Unicode.
 NotComparableClass_1            = La classe \u2018{0}\u2019 n\u2019est pas comparable.
 NoSuchElement_1                 = L\u2019\u00e9lement \u201c{0}\u201d n\u2019a pas \u00e9t\u00e9 trouv\u00e9.
 NoSuchProperty_2                = Aucune propri\u00e9t\u00e9 nomm\u00e9e \u201c{0}\u201d n\u2019a \u00e9t\u00e9 trouv\u00e9e dans \u201c{1}\u201d.

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/xml/Namespaces.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/xml/Namespaces.java?rev=1517896&r1=1517895&r2=1517896&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/xml/Namespaces.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/xml/Namespaces.java [UTF-8] Tue Aug 27 17:49:40 2013
@@ -25,13 +25,22 @@ import org.apache.sis.util.ArgumentCheck
 
 
 /**
- * List some namespaces URLs used by JAXB when (un)marshalling.
+ * Lists some namespaces URLs used by JAXB when (un)marshalling.
+ *
+ * {@section Profiles}
+ * Some countries or organizations define profiles of international standards, which may contain
+ * country-specific extensions. The namespace of such extensions are usually defined in a separated
+ * class dedicated to the profile. Some of them are listed below:
+ *
+ * <ul>
+ *   <li>{@value org.apache.sis.profile.france.FrenchProfile#NAMESPACE}</li>
+ * </ul>
  *
  * @author  Cédric Briançon (Geomatys)
  * @author  Quentin Boileau (Geomatys)
  * @author  Guilhem Legal (Geomatys)
  * @since   0.3 (derived from geotk-3.00)
- * @version 0.3
+ * @version 0.4
  * @module
  */
 public final class Namespaces extends Static {
@@ -131,14 +140,6 @@ public final class Namespaces extends St
     public static final String XLINK = "http://www.w3.org/1999/xlink";
 
     /**
-     * The <code>{@value}</code> URL.
-     * The usual prefix for this namespace is {@code "fra"}.
-     *
-     * @category Profiles
-     */
-    public static final String FRA = "http://www.cnig.gouv.fr/2005/fra";
-
-    /**
      * URLs for which the prefix to use directly follows them.
      */
     private static final String[] GENERIC_URLS = {

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=1517896&r1=1517895&r2=1517896&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] Tue Aug 27 17:49:40 2013
@@ -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.3
+ * @version 0.4
  * @module
  */
 @DependsOn({
@@ -410,12 +410,14 @@ public final strictfp class CharSequence
     }
 
     /**
-     * Tests the {@link CharSequences#regionMatches(CharSequence, int, CharSequence)} method.
+     * Tests the {@link CharSequences#regionMatches(CharSequence, int, CharSequence)} and
+     * {@link CharSequences#regionMatches(CharSequence, int, CharSequence, boolean)} methods.
      */
     @Test
     public void testRegionMatches() {
         assertTrue (regionMatches(new StringBuilder("Un chasseur sachant chasser sans son chien"), 12, "sachant"));
         assertFalse(regionMatches(new StringBuilder("Un chasseur sachant chasser sans son chien"), 12, "sacHant"));
+        assertTrue (regionMatches(new StringBuilder("Un chasseur sachant chasser sans son chien"), 12, "sacHant", true));
     }
 
     /**

Modified: sis/trunk/ide-project/NetBeans/build.xml
URL: http://svn.apache.org/viewvc/sis/trunk/ide-project/NetBeans/build.xml?rev=1517896&r1=1517895&r2=1517896&view=diff
==============================================================================
--- sis/trunk/ide-project/NetBeans/build.xml (original)
+++ sis/trunk/ide-project/NetBeans/build.xml Tue Aug 27 17:49:40 2013
@@ -74,6 +74,13 @@
       </fileset>
     </concat>
 
+    <!-- AdapterReplacement implementations to be loaded by ServiceLoader. -->
+    <concat destfile="${build.classes.dir}/META-INF/services/org.apache.sis.internal.jaxb.AdapterReplacement" encoding="UTF-8" fixlastline="yes">
+      <fileset dir="${project.root}">
+        <include name="*/*/src/main/resources/META-INF/services/org.apache.sis.internal.jaxb.AdapterReplacement"/>
+      </fileset>
+    </concat>
+
     <!-- DataStoreProvider implementations to be loaded by ServiceLoader. -->
     <concat destfile="${build.classes.dir}/META-INF/services/org.apache.sis.storage.DataStoreProvider" encoding="UTF-8" fixlastline="yes">
       <fileset dir="${project.root}">
@@ -91,5 +98,18 @@
         <include name="**/*.xml"/>
       </fileset>
     </copy>
+    <copy todir="${build.test.classes.dir}">
+      <fileset dir="${project.root}/storage/sis-shapefile/src/test/resources">
+        <include name="**/*.dbf"/>
+        <include name="**/*.prj"/>
+        <include name="**/*.shp"/>
+        <include name="**/*.shx"/>
+      </fileset>
+    </copy>
+    <copy todir="${build.test.classes.dir}">
+      <fileset dir="${project.root}/profiles/sis-french-profile/src/test/resources">
+        <include name="**/*.xml"/>
+      </fileset>
+    </copy>
   </target>
 </project>



Mime
View raw message