sis-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From desruisse...@apache.org
Subject svn commit: r1724528 [12/15] - in /sis/branches/JDK6: ./ 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...
Date Wed, 13 Jan 2016 23:25:42 GMT
Modified: sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors_fr.properties
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors_fr.properties?rev=1724528&r1=1724527&r2=1724528&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors_fr.properties [ISO-8859-1] (original)
+++ sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors_fr.properties [ISO-8859-1] Wed Jan 13 23:25: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/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/IndexedResourceBundle.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/IndexedResourceBundle.java?rev=1724528&r1=1724527&r2=1724528&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/IndexedResourceBundle.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/IndexedResourceBundle.java [UTF-8] Wed Jan 13 23:25:38 2016
@@ -109,6 +109,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;
 
     /**
@@ -457,15 +458,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/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/Messages.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/Messages.java?rev=1724528&r1=1724527&r2=1724528&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/Messages.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/Messages.java [UTF-8] Wed Jan 13 23:25: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/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/Messages.properties
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/Messages.properties?rev=1724528&r1=1724527&r2=1724528&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/Messages.properties [ISO-8859-1] (original)
+++ sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/Messages.properties [ISO-8859-1] Wed Jan 13 23:25: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/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/Messages_fr.properties
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/Messages_fr.properties?rev=1724528&r1=1724527&r2=1724528&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/Messages_fr.properties [ISO-8859-1] (original)
+++ sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/Messages_fr.properties [ISO-8859-1] Wed Jan 13 23:25: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/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary.java?rev=1724528&r1=1724527&r2=1724528&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary.java [UTF-8] Wed Jan 13 23:25: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/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary.properties
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary.properties?rev=1724528&r1=1724527&r2=1724528&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary.properties [ISO-8859-1] (original)
+++ sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary.properties [ISO-8859-1] Wed Jan 13 23:25: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/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary_fr.properties
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary_fr.properties?rev=1724528&r1=1724527&r2=1724528&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary_fr.properties [ISO-8859-1] (original)
+++ sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary_fr.properties [ISO-8859-1] Wed Jan 13 23:25: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

Copied: sis/branches/JDK6/core/sis-utility/src/test/java/org/apache/sis/test/Assume.java (from r1724479, sis/branches/JDK7/core/sis-utility/src/test/java/org/apache/sis/test/Assume.java)
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-utility/src/test/java/org/apache/sis/test/Assume.java?p2=sis/branches/JDK6/core/sis-utility/src/test/java/org/apache/sis/test/Assume.java&p1=sis/branches/JDK7/core/sis-utility/src/test/java/org/apache/sis/test/Assume.java&r1=1724479&r2=1724528&rev=1724528&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-utility/src/test/java/org/apache/sis/test/Assume.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-utility/src/test/java/org/apache/sis/test/Assume.java [UTF-8] Wed Jan 13 23:25:38 2016
@@ -19,8 +19,8 @@ package org.apache.sis.test;
 import org.apache.sis.internal.system.DataDirectory;
 
 // Branch-specific imports
-import java.nio.file.Path;
-import java.nio.file.Files;
+import org.apache.sis.internal.jdk7.Path;
+import org.apache.sis.internal.jdk7.Files;
 
 
 /**

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

Modified: sis/branches/JDK6/core/sis-utility/src/test/java/org/apache/sis/test/TestCase.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-utility/src/test/java/org/apache/sis/test/TestCase.java?rev=1724528&r1=1724527&r2=1724528&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-utility/src/test/java/org/apache/sis/test/TestCase.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-utility/src/test/java/org/apache/sis/test/TestCase.java [UTF-8] Wed Jan 13 23:25: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/branches/JDK6/core/sis-utility/src/test/java/org/apache/sis/test/TestConfiguration.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-utility/src/test/java/org/apache/sis/test/TestConfiguration.java?rev=1724528&r1=1724527&r2=1724528&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-utility/src/test/java/org/apache/sis/test/TestConfiguration.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-utility/src/test/java/org/apache/sis/test/TestConfiguration.java [UTF-8] Wed Jan 13 23:25: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/branches/JDK6/core/sis-utility/src/test/java/org/apache/sis/test/TestRunner.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-utility/src/test/java/org/apache/sis/test/TestRunner.java?rev=1724528&r1=1724527&r2=1724528&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-utility/src/test/java/org/apache/sis/test/TestRunner.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-utility/src/test/java/org/apache/sis/test/TestRunner.java [UTF-8] Wed Jan 13 23:25: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/branches/JDK6/core/sis-utility/src/test/java/org/apache/sis/test/TestSuite.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-utility/src/test/java/org/apache/sis/test/TestSuite.java?rev=1724528&r1=1724527&r2=1724528&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-utility/src/test/java/org/apache/sis/test/TestSuite.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-utility/src/test/java/org/apache/sis/test/TestSuite.java [UTF-8] Wed Jan 13 23:25: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/branches/JDK6/core/sis-utility/src/test/java/org/apache/sis/test/TestUtilities.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-utility/src/test/java/org/apache/sis/test/TestUtilities.java?rev=1724528&r1=1724527&r2=1724528&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-utility/src/test/java/org/apache/sis/test/TestUtilities.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-utility/src/test/java/org/apache/sis/test/TestUtilities.java [UTF-8] Wed Jan 13 23:25: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/branches/JDK6/core/sis-utility/src/test/java/org/apache/sis/test/suite/UtilityTestSuite.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-utility/src/test/java/org/apache/sis/test/suite/UtilityTestSuite.java?rev=1724528&r1=1724527&r2=1724528&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-utility/src/test/java/org/apache/sis/test/suite/UtilityTestSuite.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-utility/src/test/java/org/apache/sis/test/suite/UtilityTestSuite.java [UTF-8] Wed Jan 13 23:25: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/branches/JDK6/core/sis-utility/src/test/java/org/apache/sis/util/CharSequencesTest.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-utility/src/test/java/org/apache/sis/util/CharSequencesTest.java?rev=1724528&r1=1724527&r2=1724528&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-utility/src/test/java/org/apache/sis/util/CharSequencesTest.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-utility/src/test/java/org/apache/sis/util/CharSequencesTest.java [UTF-8] Wed Jan 13 23:25: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-"));
     }
 
     /**

Copied: sis/branches/JDK6/core/sis-utility/src/test/java/org/apache/sis/util/collection/IntegerListTest.java (from r1724479, sis/branches/JDK7/core/sis-utility/src/test/java/org/apache/sis/util/collection/IntegerListTest.java)
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-utility/src/test/java/org/apache/sis/util/collection/IntegerListTest.java?p2=sis/branches/JDK6/core/sis-utility/src/test/java/org/apache/sis/util/collection/IntegerListTest.java&p1=sis/branches/JDK7/core/sis-utility/src/test/java/org/apache/sis/util/collection/IntegerListTest.java&r1=1724479&r2=1724528&rev=1724528&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-utility/src/test/java/org/apache/sis/util/collection/IntegerListTest.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-utility/src/test/java/org/apache/sis/util/collection/IntegerListTest.java [UTF-8] Wed Jan 13 23:25:38 2016
@@ -55,7 +55,7 @@ public final strictfp class IntegerListT
         // Use half the lenght as initial capacity in order to test dynamic resizing.
         list = new IntegerList(length / 2, maximalValue);
         assertTrue(list.maximalValue() >= maximalValue);
-        final List<Integer> copy = new ArrayList<>(length);
+        final List<Integer> copy = new ArrayList<Integer>(length);
         for (int i=0; i<length; i++) {
             assertEquals(i, list.size());
             final Integer value = nextInt(random, maximalValue);
@@ -108,7 +108,7 @@ public final strictfp class IntegerListT
      */
     private void testFill(final int value) {
         assertEquals(400, list.size());
-        final Set<Integer> set = new HashSet<>();
+        final Set<Integer> set = new HashSet<Integer>();
         list.fill(value);
         set.addAll(list);
         assertEquals(Collections.singleton(value), set);

Modified: sis/branches/JDK6/ide-project/NetBeans/build.xml
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/ide-project/NetBeans/build.xml?rev=1724528&r1=1724527&r2=1724528&view=diff
==============================================================================
--- sis/branches/JDK6/ide-project/NetBeans/build.xml (original)
+++ sis/branches/JDK6/ide-project/NetBeans/build.xml Wed Jan 13 23:25:38 2016
@@ -164,6 +164,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}">

Modified: sis/branches/JDK6/ide-project/NetBeans/nbproject/project.properties
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/ide-project/NetBeans/nbproject/project.properties?rev=1724528&r1=1724527&r2=1724528&view=diff
==============================================================================
--- sis/branches/JDK6/ide-project/NetBeans/nbproject/project.properties [ISO-8859-1] (original)
+++ sis/branches/JDK6/ide-project/NetBeans/nbproject/project.properties [ISO-8859-1] Wed Jan 13 23:25:38 2016
@@ -37,7 +37,7 @@ source.encoding      = UTF-8
 javac.source         = 1.6
 javac.target         = 1.6
 platform.active      = default_platform
-run.jvmargs          = -ea -Dorg.apache.sis.test.verbose=true
+run.jvmargs          = -ea -Dorg.apache.sis.test.verbose=true -Dorg.apache.sis.test.extensive=true
 junit.forkmode       = once
 
 #
@@ -147,6 +147,7 @@ debug.test.classpath=\
 #
 javac.compilerargs                       = -Xdoclint:syntax,html,missing/protected,accessibility/protected
 javac.deprecation                        = true
+javac.external.vm                        = false
 javadoc.windowtitle                      = Apache SIS
 javadoc.encoding                         = ${source.encoding}
 javadoc.author                           = true

Modified: sis/branches/JDK6/pom.xml
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/pom.xml?rev=1724528&r1=1724527&r2=1724528&view=diff
==============================================================================
--- sis/branches/JDK6/pom.xml (original)
+++ sis/branches/JDK6/pom.xml Wed Jan 13 23:25:38 2016
@@ -423,6 +423,7 @@ Apache SIS is a free software, Java lang
       <properties>
         <maven.compiler.debug>false</maven.compiler.debug> <!-- For smaller JAR files size. -->
         <maven.compiler.optimize>true</maven.compiler.optimize>
+        <org.apache.sis.test.extensive>true</org.apache.sis.test.extensive>
       </properties>
     </profile>
     <profile>
@@ -502,6 +503,12 @@ Apache SIS is a free software, Java lang
           <includes>
             <include>**/*TestSuite.java</include>
           </includes>
+          <systemProperties>
+            <property>
+              <name>derby.stream.error.file</name>
+              <value>${project.build.directory}/derby.log</value>
+            </property>
+          </systemProperties>
         </configuration>
       </plugin>
 

Modified: sis/branches/JDK6/storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/MetadataReader.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/MetadataReader.java?rev=1724528&r1=1724527&r2=1724528&view=diff
==============================================================================
--- sis/branches/JDK6/storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/MetadataReader.java [UTF-8] (original)
+++ sis/branches/JDK6/storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/MetadataReader.java [UTF-8] Wed Jan 13 23:25:38 2016
@@ -811,7 +811,7 @@ final class MetadataReader {
                  */
                 if (processingLevel != null) {
                     content = new DefaultImageDescription();
-                    ((DefaultImageDescription) content).setProcessingLevelCode(new DefaultIdentifier(processingLevel));
+                    content.setProcessingLevelCode(new DefaultIdentifier(processingLevel));
                 } else {
                     content = new DefaultCoverageDescription();
                 }

Modified: sis/branches/JDK6/storage/sis-shapefile/src/main/java/org/apache/sis/internal/shapefile/AutoChecker.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/storage/sis-shapefile/src/main/java/org/apache/sis/internal/shapefile/AutoChecker.java?rev=1724528&r1=1724527&r2=1724528&view=diff
==============================================================================
--- sis/branches/JDK6/storage/sis-shapefile/src/main/java/org/apache/sis/internal/shapefile/AutoChecker.java [UTF-8] (original)
+++ sis/branches/JDK6/storage/sis-shapefile/src/main/java/org/apache/sis/internal/shapefile/AutoChecker.java [UTF-8] Wed Jan 13 23:25:38 2016
@@ -36,7 +36,7 @@ import org.apache.sis.internal.jdk7.Obje
  */
 public abstract class AutoChecker {
     /** Logger. */
-    private Logger logger = Logging.getLogger(getClass().getSimpleName());
+    private static Logger LOGGER = Logging.getLogger(AutoChecker.class.getSimpleName());
 
     /**
      * Format a resource bundle message.
@@ -97,7 +97,7 @@ public abstract class AutoChecker {
         Objects.requireNonNull(logLevel, "The log level cannot be null.");
 
         String message = format(key, args);
-        logger.log(logLevel, message);
+        LOGGER.log(logLevel, message);
         return(message);
     }
 
@@ -114,11 +114,20 @@ public abstract class AutoChecker {
         Objects.requireNonNull(logLevel, "The log level cannot be null.");
 
         String message = format(classForResourceBundleName, key, args);
-        logger.log(logLevel, message);
+        LOGGER.log(logLevel, message);
         return(message);
     }
 
     /**
+     * Tells if the logger of the base class will log this level of log.
+     * @param level Wished level of logging.
+     * @return true if it will log it.
+     */
+    protected boolean isLoggable(Level level) {
+        return LOGGER.isLoggable(level);
+    }
+    
+    /**
      * Logs (and take the time to format an entry log) only if the logger accepts the message.
      * @param logLevel Log level.
      * @param key Message key.
@@ -127,7 +136,7 @@ public abstract class AutoChecker {
     final protected void log(Level logLevel, String key, Object... args) {
         Objects.requireNonNull(logLevel, "The log level cannot be null.");
 
-        if (logger.isLoggable(logLevel))
+        if (LOGGER.isLoggable(logLevel))
             format(logLevel, key, args);
     }
 
@@ -173,6 +182,6 @@ public abstract class AutoChecker {
      * @return logger.
      */
     public Logger getLogger() {
-        return logger;
+        return LOGGER;
     }
 }

Modified: sis/branches/JDK6/storage/sis-shapefile/src/main/java/org/apache/sis/internal/shapefile/ShapefileByteReader.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/storage/sis-shapefile/src/main/java/org/apache/sis/internal/shapefile/ShapefileByteReader.java?rev=1724528&r1=1724527&r2=1724528&view=diff
==============================================================================
--- sis/branches/JDK6/storage/sis-shapefile/src/main/java/org/apache/sis/internal/shapefile/ShapefileByteReader.java [UTF-8] (original)
+++ sis/branches/JDK6/storage/sis-shapefile/src/main/java/org/apache/sis/internal/shapefile/ShapefileByteReader.java [UTF-8] Wed Jan 13 23:25:38 2016
@@ -16,9 +16,10 @@
  */
 package org.apache.sis.internal.shapefile;
 
-import java.io.File;
-import java.io.IOException;
+import java.io.*;
 import java.nio.ByteOrder;
+import java.nio.MappedByteBuffer;
+import java.nio.channels.FileChannel;
 import java.text.MessageFormat;
 import java.util.*;
 import java.util.logging.Level;
@@ -59,21 +60,37 @@ public class ShapefileByteReader extends
     /** Type of the features contained in this shapefile. */
     private DefaultFeatureType featuresType;
 
+    /** Shapefile index. */
+    private File shapeFileIndex;
+
+    /** Shapefile indexes (loaded from .SHX file, if any found). */
+    private ArrayList<Integer> indexes;
+
+    /** Shapefile records lengths (loaded from .SHX file, if any found). */
+    private ArrayList<Integer> recordsLengths;
+
     /**
      * Construct a shapefile byte reader.
      * @param shapefile Shapefile.
      * @param dbaseFile underlying database file name.
+     * @param shapefileIndex Shapefile index, if any. Null else.
      * @throws InvalidShapefileFormatException if the shapefile format is invalid.
      * @throws SQLInvalidDbaseFileFormatException if the database file format is invalid.
      * @throws SQLShapefileNotFoundException if the shapefile has not been found.
      * @throws SQLDbaseFileNotFoundException if the database file has not been found.
      */
-    public ShapefileByteReader(File shapefile, File dbaseFile) throws InvalidShapefileFormatException, SQLInvalidDbaseFileFormatException, SQLShapefileNotFoundException, SQLDbaseFileNotFoundException {
+    public ShapefileByteReader(File shapefile, File dbaseFile, File shapefileIndex) throws InvalidShapefileFormatException, SQLInvalidDbaseFileFormatException, SQLShapefileNotFoundException, SQLDbaseFileNotFoundException {
         super(shapefile, InvalidShapefileFormatException.class, SQLShapefileNotFoundException.class);
+        this.shapeFileIndex = shapefileIndex;
+
         loadDatabaseFieldDescriptors(dbaseFile);
         loadDescriptor();
 
-        featuresType = getFeatureType(shapefile.getName());
+        if (this.shapeFileIndex != null) {
+            loadShapefileIndexes();
+        }
+
+        this.featuresType = getFeatureType(shapefile.getName());
     }
 
     /**
@@ -81,7 +98,7 @@ public class ShapefileByteReader extends
      * @return Fields descriptors.
      */
     public List<DBase3FieldDescriptor> getFieldsDescriptors() {
-        return databaseFieldsDescriptors;
+        return this.databaseFieldsDescriptors;
     }
 
     /**
@@ -89,7 +106,7 @@ public class ShapefileByteReader extends
      * @return Shapefile descriptor.
      */
     public ShapefileDescriptor getShapefileDescriptor() {
-        return shapefileDescriptor;
+        return this.shapefileDescriptor;
     }
 
     /**
@@ -97,7 +114,7 @@ public class ShapefileByteReader extends
      * @return Features type.
      */
     public DefaultFeatureType getFeaturesType() {
-        return featuresType;
+        return this.featuresType;
     }
 
     /**
@@ -108,13 +125,13 @@ public class ShapefileByteReader extends
     private DefaultFeatureType getFeatureType(final String name) {
         Objects.requireNonNull(name, "The feature name cannot be null.");
 
-        final int n = databaseFieldsDescriptors.size();
+        final int n = this.databaseFieldsDescriptors.size();
         final DefaultAttributeType<?>[] attributes = new DefaultAttributeType<?>[n + 1];
         final Map<String, Object> properties = new HashMap<String, Object>(4);
 
         // Load data field.
         for (int i = 0; i < n; i++) {
-            properties.put(DefaultAttributeType.NAME_KEY, databaseFieldsDescriptors.get(i).getName());
+            properties.put(DefaultAttributeType.NAME_KEY, this.databaseFieldsDescriptors.get(i).getName());
             attributes[i] = new DefaultAttributeType<String>(properties, String.class, 1, 1, null);
         }
 
@@ -131,7 +148,57 @@ public class ShapefileByteReader extends
      * Load shapefile descriptor.
      */
     private void loadDescriptor() {
-        shapefileDescriptor = new ShapefileDescriptor(getByteBuffer());
+        this.shapefileDescriptor = new ShapefileDescriptor(getByteBuffer());
+    }
+
+    /**
+     * Load shapefile indexes.
+     * @return true if shapefile indexes has been read,
+     * false if none where available or a problem occured.
+     */
+    private boolean loadShapefileIndexes() {
+        if (this.shapeFileIndex == null) {
+            return false;
+        }
+
+        try {
+            FileInputStream fis = new FileInputStream(this.shapeFileIndex); FileChannel fc = fis.getChannel();
+            try {
+                int fsize = (int)fc.size();
+                MappedByteBuffer indexesByteBuffer = fc.map(FileChannel.MapMode.READ_ONLY, 0, fsize);
+
+                // Indexes entries follow.
+                this.indexes = new ArrayList<Integer>();
+                this.recordsLengths = new ArrayList<Integer>();
+                indexesByteBuffer.position(100);
+                indexesByteBuffer.order(ByteOrder.BIG_ENDIAN);
+
+                while(indexesByteBuffer.hasRemaining()) {
+                    this.indexes.add(indexesByteBuffer.getInt());        // Data offset : the position of the record in the main shapefile, expressed in words (16 bits).
+                    this.recordsLengths.add(indexesByteBuffer.getInt()); // Length of this shapefile record.
+                }
+
+                log(Level.INFO, "log.index_has_been_read", this.shapeFileIndex.getAbsolutePath(), this.indexes.size(), this.getFile().getAbsolutePath());
+                return true;
+            }
+            catch(IOException e) {
+                log(Level.WARNING, "log.invalid_file_content_for_shapefile_index", this.shapeFileIndex.getAbsolutePath(), e.getMessage());
+                this.shapeFileIndex = null;
+                return false;
+            } finally {
+                fis.close();
+            }
+        }
+        catch(FileNotFoundException e) {
+            log(Level.WARNING, "log.no_shapefile_index_found_at_location", this.shapeFileIndex.getAbsolutePath(), this.getFile().getAbsolutePath());
+            this.shapeFileIndex = null;
+            return false;
+        }
+        catch(IOException e) {
+            log(Level.WARNING, "log.invalid_file_content_for_shapefile_index", this.shapeFileIndex.getAbsolutePath(), e.getMessage());
+            this.shapeFileIndex = null;
+            return false;
+        }
     }
 
     /**
@@ -145,7 +212,7 @@ public class ShapefileByteReader extends
 
         try {
             databaseReader = new MappedByteReader(dbaseFile, null);
-            databaseFieldsDescriptors = databaseReader.getFieldsDescriptors();
+            this.databaseFieldsDescriptors = databaseReader.getFieldsDescriptors();
         }
         finally {
             if (databaseReader != null) {
@@ -159,6 +226,42 @@ public class ShapefileByteReader extends
     }
 
     /**
+     * Direct access to a feature by its record number.
+     * @param recordNumber Record number.
+     * @throws SQLNoDirectAccessAvailableException if this shape file doesn't allow direct acces, because it has no index.
+     * @throws SQLInvalidRecordNumberForDirectAccessException if the record number asked for is invalid (below the start, after the end).
+     */
+    public void setRowNum(int recordNumber) throws SQLNoDirectAccessAvailableException, SQLInvalidRecordNumberForDirectAccessException {
+        // Check that the asked record number is not before the first.
+        if (recordNumber < 1) {
+            String message = format(Level.SEVERE, "excp.wrong_direct_access_before_start", recordNumber, getFile().getAbsolutePath());
+            throw new SQLInvalidRecordNumberForDirectAccessException(recordNumber, message);
+        }
+
+        // Check that the shapefile allows direct access : it won't if it has no index.
+        if (this.shapeFileIndex == null) {
+            String message = format(Level.SEVERE, "excp.no_direct_access", getFile().getAbsolutePath());
+            throw new SQLNoDirectAccessAvailableException(message);
+        }
+
+        int position = this.indexes.get(recordNumber - 1) * 2; // Indexes unit are words (16 bits).
+
+        // Check that the asked record number is not after the last.
+        if (position >= this.getByteBuffer().capacity()) {
+            String message = format(Level.SEVERE, "excp.wrong_direct_access_after_last", recordNumber, getFile().getAbsolutePath());
+            throw new SQLInvalidRecordNumberForDirectAccessException(recordNumber, message);
+        }
+
+        try {
+            getByteBuffer().position(position);
+        }
+        catch(IllegalArgumentException e) {
+            String message = format(Level.SEVERE, "assert.wrong_position", recordNumber, position, getFile().getAbsolutePath(), e.getMessage());
+            throw new RuntimeException(message, e);
+        }
+    }
+
+    /**
      * Complete a feature with shapefile content.
      * @param feature Feature to complete.
      * @throws InvalidShapefileFormatException if a validation problem occurs.
@@ -175,7 +278,7 @@ public class ShapefileByteReader extends
         ShapeTypeEnum type = ShapeTypeEnum.get(iShapeType);
 
         if (type == null)
-            throw new InvalidShapefileFormatException(MessageFormat.format("The shapefile feature type {0} doesn''t match to any known feature type.", featuresType));
+            throw new InvalidShapefileFormatException(MessageFormat.format("The shapefile feature type {0} doesn''t match to any known feature type.", this.featuresType));
 
         switch (type) {
             case Point:
@@ -225,23 +328,23 @@ public class ShapefileByteReader extends
         // Handle multiple polygon parts.
         if (numParts > 1) {
             Logger log = Logging.getLogger(ShapefileByteReader.class.getName());
-            
+
             if (log.isLoggable(Level.FINER)) {
                 String format = "Polygon with multiple linear rings encountered at position {0,number} with {1,number} parts.";
                 String message = MessageFormat.format(format, getByteBuffer().position(), numParts);
                 log.finer(message);
             }
-            
+
             poly = readMultiplePolygonParts(numParts, numPoints);
         }
         else {
             // Polygon with an unique part.
             poly = readUniquePolygonPart(numPoints);
         }
-        
+
         feature.setPropertyValue(GEOMETRY_NAME, poly);
     }
-    
+
     /**
      * Read a polygon that has a unique part.
      * @param numPoints Number of the points of the polygon.
@@ -249,8 +352,8 @@ public class ShapefileByteReader extends
      */
     @Deprecated // As soon as the readMultiplePolygonParts method proofs working well, this readUniquePolygonPart method can be removed and all calls be deferred to readMultiplePolygonParts.
     private Polygon readUniquePolygonPart(int numPoints) {
-        int part = getByteBuffer().getInt();
-        
+        /*int part = */ getByteBuffer().getInt();
+
         Polygon poly = new Polygon();
 
         // create a line from the points
@@ -264,10 +367,10 @@ public class ShapefileByteReader extends
             ypnt = getByteBuffer().getDouble();
             poly.lineTo(xpnt, ypnt);
         }
-        
+
         return poly;
     }
-    
+
     /**
      * Read a polygon that has multiple parts.
      * @param numParts Number of parts of this polygon.
@@ -275,8 +378,8 @@ public class ShapefileByteReader extends
      * @return a multiple part polygon.
      */
     private Polygon readMultiplePolygonParts(int numParts, int numPoints) {
-        /** 
-         * From ESRI Specification : 
+        /**
+         * From ESRI Specification :
          * Parts : 0 5  (meaning : 0 designs the first v1, 5 designs the first v5 on the points list below).
          * Points : v1 v2 v3 v4 v1 v5 v8 v7 v6 v5
          *
@@ -286,10 +389,10 @@ public class ShapefileByteReader extends
          * Byte 36   NumParts    NumParts   Integer   1          Little
          * Byte 40   NumPoints   NumPoints  Integer   1          Little
          * Byte 44   Parts       Parts      Integer   NumParts   Little
-         * Byte X    Points      Points     Point     NumPoints  Little        
+         * Byte X    Points      Points     Point     NumPoints  Little
          */
         int[] partsIndexes = new int[numParts];
-        
+
         // Read all the parts indexes (starting at byte 44).
         for(int index=0; index < numParts; index ++) {
             partsIndexes[index] = getByteBuffer().getInt();
@@ -303,7 +406,7 @@ public class ShapefileByteReader extends
             xPoints[index] = getByteBuffer().getDouble();
             yPoints[index] = getByteBuffer().getDouble();
         }
-        
+
         // Create the polygon from the points.
         Polygon poly = new Polygon();
 
@@ -318,18 +421,18 @@ public class ShapefileByteReader extends
                     break;
                 }
             }
-            
+
             if (newPolygon) {
-                poly.startPath(xPoints[index], yPoints[index]);                
+                poly.startPath(xPoints[index], yPoints[index]);
             }
             else {
-                poly.lineTo(xPoints[index], yPoints[index]);                
+                poly.lineTo(xPoints[index], yPoints[index]);
             }
         }
-        
+
         return poly;
     }
-    
+
     /**
      * Load polyline feature.
      * @param feature Feature to fill.

Modified: sis/branches/JDK6/storage/sis-shapefile/src/main/java/org/apache/sis/internal/shapefile/ShapefileDescriptor.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/storage/sis-shapefile/src/main/java/org/apache/sis/internal/shapefile/ShapefileDescriptor.java?rev=1724528&r1=1724527&r2=1724528&view=diff
==============================================================================
--- sis/branches/JDK6/storage/sis-shapefile/src/main/java/org/apache/sis/internal/shapefile/ShapefileDescriptor.java [UTF-8] (original)
+++ sis/branches/JDK6/storage/sis-shapefile/src/main/java/org/apache/sis/internal/shapefile/ShapefileDescriptor.java [UTF-8] Wed Jan 13 23:25:38 2016
@@ -70,25 +70,25 @@ public class ShapefileDescriptor {
      * @param byteBuffer Source Bytebuffer.
      */
     public ShapefileDescriptor(MappedByteBuffer byteBuffer) {
-        fileCode = byteBuffer.getInt();
+        this.fileCode = byteBuffer.getInt();
         byteBuffer.getInt();
         byteBuffer.getInt();
         byteBuffer.getInt();
         byteBuffer.getInt();
         byteBuffer.getInt();
-        fileLength = byteBuffer.getInt() * 2;
+        this.fileLength = byteBuffer.getInt() * 2;
 
         byteBuffer.order(ByteOrder.LITTLE_ENDIAN);
-        version = byteBuffer.getInt();
-        shapeType = ShapeTypeEnum.get(byteBuffer.getInt());
-        xmin = byteBuffer.getDouble();
-        ymin = byteBuffer.getDouble();
-        xmax = byteBuffer.getDouble();
-        ymax = byteBuffer.getDouble();
-        zmin = byteBuffer.getDouble();
-        zmax = byteBuffer.getDouble();
-        mmin = byteBuffer.getDouble();
-        mmax = byteBuffer.getDouble();
+        this.version = byteBuffer.getInt();
+        this.shapeType = ShapeTypeEnum.get(byteBuffer.getInt());
+        this.xmin = byteBuffer.getDouble();
+        this.ymin = byteBuffer.getDouble();
+        this.xmax = byteBuffer.getDouble();
+        this.ymax = byteBuffer.getDouble();
+        this.zmin = byteBuffer.getDouble();
+        this.zmax = byteBuffer.getDouble();
+        this.mmin = byteBuffer.getDouble();
+        this.mmax = byteBuffer.getDouble();
         byteBuffer.order(ByteOrder.BIG_ENDIAN);
 
         //dbf.byteBuffer.get(); // should be 0d for field terminator
@@ -182,18 +182,18 @@ public class ShapefileDescriptor {
         StringBuilder s = new StringBuilder();
         String lineSeparator = System.getProperty("line.separator", "\n");
 
-        s.append("FileCode: ").append(fileCode).append(lineSeparator);
-        s.append("FileLength: ").append(fileLength).append(lineSeparator);
-        s.append("Version: ").append(version).append(lineSeparator);
-        s.append("ShapeType: ").append(shapeType).append(lineSeparator);
-        s.append("xmin: ").append(xmin).append(lineSeparator);
-        s.append("ymin: ").append(ymin).append(lineSeparator);
-        s.append("xmax: ").append(xmax).append(lineSeparator);
-        s.append("ymax: ").append(ymax).append(lineSeparator);
-        s.append("zmin: ").append(zmin).append(lineSeparator);
-        s.append("zmax: ").append(zmax).append(lineSeparator);
-        s.append("mmin: ").append(mmin).append(lineSeparator);
-        s.append("mmax: ").append(mmax).append(lineSeparator);
+        s.append("FileCode: ").append(this.fileCode).append(lineSeparator);
+        s.append("FileLength: ").append(this.fileLength).append(lineSeparator);
+        s.append("Version: ").append(this.version).append(lineSeparator);
+        s.append("ShapeType: ").append(this.shapeType).append(lineSeparator);
+        s.append("xmin: ").append(this.xmin).append(lineSeparator);
+        s.append("ymin: ").append(this.ymin).append(lineSeparator);
+        s.append("xmax: ").append(this.xmax).append(lineSeparator);
+        s.append("ymax: ").append(this.ymax).append(lineSeparator);
+        s.append("zmin: ").append(this.zmin).append(lineSeparator);
+        s.append("zmax: ").append(this.zmax).append(lineSeparator);
+        s.append("mmin: ").append(this.mmin).append(lineSeparator);
+        s.append("mmax: ").append(this.mmax).append(lineSeparator);
         s.append("------------------------").append(lineSeparator);
 
         return s.toString();




Mime
View raw message