sis-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From desruisse...@apache.org
Subject svn commit: r1626369 - in /sis/branches/JDK6: ./ core/sis-build-helper/src/main/java/org/apache/sis/internal/doclet/ core/sis-metadata/src/main/java/org/apache/sis/metadata/ core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/ core/...
Date Fri, 19 Sep 2014 23:37:15 GMT
Author: desruisseaux
Date: Fri Sep 19 23:37:14 2014
New Revision: 1626369

URL: http://svn.apache.org/r1626369
Log:
Merge from the JDK7 branch.

Added:
    sis/branches/JDK6/src/main/javadoc/warning.png
      - copied unchanged from r1626367, sis/branches/JDK7/src/main/javadoc/warning.png
Modified:
    sis/branches/JDK6/   (props changed)
    sis/branches/JDK6/core/sis-build-helper/src/main/java/org/apache/sis/internal/doclet/Doclet.java
    sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/MetadataStandard.java
    sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/PropertyAccessor.java
    sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/PropertyComparator.java
    sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/SpecialCases.java
    sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/StandardImplementation.java
    sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultObjective.java
    sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultCitation.java
    sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultIndividual.java
    sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibility.java
    sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibleParty.java
    sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultTelephone.java
    sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/LegacyTelephones.java
    sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultBand.java
    sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultFeatureTypeInfo.java
    sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultSampleDimension.java
    sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/DefaultMedium.java
    sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/DefaultSpatialTemporalExtent.java
    sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/DefaultOperationChainMetadata.java
    sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/DefaultOperationMetadata.java
    sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/DefaultRepresentativeFraction.java
    sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/package-info.java
    sis/branches/JDK6/core/sis-metadata/src/test/java/org/apache/sis/metadata/MetadataTestCase.java
    sis/branches/JDK6/core/sis-metadata/src/test/java/org/apache/sis/metadata/PropertyAccessorTest.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/parameter/AbstractParameterDescriptor.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/parameter/DefaultParameterValue.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/parameter/DefaultParameterValueGroup.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/parameter/ParameterBuilder.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/parameter/Parameters.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/test/integration/DefaultMetadataTest.java
    sis/branches/JDK6/core/sis-referencing/src/test/resources/org/apache/sis/test/integration/Metadata.xml
    sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/collection/RangeSet.java
    sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/iso/Types.java
    sis/branches/JDK6/core/sis-utility/src/test/java/org/apache/sis/test/TestRunner.java
    sis/branches/JDK6/pom.xml
    sis/branches/JDK6/src/main/javadoc/stylesheet.css

Propchange: sis/branches/JDK6/
------------------------------------------------------------------------------
  Merged /sis/branches/JDK8:r1625175-1626366
  Merged /sis/branches/JDK7:r1625179-1626367

Modified: sis/branches/JDK6/core/sis-build-helper/src/main/java/org/apache/sis/internal/doclet/Doclet.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-build-helper/src/main/java/org/apache/sis/internal/doclet/Doclet.java?rev=1626369&r1=1626368&r2=1626369&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-build-helper/src/main/java/org/apache/sis/internal/doclet/Doclet.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-build-helper/src/main/java/org/apache/sis/internal/doclet/Doclet.java [UTF-8] Fri Sep 19 23:37:14 2014
@@ -103,7 +103,7 @@ public final class Doclet extends HtmlDo
      * Copies the standard CSS file, then copies the custom CSS file.
      *
      * @param  inputFile        The standard CSS file generated by the standard doclet.
-     * @param  outputDirectory  The custom CSS file to copy.
+     * @param  outputDirectory  The directory where to copy the CSS file.
      * @throws IOException      If an error occurred while reading or writing.
      */
     private static void copyStylesheet(final File inputFile, final File outputDirectory) throws IOException {

Modified: sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/MetadataStandard.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/MetadataStandard.java?rev=1626369&r1=1626368&r2=1626369&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/MetadataStandard.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/MetadataStandard.java [UTF-8] Fri Sep 19 23:37:14 2014
@@ -303,7 +303,14 @@ public class MetadataStandard implements
             if (SpecialCases.isSpecialCase(type)) {
                 accessor = new SpecialCases(citation, type, implementation);
             } else {
-                accessor = new PropertyAccessor(citation, type, implementation);
+                /*
+                 * If "multi-value returns" was allowed in the Java language, the 'onlyUML' boolean would
+                 * be returned by 'findInterface(Class)' method when it falls in the special case for the
+                 * UML annotation on implementation class. But since we do not have multi-values, we have
+                 * to infer it from our knownledge of how 'findInterface(Class)' is implemented.
+                 */
+                final boolean onlyUML = (type == implementation && !type.isInterface());
+                accessor = new PropertyAccessor(citation, type, implementation, onlyUML);
             }
             accessors.put(implementation, accessor);
             return accessor;
@@ -325,9 +332,9 @@ public class MetadataStandard implements
                 if (accessors.containsKey(type)) {
                     return true;
                 }
-                final Class<?> standard = findInterface(type);
-                if (standard != null) {
-                    accessors.put(type, standard);
+                final Class<?> standardType = findInterface(type);
+                if (standardType != null) {
+                    accessors.put(type, standardType);
                     return true;
                 }
             }
@@ -336,6 +343,18 @@ public class MetadataStandard implements
     }
 
     /**
+     * Returns {@code true} if the given implementation class, normally rejected by {@link #findInterface(Class)},
+     * should be accepted as a pseudo-interface. We use this undocumented feature when Apache SIS experiments a new
+     * API which is not yet published in GeoAPI. This happen for example when upgrading Apache SIS public API from
+     * the ISO 19115:2003 standard to the ISO 19115:2014 version, but GeoAPI interfaces are still the old version.
+     * In such case, API that would normally be present in GeoAPI interfaces are temporarily available only in
+     * Apache SIS implementation classes.
+     */
+    boolean isPendingAPI(final Class<?> type) {
+        return false;
+    }
+
+    /**
      * Returns the metadata interface implemented by the specified implementation.
      * Only one metadata interface can be implemented. If the given type is already
      * an interface from the standard, then it is returned directly.
@@ -343,7 +362,7 @@ public class MetadataStandard implements
      * @param  type The standard interface or the implementation class.
      * @return The single interface, or {@code null} if none where found.
      */
-    private Class<?> findInterface(Class<?> type) {
+    private Class<?> findInterface(final Class<?> type) {
         if (type != null) {
             if (type.isInterface()) {
                 if (type.getName().startsWith(interfacePackage)) {
@@ -355,10 +374,9 @@ public class MetadataStandard implements
                  * including the ones declared in the super-class.
                  */
                 final Set<Class<?>> interfaces = new LinkedHashSet<Class<?>>();
-                do {
-                    getInterfaces(type, interfaces);
-                    type = type.getSuperclass();
-                } while (type != null);
+                for (Class<?> t=type; t!=null; t=t.getSuperclass()) {
+                    getInterfaces(t, interfaces);
+                }
                 /*
                  * If we found more than one interface, removes the
                  * ones that are sub-interfaces of the other.
@@ -380,6 +398,17 @@ public class MetadataStandard implements
                     }
                     // Found more than one interface; we don't know which one to pick.
                     // Returns 'null' for now; the caller will thrown an exception.
+                } else if (isPendingAPI(type)) {
+                    /*
+                     * Found no interface. According to our method contract we should return null.
+                     * However we make an exception if the implementation class has a UML annotation.
+                     * The reason is that when upgrading  API  from ISO 19115:2003 to ISO 19115:2014,
+                     * implementations are provided in Apache SIS before the corresponding interfaces
+                     * are published on GeoAPI. The reason why GeoAPI is slower to upgrade is that we
+                     * have to go through a voting process inside the Open Geospatial Consortium (OGC).
+                     * So we use those implementation classes as a temporary substitute for the interfaces.
+                     */
+                    return type;
                 }
             }
         }

Modified: sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/PropertyAccessor.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/PropertyAccessor.java?rev=1626369&r1=1626368&r2=1626369&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/PropertyAccessor.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/PropertyAccessor.java [UTF-8] Fri Sep 19 23:37:14 2014
@@ -255,13 +255,14 @@ class PropertyAccessor {
      * @param  type The interface implemented by the metadata, which must be
      *         the value returned by {@link #getStandardType(Class, String)}.
      * @param  implementation The class of metadata implementations, or {@code type} if none.
+     * @param  onlyUML {@code true} for taking only the getter methods having a {@link UML} annotation.
      */
-    PropertyAccessor(final Citation standard, final Class<?> type, final Class<?> implementation) {
+    PropertyAccessor(final Citation standard, final Class<?> type, final Class<?> implementation, final boolean onlyUML) {
         assert type.isAssignableFrom(implementation) : implementation;
         this.standard       = standard;
         this.type           = type;
         this.implementation = implementation;
-        this.getters        = getGetters(type, implementation);
+        this.getters        = getGetters(type, implementation, onlyUML);
         int allCount = getters.length;
         int standardCount = allCount;
         if (allCount != 0 && getters[allCount-1] == EXTRA_GETTER) {
@@ -417,9 +418,10 @@ class PropertyAccessor {
      *
      * @param  type The metadata interface.
      * @param  implementation The class of metadata implementations.
+     * @param  onlyUML {@code true} for taking only the getter methods having a {@link UML} annotation.
      * @return The getters declared in the given interface (never {@code null}).
      */
-    private static Method[] getGetters(final Class<?> type, final Class<?> implementation) {
+    private static Method[] getGetters(final Class<?> type, final Class<?> implementation, final boolean onlyUML) {
         synchronized (SHARED_GETTERS) {
             Method[] getters = SHARED_GETTERS.get(type);
             if (getters == null) {
@@ -430,7 +432,7 @@ class PropertyAccessor {
                 boolean hasExtraGetter = false;
                 int count = 0;
                 for (final Method candidate : getters) {
-                    if (Classes.isPossibleGetter(candidate)) {
+                    if (Classes.isPossibleGetter(candidate) && (!onlyUML || candidate.isAnnotationPresent(UML.class))) {
                         final String name = candidate.getName();
                         if (name.startsWith(SET)) { // Paranoiac check.
                             continue;

Modified: sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/PropertyComparator.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/PropertyComparator.java?rev=1626369&r1=1626368&r2=1626369&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/PropertyComparator.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/PropertyComparator.java [UTF-8] Fri Sep 19 23:37:14 2014
@@ -162,13 +162,31 @@ final class PropertyComparator implement
      * If positive, the index returned by this method correspond to a sorting in descending order.
      */
     private int indexOf(final Method method) {
+        /*
+         * Check the cached value computed by previous call to 'indexOf(…)'.
+         * Example: "getExtents"
+         */
         Integer index = order.get(method);
         if (index == null) {
+            /*
+             * Check the value computed from @XmlType.propOrder() value.
+             * Inferred from the method name, so name is often plural.
+             * Example: "extents"
+             */
             String name = method.getName();
             name = toPropertyName(name, prefix(name).length());
             index = order.get(name);
             if (index == null) {
-                index = -1;
+                /*
+                 * Do not happen, except when we have private methods or deprecated public methods
+                 * used as bridge between legacy and more recent standards (e.g. ISO 19115:2003 to
+                 * ISO 19115:2014), especially when cardinality changed between the two standards.
+                 * Example: "extent"
+                 */
+                final UML uml = method.getAnnotation(UML.class);
+                if (uml == null || (index = order.get(uml.identifier())) == null) {
+                    index = -1;
+                }
             }
             order.put(method, index);
         }

Modified: sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/SpecialCases.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/SpecialCases.java?rev=1626369&r1=1626368&r2=1626369&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/SpecialCases.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/SpecialCases.java [UTF-8] Fri Sep 19 23:37:14 2014
@@ -49,7 +49,7 @@ final class SpecialCases extends Propert
      * @param  implementation The class of metadata implementations, or {@code type} if none.
      */
     SpecialCases(final Citation standard, final Class<?> type, final Class<?> implementation) {
-        super(standard, type, implementation);
+        super(standard, type, implementation, false);
         assert isSpecialCase(type) : type;
         westBoundLongitude = indexOf("westBoundLongitude", true);
         eastBoundLongitude = indexOf("eastBoundLongitude", true);

Modified: sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/StandardImplementation.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/StandardImplementation.java?rev=1626369&r1=1626368&r2=1626369&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/StandardImplementation.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/StandardImplementation.java [UTF-8] Fri Sep 19 23:37:14 2014
@@ -18,6 +18,7 @@ package org.apache.sis.metadata;
 
 import java.util.Map;
 import java.util.IdentityHashMap;
+import org.opengis.annotation.UML;
 import org.opengis.annotation.Classifier;
 import org.opengis.annotation.Stereotype;
 import org.apache.sis.util.CharSequences;
@@ -95,6 +96,16 @@ final class StandardImplementation exten
     }
 
     /**
+     * Accepts Apache SIS implementation classes as "pseudo-interfaces" if they are annotated with {@link UML}.
+     * We use this feature for example in the transition from ISO 19115:2003 to ISO 19115:2014, when new API is
+     * defined in Apache SIS but not yet available in GeoAPI interfaces.
+     */
+    @Override
+    boolean isPendingAPI(final Class<?> type) {
+        return type.getName().startsWith(implementationPackage) && type.isAnnotationPresent(UML.class);
+    }
+
+    /**
      * Returns the implementation class for the given interface, or {@code null} if none.
      * This class uses heuristic rules based on naming conventions.
      *

Modified: sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultObjective.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultObjective.java?rev=1626369&r1=1626368&r2=1626369&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultObjective.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultObjective.java [UTF-8] Fri Sep 19 23:37:14 2014
@@ -268,7 +268,7 @@ public class DefaultObjective extends IS
     }
 
     /**
-     * Set the extent information including the bounding box, bounding polygon, vertical and
+     * Sets the extent information including the bounding box, bounding polygon, vertical and
      * temporal extent of the objective.
      *
      * @param newValues The new extents values.

Modified: sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultCitation.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultCitation.java?rev=1626369&r1=1626368&r2=1626369&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultCitation.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultCitation.java [UTF-8] Fri Sep 19 23:37:14 2014
@@ -139,7 +139,7 @@ public class DefaultCitation extends ISO
 
     /**
      * Roles, Name, contact, and position information for an individual or organization that is responsible
-     * for the resource. Returns an empty collection if there is none.
+     * for the resource.
      */
     private Collection<Responsibility> citedResponsibleParties;
 

Modified: sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultIndividual.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultIndividual.java?rev=1626369&r1=1626368&r2=1626369&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultIndividual.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultIndividual.java [UTF-8] Fri Sep 19 23:37:14 2014
@@ -132,7 +132,7 @@ public class DefaultIndividual extends A
     }
 
     /**
-     * Set a new position of the individual in an organization.
+     * Sets a new position of the individual in an organization.
      *
      * @param newValue The new position of the individual in an organization.
      */

Modified: sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibility.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibility.java?rev=1626369&r1=1626368&r2=1626369&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibility.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibility.java [UTF-8] Fri Sep 19 23:37:14 2014
@@ -101,6 +101,7 @@ public class DefaultResponsibility exten
      * @see #castOrCopy(Responsibility)
      */
     public DefaultResponsibility(final Responsibility object) {
+        super(object);
         if (object != null) {
             this.role    = object.getRole();
             this.extents = copyCollection(object.getExtents(), Extent.class);

Modified: sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibleParty.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibleParty.java?rev=1626369&r1=1626368&r2=1626369&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibleParty.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibleParty.java [UTF-8] Fri Sep 19 23:37:14 2014
@@ -16,8 +16,8 @@
  */
 package org.apache.sis.metadata.iso.citation;
 
-import java.util.Collection;
 import java.util.Iterator;
+import java.util.Collection;
 import java.util.Collections;
 import javax.xml.bind.annotation.XmlType;
 import javax.xml.bind.annotation.XmlElement;

Modified: sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultTelephone.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultTelephone.java?rev=1626369&r1=1626368&r2=1626369&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultTelephone.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultTelephone.java [UTF-8] Fri Sep 19 23:37:14 2014
@@ -183,7 +183,7 @@ public class DefaultTelephone extends IS
     }
 
     /**
-     * Set the type of telephone number.
+     * Sets the type of telephone number.
      *
      * @param newValue The new type of telephone number.
      *

Modified: sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/LegacyTelephones.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/LegacyTelephones.java?rev=1626369&r1=1626368&r2=1626369&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/LegacyTelephones.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/LegacyTelephones.java [UTF-8] Fri Sep 19 23:37:14 2014
@@ -53,10 +53,7 @@ final class LegacyTelephones extends Leg
      */
     @Override
     protected Telephone wrap(final String value) {
-        final DefaultTelephone telephone = new DefaultTelephone();
-        telephone.setNumber(value);
-        telephone.setNumberType(type);
-        return telephone;
+        return new DefaultTelephone(value, type);
     }
 
     /**

Modified: sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultBand.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultBand.java?rev=1626369&r1=1626368&r2=1626369&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultBand.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultBand.java [UTF-8] Fri Sep 19 23:37:14 2014
@@ -247,7 +247,7 @@ public class DefaultBand extends Default
     }
 
     /**
-     * Set a new units in which sensor wavelengths are expressed.
+     * Sets a new units in which sensor wavelengths are expressed.
      *
      * @param newValue the new unit.
      *

Modified: sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultFeatureTypeInfo.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultFeatureTypeInfo.java?rev=1626369&r1=1626368&r2=1626369&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultFeatureTypeInfo.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultFeatureTypeInfo.java [UTF-8] Fri Sep 19 23:37:14 2014
@@ -158,7 +158,7 @@ public class DefaultFeatureTypeInfo exte
     }
 
     /**
-     * Set a new number of occurrence of feature instances for this feature types.
+     * Sets a new number of occurrence of feature instances for this feature types.
      *
      * @param newValue the new number of occurrence.
      * @throws IllegalArgumentException if the given value is negative.

Modified: sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultSampleDimension.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultSampleDimension.java?rev=1626369&r1=1626368&r2=1626369&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultSampleDimension.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultSampleDimension.java [UTF-8] Fri Sep 19 23:37:14 2014
@@ -113,7 +113,7 @@ public class DefaultSampleDimension exte
     private RecordType otherPropertyType;
 
     /**
-     * Instance of other/attributeType that defines attributs not explicitly
+     * Instance of other/attributeType that defines attributes not explicitly
      * included in {@link CoverageContentType}.
      */
     private Record otherProperty;
@@ -220,7 +220,7 @@ public class DefaultSampleDimension exte
     }
 
     /**
-     * Set the maximum value of data values in each dimension included in the resource.
+     * Sets the maximum value of data values in each dimension included in the resource.
      *
      * @param newValue The new new maximum value.
      */
@@ -230,9 +230,9 @@ public class DefaultSampleDimension exte
     }
 
     /**
-     * Returns the units of data in each dimension included in the resource.
+     * Returns the units of data in the dimension.
      *
-     * @return The units of data in each dimension included in the resource, or {@code null} if unspecified.
+     * @return The units of data in the dimension, or {@code null} if unspecified.
      */
     @Override
     @XmlElement(name = "units")
@@ -241,9 +241,9 @@ public class DefaultSampleDimension exte
     }
 
     /**
-     * Sets the units of data in each dimension included in the resource.
+     * Sets the units of data in the dimension.
      *
-     * @param newValue The new units of data in each dimension included in the resource.
+     * @param newValue The new units of data in the dimension.
      */
     public void setUnits(final Unit<?> newValue) {
         checkWritePermission();
@@ -262,7 +262,7 @@ public class DefaultSampleDimension exte
     }
 
     /**
-     * Set the scale factor which has been applied to the cell value.
+     * Sets the scale factor which has been applied to the cell value.
      *
      * @param newValue The new scale factor which has been applied to the cell value.
      */
@@ -325,7 +325,7 @@ public class DefaultSampleDimension exte
     }
 
     /**
-     * Set the number of values used in a thematic classification resource.
+     * Sets the number of values used in a thematic classification resource.
      *
      * @param newValues The new number of values used in a thematic classification resource.
      */
@@ -367,7 +367,7 @@ public class DefaultSampleDimension exte
     }
 
     /**
-     * Set a new type of other attribute description.
+     * Sets a new type of other attribute description.
      *
      * @param newValue The new type of other attribute description.
      */
@@ -389,7 +389,7 @@ public class DefaultSampleDimension exte
     }
 
     /**
-     * Set a new instance of other/attributeType that defines attributs not explicitly
+     * Sets a new instance of other/attributeType that defines attributes not explicitly
      * included in {@link CoverageContentType}.
      *
      * @param newValue The new instance of other/attributeType.

Modified: sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/DefaultMedium.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/DefaultMedium.java?rev=1626369&r1=1626368&r2=1626369&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/DefaultMedium.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/DefaultMedium.java [UTF-8] Fri Sep 19 23:37:14 2014
@@ -30,6 +30,7 @@ import org.opengis.metadata.distribution
 import org.opengis.metadata.distribution.MediumFormat;
 import org.apache.sis.measure.ValueRange;
 import org.apache.sis.metadata.iso.ISOMetadata;
+import org.apache.sis.internal.jaxb.NonMarshalledAuthority;
 import org.apache.sis.internal.metadata.LegacyPropertyAdapter;
 
 
@@ -99,11 +100,6 @@ public class DefaultMedium extends ISOMe
     private InternationalString mediumNote;
 
     /**
-     * Unique identifier for an instance of the medium.
-     */
-    private Identifier identifier;
-
-    /**
      * Constructs an initially empty medium.
      */
     public DefaultMedium() {
@@ -127,7 +123,7 @@ public class DefaultMedium extends ISOMe
             volumes       = object.getVolumes();
             mediumFormats = copyCollection(object.getMediumFormats(), MediumFormat.class);
             mediumNote    = object.getMediumNote();
-            identifier    = object.getIdentifier();
+            identifiers   = singleton(object.getIdentifier(), Identifier.class);
         }
     }
 
@@ -341,7 +337,7 @@ public class DefaultMedium extends ISOMe
     @Override
 /// @XmlElement(name = "identifier")
     public Identifier getIdentifier() {
-        return identifier;
+        return NonMarshalledAuthority.getMarshallable(identifiers);
     }
 
     /**
@@ -353,6 +349,7 @@ public class DefaultMedium extends ISOMe
      */
     public void setIdentifier(final Identifier newValue) {
         checkWritePermission();
-        identifier = newValue;
+        identifiers = nonNullCollection(identifiers, Identifier.class);
+        NonMarshalledAuthority.setMarshallable(identifiers, newValue);
     }
 }

Modified: sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/DefaultSpatialTemporalExtent.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/DefaultSpatialTemporalExtent.java?rev=1626369&r1=1626368&r2=1626369&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/DefaultSpatialTemporalExtent.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/DefaultSpatialTemporalExtent.java [UTF-8] Fri Sep 19 23:37:14 2014
@@ -169,7 +169,7 @@ public class DefaultSpatialTemporalExten
     }
 
     /**
-     * Set the vertical extent component.
+     * Sets the vertical extent component.
      *
      * @param newValue The new vertical extent component.
      *

Modified: sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/DefaultOperationChainMetadata.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/DefaultOperationChainMetadata.java?rev=1626369&r1=1626368&r2=1626369&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/DefaultOperationChainMetadata.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/DefaultOperationChainMetadata.java [UTF-8] Fri Sep 19 23:37:14 2014
@@ -143,7 +143,7 @@ public class DefaultOperationChainMetada
     }
 
     /**
-     * Set the name used by the service for this chain.
+     * Sets the name used by the service for this chain.
      *
      * @param newValue The new name used by the service for this chain.
      */

Modified: sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/DefaultOperationMetadata.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/DefaultOperationMetadata.java?rev=1626369&r1=1626368&r2=1626369&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/DefaultOperationMetadata.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/DefaultOperationMetadata.java [UTF-8] Fri Sep 19 23:37:14 2014
@@ -181,7 +181,7 @@ public class DefaultOperationMetadata ex
     }
 
     /**
-     * Set the unique identifier for this interface.
+     * Sets the unique identifier for this interface.
      *
      * @param newValue The new unique identifier for this interface.
      */
@@ -307,7 +307,7 @@ public class DefaultOperationMetadata ex
     }
 
     /**
-     * Set the list of operation that must be completed before current operation is invoked.
+     * Sets the list of operation that must be completed before current operation is invoked.
      *
      * @param newValues The new list of operation.
      */

Modified: sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/DefaultRepresentativeFraction.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/DefaultRepresentativeFraction.java?rev=1626369&r1=1626368&r2=1626369&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/DefaultRepresentativeFraction.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/DefaultRepresentativeFraction.java [UTF-8] Fri Sep 19 23:37:14 2014
@@ -250,6 +250,17 @@ public class DefaultRepresentativeFracti
         return (int) denominator;
     }
 
+    /**
+     * Returns a string representation of this scale, or {@code NaN} if undefined.
+     * If defined, the string representation uses the colon as in "1:20000".
+     *
+     * @return A string representation of this scale.
+     */
+    @Override
+    public String toString() {
+        return (denominator != 0) ? "1:" + denominator : "NaN";
+    }
+
 
 
 

Modified: sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/package-info.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/package-info.java?rev=1626369&r1=1626368&r2=1626369&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/package-info.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/package-info.java [UTF-8] Fri Sep 19 23:37:14 2014
@@ -30,33 +30,46 @@
  *   <th class="sep">Aggregation hierarchy</th>
  * </tr><tr><td style="width: 50%; white-space: nowrap">
  * {@linkplain org.apache.sis.metadata.iso.ISOMetadata ISO-19115 metadata}<br>
- * {@code  ├─}     {@linkplain org.apache.sis.metadata.iso.identification.AbstractIdentification       Identification} «abstract»<br>
- * {@code  │   ├─} {@linkplain org.apache.sis.metadata.iso.identification.DefaultDataIdentification    Data identification}<br>
- * {@code  │   └─} {@linkplain org.apache.sis.metadata.iso.identification.DefaultServiceIdentification Service identification}<br>
- * {@code  ├─}     {@linkplain org.apache.sis.metadata.iso.identification.DefaultResolution            Resolution}<br>
- * {@code  ├─}     {@linkplain org.apache.sis.metadata.iso.identification.DefaultBrowseGraphic         Browse graphic}<br>
- * {@code  ├─}     {@linkplain org.apache.sis.metadata.iso.identification.DefaultKeywords              Keywords}<br>
- * {@code  ├─}     {@linkplain org.apache.sis.metadata.iso.identification.DefaultUsage                 Usage}<br>
- * {@code  └─}     {@linkplain org.apache.sis.metadata.iso.identification.DefaultAggregateInformation  Aggregate information}<br>
+ * {@code  ├─}     {@linkplain org.apache.sis.metadata.iso.identification.AbstractIdentification        Identification} «abstract»<br>
+ * {@code  │   ├─} {@linkplain org.apache.sis.metadata.iso.identification.DefaultDataIdentification     Data identification}<br>
+ * {@code  │   └─} {@linkplain org.apache.sis.metadata.iso.identification.DefaultServiceIdentification  Service identification}<br>
+ * {@code  ├─}     {@linkplain org.apache.sis.metadata.iso.identification.DefaultResolution             Resolution}<br>
+ * {@code  ├─}     {@linkplain org.apache.sis.metadata.iso.identification.DefaultBrowseGraphic          Browse graphic}<br>
+ * {@code  ├─}     {@linkplain org.apache.sis.metadata.iso.identification.DefaultKeywords               Keywords}<br>
+ * {@code  ├─}     {@linkplain org.apache.sis.metadata.iso.identification.DefaultUsage                  Usage}<br>
+ * {@code  ├─}     {@linkplain org.apache.sis.metadata.iso.identification.DefaultAggregateInformation   Aggregate information}<br>
+ * {@code  ├─}     {@linkplain org.apache.sis.metadata.iso.identification.DefaultCoupledResource        Coupled resource}<br>
+ * {@code  ├─}     {@linkplain org.apache.sis.metadata.iso.identification.DefaultOperationMetadata      Operation metadata}<br>
+ * {@code  └─}     {@linkplain org.apache.sis.metadata.iso.identification.DefaultOperationChainMetadata Operation chain metadata}<br>
  * {@linkplain org.opengis.util.CodeList Code list}<br>
  * {@code  ├─} {@linkplain org.opengis.metadata.identification.Progress        Progress}<br>
  * {@code  ├─} {@linkplain org.opengis.metadata.identification.KeywordType     Keyword type}<br>
  * {@code  ├─} {@linkplain org.opengis.metadata.identification.AssociationType Association type}<br>
  * {@code  ├─} {@linkplain org.opengis.metadata.identification.InitiativeType  Initiative type}<br>
- * {@code  └─} {@linkplain org.opengis.metadata.identification.TopicCategory   Topic category}<br>
+ * {@code  ├─} {@linkplain org.opengis.metadata.identification.TopicCategory   Topic category}<br>
+ * {@code  ├─} {@linkplain org.opengis.metadata.identification.CouplingType    Coupling type}<br>
+ * {@code  └─} {@linkplain org.opengis.metadata.identification.DistributedComputingPlatform Distributed computing platform}<br>
  * </td><td class="sep" style="width: 50%; white-space: nowrap">
- *                 {@linkplain org.apache.sis.metadata.iso.identification.AbstractIdentification       Identification} «abstract»<br>
- * {@code  ├─}     {@linkplain org.apache.sis.metadata.iso.identification.DefaultResolution            Resolution}<br>
- * {@code  ├─}     {@linkplain org.opengis.metadata.identification.TopicCategory                       Topic category} «code list»<br>
- * {@code  ├─}     {@linkplain org.opengis.metadata.identification.Progress                            Progress} «code list»<br>
- * {@code  ├─}     {@linkplain org.apache.sis.metadata.iso.identification.DefaultBrowseGraphic         Browse graphic}<br>
- * {@code  ├─}     {@linkplain org.apache.sis.metadata.iso.identification.DefaultKeywords              Keywords}<br>
- * {@code  │   └─} {@linkplain org.opengis.metadata.identification.KeywordType                         Keyword type} «code list»<br>
- * {@code  ├─}     {@linkplain org.apache.sis.metadata.iso.identification.DefaultUsage                 Usage}<br>
- * {@code  └─}     {@linkplain org.apache.sis.metadata.iso.identification.DefaultAssociatedResource    Associated resource}<br>
- * {@code      ├─} {@linkplain org.opengis.metadata.identification.AssociationType                     Association type} «code list»<br>
- * {@code      └─} {@linkplain org.opengis.metadata.identification.InitiativeType                      Initiative type} «code list»<br>
- *                 {@linkplain org.apache.sis.metadata.iso.identification.DefaultDataIdentification    Data identification}<br>
+ *                 {@linkplain org.apache.sis.metadata.iso.identification.AbstractIdentification        Identification} «abstract»<br>
+ * {@code  ├─}     {@linkplain org.apache.sis.metadata.iso.identification.DefaultResolution             Resolution}<br>
+ * {@code  ├─}     {@linkplain org.opengis.metadata.identification.TopicCategory                        Topic category} «code list»<br>
+ * {@code  ├─}     {@linkplain org.opengis.metadata.identification.Progress                             Progress} «code list»<br>
+ * {@code  ├─}     {@linkplain org.apache.sis.metadata.iso.identification.DefaultBrowseGraphic          Browse graphic}<br>
+ * {@code  ├─}     {@linkplain org.apache.sis.metadata.iso.identification.DefaultKeywords               Keywords}<br>
+ * {@code  │   └─} {@linkplain org.opengis.metadata.identification.KeywordType                          Keyword type} «code list»<br>
+ * {@code  ├─}     {@linkplain org.apache.sis.metadata.iso.identification.DefaultUsage                  Usage}<br>
+ * {@code  └─}     {@linkplain org.apache.sis.metadata.iso.identification.DefaultAssociatedResource     Associated resource}<br>
+ * {@code      ├─} {@linkplain org.opengis.metadata.identification.AssociationType                      Association type} «code list»<br>
+ * {@code      └─} {@linkplain org.opengis.metadata.identification.InitiativeType                       Initiative type} «code list»<br>
+ *                 {@linkplain org.apache.sis.metadata.iso.identification.DefaultDataIdentification     Data identification}<br>
+ *                 {@linkplain org.apache.sis.metadata.iso.identification.DefaultServiceIdentification  Service identification}<br>
+ * {@code  ├─}     {@linkplain org.opengis.metadata.identification.CouplingType                         Coupling type} «code list»<br>
+ * {@code  ├─}     {@linkplain org.apache.sis.metadata.iso.identification.DefaultCoupledResource        Coupled resource}<br>
+ * {@code  ├─}     {@linkplain org.apache.sis.metadata.iso.identification.DefaultOperationMetadata      Operation metadata}<br>
+ * {@code  │   ├─} {@linkplain org.opengis.metadata.identification.DistributedComputingPlatform         Distributed computing platform} «code list»<br>
+ * {@code  │   └─} {@linkplain org.apache.sis.parameter.DefaultParameterDescriptor                      Parameter descriptor}<br>
+ * {@code  │       └─} {@linkplain org.opengis.parameter.ParameterDirection                             Parameter direction} «enum»<br>
+ * {@code  └─}     {@linkplain org.apache.sis.metadata.iso.identification.DefaultOperationChainMetadata Operation chain metadata}<br>
  * </td></tr></table>
  *
  * <p>In addition to the standard properties, SIS provides the following methods:</p>

Modified: sis/branches/JDK6/core/sis-metadata/src/test/java/org/apache/sis/metadata/MetadataTestCase.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-metadata/src/test/java/org/apache/sis/metadata/MetadataTestCase.java?rev=1626369&r1=1626368&r2=1626369&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-metadata/src/test/java/org/apache/sis/metadata/MetadataTestCase.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-metadata/src/test/java/org/apache/sis/metadata/MetadataTestCase.java [UTF-8] Fri Sep 19 23:37:14 2014
@@ -185,7 +185,7 @@ public abstract strictfp class MetadataT
                 final Class<?> impl = getImplementation(type);
                 if (impl != null) {
                     assertTrue(type.isAssignableFrom(impl));
-                    testPropertyValues(new PropertyAccessor(standard.getCitation(), type, impl));
+                    testPropertyValues(new PropertyAccessor(standard.getCitation(), type, impl, false));
                 }
             }
         }

Modified: sis/branches/JDK6/core/sis-metadata/src/test/java/org/apache/sis/metadata/PropertyAccessorTest.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-metadata/src/test/java/org/apache/sis/metadata/PropertyAccessorTest.java?rev=1626369&r1=1626368&r2=1626369&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-metadata/src/test/java/org/apache/sis/metadata/PropertyAccessorTest.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-metadata/src/test/java/org/apache/sis/metadata/PropertyAccessorTest.java [UTF-8] Fri Sep 19 23:37:14 2014
@@ -92,7 +92,7 @@ public final strictfp class PropertyAcce
      * Creates a new property accessor for the {@link DefaultCitation} class.
      */
     private static PropertyAccessor createPropertyAccessor() {
-        return new PropertyAccessor(HardCodedCitations.ISO_19115, Citation.class, DefaultCitation.class);
+        return new PropertyAccessor(HardCodedCitations.ISO_19115, Citation.class, DefaultCitation.class, false);
     }
 
     /**
@@ -125,11 +125,11 @@ public final strictfp class PropertyAcce
             final String   propertyName  = (String)   expected[i++];
             final String   umlIdentifier = (String)   expected[i++];
             final String   sentence      = (String)   expected[i++];
-            assertEquals("declaringType", declaringType, accessor.type(index, TypeValuePolicy.DECLARING_INTERFACE));
             assertEquals("methodName",    methodName,    accessor.name(index, KeyNamePolicy.METHOD_NAME));
             assertEquals("propertyName",  propertyName,  accessor.name(index, KeyNamePolicy.JAVABEANS_PROPERTY));
             assertEquals("umlIdentifier", umlIdentifier, accessor.name(index, KeyNamePolicy.UML_IDENTIFIER));
             assertEquals("sentence",      sentence,      accessor.name(index, KeyNamePolicy.SENTENCE));
+            assertEquals("declaringType", declaringType, accessor.type(index, TypeValuePolicy.DECLARING_INTERFACE));
             assertEquals(methodName,      index,         accessor.indexOf(methodName,    false));
             assertEquals(propertyName,    index,         accessor.indexOf(propertyName,  false));
             assertEquals(umlIdentifier,   index,         accessor.indexOf(umlIdentifier, false));
@@ -200,7 +200,7 @@ public final strictfp class PropertyAcce
     @Test
     @DependsOnMethod("testConstructor")
     public void testConstructorWithInheritance() {
-        assertMappingEquals(new PropertyAccessor(HardCodedCitations.ISO_19115, DataIdentification.class, DefaultDataIdentification.class),
+        assertMappingEquals(new PropertyAccessor(HardCodedCitations.ISO_19115, DataIdentification.class, DefaultDataIdentification.class, false),
         //……Declaring type………………………Method………………………………………………………………………JavaBeans………………………………………………………UML identifier………………………………………Sentence……………………………………………………………Type………………………………………………………………
             Identification.class, "getCitation",                   "citation",                   "citation",                  "Citation",                     Citation.class,
             Identification.class, "getAbstract",                   "abstract",                   "abstract",                  "Abstract",                     InternationalString.class,
@@ -218,10 +218,10 @@ public final strictfp class PropertyAcce
             Identification.class, "getSpatialResolutions",         "spatialResolutions",         "spatialResolution",         "Spatial resolutions",          Resolution[].class,
         DataIdentification.class, "getLanguages",                  "languages",                  "language",                  "Languages",                    Locale[].class,
         DataIdentification.class, "getCharacterSets",              "characterSets",              "characterSet",              "Character sets",               Charset[].class,
+            Identification.class, "getTopicCategories",            "topicCategories",            "topicCategory",             "Topic categories",             TopicCategory[].class,
         DataIdentification.class, "getEnvironmentDescription",     "environmentDescription",     "environmentDescription",    "Environment description",      InternationalString.class,
-        DataIdentification.class, "getSupplementalInformation",    "supplementalInformation",    "supplementalInformation",   "Supplemental information",     InternationalString.class,
             Identification.class, "getExtents",                    "extents",                    "extent",                    "Extents",                      Extent[].class,
-            Identification.class, "getTopicCategories",            "topicCategories",            "topicCategory",             "Topic categories",             TopicCategory[].class,
+        DataIdentification.class, "getSupplementalInformation",    "supplementalInformation",    "supplementalInformation",   "Supplemental information",     InternationalString.class,
             Identification.class, "getAdditionalDocumentations",   "additionalDocumentations",   "additionalDocumentation",   "Additional documentations",    Citation[].class,
             Identification.class, "getAssociatedResources",        "associatedResources",        "associatedResource",        "Associated resources",         AssociatedResource[].class,
             Identification.class, "getProcessingLevel",            "processingLevel",            "processingLevel",           "Processing level",             Identifier.class,
@@ -239,7 +239,7 @@ public final strictfp class PropertyAcce
     @DependsOnMethod("testConstructorWithInheritance")
     public void testConstructorWithCovariantReturnType() {
         final Class<?> type = GeographicCRS.class;
-        assertMappingEquals(new PropertyAccessor(HardCodedCitations.ISO, type, type),
+        assertMappingEquals(new PropertyAccessor(HardCodedCitations.ISO, type, type, false),
         //……Declaring type……………………………Method……………………………………………JavaBeans……………………………UML identifier………………Sentence…………………………………Type…………………………………………………………
             GeographicCRS.class,    "getCoordinateSystem", "coordinateSystem", "coordinateSystem", "Coordinate system",  EllipsoidalCS.class,       // Covariant return type
             GeodeticCRS.class,      "getDatum",            "datum",            "datum",            "Datum",              GeodeticDatum.class,       // Covariant return type
@@ -369,7 +369,7 @@ public final strictfp class PropertyAcce
     @DependsOnMethod("testSet")
     public void testSetDeprecated() {
         final PropertyAccessor accessor = new PropertyAccessor(HardCodedCitations.ISO_19115,
-                CoverageDescription.class, DefaultCoverageDescription.class);
+                CoverageDescription.class, DefaultCoverageDescription.class, false);
         final int indexOfDeprecated  = accessor.indexOf("contentType", true);
         final int indexOfReplacement = accessor.indexOf("attributeGroup", true);
         assertTrue("Deprecated elements shall be sorted after non-deprecated ones.",

Modified: sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/parameter/AbstractParameterDescriptor.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/parameter/AbstractParameterDescriptor.java?rev=1626369&r1=1626368&r2=1626369&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/parameter/AbstractParameterDescriptor.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/parameter/AbstractParameterDescriptor.java [UTF-8] Fri Sep 19 23:37:14 2014
@@ -43,50 +43,50 @@ import org.apache.sis.internal.jdk7.Obje
  * Service Metadata (ISO 19115) and Web Processing Services (WPS) standards.
  * The main information are:
  *
- * <table class="ogc">
+ * <table class="sis">
  *   <caption>Main parameter properties</caption>
  *   <tr>
  *     <th>Getter method</th>
- *     <th>ISO 19111</th>
- *     <th>WPS</th>
- *     <th>ISO 19115</th>
+ *     <th class="sep">ISO 19111</th>
+ *     <th class="sep">WPS</th>
+ *     <th class="sep">ISO 19115</th>
  *     <th class="sep">Remarks</th>
  *   </tr>
  *   <tr>
- *      <td>{@link #getName()}</td>
- *      <td>{@code name}</td>
- *      <td>{@code Identifier}</td>
- *      <td>{@code name}</td>
- *      <td class="sep">See {@linkplain #getName() method javadoc} for {@code MemberName} ↔ {@code Identifier} mapping.</td>
+ *     <td>{@link #getName() getName()}</td>
+ *     <td class="sep">{@code name}</td>
+ *     <td class="sep">{@code Identifier}</td>
+ *     <td class="sep">{@code name}</td>
+ *     <td class="sep">See {@link Parameters#getMemberName(ParameterDescriptor)} for {@code MemberName} ↔ {@code Identifier} mapping.</td>
  *   </tr>
  *   <!-- "Title" (WPS) equivalent to "designation" (Feature), but not yet provided. -->
  *   <tr>
- *      <td>{@link #getDescription()}</td>
- *      <td></td>
- *      <td>{@code Abstract}</td>
- *      <td>{@code description}</td>
- *      <td class="sep">Also known as “definition”.</td>
+ *     <td>{@link #getDescription()}</td>
+ *     <td class="sep"></td>
+ *     <td class="sep">{@code Abstract}</td>
+ *     <td class="sep">{@code description}</td>
+ *     <td class="sep">Also known as “definition”.</td>
  *   </tr>
  *   <tr>
- *      <td>{@link #getDirection()}</td>
- *      <td></td>
- *      <td></td>
- *      <td>{@code direction}</td>
- *      <td class="sep">Tells if the parameter is a WPS {@code Input} or {@code Output} structure.</td>
+ *     <td>{@link #getDirection()}</td>
+ *     <td class="sep"></td>
+ *     <td class="sep"></td>
+ *     <td class="sep">{@code direction}</td>
+ *     <td class="sep">Tells if the parameter is a WPS {@code Input} or {@code Output} structure.</td>
  *   </tr>
  *   <tr>
- *      <td>{@link #getMinimumOccurs()}</td>
- *      <td>{@code minimumOccurs}</td>
- *      <td>{@code MinOccurs}</td>
- *      <td>{@code optionality}</td>
- *      <td class="sep">{@code optionality   = (minimumOccurs > 0)}</td>
+ *     <td>{@link #getMinimumOccurs()}</td>
+ *     <td class="sep">{@code minimumOccurs}</td>
+ *     <td class="sep">{@code MinOccurs}</td>
+ *     <td class="sep">{@code optionality}</td>
+ *     <td class="sep">{@code optionality   = (minimumOccurs > 0)}</td>
  *   </tr>
  *   <tr>
- *      <td>{@link #getMaximumOccurs()}</td>
- *      <td>{@code maximumOccurs}</td>
- *      <td>{@code MaxOccurs}</td>
- *      <td>{@code repeatability}</td>
- *      <td class="sep">{@code repeatability = (maximumOccurs > 1)}</td>
+ *     <td>{@link #getMaximumOccurs()}</td>
+ *     <td class="sep">{@code maximumOccurs}</td>
+ *     <td class="sep">{@code MaxOccurs}</td>
+ *     <td class="sep">{@code repeatability}</td>
+ *     <td class="sep">{@code repeatability = (maximumOccurs > 1)}</td>
  *   </tr>
  * </table>
  *

Modified: sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/parameter/DefaultParameterValue.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/parameter/DefaultParameterValue.java?rev=1626369&r1=1626368&r2=1626369&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/parameter/DefaultParameterValue.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/parameter/DefaultParameterValue.java [UTF-8] Fri Sep 19 23:37:14 2014
@@ -36,9 +36,12 @@ import org.apache.sis.io.wkt.ElementKind
 import org.apache.sis.internal.referencing.WKTUtilities;
 import org.apache.sis.internal.util.Numerics;
 import org.apache.sis.util.Numbers;
+import org.apache.sis.util.ComparisonMode;
+import org.apache.sis.util.LenientComparable;
 import org.apache.sis.util.resources.Errors;
 
 import static org.apache.sis.util.ArgumentChecks.ensureNonNull;
+import static org.apache.sis.util.Utilities.deepEquals;
 
 // Branch-dependent imports
 import org.apache.sis.internal.jdk7.Objects;
@@ -109,7 +112,9 @@ import org.apache.sis.internal.jdk7.Obje
  * @see DefaultParameterDescriptor
  * @see DefaultParameterValueGroup
  */
-public class DefaultParameterValue<T> extends FormattableObject implements ParameterValue<T>, Serializable, Cloneable {
+public class DefaultParameterValue<T> extends FormattableObject implements ParameterValue<T>,
+        LenientComparable, Serializable, Cloneable
+{
     /**
      * Serial number for inter-operability with different versions.
      */
@@ -227,7 +232,7 @@ public class DefaultParameterValue<T> ex
     public boolean booleanValue() throws IllegalStateException {
         final T value = getValue();
         if (value instanceof Boolean) {
-            return ((Boolean) value).booleanValue();
+            return (Boolean) value;
         }
         throw incompatibleValue(value);
     }
@@ -676,26 +681,55 @@ public class DefaultParameterValue<T> ex
 
     /**
      * Compares the specified object with this parameter for equality.
+     * The strictness level is controlled by the second argument.
      *
      * @param  object The object to compare to {@code this}.
-     * @return {@code true} if both objects are equal.
+     * @param  mode The strictness level of the comparison.
+     * @return {@code true} if both objects are equal according the given comparison mode.
      */
     @Override
-    public boolean equals(final Object object) {
+    public boolean equals(final Object object, final ComparisonMode mode) {
         if (object == this) {
             // Slight optimization
             return true;
         }
-        if (object != null && getClass() == object.getClass()) {
-            final DefaultParameterValue<?> that = (DefaultParameterValue<?>) object;
-            return Objects.equals(descriptor, that.descriptor) &&
-                   Objects.equals(value,      that.value) &&
-                   Objects.equals(unit,       that.unit);
+        if (object != null) {
+            if (mode == ComparisonMode.STRICT) {
+                if (getClass() == object.getClass()) {
+                    final DefaultParameterValue<?> that = (DefaultParameterValue<?>) object;
+                    return Objects.equals(descriptor, that.descriptor) &&
+                           Objects.equals(value,      that.value) &&
+                           Objects.equals(unit,       that.unit);
+                }
+            } else if (object instanceof ParameterValue<?>) {
+                final ParameterValue<?> that = (ParameterValue<?>) object;
+                return deepEquals(getDescriptor(), that.getDescriptor(), mode) &&
+                       deepEquals(getValue(),      that.getValue(), mode) &&
+                       Objects.equals(getUnit(),   that.getUnit());
+            }
         }
         return false;
     }
 
     /**
+     * Compares the specified object with this parameter for equality.
+     * This method is implemented as below:
+     *
+     * {@preformat java
+     *     return equals(other, ComparisonMode.STRICT);
+     * }
+     *
+     * Subclasses shall override {@link #equals(Object, ComparisonMode)} instead than this method.
+     *
+     * @param  object The object to compare to {@code this}.
+     * @return {@code true} if both objects are equal.
+     */
+    @Override
+    public final boolean equals(final Object object) {
+        return equals(object, ComparisonMode.STRICT);
+    }
+
+    /**
      * Returns a hash value for this parameter.
      *
      * @return The hash code value. This value doesn't need to be the same

Modified: sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/parameter/DefaultParameterValueGroup.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/parameter/DefaultParameterValueGroup.java?rev=1626369&r1=1626368&r2=1626369&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/parameter/DefaultParameterValueGroup.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/parameter/DefaultParameterValueGroup.java [UTF-8] Fri Sep 19 23:37:14 2014
@@ -27,10 +27,13 @@ import org.opengis.parameter.GeneralPara
 import org.opengis.parameter.GeneralParameterDescriptor;
 import org.opengis.parameter.ParameterNotFoundException;
 import org.opengis.parameter.InvalidParameterCardinalityException;
+import org.apache.sis.util.LenientComparable;
+import org.apache.sis.util.ComparisonMode;
 import org.apache.sis.util.resources.Errors;
 import org.apache.sis.util.ArgumentChecks;
 import org.apache.sis.util.Debug;
 
+import static org.apache.sis.util.Utilities.deepEquals;
 import static org.apache.sis.referencing.IdentifiedObjects.isHeuristicMatchForName;
 
 // Branch-dependent imports
@@ -100,7 +103,9 @@ import org.apache.sis.internal.jdk7.Obje
  * @see DefaultParameterDescriptorGroup
  * @see DefaultParameterValue
  */
-public class DefaultParameterValueGroup implements ParameterValueGroup, Serializable, Cloneable {
+public class DefaultParameterValueGroup implements ParameterValueGroup,
+        LenientComparable, Serializable, Cloneable
+{
     /**
      * Serial number for inter-operability with different versions.
      */
@@ -318,24 +323,53 @@ public class DefaultParameterValueGroup 
 
     /**
      * Compares the specified object with this parameter for equality.
+     * The strictness level is controlled by the second argument.
      *
      * @param  object The object to compare to {@code this}.
-     * @return {@code true} if both objects are equal.
+     * @param  mode The strictness level of the comparison.
+     * @return {@code true} if both objects are equal according the given comparison mode.
      */
     @Override
-    public boolean equals(final Object object) {
+    public boolean equals(final Object object, final ComparisonMode mode) {
         if (object == this) {
+            // Slight optimization
             return true;
         }
-        if (object != null && getClass() == object.getClass()) {
-            final DefaultParameterValueGroup that = (DefaultParameterValueGroup) object;
-            return Objects.equals(values.descriptor, that.values.descriptor) &&
-                   Objects.equals(values, that.values);
+        if (object != null) {
+            if (mode == ComparisonMode.STRICT) {
+                if (getClass() == object.getClass()) {
+                    final DefaultParameterValueGroup that = (DefaultParameterValueGroup) object;
+                    return Objects.equals(values.descriptor, that.values.descriptor) &&
+                           Objects.equals(values, that.values);
+                }
+            } else if (object instanceof ParameterValueGroup) {
+                final ParameterValueGroup that = (ParameterValueGroup) object;
+                return deepEquals(getDescriptor(), that.getDescriptor(), mode) &&
+                       deepEquals(values(), that.values(), mode);
+            }
         }
         return false;
     }
 
     /**
+     * Compares the specified object with this parameter for equality.
+     * This method is implemented as below:
+     *
+     * {@preformat java
+     *     return equals(other, ComparisonMode.STRICT);
+     * }
+     *
+     * Subclasses shall override {@link #equals(Object, ComparisonMode)} instead than this method.
+     *
+     * @param  object The object to compare to {@code this}.
+     * @return {@code true} if both objects are equal.
+     */
+    @Override
+    public final boolean equals(final Object object) {
+        return equals(object, ComparisonMode.STRICT);
+    }
+
+    /**
      * Returns a hash value for this parameter.
      *
      * @return The hash code value. This value doesn't need to be the same

Modified: sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/parameter/ParameterBuilder.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/parameter/ParameterBuilder.java?rev=1626369&r1=1626368&r2=1626369&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/parameter/ParameterBuilder.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/parameter/ParameterBuilder.java [UTF-8] Fri Sep 19 23:37:14 2014
@@ -101,6 +101,22 @@ public class ParameterBuilder extends Bu
     }
 
     /**
+     * Sets the parameter description as a {@code String} or {@code InternationalString} instance.
+     * Calls to this method overwrite any previous value.
+     *
+     * <p><b>Lifetime:</b>
+     * previous descriptions are discarded by calls to {@code setDescription(…)}.
+     * Descriptions are cleared after a {@code createXXX(…)} method has been invoked.</p>
+     *
+     * @param  description The description, or {@code null} if none.
+     * @return {@code this}, for method call chaining.
+     */
+    public ParameterBuilder setDescription(final CharSequence description) {
+        properties.put(AbstractParameterDescriptor.DESCRIPTION_KEY, description);
+        return this;
+    }
+
+    /**
      * Sets whether the parameter is mandatory or optional.
      * This property determines the {@linkplain DefaultParameterDescriptor#getMinimumOccurs() minimum number
      * of times} that values are required, which will be 0 for an optional parameter and 1 for a mandatory one.

Modified: sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/parameter/Parameters.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/parameter/Parameters.java?rev=1626369&r1=1626368&r2=1626369&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/parameter/Parameters.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/parameter/Parameters.java [UTF-8] Fri Sep 19 23:37:14 2014
@@ -144,7 +144,7 @@ public final class Parameters extends St
      * This method performs the following checks:
      *
      * <ul>
-     *   <li>If the {@linkplain DefaultParameterDescriptor#getName()} primary name is an instance of {@code MemberName},
+     *   <li>If the {@linkplain DefaultParameterDescriptor#getName() primary name} is an instance of {@code MemberName},
      *       returns that primary name.</li>
      *   <li>Otherwise this method searches for the first {@linkplain DefaultParameterDescriptor#getAlias() alias}
      *       which is an instance of {@code MemberName}. If found, that alias is returned.</li>

Modified: sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/test/integration/DefaultMetadataTest.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/test/integration/DefaultMetadataTest.java?rev=1626369&r1=1626368&r2=1626369&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/test/integration/DefaultMetadataTest.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/test/integration/DefaultMetadataTest.java [UTF-8] Fri Sep 19 23:37:14 2014
@@ -176,7 +176,7 @@ public strictfp class DefaultMetadataTes
             {
                 final DefaultKeywords keyword = new DefaultKeywords(
                         new Anchor(URI.create("SDN:P021:35:ATTN"), "Transmittance and attenuance of the water column"));
-                keyword.setType(KeywordType.FEATURE_TYPE);
+                keyword.setType(KeywordType.THEME);
                 final DefaultCitation thesaurus = new DefaultCitation("BODC Parameter Discovery Vocabulary");
                 thesaurus.setAlternateTitles(singleton(new SimpleInternationalString("P021")));
                 thesaurus.setDates(singleton(new DefaultCitationDate(TestUtilities.date("2008-11-25 23:00:00"), DateType.REVISION)));

Modified: sis/branches/JDK6/core/sis-referencing/src/test/resources/org/apache/sis/test/integration/Metadata.xml
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/test/resources/org/apache/sis/test/integration/Metadata.xml?rev=1626369&r1=1626368&r2=1626369&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-referencing/src/test/resources/org/apache/sis/test/integration/Metadata.xml (original)
+++ sis/branches/JDK6/core/sis-referencing/src/test/resources/org/apache/sis/test/integration/Metadata.xml Fri Sep 19 23:37:14 2014
@@ -318,7 +318,7 @@
             <gmx:Anchor xlink:href="SDN:P021:35:ATTN">Transmittance and attenuance of the water column</gmx:Anchor>
           </gmd:keyword>
           <gmd:type>
-            <gmd:MD_KeywordTypeCode codeListValue="featureType" codeList="http://schemas.opengis.net/iso/19139/20070417/resources/Codelist/gmxCodelists.xml#MD_KeywordTypeCode">Feature type</gmd:MD_KeywordTypeCode>
+            <gmd:MD_KeywordTypeCode codeListValue="theme" codeList="http://schemas.opengis.net/iso/19139/20070417/resources/Codelist/gmxCodelists.xml#MD_KeywordTypeCode">Theme</gmd:MD_KeywordTypeCode>
           </gmd:type>
           <gmd:thesaurusName>
             <gmd:CI_Citation>

Modified: sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/collection/RangeSet.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/collection/RangeSet.java?rev=1626369&r1=1626368&r2=1626369&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/collection/RangeSet.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/collection/RangeSet.java [UTF-8] Fri Sep 19 23:37:14 2014
@@ -94,7 +94,7 @@ import static org.apache.sis.util.Number
  * {@link #newRange(Comparable, Comparable)} method. Subclasses can override that method if they
  * need to customize the range objects to be created.
  *
- * <p>While it is possible to create {@code RangeSet<Date>} instances, is more efficient to
+ * <p>While it is possible to create {@code RangeSet<Date>} instances, it is more efficient to
  * use {@code RangeSet<Long>} with millisecond values because {@code RangeSet} will internally
  * use {@code long[]} arrays in the later case.</p>
  *

Modified: sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/iso/Types.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/iso/Types.java?rev=1626369&r1=1626368&r2=1626369&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/iso/Types.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/iso/Types.java [UTF-8] Fri Sep 19 23:37:14 2014
@@ -246,7 +246,7 @@ public final class Types extends Static 
      * @return The description, or {@code null} if none or if the given code is null.
      *
      * @see #getCodeTitle(Enumerated)
-     * @see #getDescription(Enumerated)
+     * @see #getDescription(Class)
      */
     public static InternationalString getDescription(final Enumerated code) {
         if (code != null) {

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=1626369&r1=1626368&r2=1626369&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] Fri Sep 19 23:37:14 2014
@@ -56,11 +56,16 @@ import static org.apache.sis.util.collec
  * @author  Stephen Connolly
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.3 (derived from <a href="http://github.com/junit-team/junit.contrib/tree/master/assumes">junit-team</a>)
- * @version 0.4
+ * @version 0.5
  * @module
  */
 public final class TestRunner extends BlockJUnit4ClassRunner {
     /**
+     * {@code true} if ignoring a test should cause its dependencies to be skipped as well.
+     */
+    static final boolean TRANSITIVE_IGNORE = false;
+
+    /**
      * The test methods to be executed, sorted according their dependencies.
      * This array is created by {@link #getFilteredChildren()} when first needed.
      */
@@ -152,7 +157,9 @@ public final class TestRunner extends Bl
          */
         @Override
         public void testAssumptionFailure(final Failure failure) {
-            addDependencyFailure(failure.getDescription().getMethodName());
+            if (TRANSITIVE_IGNORE) {
+                addDependencyFailure(failure.getDescription().getMethodName());
+            }
         }
 
         /**
@@ -160,7 +167,9 @@ public final class TestRunner extends Bl
          */
         @Override
         public void testIgnored(final Description description) {
-            addDependencyFailure(description.getMethodName());
+            if (TRANSITIVE_IGNORE) {
+                addDependencyFailure(description.getMethodName());
+            }
         }
     };
 

Modified: sis/branches/JDK6/pom.xml
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/pom.xml?rev=1626369&r1=1626368&r2=1626369&view=diff
==============================================================================
--- sis/branches/JDK6/pom.xml (original)
+++ sis/branches/JDK6/pom.xml Fri Sep 19 23:37:14 2014
@@ -517,6 +517,39 @@ Apache SIS is a free software, Java lang
         </configuration>
       </plugin>
 
+      <!-- Copy Javadoc resources in the top-level directory (not from "doc-files" subdirectories).
+           While the Maven documentation said that the "src/main/javadoc" directory is copied by default,
+           or a directory can be specified with <javadocResourcesDirectory>, I have been unable to make it
+           work even with absolute paths.
+        -->
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-resources-plugin</artifactId>
+        <configuration>
+          <encoding>${project.build.sourceEncoding}</encoding>
+        </configuration>
+        <executions>
+          <execution>
+            <id>copy-resources</id>
+            <phase>prepare-package</phase> <!-- TODO: find some way to execute this plugin only before javadoc, not before JAR. -->
+            <goals>
+              <goal>copy-resources</goal>
+            </goals>
+            <configuration>
+              <resources>
+                <resource>
+                  <directory>src/main/javadoc/</directory>
+                  <includes>
+                    <include>*.png</include>
+                  </includes>
+                </resource>
+              </resources>
+              <outputDirectory>${basedir}/target/site/apidocs/</outputDirectory>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+
       <!-- JavaDoc configuration. -->
       <plugin>
         <artifactId>maven-javadoc-plugin</artifactId>
@@ -536,28 +569,11 @@ Apache SIS is a free software, Java lang
           <breakiterator>true</breakiterator>                   <!-- Better boundary detection when determining the end of the first sentence. -->
           <stylesheetfile>src/main/javadoc/stylesheet.css</stylesheetfile>
           <validateLinks>true</validateLinks>
-
-          <!-- TODO
-            Following was used to work prior JDK 8. But as of Java 1.8.0_05 with maven-javadoc-plugin 2.9.1,
-            this does not work anymore.  A trailing slash seems mandatory with JDK 8, while the Maven plugin
-            unconditionally removes any trailing slash we may insert below. For now we workaround this issue
-            by using <additionalparam>-link ...</additionalparam> instead of <links>.
-
-            For verifying if this problem is fixed in future JDK/Maven versions, remove the -link argument,
-            uncomment the <links> block and execute "mvn javadoc:aggregate". If the following line appears,
-            then the problem is not yet fixed:
-
-            javadoc: warning - Error fetching URL: http://www.geoapi.org/snapshot/javadoc
-
-
           <links>
-            <link>http://www.geoapi.org/snapshot/javadoc</link>
             <link>http://www.geoapi.org/snapshot/pending</link>
           </links>
-          -->
 
           <additionalparam>
-              -link http://www.geoapi.org/snapshot/pending/
           </additionalparam>
 
           <!-- Separates packages on the overview page into the groups specified. -->

Modified: sis/branches/JDK6/src/main/javadoc/stylesheet.css
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/src/main/javadoc/stylesheet.css?rev=1626369&r1=1626368&r2=1626369&view=diff
==============================================================================
--- sis/branches/JDK6/src/main/javadoc/stylesheet.css (original)
+++ sis/branches/JDK6/src/main/javadoc/stylesheet.css Fri Sep 19 23:37:14 2014
@@ -126,15 +126,28 @@ div.note {
   margin-bottom: 9px;
 }
 
+
 /*
- * Definition of <div class="warning">
+ * The warning box for upcomming API changes. The warning icon is 64 pixels height.
+ * Since we have 30 pixels in top and bottom padding, There is 34 remaining pixels
+ * to set as the minimal height.
  */
 div.warning {
-  color:   firebrick;
-  margin-left:  40px;
-  margin-right: 40px;
-  margin-top:    9px;
-  margin-bottom: 9px;
+  border-width: 2pt;
+  border-style: solid;
+  border-color: darkred;
+  background:   antiquewhite;
+  margin:       12pt 30pt;
+  padding:      15px;
+  min-height:   34px;
+}
+
+div.warning:before {
+  position: relative;
+  float:    left;
+  top:      -15px;
+  left:     -15px;
+  content:  url("warning.png");
 }
 
 



Mime
View raw message