sis-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From desruisse...@apache.org
Subject svn commit: r1724531 [10/13] - in /sis/trunk: ./ application/sis-console/src/main/artifact/bin/ application/sis-console/src/main/artifact/log/ application/sis-console/src/main/java/org/apache/sis/console/ core/sis-build-helper/src/main/java/org/apache/...
Date Wed, 13 Jan 2016 23:59:41 GMT
Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/collection/WeakValueHashMap.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/collection/WeakValueHashMap.java?rev=1724531&r1=1724530&r2=1724531&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/collection/WeakValueHashMap.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/collection/WeakValueHashMap.java [UTF-8] Wed Jan 13 23:59:38 2016
@@ -80,7 +80,7 @@ import org.apache.sis.internal.jdk7.Obje
  *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @since   0.3
- * @version 0.4
+ * @version 0.7
  * @module
  *
  * @see java.util.WeakHashMap
@@ -398,7 +398,7 @@ public class WeakValueHashMap<K,V> exten
      * Implementation of {@link #put(Object, Object)} and {@link #remove(Object)} operations
      */
     @SuppressWarnings("unchecked")
-    private synchronized V intern(final Object key, final V value) {
+    private synchronized V intern(final Object key, final V value, final boolean replace) {
         assert isValid();
         /*
          * If 'value' is already contained in this WeakValueHashMap, we need to clear it.
@@ -410,6 +410,9 @@ public class WeakValueHashMap<K,V> exten
         for (Entry e = table[index]; e != null; e = (Entry) e.next) {
             if (keyEquals(key, e.key)) {
                 oldValue = e.get();
+                if (oldValue != null && !replace) {
+                    return oldValue;
+                }
                 e.dispose();
                 table = this.table; // May have changed.
                 index = hash % table.length;
@@ -435,8 +438,7 @@ public class WeakValueHashMap<K,V> exten
      *
      * @param  key key with which the specified value is to be associated.
      * @param  value value to be associated with the specified key.
-     * @return The previous value associated with specified key, or {@code null}
-     *         if there was no mapping for key.
+     * @return The previous value associated with specified key, or {@code null} if there was no mapping for key.
      *
      * @throws NullArgumentException if the key or the value is {@code null}.
      */
@@ -446,19 +448,40 @@ public class WeakValueHashMap<K,V> exten
             throw new NullArgumentException(Errors.format(key == null
                     ? Errors.Keys.NullMapKey : Errors.Keys.NullMapValue));
         }
-        return intern(key, value);
+        return intern(key, value, true);
+    }
+
+    /**
+     * Associates the specified value with the specified key in this map if no value were previously associated.
+     * If an other value is already associated to the given key, then the map is left unchanged and the current
+     * value is returned. Otherwise the specified value is associated to the key using a {@link WeakReference}
+     * and {@code null} is returned.
+     *
+     * @param  key key with which the specified value is to be associated.
+     * @param  value value to be associated with the specified key.
+     * @return The current value associated with specified key, or {@code null} if there was no mapping for key.
+     *
+     * @throws NullArgumentException if the key or the value is {@code null}.
+     *
+     * @since 0.7
+     */
+    public V putIfAbsent(final K key, final V value) throws NullArgumentException {
+        if (key == null || value == null) {
+            throw new NullArgumentException(Errors.format(key == null
+                    ? Errors.Keys.NullMapKey : Errors.Keys.NullMapValue));
+        }
+        return intern(key, value, false);
     }
 
     /**
      * Removes the mapping for this key from this map if present.
      *
      * @param key key whose mapping is to be removed from the map.
-     * @return previous value associated with specified key, or {@code null}
-     *         if there was no entry for key.
+     * @return previous value associated with specified key, or {@code null} if there was no entry for key.
      */
     @Override
     public V remove(final Object key) {
-        return intern(key, null);
+        return intern(key, null, true);
     }
 
     /**
@@ -477,6 +500,7 @@ public class WeakValueHashMap<K,V> exten
      * @return a set view of the mappings contained in this map.
      */
     @Override
+    @SuppressWarnings("ReturnOfCollectionOrArrayField")
     public synchronized Set<Map.Entry<K,V>> entrySet() {
         if (entrySet == null) {
             entrySet = new EntrySet();

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/iso/DefaultNameSpace.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/iso/DefaultNameSpace.java?rev=1724531&r1=1724530&r2=1724531&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/iso/DefaultNameSpace.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/iso/DefaultNameSpace.java [UTF-8] Wed Jan 13 23:59:38 2016
@@ -209,9 +209,7 @@ public class DefaultNameSpace implements
      *          parsed names} of any name in that namespace.
      * @return A namespace having the given name, or {@code null} if name was null.
      */
-    static DefaultNameSpace forName(final GenericName name,
-            final String headSeparator, final String separator)
-    {
+    static DefaultNameSpace forName(final GenericName name, final String headSeparator, final String separator) {
         if (name == null) {
             return null;
         }
@@ -251,7 +249,7 @@ public class DefaultNameSpace implements
      */
     @Override
     public boolean isGlobal() {
-        return false; // To be overridden by GlobalNameSpace.
+        return false;               // To be overridden by GlobalNameSpace.
     }
 
     /**
@@ -388,7 +386,7 @@ public class DefaultNameSpace implements
         if (name == null) {
             name = key;
         }
-        final WeakValueHashMap<String,Object> childs = this.childs; // Paranoiac protection against accidental changes.
+        final WeakValueHashMap<String,Object> childs = this.childs;     // Paranoiac protection against accidental changes.
         DefaultNameSpace child;
         synchronized (childs) {
             final Object existing = childs.get(key);
@@ -396,7 +394,7 @@ public class DefaultNameSpace implements
                 child = (DefaultNameSpace) existing;
                 if (!child.separator    .equals(separator) ||
                     !child.headSeparator.equals(headSeparator) ||
-                    !child.name         .equals(name)) // Same test than equalsIgnoreParent.
+                    !child.name         .equals(name))                  // Same test than equalsIgnoreParent.
                 {
                     child = new DefaultNameSpace(this, name, headSeparator, separator);
                     /*
@@ -408,7 +406,7 @@ public class DefaultNameSpace implements
             } else {
                 child = new DefaultNameSpace(this, name, headSeparator, separator);
                 if (childs.put(key, child) != existing) {
-                    throw new AssertionError(); // Paranoiac check.
+                    throw new AssertionError();                         // Paranoiac check.
                 }
             }
         }
@@ -429,7 +427,7 @@ public class DefaultNameSpace implements
     final DefaultLocalName local(final CharSequence name, final DefaultLocalName candidate) {
         ensureNonNull("name", name);
         final String key = name.toString();
-        final WeakValueHashMap<String,Object> childs = this.childs; // Paranoiac protection against accidental changes.
+        final WeakValueHashMap<String,Object> childs = this.childs;     // Paranoiac protection against accidental changes.
         DefaultLocalName child;
         synchronized (childs) {
             final Object existing = childs.get(key);
@@ -448,7 +446,7 @@ public class DefaultNameSpace implements
             // Cache only if the slot is not already occupied by a NameSpace.
             if (!(existing instanceof DefaultNameSpace)) {
                 if (childs.put(key, child) != existing) {
-                    throw new AssertionError(); // Paranoiac check.
+                    throw new AssertionError();                         // Paranoiac check.
                 }
             }
         }
@@ -510,7 +508,7 @@ public class DefaultNameSpace implements
     private boolean equalsIgnoreParent(final DefaultNameSpace that) {
         return Objects.equals(this.headSeparator, that.headSeparator) &&
                Objects.equals(this.separator,     that.separator) &&
-               Objects.equals(this.name,          that.name); // Most expensive test last.
+               Objects.equals(this.name,          that.name);               // Most expensive test last.
     }
 
     /**
@@ -546,7 +544,7 @@ public class DefaultNameSpace implements
             } else {
                 init();
                 if (pool.put(key, this) != existing) {
-                    throw new AssertionError(); // Paranoiac check.
+                    throw new AssertionError();             // Paranoiac check.
                 }
                 return this;
             }

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/iso/DefaultRecord.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/iso/DefaultRecord.java?rev=1724531&r1=1724530&r2=1724531&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/iso/DefaultRecord.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/iso/DefaultRecord.java [UTF-8] Wed Jan 13 23:59:38 2016
@@ -108,7 +108,7 @@ public class DefaultRecord implements Re
 
     /**
      * Returns the dictionary of all (<var>name</var>, <var>value</var>) pairs in this record.
-     * This method returns a view which will delegate all {@code get} and {@code pt} operations to
+     * This method returns a view which will delegate all {@code get} and {@code put} operations to
      * the {@link #locate(MemberName)} and {@link #set(MemberName, Object)} methods respectively.
      *
      * @return The dictionary of all (<var>name</var>, <var>value</var>) pairs in this record.

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/iso/DefaultRecordSchema.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/iso/DefaultRecordSchema.java?rev=1724531&r1=1724530&r2=1724531&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/iso/DefaultRecordSchema.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/iso/DefaultRecordSchema.java [UTF-8] Wed Jan 13 23:59:38 2016
@@ -187,10 +187,10 @@ public class DefaultRecordSchema impleme
             final Map.Entry<CharSequence,Class<?>> e1 = it1.next();
             final Map.Entry<MemberName,Type> e2 = it2.next();
             if (!e2.getKey().tip().toString().equals(e1.toString())) {
-                break; // Member names differ.
+                break;      // Member names differ.
             }
             if (!((SimpleAttributeType) e2.getValue()).getValueClass().equals(e1.getValue())) {
-                break; // Value classes differ.
+                break;      // Value classes differ.
             }
         }
         throw new IllegalArgumentException(Errors.format(Errors.Keys.RecordAlreadyDefined_2, getSchemaName(), typeName));
@@ -217,7 +217,7 @@ public class DefaultRecordSchema impleme
             final TypeName name = nameFactory.toTypeName(valueClass);
             type = new SimpleAttributeType(name, valueClass);
             final Type old = attributeTypes.putIfAbsent(valueClass, type);
-            if (old != null) { // May happen if the type has been computed concurrently.
+            if (old != null) {      // May happen if the type has been computed concurrently.
                 return old;
             }
         }

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/logging/MonolineFormatter.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/logging/MonolineFormatter.java?rev=1724531&r1=1724530&r2=1724531&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/logging/MonolineFormatter.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/logging/MonolineFormatter.java [UTF-8] Wed Jan 13 23:59:38 2016
@@ -54,7 +54,7 @@ import org.apache.sis.internal.jdk7.JDK7
  * <tr><td><code>00:01</code></td><td style="background:blue"><code>CONFIG</code></td>
  *     <td><code><b>[MyApplication]</b> Read configuration from “my-application/setup.xml”.</code></td></tr>
  * <tr><td><code>00:03</code></td><td style="background:green"><code>INFO</code></td>
- *     <td><code><b>[DirectEpsgFactory]</b> Connected to the EPSG database version 6.9 on JavaDB 10.8.</code></td></tr>
+ *     <td><code><b>[EPSGFactory]</b> Connected to the EPSG database version 6.9 on JavaDB 10.8.</code></td></tr>
  * <tr><td><code>00:12</code></td><td style="background:goldenrod"><code>WARNING</code></td>
  *     <td><code><b>[DefaultTemporalExtent]</b> This operation requires the “sis-temporal” module.</code></td></tr>
  * </table></blockquote>

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=1724531&r1=1724530&r2=1724531&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] Wed Jan 13 23:59:38 2016
@@ -151,6 +151,16 @@ public final class Errors extends Indexe
         public static final short CanNotRepresentInFormat_2 = 10;
 
         /**
+         * Target dimension {0} depends on excluded source dimensions.
+         */
+        public static final short CanNotSeparateTargetDimension_1 = 175;
+
+        /**
+         * Can not set a value for parameter “{0}”.
+         */
+        public static final short CanNotSetParameterValue_1 = 214;
+
+        /**
          * Can not set a value for property “{0}”.
          */
         public static final short CanNotSetPropertyValue_1 = 11;
@@ -186,6 +196,16 @@ public final class Errors extends Indexe
         public static final short ColinearAxisDirections_2 = 14;
 
         /**
+         * Database error while creating a ‘{0}’ object for code “{1}”.
+         */
+        public static final short DatabaseError_2 = 209;
+
+        /**
+         * Origin of temporal datum shall be a date.
+         */
+        public static final short DatumOriginShallBeDate = 213;
+
+        /**
          * Thread “{0}” is dead.
          */
         public static final short DeadThread_1 = 15;
@@ -276,6 +296,11 @@ public final class Errors extends Indexe
         public static final short ExcessiveStringSize = 153;
 
         /**
+         * No factory of kind ‘{0}’ found.
+         */
+        public static final short FactoryNotFound_1 = 205;
+
+        /**
          * File “{0}” has not been found.
          */
         public static final short FileNotFound_1 = 166;
@@ -358,6 +383,11 @@ public final class Errors extends Indexe
         public static final short IllegalFormatPatternForClass_2 = 35;
 
         /**
+         * “{1}” is not a valid identifier for the “{0}” code space.
+         */
+        public static final short IllegalIdentifierForCodespace_2 = 208;
+
+        /**
          * The “{0}” language is not recognized.
          */
         public static final short IllegalLanguageCode_1 = 36;
@@ -479,11 +509,6 @@ public final class Errors extends Indexe
         public static final short InfiniteArgumentValue_1 = 51;
 
         /**
-         * Inseparable transform.
-         */
-        public static final short InseparableTransform = 175;
-
-        /**
          * Argument ‘{0}’ shall contain at least {1} elements. A number of {2} is insufficient.
          */
         public static final short InsufficientArgumentSize_3 = 53;
@@ -524,6 +549,11 @@ public final class Errors extends Indexe
         public static final short MismatchedDimension_3 = 59;
 
         /**
+         * The grid geometry must be the same for “{0}” and “{1}”.
+         */
+        public static final short MismatchedGridGeometry_2 = 203;
+
+        /**
          * Mismatched matrix sizes: expected {0}×{1} but got {2}×{3}.
          */
         public static final short MismatchedMatrixSize_4 = 60;
@@ -811,6 +841,11 @@ public final class Errors extends Indexe
         public static final short NullMapValue = 97;
 
         /**
+         * Unexpected null value in record “{2}” for the column “{1}” in table “{0}”.
+         */
+        public static final short NullValueInTable_3 = 207;
+
+        /**
          * Array length is {0}, while we expected an even length.
          */
         public static final short OddArrayLength_1 = 98;
@@ -836,6 +871,11 @@ public final class Errors extends Indexe
         public static final short RecordAlreadyDefined_2 = 161;
 
         /**
+         * Recursive call while creating an object of type ‘{0}’ for code “{1}”.
+         */
+        public static final short RecursiveCreateCallForCode_2 = 210;
+
+        /**
          * Recursive call while creating an object for the “{0}” key.
          */
         public static final short RecursiveCreateCallForKey_1 = 99;
@@ -861,6 +901,11 @@ public final class Errors extends Indexe
         public static final short StreamIsForwardOnly_1 = 103;
 
         /**
+         * Table “{0}” has not been found.
+         */
+        public static final short TableNotFound_1 = 206;
+
+        /**
          * Expected at least {0} argument{0,choice,1#|2#s}, but got {1}.
          */
         public static final short TooFewArguments_2 = 104;
@@ -906,6 +951,11 @@ public final class Errors extends Indexe
         public static final short UnexpectedCharactersAfter_2 = 198;
 
         /**
+         * Unexpected dimension for a coordinate system of type ‘{0}’.
+         */
+        public static final short UnexpectedDimensionForCS_1 = 212;
+
+        /**
          * Unexpected end of file while reading “{0}”.
          */
         public static final short UnexpectedEndOfFile_1 = 109;
@@ -986,6 +1036,11 @@ public final class Errors extends Indexe
         public static final short UnknownType_1 = 118;
 
         /**
+         * Unit “{0}” is not recognized.
+         */
+        public static final short UnknownUnit_1 = 211;
+
+        /**
          * This affine transform is unmodifiable.
          */
         public static final short UnmodifiableAffineTransform = 119;
@@ -1036,6 +1091,11 @@ public final class Errors extends Indexe
         public static final short UnspecifiedCRS = 173;
 
         /**
+         * Dimensions have not been specified.
+         */
+        public static final short UnspecifiedDimensions = 204;
+
+        /**
          * No format is specified for objects of class ‘{0}’.
          */
         public static final short UnspecifiedFormatForClass_1 = 126;
@@ -1051,6 +1111,11 @@ public final class Errors extends Indexe
         public static final short UnsupportedImplementation_1 = 127;
 
         /**
+         * The “{0}” interpolation is unsupported.
+         */
+        public static final short UnsupportedInterpolation_1 = 202;
+
+        /**
          * The ‘{0}’ operation is unsupported.
          */
         public static final short UnsupportedOperation_1 = 128;

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=1724531&r1=1724530&r2=1724531&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] Wed Jan 13 23:59:38 2016
@@ -41,6 +41,8 @@ CanNotOpen_1                      = Can
 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.
+CanNotSeparateTargetDimension_1   = Target dimension {0} depends on excluded source dimensions.
+CanNotSetParameterValue_1         = Can not set a value for parameter \u201c{0}\u201d.
 CanNotSetPropertyValue_1          = Can not set a value for property \u201c{0}\u201d.
 CanNotTransformEnvelope           = Can not transform envelope.
 CanNotTransformEnvelopeToGeodetic = Can not transform envelope to a geodetic CRS.
@@ -48,6 +50,8 @@ CircularReference                 = Circ
 ClassNotFinal_1                   = Class \u2018{0}\u2019 is not final.
 CloneNotSupported_1               = Can not clone an object of type \u2018{0}\u2019.
 ColinearAxisDirections_2          = Axis directions {0} and {1} are colinear.
+DatabaseError_2                   = Database error while creating a \u2018{0}\u2019 object for code \u201c{1}\u201d.
+DatumOriginShallBeDate            = Origin of temporal datum shall be a date.
 DeadThread_1                      = Thread \u201c{0}\u201d is dead.
 DirectoryNotExpected_1            = The \u201c{0}\u201d file points to a directory instead of a regular file.
 DuplicatedElement_1               = Element \u201c{0}\u201d is duplicated.
@@ -66,6 +70,7 @@ ExcessiveArgumentSize_3           = Argu
 ExcessiveListSize_2               = A size of {1} elements is excessive for the \u201c{0}\u201d list.
 ExcessiveNumberOfDimensions_1     = For this algorithm, {0} is an excessive number of dimensions.
 ExcessiveStringSize               = The character string is too long.
+FactoryNotFound_1                 = No factory of kind \u2018{0}\u2019 found.
 FileNotFound_1                    = File \u201c{0}\u201d has not been found.
 ForbiddenAttribute_2              = Attribute \u201c{0}\u201d is not allowed for an object of type \u2018{1}\u2019.
 ForbiddenProperty_1               = Property \u201c{0}\u201d is not allowed.
@@ -81,6 +86,7 @@ IllegalClass_2                    = Clas
 IllegalCoordinateSystem_1         = Coordinate system can not be \u201c{0}\u201d.
 IllegalCRSType_1                  = Coordinate reference system can not be of type \u2018{0}\u2019.
 IllegalFormatPatternForClass_2    = The \u201c{1}\u201d pattern can not be applied to formating of objects of type \u2018{0}\u2019.
+IllegalIdentifierForCodespace_2   = \u201c{1}\u201d is not a valid identifier for the \u201c{0}\u201d code space.
 IllegalLanguageCode_1             = The \u201c{0}\u201d language is not recognized.
 IllegalMemberType_2               = Member \u201c{0}\u201d can not be associated to type \u201c{1}\u201d.
 IllegalOperationDimension_3       = Dimensions of \u201c{0}\u201d operation can not be ({1} \u2192 {2}).
@@ -106,7 +112,6 @@ IdentifierAlreadyBound_1          = Iden
 IndexOutOfBounds_1                = Index {0} is out of bounds.
 IndicesOutOfBounds_2              = Indices ({0}, {1}) are out of bounds.
 InfiniteArgumentValue_1           = Argument \u2018{0}\u2019 can not take an infinite value.
-InseparableTransform              = Inseparable transform.
 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.
 LatitudesAreOpposite_2            = Latitudes {0} and {1} are opposite.
@@ -115,6 +120,7 @@ MismatchedArrayLengths            = Mism
 MismatchedCRS                     = The coordinate reference system must be the same for all objects.
 MismatchedDimension_2             = Mismatched object dimensions: {0}D and {1}D.
 MismatchedDimension_3             = Argument \u2018{0}\u2019 has {2} dimension{2,choice,1#|2#s}, while {1} was expected.
+MismatchedGridGeometry_2          = The grid geometry must be the same for \u201c{0}\u201d and \u201c{1}\u201d.
 MismatchedMatrixSize_4            = Mismatched matrix sizes: expected {0}\u00d7{1} but got {2}\u00d7{3}.
 MismatchedParameterDescriptor_1   = Mismatched descriptor for \u201c{0}\u201d parameter.
 MismatchedPropertyType_1          = Mismatched type for \u201c{0}\u201d property.
@@ -173,16 +179,19 @@ NullCollectionElement_1           = \u20
 # Use the OGC/ISO "Dictionary" word instead of "Map" for avoiding confusion with geographic map.
 NullMapKey                        = Null key is not allowed in this dictionary.
 NullMapValue                      = Null values are not allowed in this dictionary.
+NullValueInTable_3                = Unexpected null value in record \u201c{2}\u201d for the column \u201c{1}\u201d in table \u201c{0}\u201d.
 OddArrayLength_1                  = Array length is {0}, while we expected an even length.
 PropertyAlreadyExists_2           = Property \u201c{1}\u201d already exists in \u201c{0}\u201d.
 ParameterNotFound_2               = No parameter named \u201c{1}\u201d has been found in \u201c{0}\u201d.
 PropertyNotFound_2                = No property named \u201c{1}\u201d has been found in \u201c{0}\u201d.
 RecordAlreadyDefined_2            = Record \u201c{1}\u201d is already defined in schema \u201c{0}\u201d.
 RecursiveCreateCallForKey_1       = Recursive call while creating an object for the \u201c{0}\u201d key.
+RecursiveCreateCallForCode_2      = Recursive call while creating an object of type \u2018{0}\u2019 for code \u201c{1}\u201d.
 RequireDecimalSeparator           = A decimal separator is required.
 SingularMatrix                    = Matrix is singular.
 StalledThread_1                   = Thread \u201c{0}\u201d seems stalled.
 StreamIsForwardOnly_1             = Can not move backward in the \u201c{0}\u201d stream.
+TableNotFound_1                   = Table \u201c{0}\u201d has not been found.
 TooFewArguments_2                 = Expected at least {0} argument{0,choice,1#|2#s}, but got {1}.
 TooFewOccurrences_2               = Too few occurrences of \u201c{1}\u201d. Expected at least {0} of them.
 TooManyArguments_2                = Expected at most {0} argument{0,choice,1#|2#s}, but got {1}.
@@ -192,6 +201,7 @@ UndefinedOrderingForElements_2    = Orde
 UnexpectedArrayLength_2           = Expected an array of length {0}, but got {1}.
 UnexpectedChange_1                = Unexpected change in \u2018{0}\u2019.
 UnexpectedCharactersAfter_2       = The \u201c{1}\u201d characters after \u201c{0}\u201d was unexpected.
+UnexpectedDimensionForCS_1        = Unexpected dimension for a coordinate system of type \u2018{0}\u2019.
 UnexpectedEndOfFile_1             = Unexpected end of file while reading \u201c{0}\u201d.
 UnexpectedEndOfString_1           = More characters were expected at the end of \u201c{0}\u201d.
 UnexpectedFileFormat_2            = File \u201c{1}\u201d seems to be encoded in an other format than {0}.
@@ -208,6 +218,7 @@ UnknownKeyword_1                  = Keyw
 UnknownOption_1                   = Option \u201c{0}\u201d is not recognized.
 UnknownType_1                     = Type \u2018{0}\u2019 is unknown in this context.
 UnknownTypeForProperty_1          = Type of the \u201c{0}\u201d property is unknown.
+UnknownUnit_1                     = Unit \u201c{0}\u201d is not recognized.
 UnmodifiableAffineTransform       = This affine transform is unmodifiable.
 UnmodifiableCellValue_2           = The cell at column \u201c{1}\u201d of row \u201c{0}\u201d is unmodifiable.
 UnmodifiableGeometry              = This geometry is not modifiable.
@@ -218,9 +229,11 @@ UnparsableStringForClass_3        = Text
 UnparsableStringInElement_2       = Can not parse \u201c{1}\u201d in element \u201c{0}\u201d.
 UnresolvedFeatureName_1           = Feature named \u201c{0}\u201d has not yet been resolved.
 UnspecifiedCRS                    = Coordinate reference system has not been specified.
+UnspecifiedDimensions             = Dimensions have not been specified.
 UnspecifiedFormatForClass_1       = No format is specified for objects of class \u2018{0}\u2019.
 UnspecifiedParameterValues        = Parameter values have not been specified.
 UnsupportedImplementation_1       = Can not handle instances of \u2018{0}\u2019 because arbitrary implementations are not yet supported.
+UnsupportedInterpolation_1        = The \u201c{0}\u201d interpolation is unsupported.
 UnsupportedOperation_1            = The \u2018{0}\u2019 operation is unsupported.
 UnsupportedType_1                 = The \u2018{0}\u2019 type is unsupported.
 UnsupportedVersion_1              = Version {0} is not supported.

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=1724531&r1=1724530&r2=1724531&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] Wed Jan 13 23:59:38 2016
@@ -38,6 +38,8 @@ CanNotOpen_1                      = Ne p
 CanNotParseFile_2                 = Ne peut pas lire \u00ab\u202f{1}\u202f\u00bb comme un fichier au format {0}.
 CanNotRead_1                      = Ne peut pas lire \u00ab\u202f{0}\u202f\u00bb.
 CanNotRepresentInFormat_2         = Ne peut pas repr\u00e9senter \u00ab\u202f{1}\u202f\u00bb dans le format {0}.
+CanNotSeparateTargetDimension_1   = La dimension de destination {0} d\u00e9pend de dimensions sources qui ont \u00e9t\u00e9 exclues.
+CanNotSetParameterValue_1         = Ne peut pas d\u00e9finir une valeur pour le param\u00e8tre \u00ab\u202f{0}\u202f\u00bb.
 CanNotSetPropertyValue_1          = Ne peut pas d\u00e9finir une valeur pour la propri\u00e9t\u00e9 \u00ab\u202f{0}\u202f\u00bb.
 CanNotTransformEnvelope           = Ne peut pas transformer l\u2019enveloppe.
 CanNotTransformEnvelopeToGeodetic = Ne peut pas transformer l\u2019enveloppe vers un syst\u00e8me g\u00e9od\u00e9sique.
@@ -45,6 +47,8 @@ CircularReference                 = R\u0
 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.
 ColinearAxisDirections_2          = Les directions d\u2019axes {0} et {1} sont colin\u00e9aires.
+DatabaseError_2                   = Erreur de base de donn\u00e9es lors de la cr\u00e9ation d\u2019un objet \u2018{0}\u2019 pour le code \u00ab\u202f{1}\u202f\u00bb.
+DatumOriginShallBeDate            = L\u2019origine d\u2019un r\u00e9f\u00e9rentiel temporel doit \u00eatre une date.
 DeadThread_1                      = La t\u00e2che \u00ab\u202f{0}\u202f\u00bb est morte.
 DirectoryNotExpected_1            = Le fichier \u00ab\u202f{0}\u202f\u00bb d\u00e9signe un r\u00e9pertoire plut\u00f4t qu\u2019un fichier r\u00e9gulier.
 DuplicatedElement_1               = L\u2019\u00e9lement \u00ab\u202f{0}\u202f\u00bb est dupliqu\u00e9.
@@ -63,6 +67,7 @@ ExcessiveArgumentSize_3           = L\u2
 ExcessiveListSize_2               = Une taille de {1} \u00e9l\u00e9ments est excessive pour la liste \u00ab\u202f{0}\u202f\u00bb.
 ExcessiveNumberOfDimensions_1     = Pour cet algorithme, {0} est un trop grand nombre de dimensions.
 ExcessiveStringSize               = La cha\u00eene de caract\u00e8res est trop longue.
+FactoryNotFound_1                 = Aucune fabrique de type \u2018{0}\u2019 n\u2019a \u00e9t\u00e9 trouv\u00e9e.
 FileNotFound_1                    = Le fichier \u00ab\u202f{0}\u202f\u00bb n\u2019a pas \u00e9t\u00e9 trouv\u00e9.
 ForbiddenAttribute_2              = L\u2019attribut \u00ab\u202f{0}\u202f\u00bb n\u2019est pas autoris\u00e9 pour un objet de type \u2018{1}\u2019.
 ForbiddenProperty_1               = La propri\u00e9t\u00e9 \u00ab\u202f{0}\u202f\u00bb n\u2019est pas autoris\u00e9e.
@@ -78,6 +83,7 @@ IllegalCharacterForFormat_3       = Le c
 IllegalCoordinateSystem_1         = Le syst\u00e8me de coordonn\u00e9es ne peut pas \u00eatre \u00ab\u202f{0}\u202f\u00bb.
 IllegalCRSType_1                  = Le syst\u00e8me de r\u00e9f\u00e9rence des coordonn\u00e9es ne peut pas \u00eatre de type \u2018{0}\u2019.
 IllegalFormatPatternForClass_2    = Le mod\u00e8le \u00ab\u202f{1}\u202f\u00bb ne peut pas \u00eatre appliqu\u00e9 au formatage d\u2019objets de type \u2018{0}\u2019.
+IllegalIdentifierForCodespace_2   = \u00ab\u202f{1}\u202f\u00bb n\u2019est pas un identifiant valide pour l\u2019espace de codes \u00ab\u202f{0}\u202f\u00bb.
 IllegalLanguageCode_1             = Le code de langue \u00ab\u202f{0}\u202f\u00bb n\u2019est pas reconnu.
 IllegalMemberType_2               = Le membre \u00ab\u202f{0}\u202f\u00bb ne peut pas \u00eatre associ\u00e9 au type \u00ab\u202f{1}\u202f\u00bb.
 IllegalOperationDimension_3       = Les dimensions de l\u2019op\u00e9ration \u00ab\u202f{0}\u202f\u00bb ne peuvent pas \u00eatre ({1} \u2192 {2}).
@@ -103,7 +109,6 @@ IdentifierAlreadyBound_1          = L\u2
 IndexOutOfBounds_1                = L\u2019index {0} est en dehors des limites permises.
 IndicesOutOfBounds_2              = Les index ({0}, {1}) sont en dehors des limites permises.
 InfiniteArgumentValue_1           = L\u2019argument \u2018{0}\u2019 ne peut pas prendre une valeur infinie.
-InseparableTransform              = La transformation n\u2019est pas s\u00e9parable.
 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 \u00ab\u202f{0}\u202f\u00bb.
 LatitudesAreOpposite_2            = Les latitudes {0} et {1} sont oppos\u00e9es.
@@ -112,6 +117,7 @@ MismatchedArrayLengths            = Les
 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}.
+MismatchedGridGeometry_2          = La g\u00e9om\u00e9trie de la grille doit \u00eatre la m\u00eame pour \u00ab\u202f{0}\u202f\u00bb et \u00ab\u202f{1}\u202f\u00bb.
 MismatchedMatrixSize_4            = Une matrice de taille de {0}\u00d7{1} \u00e9tait attendue mais la matrice donn\u00e9e est de taille {2}\u00d7{3}.
 MismatchedParameterDescriptor_1   = Le descripteur du param\u00e8tre \u00ab\u202f{0}\u202f\u00bb ne correspond pas.
 MismatchedPropertyType_1          = Le type de la propri\u00e9t\u00e9 \u00ab\u202f{0}\u202f\u00bb ne correspond pas.
@@ -169,16 +175,19 @@ NullArgument_1                    = L\u2
 NullCollectionElement_1           = La collection \u2018{0}\u2019 n\u2019accepte pas les valeurs nulles.
 NullMapKey                        = La cl\u00e9 nulle n\u2019est pas autoris\u00e9e dans ce dictionnaire.
 NullMapValue                      = Les valeurs nulles ne sont pas autoris\u00e9es dans ce dictionnaire.
+NullValueInTable_3                = Dans la table \u00ab\u202f{0}\u202f\u00bb, la colonne \u00ab\u202f{1}\u202f\u00bb de l\u2019enregistrement \u00ab\u202f{2}\u202f\u00bb ne devrait pas contenir de valeur nulle.
 OddArrayLength_1                  = La longueur du tableau est {0}, alors qu\u2019on attendait une longueur paire.
 PropertyAlreadyExists_2           = La propri\u00e9t\u00e9 \u00ab\u202f{1}\u202f\u00bb existe d\u00e9j\u00e0 dans \u00ab\u202f{0}\u202f\u00bb.
 ParameterNotFound_2               = Aucun param\u00e8tre nomm\u00e9 \u00ab\u202f{1}\u202f\u00bb n\u2019a \u00e9t\u00e9 trouv\u00e9 dans \u00ab\u202f{0}\u202f\u00bb.
 PropertyNotFound_2                = Aucune propri\u00e9t\u00e9 nomm\u00e9e \u00ab\u202f{1}\u202f\u00bb n\u2019a \u00e9t\u00e9 trouv\u00e9e dans \u00ab\u202f{0}\u202f\u00bb.
 RecordAlreadyDefined_2            = L\u2019enregistrement \u00ab\u202f{1}\u202f\u00bb est d\u00e9j\u00e0 d\u00e9finit dans le sch\u00e9ma \u00ab\u202f{0}\u202f\u00bb.
 RecursiveCreateCallForKey_1       = Appel r\u00e9cursif lors de la cr\u00e9ation d\u2019un objet pour la cl\u00e9 \u00ab\u202f{0}\u202f\u00bb.
+RecursiveCreateCallForCode_2      = Appels r\u00e9cursifs lors de la cr\u00e9ation d\u2019un objet de type \u2018{0}\u2019 pour le code \u00ab\u202f{1}\u202f\u00bb.
 RequireDecimalSeparator           = Un s\u00e9parateur d\u00e9cimal est requis.
 SingularMatrix                    = La matrice est singuli\u00e8re.
 StalledThread_1                   = La t\u00e2che \u00ab\u202f{0}\u202f\u00bb semble bloqu\u00e9e.
 StreamIsForwardOnly_1             = Ne peut pas reculer dans le flux de donn\u00e9es \u00ab\u202f{0}\u202f\u00bb.
+TableNotFound_1                   = La table \u00ab\u202f{0}\u202f\u00bb n\u2019a pas \u00e9t\u00e9 trouv\u00e9e.
 TooFewArguments_2                 = Au moins {0} argument{0,choice,1# \u00e9tait attendu|2#s \u00e9taient attendus}, mais seulement {1} {1,choice,1#a \u00e9t\u00e9 sp\u00e9cifi\u00e9|2#ont \u00e9t\u00e9 sp\u00e9cifi\u00e9s}.
 TooFewOccurrences_2               = Trop peu d\u2019occurrences de \u00ab\u202f{1}\u202f\u00bb. Il en faut au moins {0}.
 TooManyArguments_2                = Au plus {0} argument{0,choice,1# \u00e9tait attendu|2#s \u00e9taient attendus}, mais {1} {1,choice,1#a \u00e9t\u00e9 sp\u00e9cifi\u00e9|2#ont \u00e9t\u00e9 sp\u00e9cifi\u00e9s}.
@@ -188,6 +197,7 @@ UndefinedOrderingForElements_2    = L\u2
 UnexpectedArrayLength_2           = Un tableau de longueur {0} \u00e9tait attendu, mais le tableau re\u00e7u est de longueur {1}.
 UnexpectedChange_1                = Changement inattendu dans \u2018{0}\u2019.
 UnexpectedCharactersAfter_2       = Les caract\u00e8res \u00ab\u202f{1}\u202f\u00bb apr\u00e8s \u00ab\u202f{0}\u202f\u00bb sont inattendus.
+UnexpectedDimensionForCS_1        = Dimension inattendue pour un syst\u00e8me de coordonn\u00e9es de type \u2018{0}\u2019.
 UnexpectedEndOfFile_1             = Fin de fichier inattendue lors de la lecture de \u00ab\u202f{0}\u202f\u00bb.
 UnexpectedEndOfString_1           = D\u2019autres caract\u00e8res \u00e9taient attendus \u00e0 la fin du texte \u00ab\u202f{0}\u202f\u00bb.
 UnexpectedFileFormat_2            = Le fichier \u00ab\u202f{1}\u202f\u00bb semble \u00eatre encod\u00e9 dans un autre format que {0}.
@@ -204,12 +214,14 @@ UnknownKeyword_1                  = Le m
 UnknownOption_1                   = L\u2019option \u00ab\u202f{0}\u202f\u00bb n\u2019est pas reconnue.
 UnknownType_1                     = Le type \u2018{0}\u2019 n\u2019est pas reconnu dans ce contexte.
 UnknownTypeForProperty_1          = Le type de la propri\u00e9t\u00e9 \u00ab\u202f{0}\u202f\u00bb est inconnu.
+UnknownUnit_1                     = Les unit\u00e9s \u00ab\u202f{0}\u202f\u00bb ne sont pas reconnues.
 UnmodifiableAffineTransform       = Cette transformation affine n\u2019est pas modifiable.
 UnmodifiableCellValue_2           = La cellule \u00e0 la colonne \u00ab\u202f{1}\u202f\u00bb de la ligne \u00ab\u202f{0}\u202f\u00bb n\u2019est pas modifiable.
 UnmodifiableGeometry              = Cette g\u00e9om\u00e9trie n\u2019est pas modifiable.
 UnmodifiableMetadata              = Cette m\u00e9ta-donn\u00e9e n\u2019est pas modifiable.
 UnmodifiableObject_1              = Cette instance de \u2018{0}\u2019 n\u2019est pas modifiable.
 UnspecifiedCRS                    = Le syst\u00e8me de r\u00e9f\u00e9rence des coordonn\u00e9es n\u2019a pas \u00e9t\u00e9 sp\u00e9cifi\u00e9.
+UnspecifiedDimensions             = Les dimensions n\u2019ont pas \u00e9t\u00e9 sp\u00e9cifi\u00e9es.
 UnspecifiedFormatForClass_1       = Aucun format n\u2019est sp\u00e9cifi\u00e9 pour les objets de classe \u2018{0}\u2019.
 UnspecifiedParameterValues        = Les valeurs des param\u00e8tres n\u2019ont pas \u00e9t\u00e9 sp\u00e9cifi\u00e9es.
 UnparsableStringForClass_2        = Le texte \u00ab\u202f{1}\u202f\u00bb n\u2019est pas reconnu comme un objet de type \u2018{0}\u2019.
@@ -217,6 +229,7 @@ UnparsableStringForClass_3        = Le t
 UnparsableStringInElement_2       = Le texte \u00ab\u202f{1}\u202f\u00bb dans l\u2019\u00e9l\u00e9ment \u00ab\u202f{0}\u202f\u00bb ne peut pas \u00eatre lu.
 UnresolvedFeatureName_1           = L\u2019entit\u00e9 nomm\u00e9e \u00ab\u202f{0}\u202f\u00bb n\u2019a pas encore \u00e9t\u00e9 r\u00e9solue.
 UnsupportedImplementation_1       = Les instances de \u2018{0}\u2019 ne peuvent pas \u00eatre g\u00e9r\u00e9es parce que les impl\u00e9mentations arbitraires ne sont pas encore support\u00e9es.
+UnsupportedInterpolation_1        = L\u2019interpolation \u201c{0}\u201d n\u2019est pas support\u00e9e.
 UnsupportedOperation_1            = L\u2019op\u00e9ration \u2018{0}\u2019 n\u2019est pas support\u00e9e.
 UnsupportedType_1                 = Le type \u2018{0}\u2019 n\u2019est pas support\u00e9.
 UnsupportedVersion_1              = La version {0} n\u2019est pas support\u00e9e.

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/IndexedResourceBundle.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/IndexedResourceBundle.java?rev=1724531&r1=1724530&r2=1724531&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/IndexedResourceBundle.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/IndexedResourceBundle.java [UTF-8] Wed Jan 13 23:59:38 2016
@@ -108,6 +108,7 @@ public class IndexedResourceBundle exten
      *
      * @see #ensureLoaded(String)
      */
+    @SuppressWarnings("VolatileArrayField")     // Okay because we set this field only after the array has been fully constructed.
     private volatile String[] values;
 
     /**
@@ -456,15 +457,22 @@ public class IndexedResourceBundle exten
     }
 
     /**
-     * Gets a string for the given key and appends ": " to it.
-     * This method is typically used for creating labels.
+     * Gets a string for the given key and appends ":" to it.
+     * A space may or may not be added before ":", depending on the locale.
+     * No space is added after the string; it is up to the caller to add such space if needed.
      *
      * @param  key The key for the desired string.
      * @return The string for the given key.
      * @throws MissingResourceException If no object for the given key can be found.
      */
     public final String getLabel(final short key) throws MissingResourceException {
-        return getString(key) + ": ";
+        String label = getString(key);
+        if (Locale.FRENCH.getLanguage().equals(getLocale().getLanguage())) {
+            label += "\u00A0:";
+        } else {
+            label += ':';
+        }
+        return label;
     }
 
     /**

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Messages.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Messages.java?rev=1724531&r1=1724530&r2=1724531&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Messages.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Messages.java [UTF-8] Wed Jan 13 23:59:38 2016
@@ -61,11 +61,27 @@ public final class Messages extends Inde
         public static final short AlreadyRegistered_2 = 0;
 
         /**
+         * Ambiguity between inverse flattening and semi minor axis length for “{0}”. Using inverse
+         * flattening.
+         */
+        public static final short AmbiguousEllipsoid_1 = 30;
+
+        /**
+         * Can not instantiate the object of type ‘{0}’ identified by “{1}”. Reason is:{2}
+         */
+        public static final short CanNotInstantiateForIdentifier_3 = 35;
+
+        /**
          * Changed the container capacity from {0} to {1} elements.
          */
         public static final short ChangedContainerCapacity_2 = 1;
 
         /**
+         * Configuration of “{0}” received on {1} in {2} seconds.
+         */
+        public static final short ConfigurationOf_3 = 31;
+
+        /**
          * This result indicates if a datum shift method has been applied.
          */
         public static final short ConformanceMeansDatumShift = 8;
@@ -77,7 +93,17 @@ public final class Messages extends Inde
         public static final short ConstantProjParameterValue_1 = 11;
 
         /**
-         * Created an instance of ‘{0}’ named “{1}” with “{2}” identifier.
+         * Created an instance of ‘{0}’ from the “{1}” identifier in {2} seconds.
+         */
+        public static final short CreateDurationFromIdentifier_3 = 33;
+
+        /**
+         * Created an instance of ‘{0}’ in {1} seconds.
+         */
+        public static final short CreateDuration_2 = 34;
+
+        /**
+         * Created an instance of ‘{0}’ named “{1}” with the “{2}” identifier.
          */
         public static final short CreatedIdentifiedObject_3 = 17;
 
@@ -87,6 +113,53 @@ public final class Messages extends Inde
         public static final short CreatedNamedObject_2 = 16;
 
         /**
+         * {0} dataset version {1} on “{2}” version {3}.
+         */
+        public static final short DataBase_4 = 28;
+
+        /**
+         * The {0} environment variable is defined, but the given “{1}” value is not an existing
+         * directory.
+         */
+        public static final short DataDirectoryDoesNotExist_2 = 20;
+
+        /**
+         * Apache SIS is not authorized to access the “{1}” sub-directory in the directory given by the
+         * {0} environment variable.
+         */
+        public static final short DataDirectoryNotAccessible_2 = 26;
+
+        /**
+         * Apache SIS is not authorized to read information given by the “{0}” environment variable.
+         */
+        public static final short DataDirectoryNotAuthorized_1 = 25;
+
+        /**
+         * The “{1}” directory specified by the {0} environment variable exists but is not readable.
+         */
+        public static final short DataDirectoryNotReadable_2 = 21;
+
+        /**
+         * The “{0}” environment variable is not set.
+         */
+        public static final short DataDirectoryNotSpecified_1 = 22;
+
+        /**
+         * Apache SIS can not write in the “{1}” directory given by the {0} environment variable.
+         */
+        public static final short DataDirectoryNotWritable_2 = 23;
+
+        /**
+         * Environment variable {0} specifies the “{1}” data directory.
+         */
+        public static final short DataDirectory_2 = 24;
+
+        /**
+         * Code “{0}” is deprecated and replaced by code {1}. Reason is: {2}
+         */
+        public static final short DeprecatedCode_3 = 29;
+
+        /**
          * Property “{0}” has been discarded in favor of “{1}”, because those two properties are
          * mutually exclusive.
          */
@@ -108,6 +181,16 @@ public final class Messages extends Inde
         public static final short IncompleteParsing_1 = 14;
 
         /**
+         * No object associated to the “{0}” JNDI name.
+         */
+        public static final short JNDINotSpecified_1 = 32;
+
+        /**
+         * Loading datum shift file “{0}”.
+         */
+        public static final short LoadingDatumShiftFile_1 = 27;
+
+        /**
          * Text were discarded for some locales.
          */
         public static final short LocalesDiscarded = 3;
@@ -150,6 +233,11 @@ public final class Messages extends Inde
         public static final short UnknownElementsInText = 13;
 
         /**
+         * Loading of “{0}” done, but some records were ignored because of unrecognized keywords: {1}
+         */
+        public static final short UnknownKeywordInRecord_2 = 19;
+
+        /**
          * Can not parse “{1}” as an instance of ‘{0}’. The value is stored as plain text instead, but
          * will be ignored by some processing.
          */

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Messages.properties
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Messages.properties?rev=1724531&r1=1724530&r2=1724531&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Messages.properties [ISO-8859-1] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Messages.properties [ISO-8859-1] Wed Jan 13 23:59:38 2016
@@ -14,22 +14,40 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #
-AlreadyRegistered_2             = {0} \u201c{1}\u201d is already registered. The second instance will be ignored.
-ChangedContainerCapacity_2      = Changed the container capacity from {0} to {1} elements.
-ConformanceMeansDatumShift      = This result indicates if a datum shift method has been applied.
-ConstantProjParameterValue_1    = This parameter is shown for completeness, but should never have a value different than {0} for this projection.
-CreatedNamedObject_2            = Created an instance of \u2018{0}\u2019 named \u201c{1}\u201d.
-CreatedIdentifiedObject_3       = Created an instance of \u2018{0}\u2019 named \u201c{1}\u201d with \u201c{2}\u201d identifier.
-DiscardedExclusiveProperty_2    = Property \u201c{0}\u201d has been discarded in favor of \u201c{1}\u201d, because those two properties are mutually exclusive.
-IgnoredPropertiesAfterFirst_1   = Ignored properties after the first occurrence of \u2018{0}\u2019.
-IgnoredPropertyAssociatedTo_1   = Ignored property associated to \u2018{0}\u2019.
-IncompleteParsing_1             = Parsing of \u201c{0}\u201d done, but some elements were ignored.
-LocalesDiscarded                = Text were discarded for some locales.
-OptionalModuleNotFound_1        = Optional module \u201c{0}\u201d requested but not found.
-PropertyHiddenBy_2              = Property \u201c{0}\u201d is hidden by \u201c{1}\u201d.
-MismatchedEllipsoidAxisLength_3 = The \u201c{1}\u201d parameter could have been omitted. But it has been given a value of {2} which does not match the definition of the \u201c{0}\u201d ellipsoid.
-MisnamedParameter_1             = Despite its name, this parameter is effectively \u201c{0}\u201d.
-NonConformFormatting_1          = Formatting of \u201c{0}\u201d is not conform to the format standard.
-NotFormalProjectionParameter_1  = This parameter borrowed from the \u201c{0}\u201d projection is not formally a parameter of this projection.
-UnknownElementsInText           = The text contains unknown elements:
-UnparsableValueStoredAsText_2   = Can not parse \u201c{1}\u201d as an instance of \u2018{0}\u2019. The value is stored as plain text instead, but will be ignored by some processing.
+AlreadyRegistered_2              = {0} \u201c{1}\u201d is already registered. The second instance will be ignored.
+AmbiguousEllipsoid_1             = Ambiguity between inverse flattening and semi minor axis length for \u201c{0}\u201d. Using inverse flattening.
+# In following message, the first characters of parameter {2} should be a line separator ("\r", "\n" or "\r\n").
+CanNotInstantiateForIdentifier_3 = Can not instantiate the object of type \u2018{0}\u2019 identified by \u201c{1}\u201d. Reason is:{2}
+ChangedContainerCapacity_2       = Changed the container capacity from {0} to {1} elements.
+ConfigurationOf_3                = Configuration of \u201c{0}\u201d received on {1} in {2} seconds.
+ConformanceMeansDatumShift       = This result indicates if a datum shift method has been applied.
+ConstantProjParameterValue_1     = This parameter is shown for completeness, but should never have a value different than {0} for this projection.
+CreatedNamedObject_2             = Created an instance of \u2018{0}\u2019 named \u201c{1}\u201d.
+CreatedIdentifiedObject_3        = Created an instance of \u2018{0}\u2019 named \u201c{1}\u201d with the \u201c{2}\u201d identifier.
+CreateDuration_2                 = Created an instance of \u2018{0}\u2019 in {1} seconds.
+CreateDurationFromIdentifier_3   = Created an instance of \u2018{0}\u2019 from the \u201c{1}\u201d identifier in {2} seconds.
+DataBase_4                       = {0} dataset version {1} on \u201c{2}\u201d version {3}.
+DataDirectory_2                  = Environment variable {0} specifies the \u201c{1}\u201d data directory.
+DataDirectoryDoesNotExist_2      = The {0} environment variable is defined, but the given \u201c{1}\u201d value is not an existing directory.
+DataDirectoryNotAccessible_2     = Apache SIS is not authorized to access the \u201c{1}\u201d sub-directory in the directory given by the {0} environment variable.
+DataDirectoryNotAuthorized_1     = Apache SIS is not authorized to read information given by the \u201c{0}\u201d environment variable.
+DataDirectoryNotReadable_2       = The \u201c{1}\u201d directory specified by the {0} environment variable exists but is not readable.
+DataDirectoryNotSpecified_1      = The \u201c{0}\u201d environment variable is not set.
+DataDirectoryNotWritable_2       = Apache SIS can not write in the \u201c{1}\u201d directory given by the {0} environment variable.
+DeprecatedCode_3                 = Code \u201c{0}\u201d is deprecated and replaced by code {1}. Reason is: {2}
+DiscardedExclusiveProperty_2     = Property \u201c{0}\u201d has been discarded in favor of \u201c{1}\u201d, because those two properties are mutually exclusive.
+IgnoredPropertiesAfterFirst_1    = Ignored properties after the first occurrence of \u2018{0}\u2019.
+IgnoredPropertyAssociatedTo_1    = Ignored property associated to \u2018{0}\u2019.
+IncompleteParsing_1              = Parsing of \u201c{0}\u201d done, but some elements were ignored.
+JNDINotSpecified_1               = No object associated to the \u201c{0}\u201d JNDI name.
+LoadingDatumShiftFile_1          = Loading datum shift file \u201c{0}\u201d.
+LocalesDiscarded                 = Text were discarded for some locales.
+OptionalModuleNotFound_1         = Optional module \u201c{0}\u201d requested but not found.
+PropertyHiddenBy_2               = Property \u201c{0}\u201d is hidden by \u201c{1}\u201d.
+MismatchedEllipsoidAxisLength_3  = The \u201c{1}\u201d parameter could have been omitted. But it has been given a value of {2} which does not match the definition of the \u201c{0}\u201d ellipsoid.
+MisnamedParameter_1              = Despite its name, this parameter is effectively \u201c{0}\u201d.
+NonConformFormatting_1           = Formatting of \u201c{0}\u201d is not conform to the format standard.
+NotFormalProjectionParameter_1   = This parameter borrowed from the \u201c{0}\u201d projection is not formally a parameter of this projection.
+UnknownElementsInText            = The text contains unknown elements:
+UnknownKeywordInRecord_2         = Loading of \u201c{0}\u201d done, but some records were ignored because of unrecognized keywords: {1}
+UnparsableValueStoredAsText_2    = Can not parse \u201c{1}\u201d as an instance of \u2018{0}\u2019. The value is stored as plain text instead, but will be ignored by some processing.

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Messages_fr.properties
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Messages_fr.properties?rev=1724531&r1=1724530&r2=1724531&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Messages_fr.properties [ISO-8859-1] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Messages_fr.properties [ISO-8859-1] Wed Jan 13 23:59:38 2016
@@ -21,22 +21,40 @@
 #   U+202F NARROW NO-BREAK SPACE  before  ; ! and ?
 #   U+00A0 NO-BREAK SPACE         before  :
 #
-AlreadyRegistered_2             = Le {0} \u00ab\u202f{1}\u202f\u00bb est d\u00e9j\u00e0 inscrit dans le registre. La seconde instance sera ignor\u00e9e.
-ChangedContainerCapacity_2      = Changement de la capacit\u00e9 du conteneur de {0} vers {1} \u00e9l\u00e9ments.
-ConformanceMeansDatumShift      = Ce r\u00e9sultat indique si un changement de r\u00e9f\u00e9rentiel a \u00e9t\u00e9 appliqu\u00e9.
-ConstantProjParameterValue_1    = Ce param\u00e8tre est montr\u00e9 pour \u00eatre plus complet, mais sa valeur ne devrait jamais \u00eatre diff\u00e9rente de {0} pour cette projection.
-CreatedNamedObject_2            = Cr\u00e9ation d\u2019une instance de \u2018{0}\u2019 nomm\u00e9e \u00ab\u202f{1}\u202f\u00bb.
-CreatedIdentifiedObject_3       = Cr\u00e9ation d\u2019une instance de \u2018{0}\u2019 nomm\u00e9e \u00ab\u202f{1}\u202f\u00bb avec l\u2019identifiant \u00ab\u202f{2}\u202f\u00bb.
-DiscardedExclusiveProperty_2    = La propri\u00e9t\u00e9 \u00ab\u202f{0}\u202f\u00bb a \u00e9t\u00e9 \u00e9cart\u00e9e en faveur de \u00ab\u202f{1}\u202f\u00bb, parce que ces deux propri\u00e9t\u00e9s sont mutuellement exclusives.
-IgnoredPropertiesAfterFirst_1   = Des propri\u00e9t\u00e9s ont \u00e9t\u00e9 ignor\u00e9es apr\u00e8s la premi\u00e8re occurrence de \u2018{0}\u2019.
-IgnoredPropertyAssociatedTo_1   = Une propri\u00e9t\u00e9 associ\u00e9e \u00e0 \u2018{0}\u2019 a \u00e9t\u00e9 ignor\u00e9e.
-IncompleteParsing_1             = La lecture de \u00ab\u202f{0}\u202f\u00bb a \u00e9t\u00e9 faite, mais en ignorant certains \u00e9l\u00e9ments.
-LocalesDiscarded                = Des textes ont \u00e9t\u00e9 ignor\u00e9s pour certaines langues.
-OptionalModuleNotFound_1        = Le module optionnel \u00ab\u202f{0}\u202f\u00bb a \u00e9t\u00e9 demand\u00e9 mais n\u2019a pas \u00e9t\u00e9 trouv\u00e9.
-PropertyHiddenBy_2              = La propri\u00e9t\u00e9 \u00ab\u202f{0}\u202f\u00bb est masqu\u00e9e par \u00ab\u202f{1}\u202f\u00bb.
-MismatchedEllipsoidAxisLength_3 = Le param\u00e8tre \u00ab\u202f{1}\u202f\u00bb aurait pu \u00eatre omis. Mais il lui a \u00e9t\u00e9 donn\u00e9 la valeur {2} qui ne correspond pas \u00e0 la d\u00e9finition de l\u2019ellipso\u00efde \u00ab\u202f{0}\u202f\u00bb.
-MisnamedParameter_1             = Malgr\u00e9 son nom, ce param\u00e8tre produit en r\u00e9alit\u00e9 l\u2019effet d\u2019un \u00ab\u202f{0}\u202f\u00bb.
-NonConformFormatting_1          = L\u2019\u00e9criture de \u00ab\u202f{0}\u202f\u00bb n\u2019est pas conforme au format standard.
-NotFormalProjectionParameter_1  = Ce param\u00e8tre emprunt\u00e9 \u00e0 la projection \u00ab\u202f{0}\u202f\u00bb n\u2019est pas formellement un param\u00e8tre de cette projection.
-UnknownElementsInText           = Le texte contient des \u00e9l\u00e9ments inconnus\u00a0:
-UnparsableValueStoredAsText_2   = La valeur \u00ab\u202f{1}\u202f\u00bb ne peut pas \u00eatre interpr\u00e9t\u00e9e comme une instance de \u2018{0}\u2019. Elle est donc m\u00e9moris\u00e9e sous sa forme textuelle, mais sera ignor\u00e9e par certains traitements.
+AlreadyRegistered_2              = Le {0} \u00ab\u202f{1}\u202f\u00bb est d\u00e9j\u00e0 inscrit dans le registre. La seconde instance sera ignor\u00e9e.
+AmbiguousEllipsoid_1             = Ambigu\u00eft\u00e9 entre l\u2019aplatissement et la longueur du semi-axe mineur pour \u00ab\u202f{0}\u202f\u00bb. Utilise l\u2019aplatissement.
+# In following message, the first characters of parameter {2} should be a line separator ("\r", "\n" or "\r\n").
+CanNotInstantiateForIdentifier_3 = Ne peut pas cr\u00e9er l\u2019objet de type \u2018{0}\u2019 identifi\u00e9 par \u00ab\u202f{1}\u202f\u00bb. La raison est\u00a0:{2}
+ChangedContainerCapacity_2       = Changement de la capacit\u00e9 du conteneur de {0} vers {1} \u00e9l\u00e9ments.
+ConfigurationOf_3                = Configuration de \u00ab\u202f{0}\u202f\u00bb re\u00e7ue le {1} en {2} secondes.
+ConformanceMeansDatumShift       = Ce r\u00e9sultat indique si un changement de r\u00e9f\u00e9rentiel a \u00e9t\u00e9 appliqu\u00e9.
+ConstantProjParameterValue_1     = Ce param\u00e8tre est montr\u00e9 pour \u00eatre plus complet, mais sa valeur ne devrait jamais \u00eatre diff\u00e9rente de {0} pour cette projection.
+CreatedNamedObject_2             = Cr\u00e9ation d\u2019une instance de \u2018{0}\u2019 nomm\u00e9e \u00ab\u202f{1}\u202f\u00bb.
+CreatedIdentifiedObject_3        = Cr\u00e9ation d\u2019une instance de \u2018{0}\u2019 nomm\u00e9e \u00ab\u202f{1}\u202f\u00bb avec l\u2019identifiant \u00ab\u202f{2}\u202f\u00bb.
+CreateDuration_2                 = Cr\u00e9ation d\u2019une instance de \u2018{0}\u2019 en {1} secondes.
+CreateDurationFromIdentifier_3   = Cr\u00e9ation d\u2019une instance de \u2018{0}\u2019 \u00e0 partir de l\u2019identifiant \u00ab\u202f{1}\u202f\u00bb en {2} secondes.
+DataBase_4                       = Base de donn\u00e9es {0} version {1} sur \u00ab\u202f{2}\u202f\u00bb version {3}.
+DataDirectory_2                  = La variable environnementale {0} sp\u00e9cifie le r\u00e9pertoire de donn\u00e9es \u00ab\u202f{1}\u202f\u00bb.
+DataDirectoryDoesNotExist_2      = La variable environnementale {0} est bien d\u00e9finie, mais sa valeur \u00ab\u202f{1}\u202f\u00bb n\u2019est pas un r\u00e9pertoire existant.
+DataDirectoryNotAccessible_2     = Apache SIS n\u2019a pas l\u2019autorisation d\u2019acc\u00e9der au sous-r\u00e9pertoire \u00ab\u202f{1}\u202f\u00bb dans le r\u00e9pertoire donn\u00e9 par la variable environnementale {0}.
+DataDirectoryNotAuthorized_1     = Apache SIS n\u2019a pas l\u2019autorisation de lire des informations donn\u00e9es par la variable environnementale \u00ab\u202f{0}\u202f\u00bb.
+DataDirectoryNotReadable_2       = Le r\u00e9pertoire \u00ab\u202f{1}\u202f\u00bb sp\u00e9cifi\u00e9 par la variable environnementale {0} existe bien mais ne peut pas \u00eatre lu.
+DataDirectoryNotSpecified_1      = La variable environnementale \u00ab\u202f{0}\u202f\u00bb n\u2019est pas d\u00e9finie.
+DataDirectoryNotWritable_2       = Apache SIS ne peut pas \u00e9crire dans le r\u00e9pertoire \u00ab\u202f{1}\u202f\u00bb sp\u00e9cifi\u00e9e par la variable environnementale {0}.
+DeprecatedCode_3                 = Le code \u00ab\u202f{0}\u202f\u00bb est d\u00e9pr\u00e9ci\u00e9 et remplac\u00e9 par le code {1}. La raison est\u00a0: {2}
+DiscardedExclusiveProperty_2     = La propri\u00e9t\u00e9 \u00ab\u202f{0}\u202f\u00bb a \u00e9t\u00e9 \u00e9cart\u00e9e en faveur de \u00ab\u202f{1}\u202f\u00bb, parce que ces deux propri\u00e9t\u00e9s sont mutuellement exclusives.
+IgnoredPropertiesAfterFirst_1    = Des propri\u00e9t\u00e9s ont \u00e9t\u00e9 ignor\u00e9es apr\u00e8s la premi\u00e8re occurrence de \u2018{0}\u2019.
+IgnoredPropertyAssociatedTo_1    = Une propri\u00e9t\u00e9 associ\u00e9e \u00e0 \u2018{0}\u2019 a \u00e9t\u00e9 ignor\u00e9e.
+IncompleteParsing_1              = La lecture de \u00ab\u202f{0}\u202f\u00bb a \u00e9t\u00e9 faite, mais en ignorant certains \u00e9l\u00e9ments.
+JNDINotSpecified_1               = Aucun objet n\u2019est associ\u00e9 au nom JNDI \u00ab\u202f{0}\u202f\u00bb.
+LoadingDatumShiftFile_1          = Chargement du fichier de changement de r\u00e9f\u00e9rentiel \u00ab\u202f{0}\u202f\u00bb.
+LocalesDiscarded                 = Des textes ont \u00e9t\u00e9 ignor\u00e9s pour certaines langues.
+OptionalModuleNotFound_1         = Le module optionnel \u00ab\u202f{0}\u202f\u00bb a \u00e9t\u00e9 demand\u00e9 mais n\u2019a pas \u00e9t\u00e9 trouv\u00e9.
+PropertyHiddenBy_2               = La propri\u00e9t\u00e9 \u00ab\u202f{0}\u202f\u00bb est masqu\u00e9e par \u00ab\u202f{1}\u202f\u00bb.
+MismatchedEllipsoidAxisLength_3  = Le param\u00e8tre \u00ab\u202f{1}\u202f\u00bb aurait pu \u00eatre omis. Mais il lui a \u00e9t\u00e9 donn\u00e9 la valeur {2} qui ne correspond pas \u00e0 la d\u00e9finition de l\u2019ellipso\u00efde \u00ab\u202f{0}\u202f\u00bb.
+MisnamedParameter_1              = Malgr\u00e9 son nom, ce param\u00e8tre produit en r\u00e9alit\u00e9 l\u2019effet d\u2019un \u00ab\u202f{0}\u202f\u00bb.
+NonConformFormatting_1           = L\u2019\u00e9criture de \u00ab\u202f{0}\u202f\u00bb n\u2019est pas conforme au format standard.
+NotFormalProjectionParameter_1   = Ce param\u00e8tre emprunt\u00e9 \u00e0 la projection \u00ab\u202f{0}\u202f\u00bb n\u2019est pas formellement un param\u00e8tre de cette projection.
+UnknownElementsInText            = Le texte contient des \u00e9l\u00e9ments inconnus\u00a0:
+UnknownKeywordInRecord_2         = La lecture de \u00ab\u202f{0}\u202f\u00bb a \u00e9t\u00e9 faite, mais en ignorant certains enregistrements \u00e0 cause de mots-cl\u00e9s non reconnus: {1}
+UnparsableValueStoredAsText_2    = La valeur \u00ab\u202f{1}\u202f\u00bb ne peut pas \u00eatre interpr\u00e9t\u00e9e comme une instance de \u2018{0}\u2019. Elle est donc m\u00e9moris\u00e9e sous sa forme textuelle, mais sera ignor\u00e9e par certains traitements.

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary.java?rev=1724531&r1=1724530&r2=1724531&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary.java [UTF-8] Wed Jan 13 23:59:38 2016
@@ -126,6 +126,11 @@ public final class Vocabulary extends In
         public static final short ConstantPressureSurface = 19;
 
         /**
+         * Container
+         */
+        public static final short Container = 92;
+
+        /**
          * Correlation
          */
         public static final short Correlation = 83;
@@ -146,6 +151,11 @@ public final class Vocabulary extends In
         public static final short CycleOmitted = 12;
 
         /**
+         * Data directory
+         */
+        public static final short DataDirectory = 88;
+
+        /**
          * Daylight time
          */
         public static final short DaylightTime = 13;
@@ -221,6 +231,11 @@ public final class Vocabulary extends In
         public static final short Index = 22;
 
         /**
+         * Invalid
+         */
+        public static final short Invalid = 89;
+
+        /**
          * Java extensions
          */
         public static final short JavaExtensions = 23;
@@ -241,6 +256,11 @@ public final class Vocabulary extends In
         public static final short Latitude = 26;
 
         /**
+         * Level
+         */
+        public static final short Level = 94;
+
+        /**
          * Libraries
          */
         public static final short Libraries = 27;
@@ -301,6 +321,11 @@ public final class Vocabulary extends In
         public static final short Name = 37;
 
         /**
+         * None
+         */
+        public static final short None = 91;
+
+        /**
          * Number of ‘NaN’
          */
         public static final short NumberOfNaN = 38;
@@ -361,6 +386,11 @@ public final class Vocabulary extends In
         public static final short Quoted_1 = 86;
 
         /**
+         * Remote configuration
+         */
+        public static final short RemoteConfiguration = 93;
+
+        /**
          * Root
          */
         public static final short Root = 47;
@@ -491,6 +521,11 @@ public final class Vocabulary extends In
         public static final short Vertical = 68;
 
         /**
+         * Warnings
+         */
+        public static final short Warnings = 90;
+
+        /**
          * World
          */
         public static final short World = 64;

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary.properties
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary.properties?rev=1724531&r1=1724530&r2=1724531&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary.properties [ISO-8859-1] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary.properties [ISO-8859-1] Wed Jan 13 23:59:38 2016
@@ -28,10 +28,12 @@ Classpath               = Classpath
 Code_1                  = {0} code
 Commands                = Commands
 ConstantPressureSurface = Constant pressure surface
+Container               = Container
 Correlation             = Correlation
 CurrentDateTime         = Current date and time
 CurrentDirectory        = Current directory
 CycleOmitted            = Cycle omitted
+DataDirectory           = Data directory
 DaylightTime            = Daylight time
 DefaultValue            = Default value
 Description             = Description
@@ -47,11 +49,13 @@ Identifier              = Identifier
 Implementation          = Implementation
 InBetweenWords          = \u2002in\u2002
 Index                   = Index
+Invalid                 = Invalid
 JavaExtensions          = Java extensions
 JavaHome                = Java home directory
 Julian                  = Julian
 Latitude                = Latitude
 Longitude               = Longitude
+Level                   = Level
 Libraries               = Libraries
 LocalConfiguration      = Local configuration
 Locale                  = Locale
@@ -63,6 +67,7 @@ MeanValue               = Mean value
 MinimumValue            = Minimum value
 ModifiedJulian          = Modified Julian
 Name                    = Name
+None                    = None
 NumberOfValues          = Number of values
 NumberOfNaN             = Number of \u2018NaN\u2019
 Obligation              = Obligation
@@ -75,6 +80,7 @@ Others                  = Others
 OtherSurface            = Other surface
 Paths                   = Paths
 Quoted_1                = \u201c{0}\u201d
+RemoteConfiguration     = Remote configuration
 Root                    = Root
 RootMeanSquare          = Root Mean Square
 Scale                   = Scale
@@ -101,4 +107,5 @@ Variables               = Variables
 Version_2               = {0} version {1}
 Versions                = Versions
 Vertical                = Vertical
+Warnings                = Warnings
 World                   = World

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary_fr.properties
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary_fr.properties?rev=1724531&r1=1724530&r2=1724531&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary_fr.properties [ISO-8859-1] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary_fr.properties [ISO-8859-1] Wed Jan 13 23:59:38 2016
@@ -35,10 +35,12 @@ Classpath               = Chemin de clas
 Code_1                  = Code {0}
 Commands                = Commandes
 ConstantPressureSurface = Surface \u00e0 pression constante
+Container               = Conteneur
 Correlation             = Corr\u00e9lation
 CurrentDateTime         = Date et heure courantes
 CurrentDirectory        = R\u00e9pertoire courant
 CycleOmitted            = Cycle omit
+DataDirectory           = R\u00e9pertoire des donn\u00e9es
 DaylightTime            = Heure normale
 DefaultValue            = Valeur par d\u00e9faut
 Description             = Description
@@ -54,11 +56,13 @@ Identifier              = Identifiant
 Implementation          = Impl\u00e9mentation
 InBetweenWords          = \u2002dans\u2002
 Index                   = Index
+Invalid                 = Invalide
 JavaExtensions          = Extensions du Java
 JavaHome                = R\u00e9pertoire du Java
 Julian                  = Julien
 Latitude                = Latitude
 Longitude               = Longitude
+Level                   = Niveau
 Libraries               = Biblioth\u00e8ques
 LocalConfiguration      = Configuration locale
 Locale                  = Locale
@@ -70,6 +74,7 @@ MeanValue               = Valeur moyenne
 MinimumValue            = Valeur minimale
 ModifiedJulian          = Julien modifi\u00e9
 Name                    = Nom
+None                    = Aucun
 NumberOfValues          = Nombre de valeurs
 NumberOfNaN             = Nombre de \u2018NaN\u2019
 Obligation              = Obligation
@@ -82,6 +87,7 @@ Others                  = Autres
 OtherSurface            = Autre surface
 Paths                   = Chemins
 Quoted_1                = \u00ab\u202f{0}\u202f\u00bb
+RemoteConfiguration     = Configuration distante
 Root                    = Racine
 RootMeanSquare          = Moyenne quadratique
 Scale                   = \u00c9chelle
@@ -108,4 +114,5 @@ Variables               = Variables
 Version_2               = {0} version {1}
 Versions                = Versions
 Vertical                = Vertical
+Warnings                = Avertissements
 World                   = Monde

Modified: sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/LoggingWatcher.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/LoggingWatcher.java?rev=1724531&r1=1724530&r2=1724531&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/LoggingWatcher.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/LoggingWatcher.java [UTF-8] Wed Jan 13 23:59:38 2016
@@ -126,7 +126,7 @@ public strictfp class LoggingWatcher ext
         }
         maximumLogCount--;
         verifyMessage(formatter.formatMessage(record));
-        return TestCase.verbose;
+        return TestCase.VERBOSE;
     }
 
     /**

Modified: sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/TestCase.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/TestCase.java?rev=1724531&r1=1724530&r2=1724531&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/TestCase.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/TestCase.java [UTF-8] Wed Jan 13 23:59:38 2016
@@ -27,9 +27,6 @@ import java.io.UnsupportedEncodingExcept
 import org.apache.sis.util.logging.Logging;
 import org.junit.runner.RunWith;
 
-import static org.apache.sis.test.TestConfiguration.VERBOSE_OUTPUT_KEY;
-import static org.apache.sis.test.TestConfiguration.OUTPUT_ENCODING_KEY;
-
 
 /**
  * Base class of Apache SIS tests (except the ones that extend GeoAPI tests).
@@ -50,7 +47,7 @@ import static org.apache.sis.test.TestCo
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.3
- * @version 0.6
+ * @version 0.7
  * @module
  */
 @RunWith(TestRunner.class)
@@ -110,14 +107,22 @@ public abstract strictfp class TestCase
      * {@code true} if the {@value org.apache.sis.test.TestConfiguration#VERBOSE_OUTPUT_KEY}
      * system property is set to {@code true}.
      */
-    public static final boolean verbose;
+    public static final boolean VERBOSE;
+
+    /**
+     * {@code true} if the {@value org.apache.sis.test.TestConfiguration#EXTENSIVE_TESTS_KEY}
+     * system property is set to {@code true}.
+     * If {@code true}, then Apache SIS will run some tests which were normally skipped because they are slow.
+     */
+    public static final boolean RUN_EXTENSIVE_TESTS;
 
     /**
      * Sets the {@link #out} writer and its underlying {@link #buffer}.
      */
     static {
-        verbose = Boolean.getBoolean(VERBOSE_OUTPUT_KEY);
         out = new PrintWriter(buffer = new StringWriter());
+        VERBOSE = Boolean.getBoolean(TestConfiguration.VERBOSE_OUTPUT_KEY);
+        RUN_EXTENSIVE_TESTS = Boolean.getBoolean(TestConfiguration.EXTENSIVE_TESTS_KEY);
     }
 
     /**
@@ -136,12 +141,12 @@ public abstract strictfp class TestCase
      * message and left the encoding unchanged.</p>
      */
     static {
-        final String encoding = System.getProperty(OUTPUT_ENCODING_KEY);
+        final String encoding = System.getProperty(TestConfiguration.OUTPUT_ENCODING_KEY);
         if (encoding != null) try {
             for (Logger logger=LOGGER; logger!=null; logger=logger.getParent()) {
                 for (final Handler handler : logger.getHandlers()) {
                     if (handler instanceof ConsoleHandler) {
-                        ((ConsoleHandler) handler).setEncoding(encoding);
+                        handler.setEncoding(encoding);
                     }
                 }
                 if (!logger.getUseParentHandlers()) {
@@ -200,7 +205,7 @@ public abstract strictfp class TestCase
              * Get the output writer, using the specified encoding if any.
              */
             PrintWriter writer = null;
-            final String encoding = System.getProperty(OUTPUT_ENCODING_KEY);
+            final String encoding = System.getProperty(TestConfiguration.OUTPUT_ENCODING_KEY);
             if (encoding == null) {
                 final Console console = System.console();
                 if (console != null) {

Modified: sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/TestConfiguration.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/TestConfiguration.java?rev=1724531&r1=1724530&r2=1724531&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/TestConfiguration.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/TestConfiguration.java [UTF-8] Wed Jan 13 23:59:38 2016
@@ -24,11 +24,18 @@ import org.apache.sis.util.Static;
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.3
- * @version 0.3
+ * @version 0.7
  * @module
  */
 public final strictfp class TestConfiguration extends Static {
     /**
+     * The {@value} system property for enabling more extensive tests.
+     * If this {@linkplain System#getProperties() system property} is set to {@code true},
+     * then Apache SIS will run some tests which were normally skipped because they are slow.
+     */
+    public static final String EXTENSIVE_TESTS_KEY = "org.apache.sis.test.extensive";
+
+    /**
      * The {@value} system property for enabling verbose outputs.
      * If this {@linkplain System#getProperties() system property} is set to {@code true},
      * then the content sent to the {@link TestCase#out} field will be printed after each test.

Modified: sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/TestRunner.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/TestRunner.java?rev=1724531&r1=1724530&r2=1724531&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/TestRunner.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/TestRunner.java [UTF-8] Wed Jan 13 23:59:38 2016
@@ -107,7 +107,7 @@ public final class TestRunner extends Bl
          */
         @Override
         public void testStarted(final Description description) {
-            if (!TestCase.verbose) {
+            if (!TestCase.VERBOSE) {
                 TestCase.clearBuffer();
             }
             LogRecordCollector.INSTANCE.setCurrentTest(description);
@@ -120,7 +120,7 @@ public final class TestRunner extends Bl
          */
         @Override
         public void testFinished(final Description description) {
-            if (TestCase.verbose) {
+            if (TestCase.VERBOSE) {
                 TestCase.flushOutput();
             }
             TestCase.randomSeed = 0;
@@ -148,7 +148,7 @@ public final class TestRunner extends Bl
                 out.println('.');
                 // Seed we be cleared by testFinished(…).
             }
-            if (!TestCase.verbose) {
+            if (!TestCase.VERBOSE) {
                 TestCase.flushOutput();
             }
             // In verbose mode, the flush will be done by testFinished(…).

Modified: sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/TestSuite.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/TestSuite.java?rev=1724531&r1=1724530&r2=1724531&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/TestSuite.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/TestSuite.java [UTF-8] Wed Jan 13 23:59:38 2016
@@ -26,7 +26,6 @@ import java.io.File;
 import java.io.IOException;
 import java.net.URL;
 import java.net.URISyntaxException;
-import javax.management.JMException;
 import org.apache.sis.internal.system.Shutdown;
 import org.apache.sis.internal.system.SystemListener;
 import org.apache.sis.util.Classes;
@@ -42,7 +41,7 @@ import static org.junit.Assert.*;
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.3
- * @version 0.5
+ * @version 0.7
  * @module
  */
 @RunWith(Suite.class)
@@ -247,10 +246,11 @@ public abstract strictfp class TestSuite
      * <p>Since this method stops SIS daemon threads, the SIS library shall not be used anymore after
      * this method execution.</p>
      *
-     * @throws JMException If an error occurred during unregistration of the supervisor MBean.
+     * @throws Exception If an error occurred during unregistration of the supervisor MBean or resource disposal.
      */
     @AfterClass
-    public static void shutdown() throws JMException {
+    @SuppressWarnings("UseOfSystemOutOrSystemErr")
+    public static void shutdown() throws Exception {
         if (!skipShutdown) {
             skipShutdown = true;
             TestCase.LOGGER.removeHandler(LogRecordCollector.INSTANCE);

Modified: sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/TestUtilities.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/TestUtilities.java?rev=1724531&r1=1724530&r2=1724531&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/TestUtilities.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/TestUtilities.java [UTF-8] Wed Jan 13 23:59:38 2016
@@ -110,7 +110,7 @@ public final strictfp class TestUtilitie
      * @param title The title to write.
      */
     public static void printSeparator(final String title) {
-        if (TestCase.verbose) {
+        if (TestCase.VERBOSE) {
             final PrintWriter out = TestCase.out;
             final boolean isAnsiSupported = X364.isAnsiSupported();
             if (isAnsiSupported) {

Modified: sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/suite/UtilityTestSuite.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/suite/UtilityTestSuite.java?rev=1724531&r1=1724530&r2=1724531&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/suite/UtilityTestSuite.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/suite/UtilityTestSuite.java [UTF-8] Wed Jan 13 23:59:38 2016
@@ -26,7 +26,7 @@ import org.junit.BeforeClass;
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.3
- * @version 0.6
+ * @version 0.7
  * @module
  */
 @Suite.SuiteClasses({
@@ -68,6 +68,7 @@ import org.junit.BeforeClass;
     // Collections.
     org.apache.sis.internal.util.CheckedArrayListTest.class,
     org.apache.sis.internal.system.ReferenceQueueConsumerTest.class,
+    org.apache.sis.util.collection.IntegerListTest.class,
     org.apache.sis.util.collection.WeakHashSetTest.class,
     org.apache.sis.util.collection.WeakValueHashMapTest.class,
     org.apache.sis.util.collection.CacheTest.class,

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=1724531&r1=1724530&r2=1724531&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] Wed Jan 13 23:59:38 2016
@@ -34,7 +34,7 @@ import static org.apache.sis.util.CharSe
  * @author  Martin Desruisseaux (Geomatys)
  * @author  Johann Sorel (Geomatys)
  * @since   0.3
- * @version 0.6
+ * @version 0.7
  * @module
  */
 @DependsOn({
@@ -315,6 +315,7 @@ public final strictfp class CharSequence
         assertEquals("OGC", camelCaseToAcronym("OGC").toString());
         assertEquals("OGC", camelCaseToAcronym("Open Geospatial Consortium").toString());
         assertEquals("E",   camelCaseToAcronym("East").toString());
+        assertEquals("E",   camelCaseToAcronym("east").toString());
         assertEquals("NE",  camelCaseToAcronym("North-East").toString());
         assertEquals("NE",  camelCaseToAcronym("NORTH_EAST").toString());
         assertEquals("NE",  camelCaseToAcronym("northEast").toString());
@@ -348,7 +349,7 @@ public final strictfp class CharSequence
         assertFalse(isAcronymForWords("ENE",    "NORTH_EAST"));
         /*
          * Following are mapping of EPSG table names from MS-Access to ANSI SQL.
-         * All those items must be recognized as acroynms - this is requred by DirectEpsgFactory.
+         * All those items must be recognized as acroynms - this is requred by EPSGDataAccess.
          */
         assertTrue(isAcronymForWords("alias",                     "[Alias]"));
         assertTrue(isAcronymForWords("area",                      "[Area]"));
@@ -374,7 +375,7 @@ public final strictfp class CharSequence
         assertFalse(isAcronymForWords(null,                       "[Deprecation]"));
         /*
          * It is important the following is not recognized as an acronym,
-         * otherwise it leads to a confusion in DirectEpsgFactory.
+         * otherwise it leads to a confusion in EPSGDataAccess.
          */
         assertFalse(isAcronymForWords("coordoperation", "[Coordinate_Operation Method]"));
     }
@@ -409,13 +410,19 @@ public final strictfp class CharSequence
     }
 
     /**
-     * Tests the {@link CharSequences#isUpperCase(CharSequence, int, int)} method.
+     * Tests the {@link CharSequences#isUpperCase(CharSequence)} method.
      */
     @Test
     public void testIsUpperCase() {
-        assertTrue ("ABC", isUpperCase("ABC", 0, 3));
-        assertFalse("AbC", isUpperCase("AbC", 0, 3));
-        assertFalse("A2C", isUpperCase("A2C", 0, 3));
+        assertFalse("null",  isUpperCase(null));
+        assertFalse("empty", isUpperCase(""));
+        assertTrue ("ABC",   isUpperCase("ABC"));
+        assertFalse("AbC",   isUpperCase("AbC"));
+        assertTrue ("A2C",   isUpperCase("A2C"));
+        assertFalse("A2c",   isUpperCase("A2c"));
+        assertTrue ("A.C",   isUpperCase("A.C"));
+        assertTrue ("A C",   isUpperCase("A C"));
+        assertFalse(".2-",   isUpperCase(".2-"));
     }
 
     /**

Modified: sis/trunk/ide-project/NetBeans/build.xml
URL: http://svn.apache.org/viewvc/sis/trunk/ide-project/NetBeans/build.xml?rev=1724531&r1=1724530&r2=1724531&view=diff
==============================================================================
--- sis/trunk/ide-project/NetBeans/build.xml (original)
+++ sis/trunk/ide-project/NetBeans/build.xml Wed Jan 13 23:59:38 2016
@@ -169,6 +169,10 @@
       </fileset>
       <fileset dir="${project.root}/core/sis-referencing/src/test/resources">
         <include name="**/*.xml"/>
+        <include name="**/*.txt"/>
+        <include name="**/*.gsb"/>
+        <include name="**/*.laa"/>
+        <include name="**/*.loa"/>
       </fileset>
     </copy>
     <copy todir="${build.test.classes.dir}">




Mime
View raw message