sis-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From desruisse...@apache.org
Subject svn commit: r1683824 [1/7] - in /sis/branches/JDK6: ./ application/sis-console/src/test/java/org/apache/sis/console/ core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/ core/sis-metadata/src/main/java/org/apache/sis/io/wkt/ core/sis-metad...
Date Fri, 05 Jun 2015 17:46:10 GMT
Author: desruisseaux
Date: Fri Jun  5 17:46:07 2015
New Revision: 1683824

URL: http://svn.apache.org/r1683824
Log:
Merge from the JDK7 branch. This merge include an initial commit of a WKT 1 parser.
This parser will be upgraded to WKT 2 format in the next commits.

Added:
    sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/ServicesForUtility.java
      - copied, changed from r1683791, sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/ServicesForUtility.java
    sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/VerticalDatumTypes.java
      - copied unchanged from r1683791, sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/VerticalDatumTypes.java
    sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/WKTParser.java
      - copied unchanged from r1683791, sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/WKTParser.java
    sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Element.java
      - copied, changed from r1683791, sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Element.java
    sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/GeodeticObjectParser.java
      - copied, changed from r1683791, sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/GeodeticObjectParser.java
    sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/MathTransformParser.java
      - copied unchanged from r1683791, sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/MathTransformParser.java
    sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Parser.java
      - copied, changed from r1683791, sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Parser.java
    sis/branches/JDK6/core/sis-metadata/src/test/java/org/apache/sis/internal/metadata/VerticalDatumTypesTest.java
      - copied unchanged from r1683791, sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/internal/metadata/VerticalDatumTypesTest.java
    sis/branches/JDK6/core/sis-metadata/src/test/java/org/apache/sis/io/wkt/ElementTest.java
      - copied unchanged from r1683791, sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/io/wkt/ElementTest.java
    sis/branches/JDK6/core/sis-metadata/src/test/java/org/apache/sis/io/wkt/GeodeticObjectParserTest.txt
      - copied unchanged from r1683791, sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/io/wkt/GeodeticObjectParserTest.txt
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/MergedProperties.java
      - copied, changed from r1683791, sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/MergedProperties.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/ConversionKeys.java
      - copied unchanged from r1683791, sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/ConversionKeys.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/AxisFilter.java
      - copied unchanged from r1683791, sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/AxisFilter.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/
      - copied from r1683791, sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultCoordinateOperationFactory.java
      - copied, changed from r1683791, sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultCoordinateOperationFactory.java
    sis/branches/JDK6/core/sis-referencing/src/main/resources/META-INF/services/org.opengis.referencing.crs.CRSFactory
      - copied unchanged from r1683791, sis/branches/JDK7/core/sis-referencing/src/main/resources/META-INF/services/org.opengis.referencing.crs.CRSFactory
    sis/branches/JDK6/core/sis-referencing/src/main/resources/META-INF/services/org.opengis.referencing.cs.CSFactory
      - copied unchanged from r1683791, sis/branches/JDK7/core/sis-referencing/src/main/resources/META-INF/services/org.opengis.referencing.cs.CSFactory
    sis/branches/JDK6/core/sis-referencing/src/main/resources/META-INF/services/org.opengis.referencing.datum.DatumFactory
      - copied unchanged from r1683791, sis/branches/JDK7/core/sis-referencing/src/main/resources/META-INF/services/org.opengis.referencing.datum.DatumFactory
    sis/branches/JDK6/core/sis-referencing/src/main/resources/META-INF/services/org.opengis.referencing.operation.CoordinateOperationFactory
      - copied unchanged from r1683791, sis/branches/JDK7/core/sis-referencing/src/main/resources/META-INF/services/org.opengis.referencing.operation.CoordinateOperationFactory
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/io/
      - copied from r1683791, sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/io/
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/factory/
      - copied from r1683791, sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/referencing/factory/
    sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/internal/simple/CitationConstant.java
      - copied unchanged from r1683791, sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/internal/simple/CitationConstant.java
    sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/internal/system/OptionalDependency.java
      - copied, changed from r1683791, sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/internal/system/OptionalDependency.java
    sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/internal/util/MetadataServices.java
      - copied unchanged from r1683791, sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/internal/util/MetadataServices.java
Removed:
    sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/Standards.java
    sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/Authority.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/OperationMethods.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/Pending.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/VerticalDatumTypes.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/GeodeticObjectFactory.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/VerticalDatumTypesTest.java
    sis/branches/JDK6/core/sis-utility/src/main/java/com/
Modified:
    sis/branches/JDK6/   (props changed)
    sis/branches/JDK6/application/sis-console/src/test/java/org/apache/sis/console/MetadataSCTest.java
    sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/NameToIdentifier.java
    sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/ReferencingServices.java
    sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Symbols.java
    sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/WKTFormat.java
    sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/AbstractMetadata.java
    sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/PropertyInformation.java
    sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultIdentifier.java
    sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultMetadata.java
    sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/ImmutableIdentifier.java
    sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/Citations.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/test/java/org/apache/sis/internal/metadata/WKTKeywordsTest.java
    sis/branches/JDK6/core/sis-metadata/src/test/java/org/apache/sis/io/wkt/WKTFormatTest.java
    sis/branches/JDK6/core/sis-metadata/src/test/java/org/apache/sis/metadata/MetadataStandardTest.java
    sis/branches/JDK6/core/sis-metadata/src/test/java/org/apache/sis/metadata/PropertyAccessorTest.java
    sis/branches/JDK6/core/sis-metadata/src/test/java/org/apache/sis/metadata/PrunerTest.java
    sis/branches/JDK6/core/sis-metadata/src/test/java/org/apache/sis/metadata/TreeTableFormatTest.java
    sis/branches/JDK6/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/ImmutableIdentifierTest.java
    sis/branches/JDK6/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/citation/CitationsTest.java
    sis/branches/JDK6/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/citation/DefaultCitationTest.java
    sis/branches/JDK6/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/citation/HardCodedCitations.java
    sis/branches/JDK6/core/sis-metadata/src/test/java/org/apache/sis/test/suite/MetadataTestSuite.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/Code.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/AxisDirections.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/PositionalAccuracyConstant.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/ServicesForMetadata.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/parameter/Parameters.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/AbstractIdentifiedObject.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/DeprecatedCode.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/IdentifiedObjects.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/AbstractDerivedCRS.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultDerivedCRS.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultGeocentricCRS.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultGeographicCRS.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultProjectedCRS.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/AbstractCS.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/AxesConvention.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/CoordinateSystems.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultAffineCS.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultCartesianCS.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultCompoundCS.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultCylindricalCS.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultEllipsoidalCS.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultLinearCS.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultPolarCS.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultSphericalCS.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultTimeCS.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultUserDefinedCS.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultVerticalCS.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/Normalizer.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/package-info.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/BursaWolfParameters.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultEllipsoid.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultGeodeticDatum.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultPrimeMeridian.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultTemporalDatum.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultVerticalDatum.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/TimeDependentBWP.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/GeodeticObjectFactory.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/AbstractCoordinateOperation.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/AbstractSingleOperation.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultConcatenatedOperation.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultConversion.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/MismatchedDatumException.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/matrix/MismatchedMatrixSizeException.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/DefaultMathTransformFactory.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/internal/jaxb/referencing/CodeTest.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/AxisDirectionsTest.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/provider/AffineTest.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/parameter/DefaultParameterDescriptorGroupTest.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/parameter/DefaultParameterDescriptorTest.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/parameter/DefaultParameterValueTest.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/parameter/ParameterBuilderTest.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/parameter/ParameterFormatTest.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/parameter/ParametersTest.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/AbstractIdentifiedObjectTest.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/AbstractReferenceSystemTest.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/BuilderTest.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/CommonCRSTest.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/NamedIdentifierTest.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/DefaultDerivedCRSTest.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/DefaultProjectedCRSTest.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/CoordinateSystemsTest.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/DefaultCartesianCSTest.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/DefaultCompoundCSTest.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/DefaultEllipsoidalCSTest.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/HardCodedAxes.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/NormalizerTest.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/BursaWolfParametersTest.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/DefaultGeodeticDatumTest.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/DefaultPrimeMeridianTest.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/DefaultTemporalDatumTest.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/DefaultVerticalDatumTest.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/HardCodedDatum.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/TimeDependentBWPTest.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/DefaultConversionTest.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/DefaultOperationMethodTest.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/DefaultTransformationTest.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/transform/DefaultMathTransformFactoryTest.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/test/ReferencingAssert.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/test/integration/ReferencingInMetadataTest.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/test/suite/ReferencingTestSuite.java
    sis/branches/JDK6/core/sis-utility/pom.xml
    sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/NonMarshalledAuthority.java
    sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/internal/jdk8/JDK8.java
    sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/internal/simple/SimpleCitation.java
    sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/internal/simple/SimpleIdentifiedObject.java
    sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/internal/simple/SimpleIdentifier.java
    sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/internal/system/DefaultFactories.java
    sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/internal/system/SystemListener.java
    sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/internal/util/Citations.java
    sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/internal/util/LocalizedParseException.java
    sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/CharSequences.java
    sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/collection/Containers.java
    sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/iso/Types.java
    sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.java
    sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.properties
    sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors_fr.properties
    sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/Messages.java
    sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/Messages.properties
    sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/Messages_fr.properties
    sis/branches/JDK6/core/sis-utility/src/test/java/org/apache/sis/internal/simple/SimpleIdentifierTest.java
    sis/branches/JDK6/core/sis-utility/src/test/java/org/apache/sis/internal/util/CitationsTest.java
    sis/branches/JDK6/core/sis-utility/src/test/java/org/apache/sis/internal/util/DefinitionURITest.java
    sis/branches/JDK6/ide-project/NetBeans/build.xml
    sis/branches/JDK6/ide-project/NetBeans/nbproject/project.properties
    sis/branches/JDK6/pom.xml
    sis/branches/JDK6/profiles/sis-french-profile/src/test/java/org/apache/sis/internal/profile/fra/DirectReferenceSystemTest.java
    sis/branches/JDK6/profiles/sis-french-profile/src/test/resources/org/apache/sis/internal/profile/fra/DirectReferenceSystem.xml
    sis/branches/JDK6/storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/MetadataReader.java
    sis/branches/JDK6/storage/sis-netcdf/src/test/java/org/apache/sis/storage/netcdf/ConformanceTest.java
    sis/branches/JDK6/storage/sis-netcdf/src/test/java/org/apache/sis/storage/netcdf/MetadataReaderTest.java

Propchange: sis/branches/JDK6/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Jun  5 17:46:07 2015
@@ -1,4 +1,4 @@
 /sis/branches/Android:1430670-1480699
-/sis/branches/JDK7:1394913-1679630
-/sis/branches/JDK8:1584960-1679629
+/sis/branches/JDK7:1394913-1683807
+/sis/branches/JDK8:1584960-1683803
 /sis/trunk:1394364-1508466,1519089-1519674

Modified: sis/branches/JDK6/application/sis-console/src/test/java/org/apache/sis/console/MetadataSCTest.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/application/sis-console/src/test/java/org/apache/sis/console/MetadataSCTest.java?rev=1683824&r1=1683823&r2=1683824&view=diff
==============================================================================
--- sis/branches/JDK6/application/sis-console/src/test/java/org/apache/sis/console/MetadataSCTest.java [UTF-8] (original)
+++ sis/branches/JDK6/application/sis-console/src/test/java/org/apache/sis/console/MetadataSCTest.java [UTF-8] Fri Jun  5 17:46:07 2015
@@ -31,7 +31,7 @@ import static org.junit.Assert.*;
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.3
- * @version 0.3
+ * @version 0.6
  * @module
  */
 @DependsOn(SubCommandTest.class)
@@ -56,7 +56,7 @@ public final strictfp class MetadataSCTe
      */
     private static void verifyNetCDF(final String expectedHeader, final String result) {
         assertTrue(expectedHeader,                           result.startsWith(expectedHeader));
-        assertTrue("ISO 19115-2",                            result.contains("ISO 19115-2"));
+        assertTrue("ISO 19115",                              result.contains("ISO 19115"));
         assertTrue("Sea Surface Temperature Analysis Model", result.contains("Sea Surface Temperature Analysis Model"));
         assertTrue("GCMD Science Keywords",                  result.contains("GCMD Science Keywords"));
         assertTrue("NOAA/NWS/NCEP",                          result.contains("NOAA/NWS/NCEP"));

Modified: sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/NameToIdentifier.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/NameToIdentifier.java?rev=1683824&r1=1683823&r2=1683824&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/NameToIdentifier.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/NameToIdentifier.java [UTF-8] Fri Jun  5 17:46:07 2015
@@ -17,6 +17,7 @@
 package org.apache.sis.internal.metadata;
 
 import java.util.Locale;
+import java.util.Collection;
 import org.opengis.util.NameSpace;
 import org.opengis.util.GenericName;
 import org.opengis.util.InternationalString;
@@ -24,8 +25,10 @@ import org.opengis.metadata.Identifier;
 import org.opengis.metadata.citation.Citation;
 import org.apache.sis.metadata.iso.citation.Citations;
 import org.apache.sis.util.iso.DefaultNameSpace;
+import org.apache.sis.util.CharSequences;
 
 import static org.apache.sis.util.ArgumentChecks.ensureNonNull;
+import static org.apache.sis.util.Characters.Filter.LETTERS_AND_DIGITS;
 
 // Branch-dependent imports
 import org.apache.sis.internal.jdk7.Objects;
@@ -33,6 +36,8 @@ import org.apache.sis.internal.jdk7.Obje
 
 /**
  * Does the unobvious mapping between {@link Identifier} properties and {@link GenericName} ones.
+ * This class also implements the {@link #isHeuristicMatchForName(Identifier, Collection, CharSequence)}
+ * method since that method involves a mix of names and identifiers.
  *
  * <p><b>Limitation:</b>
  * Current version does not yet work with URN or HTTP syntax.</p>
@@ -202,4 +207,46 @@ public final class NameToIdentifier impl
         }
         return null;
     }
+
+    /**
+     * Returns {@code true} if the given {@linkplain org.apache.sis.referencing.AbstractIdentifiedObject#getName()
+     * primary name} or one of the given aliases matches the given name. The comparison ignores case, some Latin
+     * diacritical signs and any characters that are not letters or digits.
+     *
+     * @param  name     The name of the {@code IdentifiedObject} to check.
+     * @param  aliases  The list of alias in the {@code IdentifiedObject} (may be {@code null}). This method will never
+     *                  modify that list. Consequently, the given list can be a direct reference to an internal list.
+     * @param  toSearch The name for which to check for equality.
+     * @return {@code true} if the primary name or at least one alias matches the given {@code name}.
+     */
+    public static boolean isHeuristicMatchForName(final Identifier name, final Collection<GenericName> aliases,
+            CharSequence toSearch)
+    {
+        toSearch = CharSequences.toASCII(toSearch);
+        if (name != null) { // Paranoiac check.
+            final CharSequence code = CharSequences.toASCII(name.getCode());
+            if (code != null) { // Paranoiac check.
+                if (CharSequences.equalsFiltered(toSearch, code, LETTERS_AND_DIGITS, true)) {
+                    return true;
+                }
+            }
+        }
+        if (aliases != null) {
+            for (final GenericName alias : aliases) {
+                if (alias != null) { // Paranoiac check.
+                    final CharSequence tip = CharSequences.toASCII(alias.tip().toString());
+                    if (CharSequences.equalsFiltered(toSearch, tip, LETTERS_AND_DIGITS, true)) {
+                        return true;
+                    }
+                    /*
+                     * Note: a previous version compared also the scoped names. We removed that part,
+                     * because experience has shown that this method is used only for the "code" part
+                     * of an object name. If we really want to compare scoped name, it would probably
+                     * be better to take a GenericName argument instead than String.
+                     */
+                }
+            }
+        }
+        return false;
+    }
 }

Modified: sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/ReferencingServices.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/ReferencingServices.java?rev=1683824&r1=1683823&r2=1683824&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/ReferencingServices.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/ReferencingServices.java [UTF-8] Fri Jun  5 17:46:07 2015
@@ -16,20 +16,35 @@
  */
 package org.apache.sis.internal.metadata;
 
+import java.util.Map;
+import javax.measure.unit.Unit;
+import javax.measure.quantity.Length;
 import org.opengis.geometry.Envelope;
+import org.opengis.metadata.Identifier;
 import org.opengis.parameter.ParameterDescriptor;
 import org.opengis.referencing.IdentifiedObject;
+import org.opengis.referencing.crs.SingleCRS;
+import org.opengis.referencing.crs.DerivedCRS;
+import org.opengis.referencing.cs.CartesianCS;
+import org.opengis.referencing.cs.CoordinateSystem;
+import org.opengis.referencing.cs.CoordinateSystemAxis;
+import org.opengis.referencing.datum.PrimeMeridian;
 import org.opengis.referencing.operation.MathTransform;
+import org.opengis.referencing.operation.MathTransformFactory;
+import org.opengis.referencing.operation.CoordinateOperationFactory;
+import org.opengis.referencing.operation.OperationMethod;
 import org.opengis.referencing.operation.TransformException;
 import org.apache.sis.metadata.iso.extent.DefaultExtent;
 import org.apache.sis.metadata.iso.extent.DefaultVerticalExtent;
 import org.apache.sis.metadata.iso.extent.DefaultTemporalExtent;
 import org.apache.sis.metadata.iso.extent.DefaultGeographicBoundingBox;
 import org.apache.sis.metadata.iso.extent.DefaultSpatialTemporalExtent;
-import org.apache.sis.internal.system.SystemListener;
+import org.apache.sis.internal.system.DefaultFactories;
+import org.apache.sis.internal.system.OptionalDependency;
 import org.apache.sis.internal.system.Modules;
 import org.apache.sis.io.wkt.FormattableObject;
-import org.apache.sis.util.resources.Errors;
+import org.apache.sis.util.iso.DefaultNameSpace;
+import org.apache.sis.util.Deprecable;
 
 
 /**
@@ -37,15 +52,15 @@ import org.apache.sis.util.resources.Err
  * This class searches for the {@link org.apache.sis.internal.referencing.ServicesForMetadata}
  * implementation using Java reflection.
  *
- * <p>This class also opportunistically defines some constants related to "referencing by coordinates"
- * but needed by metadata.</p>
+ * <p>This class also opportunistically defines some methods and constants related to
+ * <cite>"referencing by coordinates"</cite> but needed by metadata.</p>
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.3
  * @version 0.6
  * @module
  */
-public abstract class ReferencingServices extends SystemListener {
+public class ReferencingServices extends OptionalDependency {
     /**
      * The length of one nautical mile, which is {@value} metres.
      */
@@ -58,6 +73,37 @@ public abstract class ReferencingService
     public static final double AUTHALIC_RADIUS = 6371007;
 
     /**
+     * The {@link org.apache.sis.referencing.datum.DefaultGeodeticDatum#BURSA_WOLF_KEY} value.
+     */
+    public static final String BURSA_WOLF_KEY = "bursaWolf";
+
+    /**
+     * The key for specifying explicitely the value to be returned by
+     * {@link org.apache.sis.referencing.operation.DefaultConversion#getParameterValues()}.
+     * It is usually not necessary to specify those parameters because they are inferred either from
+     * the {@link MathTransform}, or specified explicitely in a {@code DefiningConversion}. However
+     * there is a few cases, for example the Molodenski transform, where none of the above can apply,
+     * because SIS implements those operations as a concatenation of math transforms, and such
+     * concatenations do not have {@link org.opengis.parameter.ParameterValueGroup}.
+     */
+    public static final String PARAMETERS_KEY = "parameters";
+
+    /**
+     * The key for specifying a {@linkplain org.opengis.referencing.operation.MathTransformFactory}
+     * instance to use for the construction of a geodetic object. This is usually not needed for CRS
+     * construction, except in the special case of a derived CRS created from a defining conversion.
+     */
+    public static final String MT_FACTORY = "mtFactory";
+
+    /**
+     * The separator character between an identifier and its namespace in the argument given to
+     * {@link #getOperationMethod(String)}. For example this is the separator in {@code "EPSG:9807"}.
+     *
+     * This is defined as a constant for now, but we may make it configurable in a future version.
+     */
+    private static final char IDENTIFIER_SEPARATOR = DefaultNameSpace.DEFAULT_SEPARATOR;
+
+    /**
      * The services, fetched when first needed.
      */
     private static volatile ReferencingServices instance;
@@ -67,8 +113,7 @@ public abstract class ReferencingService
      * in order to force a new {@code ReferencingServices} lookup if the classpath changes.
      */
     protected ReferencingServices() {
-        super(Modules.METADATA);
-        SystemListener.add(this);
+        super(Modules.METADATA, "sis-referencing");
     }
 
     /**
@@ -79,6 +124,7 @@ public abstract class ReferencingService
     @Override
     protected final void classpathChanged() {
         synchronized (ReferencingServices.class) {
+            super.classpathChanged();
             instance = null;
         }
     }
@@ -87,62 +133,38 @@ public abstract class ReferencingService
      * Returns the singleton instance.
      *
      * @return The singleton instance.
-     * @throws UnsupportedOperationException If the {@code "sis-referencing"} module has not
-     *         been found on the classpath.
      */
-    public static ReferencingServices getInstance() throws UnsupportedOperationException {
+    public static ReferencingServices getInstance() {
         ReferencingServices c = instance;
         if (c == null) {
             synchronized (ReferencingServices.class) {
                 c = instance;
-                if (c == null) try {
-                    instance = c = (ReferencingServices) Class.forName("org.apache.sis.internal.referencing.ServicesForMetadata").newInstance();
-                } catch (ClassNotFoundException exception) {
-                    throw new UnsupportedOperationException(Errors.format(
-                            Errors.Keys.MissingRequiredModule_1, "sis-referencing"), exception);
-                } catch (Exception exception) { // (ReflectiveOperationException) on JDK7 branch.
-                    // Should never happen if we didn't broke our helper class.
-                    throw new AssertionError(exception);
+                if (c == null) {
+                    /*
+                     * Double-checked locking: okay since Java 5 provided that the 'instance' field is volatile.
+                     * In the particular case of this class, the intend is to ensure that SystemListener.add(…)
+                     * is invoked only once.
+                     */
+                    c = getInstance(ReferencingServices.class, Modules.METADATA, "sis-referencing",
+                            "org.apache.sis.internal.referencing.ServicesForMetadata");
+                    if (c == null) {
+                        c = new ReferencingServices();
+                    }
+                    instance = c;
                 }
             }
         }
         return c;
     }
 
-    /**
-     * Returns a fully implemented parameter descriptor.
-     *
-     * @param  parameter A partially implemented parameter descriptor, or {@code null}.
-     * @return A fully implemented parameter descriptor, or {@code null} if the given argument was null.
-     *
-     * @since 0.5
-     */
-    public abstract ParameterDescriptor<?> toImplementation(ParameterDescriptor<?> parameter);
 
-    /**
-     * Converts the given object in a {@code FormattableObject} instance.
-     *
-     * @param  object The object to wrap.
-     * @return The given object converted to a {@code FormattableObject} instance.
-     *
-     * @see org.apache.sis.referencing.AbstractIdentifiedObject#castOrCopy(IdentifiedObject)
-     *
-     * @since 0.4
-     */
-    public abstract FormattableObject toFormattableObject(IdentifiedObject object);
 
-    /**
-     * Converts the given object in a {@code FormattableObject} instance. Callers should verify that the given
-     * object is not already an instance of {@code FormattableObject} before to invoke this method. This method
-     * returns {@code null} if it can not convert the object.
-     *
-     * @param  object The object to wrap.
-     * @param  internal {@code true} if the formatting convention is {@code Convention.INTERNAL}.
-     * @return The given object converted to a {@code FormattableObject} instance, or {@code null}.
-     *
-     * @since 0.6
-     */
-    public abstract FormattableObject toFormattableObject(MathTransform object, boolean internal);
+
+    ///////////////////////////////////////////////////////////////////////////////////////
+    ////                                                                               ////
+    ////                        SERVICES FOR ISO 19115 METADATA                        ////
+    ////                                                                               ////
+    ///////////////////////////////////////////////////////////////////////////////////////
 
     /**
      * Sets a geographic bounding box from the specified envelope.
@@ -152,10 +174,12 @@ public abstract class ReferencingService
      *
      * @param  envelope The source envelope.
      * @param  target The target bounding box.
-     * @throws TransformException If the given envelope can't be transformed.
+     * @throws TransformException if the given envelope can't be transformed.
+     * @throws UnsupportedOperationException if the {@code "sis-referencing"} module has not been found on the classpath.
      */
-    public abstract void setBounds(Envelope envelope, DefaultGeographicBoundingBox target)
-            throws TransformException;
+    public void setBounds(Envelope envelope, DefaultGeographicBoundingBox target) throws TransformException {
+        throw moduleNotFound();
+    }
 
     /**
      * Sets a vertical extent with the value inferred from the given envelope.
@@ -163,10 +187,12 @@ public abstract class ReferencingService
      *
      * @param  envelope The source envelope.
      * @param  target The target vertical extent.
-     * @throws TransformException If no vertical component can be extracted from the given envelope.
+     * @throws TransformException if no vertical component can be extracted from the given envelope.
+     * @throws UnsupportedOperationException if the {@code "sis-referencing"} module has not been found on the classpath.
      */
-    public abstract void setBounds(Envelope envelope, DefaultVerticalExtent target)
-            throws TransformException;
+    public void setBounds(Envelope envelope, DefaultVerticalExtent target) throws TransformException {
+        throw moduleNotFound();
+    }
 
     /**
      * Sets a temporal extent with the value inferred from the given envelope.
@@ -174,10 +200,12 @@ public abstract class ReferencingService
      *
      * @param  envelope The source envelope.
      * @param  target The target temporal extent.
-     * @throws TransformException If no temporal component can be extracted from the given envelope.
+     * @throws TransformException if no temporal component can be extracted from the given envelope.
+     * @throws UnsupportedOperationException if the {@code "sis-referencing"} module has not been found on the classpath.
      */
-    public abstract void setBounds(Envelope envelope, DefaultTemporalExtent target)
-            throws TransformException;
+    public void setBounds(Envelope envelope, DefaultTemporalExtent target) throws TransformException {
+        throw moduleNotFound();
+    }
 
     /**
      * Sets the geographic, vertical and temporal extents with the values inferred from the given envelope.
@@ -195,18 +223,270 @@ public abstract class ReferencingService
      *
      * @param  envelope The source envelope.
      * @param  target The target spatio-temporal extent.
-     * @throws TransformException If no temporal component can be extracted from the given envelope.
+     * @throws TransformException if no temporal component can be extracted from the given envelope.
+     * @throws UnsupportedOperationException if the {@code "sis-referencing"} module has not been found on the classpath.
      */
-    public abstract void setBounds(Envelope envelope, DefaultSpatialTemporalExtent target)
-            throws TransformException;
+    public void setBounds(Envelope envelope, DefaultSpatialTemporalExtent target) throws TransformException {
+        throw moduleNotFound();
+    }
 
     /**
-     * Initializes a horizontal, vertical and temporal extent with the values inferred from
-     * the given envelope.
+     * Initializes a horizontal, vertical and temporal extent with the values inferred from the given envelope.
      *
      * @param  envelope The source envelope.
      * @param  target The target extent.
-     * @throws TransformException If a coordinate transformation was required and failed.
+     * @throws TransformException if a coordinate transformation was required and failed.
+     * @throws UnsupportedOperationException if the {@code "sis-referencing"} module has not been found on the classpath.
+     */
+    public void addElements(Envelope envelope, DefaultExtent target) throws TransformException {
+        throw moduleNotFound();
+    }
+
+
+
+
+    ///////////////////////////////////////////////////////////////////////////////////////
+    ////                                                                               ////
+    ////                          SERVICES FOR WKT FORMATTING                          ////
+    ////                                                                               ////
+    ///////////////////////////////////////////////////////////////////////////////////////
+
+    /**
+     * Returns a fully implemented parameter descriptor.
+     *
+     * @param  parameter A partially implemented parameter descriptor, or {@code null}.
+     * @return A fully implemented parameter descriptor, or {@code null} if the given argument was null.
+     * @throws UnsupportedOperationException if the {@code "sis-referencing"} module has not been found on the classpath.
+     *
+     * @since 0.5
+     */
+    public ParameterDescriptor<?> toImplementation(ParameterDescriptor<?> parameter) {
+        throw moduleNotFound();
+    }
+
+    /**
+     * Converts the given object in a {@code FormattableObject} instance.
+     *
+     * @param  object The object to wrap.
+     * @return The given object converted to a {@code FormattableObject} instance.
+     * @throws UnsupportedOperationException if the {@code "sis-referencing"} module has not been found on the classpath.
+     *
+     * @see org.apache.sis.referencing.AbstractIdentifiedObject#castOrCopy(IdentifiedObject)
+     *
+     * @since 0.4
+     */
+    public FormattableObject toFormattableObject(IdentifiedObject object) {
+        throw moduleNotFound();
+    }
+
+    /**
+     * Converts the given object in a {@code FormattableObject} instance. Callers should verify that the given
+     * object is not already an instance of {@code FormattableObject} before to invoke this method. This method
+     * returns {@code null} if it can not convert the object.
+     *
+     * @param  object The object to wrap.
+     * @param  internal {@code true} if the formatting convention is {@code Convention.INTERNAL}.
+     * @return The given object converted to a {@code FormattableObject} instance, or {@code null}.
+     * @throws UnsupportedOperationException if the {@code "sis-referencing"} module has not been found on the classpath.
+     *
+     * @since 0.6
+     */
+    public FormattableObject toFormattableObject(MathTransform object, boolean internal) {
+        throw moduleNotFound();
+    }
+
+
+
+
+    ///////////////////////////////////////////////////////////////////////////////////////
+    ////                                                                               ////
+    ////                           SERVICES FOR WKT PARSING                            ////
+    ////                                                                               ////
+    ///////////////////////////////////////////////////////////////////////////////////////
+
+    /**
+     * Returns the Greenwich prime meridian.
+     *
+     * @return The Greenwich prime meridian.
+     *
+     * @since 0.6
+     */
+    public PrimeMeridian getGreenwich() {
+        throw moduleNotFound();
+    }
+
+    /**
+     * Returns the coordinate system of a geocentric CRS using axes in the given unit of measurement.
+     *
+     * @param  unit The unit of measurement for the geocentric CRS axes.
+     * @return The coordinate system for a geocentric CRS with axes using the given unit of measurement.
+     *
+     * @since 0.6
+     */
+    public CartesianCS getGeocentricCS(final Unit<Length> unit) {
+        throw moduleNotFound();
+    }
+
+    /**
+     * Converts a geocentric coordinate system from the legacy WKT 1 to the current ISO 19111 standard.
+     * This method replaces the (Other, East, North) directions by (Geocentric X, Geocentric Y, Geocentric Z).
+     *
+     * @param  cs The geocentric coordinate system to upgrade.
+     * @return The upgraded coordinate system, or {@code cs} if this method can not upgrade the given CS.
+     *
+     * @since 0.6
+     */
+    public CartesianCS upgradeGeocentricCS(final CartesianCS cs) {
+        return cs;
+    }
+
+    /**
+     * Creates a coordinate system of unknown type. This method is used during parsing of WKT version 1,
+     * since that legacy format did not specified any information about the coordinate system in use.
+     * This method should not need to be invoked for parsing WKT version 2.
+     *
+     * @param  axes The axes of the unknown coordinate system.
+     * @return An "abstract" coordinate system using the given axes.
+     *
+     * @since 0.6
+     */
+    public CoordinateSystem createAbstractCS(final CoordinateSystemAxis[] axes) {
+        throw moduleNotFound();
+    }
+
+    /**
+     * Creates a derived CRS from the information found in a WKT 1 {@code FITTED_CS} element.
+     * This coordinate system can not be easily constructed from the information provided by the WKT 1 format.
+     * Note that this method is needed only for WKT 1 parsing, since WKT provides enough information for using
+     * the standard factories.
+     *
+     * @param  properties    The properties to be given to the {@code DerivedCRS} and {@code Conversion} objects.
+     * @param  baseCRS       Coordinate reference system to base the derived CRS on.
+     * @param  method        The coordinate operation method (mandatory in all cases).
+     * @param  baseToDerived Transform from positions in the base CRS to positions in this target CRS.
+     * @param  derivedCS     The coordinate system for the derived CRS.
+     * @return The newly created derived CRS, potentially implementing an additional CRS interface.
+     *
+     * @since 0.6
+     */
+    public DerivedCRS createDerivedCRS(final Map<String,?>    properties,
+                                       final SingleCRS        baseCRS,
+                                       final OperationMethod  method,
+                                       final MathTransform    baseToDerived,
+                                       final CoordinateSystem derivedCS)
+    {
+        throw moduleNotFound();
+    }
+
+    /**
+     * Creates the {@code TOWGS84} element during parsing of a WKT version 1. This is an optional operation:
+     * this method is allowed to return {@code null} if the "sis-referencing" module is not in the classpath.
+     *
+     * @param  values The 7 Bursa-Wolf parameter values.
+     * @return The {@link org.apache.sis.referencing.datum.BursaWolfParameters}, or {@code null}.
+     *
+     * @since 0.6
+     */
+    public Object createToWGS84(final double[] values) {
+        return null;
+    }
+
+    /**
+     * Returns the coordinate operation factory to use for the given properties and math transform factory.
+     * If the given properties are empty and the {@code mtFactory} is the system default, then this method
+     * returns the system default {@code CoordinateOperationFactory} instead of creating a new one.
+     *
+     * @param  properties The default properties.
+     * @param  mtFactory  The math transform factory to use.
+     * @return The coordinate operation factory to use.
+     *
+     * @since 0.6
+     */
+    public CoordinateOperationFactory getCoordinateOperationFactory(Map<String,?> properties, MathTransformFactory mtFactory) {
+        /*
+         * The check for 'properties' and 'mtFactory' is performed by the ServicesForMetadata subclass. If this code is
+         * executed, this means that the "sis-referencing" module is not on the classpath, in which case we do not know
+         * how to pass the 'properties' and 'mtFactory' arguments to the foreigner CoordinateOperationFactory anyway.
+         */
+        final CoordinateOperationFactory factory = DefaultFactories.forClass(CoordinateOperationFactory.class);
+        if (factory != null) {
+            return factory;
+        } else {
+            throw moduleNotFound();
+        }
+    }
+
+    /**
+     * Returns {@code true} if the {@linkplain org.apache.sis.referencing.AbstractIdentifiedObject#getName()
+     * primary name} or an aliases of the given object matches the given name. The comparison ignores case,
+     * some Latin diacritical signs and any characters that are not letters or digits.
+     *
+     * @param  object The object for which to check the name or alias.
+     * @param  name The name to compare with the object name or aliases.
+     * @return {@code true} if the primary name of at least one alias matches the specified {@code name}.
+     *
+     * @since 0.6
+     */
+    public boolean isHeuristicMatchForName(final IdentifiedObject object, final String name) {
+        return NameToIdentifier.isHeuristicMatchForName(object.getName(), object.getAlias(), name);
+    }
+
+    /**
+     * Returns {@code true} if the name or an identifier of the given method matches the given {@code identifier}.
+     *
+     * @param  method     The method to test for a match.
+     * @param  identifier The name or identifier of the operation method to search.
+     * @return {@code true} if the given method is a match for the given identifier.
+     *
+     * @since 0.6
      */
-    public abstract void addElements(Envelope envelope, DefaultExtent target) throws TransformException;
+    private boolean matches(final OperationMethod method, final String identifier) {
+        if (isHeuristicMatchForName(method, identifier)) {
+            return true;
+        }
+        for (int s = identifier.indexOf(IDENTIFIER_SEPARATOR); s >= 0;
+                 s = identifier.indexOf(IDENTIFIER_SEPARATOR, s))
+        {
+            final String codespace = identifier.substring(0, s).trim();
+            final String code = identifier.substring(++s).trim();
+            for (final Identifier id : method.getIdentifiers()) {
+                if (codespace.equalsIgnoreCase(id.getCodeSpace()) && code.equalsIgnoreCase(id.getCode())) {
+                    return true;
+                }
+            }
+        }
+        return false;
+    }
+
+    /**
+     * Returns the operation method for the specified name or identifier. The given argument shall be either a
+     * method name (e.g. <cite>"Transverse Mercator"</cite>) or one of its identifiers (e.g. {@code "EPSG:9807"}).
+     *
+     * @param  methods The method candidates.
+     * @param  identifier The name or identifier of the operation method to search.
+     * @return The coordinate operation method for the given name or identifier, or {@code null} if none.
+     *
+     * @see org.apache.sis.referencing.operation.DefaultCoordinateOperationFactory#getOperationMethod(String)
+     * @see org.apache.sis.referencing.operation.transform.DefaultMathTransformFactory#getOperationMethod(String)
+     *
+     * @since 0.6
+     */
+    public final OperationMethod getOperationMethod(final Iterable<? extends OperationMethod> methods, final String identifier) {
+        OperationMethod fallback = null;
+        for (final OperationMethod method : methods) {
+            if (matches(method, identifier)) {
+                /*
+                 * Stop the iteration at the first non-deprecated method.
+                 * If we find only deprecated methods, take the first one.
+                 */
+                if (!(method instanceof Deprecable) || !((Deprecable) method).isDeprecated()) {
+                    return method;
+                }
+                if (fallback == null) {
+                    fallback = method;
+                }
+            }
+        }
+        return fallback;
+    }
 }

Copied: sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/ServicesForUtility.java (from r1683791, sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/ServicesForUtility.java)
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/ServicesForUtility.java?p2=sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/ServicesForUtility.java&p1=sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/ServicesForUtility.java&r1=1683791&r2=1683824&rev=1683824&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/ServicesForUtility.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/ServicesForUtility.java [UTF-8] Fri Jun  5 17:46:07 2015
@@ -89,8 +89,8 @@ public final class ServicesForUtility ex
         CharSequence     citedResponsibleParty = null;
         PresentationForm presentationForm      = null;
         Citation         copyFrom              = null;  // Copy citedResponsibleParty from that citation.
-        switch (key) {
-            case "ISO 19115-1": {
+        { // This is a switch(String) on the JDK7 branch
+            if (key.equals("ISO 19115-1")) {
                 title     = "Geographic Information — Metadata Part 1: Fundamentals";
                 edition   = "ISO 19115-1:2014(E)";
                 code      = "19115-1";
@@ -98,9 +98,7 @@ public final class ServicesForUtility ex
                 version   = "2014(E)";
                 citedResponsibleParty = "International Organization for Standardization";
                 presentationForm = PresentationForm.DOCUMENT_DIGITAL;
-                break;
-            }
-            case "ISO 19115-2": {
+            } else if (key.equals("ISO 19115-2")) {
                 title     = "Geographic Information — Metadata Part 2: Extensions for imagery and gridded data";
                 edition   = "ISO 19115-2:2009(E)";
                 code      = "19115-2";
@@ -108,16 +106,12 @@ public final class ServicesForUtility ex
                 version   = "2009(E)";
                 copyFrom  = Citations.ISO_19115.get(0);
                 presentationForm = PresentationForm.DOCUMENT_DIGITAL;
-                break;
-            }
-            case Constants.OGC: {
+            } else if (key.equals(Constants.OGC)) {
                 title     = "Identifier in OGC namespace";
                 code      = "OGC";
                 citedResponsibleParty = "Open Geospatial Consortium";
                 presentationForm = PresentationForm.DOCUMENT_DIGITAL;
-                break;
-            }
-            case Constants.EPSG: {
+            } else if (key.equals(Constants.EPSG)) {
                 title     = "EPSG Geodetic Parameter Dataset";
                 code      = Constants.EPSG;
                 codeSpace = Constants.IOGP;
@@ -127,32 +121,22 @@ public final class ServicesForUtility ex
                  * More complete information is provided as an ISO 19115 structure
                  * in EPSG Surveying and Positioning Guidance Note Number 7, part 1.
                  */
-                break;
-            }
-            case Constants.SIS: {
+            } else if (key.equals(Constants.SIS)) {
                 title = "Apache Spatial Information System";
                 code  = key;
-                break;
-            }
-            case "ISBN": {
+            } else if (key.equals("ISBN")) {
                 title = "International Standard Book Number";
                 alternateTitle = key;
-                break;
-            }
-            case "ISSN": {
+            } else if (key.equals("ISSN")) {
                 title = "International Standard Serial Number";
                 alternateTitle = key;
-                break;
-            }
-            case "Proj4": {
+            } else if (key.equals("Proj4")) {
                 title = "Proj.4";
-                break;
-            }
-            case "S57": {
+            } else if (key.equals("S57")) {
                 title = "S-57";
-                break;
+            } else {
+                return super.createCitation(key);
             }
-            default: return super.createCitation(key);
         }
         /*
          * Do not use the 'c.getFoo().add(foo)' pattern below. Use the 'c.setFoo(singleton(foo))' pattern instead.

Copied: sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Element.java (from r1683791, sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Element.java)
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Element.java?p2=sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Element.java&p1=sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Element.java&r1=1683791&r2=1683824&rev=1683824&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Element.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Element.java [UTF-8] Fri Jun  5 17:46:07 2015
@@ -37,6 +37,9 @@ import org.apache.sis.internal.util.Loca
 
 import static org.apache.sis.util.CharSequences.skipLeadingWhitespaces;
 
+// Branch-specific imports
+import org.apache.sis.internal.jdk7.JDK7;
+
 
 /**
  * An element in a <cite>Well Know Text</cite> (WKT). An {@code Element} is made of {@link String},
@@ -102,7 +105,7 @@ final class Element {
         offset  = 0;
         keyword = null;
         locale  = singleton.locale;
-        list    = new LinkedList<>();   // Needs to be a modifiable list.
+        list    = new LinkedList<Object>();   // Needs to be a modifiable list.
         list.add(singleton);
     }
 
@@ -163,7 +166,7 @@ final class Element {
          *   - Otherwise, if the characters are "true" of "false" (ignoring case), then the value is returned as a boolean.
          *   - Otherwise, the element is parsed as a number or as a date, depending of 'isTemporal' boolean value.
          */
-        list = new LinkedList<>();
+        list = new LinkedList<Object>();
         final String separator = parser.symbols.trimmedSeparator();
         while (lower < length) {
             final int firstChar = text.codePointAt(lower);
@@ -592,7 +595,7 @@ final class Element {
     @Override
     public String toString() {
         final StringBuilder buffer = new StringBuilder();
-        format(buffer, 0, System.lineSeparator());
+        format(buffer, 0, JDK7.lineSeparator());
         return buffer.toString();
     }
 

Copied: sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/GeodeticObjectParser.java (from r1683791, sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/GeodeticObjectParser.java)
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/GeodeticObjectParser.java?p2=sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/GeodeticObjectParser.java&p1=sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/GeodeticObjectParser.java&r1=1683791&r2=1683824&rev=1683824&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/GeodeticObjectParser.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/GeodeticObjectParser.java [UTF-8] Fri Jun  5 17:46:07 2015
@@ -148,7 +148,7 @@ final class GeodeticObjectParser extends
      * A map of properties to be given the factory constructor methods.
      * This map will be recycled for each object to be parsed.
      */
-    private final Map<String,Object> properties = new HashMap<>(4);
+    private final Map<String,Object> properties = new HashMap<String,Object>(4);
 
     /**
      * Creates a parser using the default set of symbols and factories.
@@ -187,13 +187,6 @@ final class GeodeticObjectParser extends
     /**
      * Constructs a parser for the specified set of symbols using the specified set of factories.
      *
-     * This constructor is for internal usage by Apache SIS only — <b>do not use!</b>
-     *
-     * <p><b>Maintenance note:</b> this constructor is invoked through reflection by
-     * {@link WKTFormat#parse(CharSequence, ParsePosition)} because of modularization.
-     * Do not change the method signature even if it doesn't break the compilation,
-     * unless the reflection code is also updated.</p>
-     *
      * @param symbols       The set of symbols to use.
      * @param convention    The WKT convention to use.
      * @param isAxisIgnored {@code true} if {@code AXIS} elements should be ignored.
@@ -670,7 +663,7 @@ final class GeodeticObjectParser extends
         final EngineeringDatum datum      = parseLocalDatum(element);
         final Unit<Length>     linearUnit = parseUnit(element, SI.METRE);
         CoordinateSystemAxis   axis       = parseAxis(element, linearUnit, true);
-        final List<CoordinateSystemAxis> list = new ArrayList<>();
+        final List<CoordinateSystemAxis> list = new ArrayList<CoordinateSystemAxis>();
         do {
             list.add(axis);
             axis = parseAxis(element, linearUnit, false);
@@ -871,7 +864,7 @@ final class GeodeticObjectParser extends
      * @throws ParseException if the {@code "COMPD_CS"} element can not be parsed.
      */
     private CompoundCRS parseCompdCS(final Element parent) throws ParseException {
-        final List<CoordinateReferenceSystem> components = new ArrayList<>(4);
+        final List<CoordinateReferenceSystem> components = new ArrayList<CoordinateReferenceSystem>(4);
         final Element element = parent.pullElement(WKTKeywords.Compd_CS);
         final String  name    = element.pullString("name");
         CoordinateReferenceSystem crs;
@@ -933,7 +926,9 @@ final class GeodeticObjectParser extends
              */
             properties.put("conversion.name", name);
             return referencing.createDerivedCRS(properties, (SingleCRS) baseCRS, method, toBase.inverse(), derivedCS);
-        } catch (FactoryException | NoninvertibleTransformException exception) {
+        } catch (FactoryException exception) {
+            throw element.parseFailed(exception);
+        } catch (NoninvertibleTransformException exception) {
             throw element.parseFailed(exception);
         }
     }

Copied: sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Parser.java (from r1683791, sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Parser.java)
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Parser.java?p2=sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Parser.java&p1=sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Parser.java&r1=1683791&r2=1683824&rev=1683824&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Parser.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Parser.java [UTF-8] Fri Jun  5 17:46:07 2015
@@ -33,6 +33,10 @@ import org.apache.sis.internal.metadata.
 
 import static org.apache.sis.util.ArgumentChecks.ensureNonNull;
 
+// Branch-specific imports
+import java.util.Calendar;
+import java.util.TimeZone;
+
 
 /**
  * Parses <cite>Well Known Text</cite> (WKT). Parsers are the converse of {@link Formatter}.
@@ -120,7 +124,7 @@ abstract class Parser implements WKTPars
         } else {
             exponentSymbol = null;
         }
-        ignoredElements = new LinkedHashMap<>();
+        ignoredElements = new LinkedHashMap<String, List<String>>();
     }
 
     /**
@@ -202,6 +206,37 @@ abstract class Parser implements WKTPars
         if (dateFormat == null) {
             dateFormat = new SimpleDateFormat(WKTFormat.DATE_PATTERN, symbols.getLocale());
         }
-        return dateFormat.parse(text, position);
+        /*
+         * Following is a workaround specific to the JDK6 branch. Since JDK6 does not understand the 'Z' suffix,
+         * we handle it in this method. The Apache SIS branch for JDK7 does not need this hack since JDK7 supports
+         * parsing the 'Z' suffix.
+         */
+        final Date date = dateFormat.parse(text, position);
+        if (date != null) {
+            final int p = position.getIndex();
+            if (p < text.length() && text.charAt(p) == 'Z') {
+                position.setIndex(p + 1);
+                final Calendar cal = dateFormat.getCalendar();
+                final int year   = cal.get(Calendar.YEAR);
+                final int month  = cal.get(Calendar.MONTH);
+                final int day    = cal.get(Calendar.DAY_OF_MONTH);
+                final int hour   = cal.get(Calendar.HOUR_OF_DAY);
+                final int minute = cal.get(Calendar.MINUTE);
+                final int second = cal.get(Calendar.SECOND);
+                final int millis = cal.get(Calendar.MILLISECOND);
+                final TimeZone timezone = cal.getTimeZone();
+                final long time;
+                try {
+                    cal.setTimeZone(TimeZone.getTimeZone("UTC"));
+                    cal.set(year, month, day, hour, minute, second);
+                    cal.set(Calendar.MILLISECOND, millis);
+                    time = cal.getTimeInMillis();
+                } finally {
+                    cal.setTimeZone(timezone);
+                }
+                date.setTime(time);
+            }
+        }
+        return date;
     }
 }

Modified: sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Symbols.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Symbols.java?rev=1683824&r1=1683823&r2=1683824&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Symbols.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Symbols.java [UTF-8] Fri Jun  5 17:46:07 2015
@@ -69,7 +69,7 @@ import org.apache.sis.internal.jdk7.JDK7
  *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @since   0.4
- * @version 0.4
+ * @version 0.6
  * @module
  *
  * @see WKTFormat#getSymbols()
@@ -167,6 +167,11 @@ public class Symbols implements Localize
     private String separator;
 
     /**
+     * Same value than {@link #separator} but without leading and trailing spaces.
+     */
+    private transient String trimmedSeparator;
+
+    /**
      * {@code true} if this instance shall be considered as immutable.
      */
     private boolean isImmutable;
@@ -178,13 +183,14 @@ public class Symbols implements Localize
      */
     public Symbols(final Symbols symbols) {
         ensureNonNull("symbols", symbols);
-        locale        = symbols.locale;
-        brackets      = symbols.brackets;
-        quotes        = symbols.quotes;
-        quote         = symbols.quote;
-        openSequence  = symbols.openSequence;
-        closeSequence = symbols.closeSequence;
-        separator     = symbols.separator;
+        locale           = symbols.locale;
+        brackets         = symbols.brackets;
+        quotes           = symbols.quotes;
+        quote            = symbols.quote;
+        openSequence     = symbols.openSequence;
+        closeSequence    = symbols.closeSequence;
+        separator        = symbols.separator;
+        trimmedSeparator = symbols.trimmedSeparator;
     }
 
     /**
@@ -192,14 +198,15 @@ public class Symbols implements Localize
      * The given array is stored by reference - it is not cloned.
      */
     private Symbols(final int[] brackets, final int[] quotes) {
-        this.locale        = Locale.ROOT;
-        this.brackets      = brackets;
-        this.quotes        = quotes;
-        this.quote         = "\"";
-        this.openSequence  = '{';
-        this.closeSequence = '}';
-        this.separator     = ", ";
-        this.isImmutable   = true;
+        this.locale           = Locale.ROOT;
+        this.brackets         = brackets;
+        this.quotes           = quotes;
+        this.quote            = "\"";
+        this.openSequence     = '{';
+        this.closeSequence    = '}';
+        this.separator        = ", ";
+        this.trimmedSeparator = ",";
+        this.isImmutable      = true;
     }
 
     /**
@@ -254,19 +261,26 @@ public class Symbols implements Localize
     }
 
     /**
-     * If the given character is an opening bracket, returns the matching closing bracket.
-     * Otherwise returns -1.
+     * Implementation of {@link #matchingBracket(int)} and {@link #matchingQuote(int)}.
      */
-    final int matchingBracket(final int c) {
-        for (int i=0; i<brackets.length; i+=2) {
-            if (brackets[i] == c) {
-                return brackets[i+1];
+    private static int matching(final int[] chars, final int c) {
+        for (int i = 0; i < chars.length; i += 2) {
+            if (chars[i] == c) {
+                return chars[i + 1];
             }
         }
         return -1;
     }
 
     /**
+     * If the given character is an opening bracket, returns the matching closing bracket.
+     * Otherwise returns -1.
+     */
+    final int matchingBracket(final int c) {
+        return matching(brackets, c);
+    }
+
+    /**
      * Returns the number of paired brackets. For example if the WKT parser accepts both the
      * {@code […]} and {@code (…)} bracket pairs, then this method returns 2.
      *
@@ -327,6 +341,14 @@ public class Symbols implements Localize
     }
 
     /**
+     * If the given character is an opening quote, returns the matching closing quote.
+     * Otherwise returns -1.
+     */
+    final int matchingQuote(final int c) {
+        return matching(quotes, c);
+    }
+
+    /**
      * Returns the number of paired quotes. For example if the WKT parser accepts both the
      * {@code "…"} and {@code “…”} quote pairs, then this method returns 2.
      *
@@ -476,8 +498,17 @@ public class Symbols implements Localize
      */
     public void setSeparator(final String separator) {
         checkWritePermission();
-        ensureNonEmpty("separator", separator);
+        final String s = CharSequences.trimWhitespaces(separator.trim());
+        ensureNonEmpty("separator", s);
         this.separator = separator;
+        trimmedSeparator = s;
+    }
+
+    /**
+     * Returns the separator without trailing spaces.
+     */
+    final String trimmedSeparator() {
+        return trimmedSeparator;
     }
 
     /**
@@ -691,6 +722,7 @@ public class Symbols implements Localize
             if (equals(CURLY_BRACKETS))  return CURLY_BRACKETS;
         }
         quote = String.valueOf(Character.toChars(quotes[1]));
+        trimmedSeparator = CharSequences.trimWhitespaces(separator.trim());
         return this;
     }
 }

Modified: sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/WKTFormat.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/WKTFormat.java?rev=1683824&r1=1683823&r2=1683824&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/WKTFormat.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/WKTFormat.java [UTF-8] Fri Jun  5 17:46:07 2015
@@ -19,14 +19,18 @@ package org.apache.sis.io.wkt;
 import java.util.Date;
 import java.util.Locale;
 import java.util.TimeZone;
+import java.util.Map;
+import java.util.HashMap;
 import java.io.IOException;
 import java.text.Format;
 import java.text.NumberFormat;
 import java.text.DateFormat;
 import java.text.SimpleDateFormat;
 import java.text.ParsePosition;
+import java.text.ParseException;
 import javax.measure.unit.Unit;
 import javax.measure.unit.UnitFormat;
+import org.opengis.util.Factory;
 import org.opengis.metadata.citation.Citation;
 import org.opengis.referencing.IdentifiedObject;
 import org.apache.sis.io.CompoundFormat;
@@ -176,6 +180,16 @@ public class WKTFormat extends CompoundF
     private transient Formatter formatter;
 
     /**
+     * The parser. Will be created when first needed.
+     */
+    private transient Parser parser;
+
+    /**
+     * The factories needed by the parser. Will be created when first needed.
+     */
+    private transient Map<Class<?>,Factory> factories;
+
+    /**
      * Creates a format for the given locale and timezone. The given locale will be used for
      * {@link org.opengis.util.InternationalString} localization; this is <strong>not</strong>
      * the locale for number format.
@@ -210,6 +224,7 @@ public class WKTFormat extends CompoundF
         if (!symbols.equals(this.symbols)) {
             this.symbols = symbols.immutable();
             formatter = null;
+            parser = null;
         }
     }
 
@@ -354,6 +369,7 @@ public class WKTFormat extends CompoundF
         ArgumentChecks.ensureNonNull("convention", convention);
         this.convention = convention;
         updateFormatter(formatter);
+        parser = null;
     }
 
     /**
@@ -456,15 +472,23 @@ public class WKTFormat extends CompoundF
     }
 
     /**
-     * Not yet supported.
+     * Creates an object from the given character sequence.
+     * The parsing begins at the index given by the {@code pos} argument.
      *
-     * @param  text The text to parse.
-     * @param  position The index of the first character to parse.
-     * @return The parsed object, or {@code null} in case of failure.
+     * @param  text The character sequence for the object to parse.
+     * @param  pos  The position where to start the parsing.
+     * @return The parsed object.
+     * @throws ParseException If an error occurred while parsing the object.
      */
     @Override
-    public Object parse(final CharSequence text, final ParsePosition position) {
-        throw new UnsupportedOperationException("Not supported yet.");
+    public Object parse(final CharSequence text, final ParsePosition pos) throws ParseException {
+        if (parser == null) {
+            if (factories == null) {
+                factories = new HashMap<Class<?>,Factory>();
+            }
+            parser = new GeodeticObjectParser(symbols, convention, false, getLocale(), factories);
+        }
+        return parser.parseObject(text.toString(), pos);
     }
 
     /**

Modified: sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/AbstractMetadata.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/AbstractMetadata.java?rev=1683824&r1=1683823&r2=1683824&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/AbstractMetadata.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/AbstractMetadata.java [UTF-8] Fri Jun  5 17:46:07 2015
@@ -82,8 +82,15 @@ import org.apache.sis.util.logging.Loggi
 public abstract class AbstractMetadata implements LenientComparable, Emptiable {
     /**
      * The logger for messages related to metadata implementations.
+     *
+     * Note that another logger is provided with public access in the {@code iso} sub-package:
+     * {@link org.apache.sis.metadata.iso.ISOMetadata#LOGGER}. This {@code LOGGER} instance is
+     * kept package-privated for avoiding confusion (other sub-packages like {@code sql} should
+     * create their own logger). This logger is declared in a static field because otherwise,
+     * any configuration done by the user may be lost when the garbage-collector collects the
+     * logger.
      */
-    protected static final Logger LOGGER = Logging.getLogger(AbstractMetadata.class);
+    static final Logger LOGGER = Logging.getLogger(AbstractMetadata.class);
 
     /**
      * Creates an initially empty metadata.

Modified: sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/PropertyInformation.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/PropertyInformation.java?rev=1683824&r1=1683823&r2=1683824&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/PropertyInformation.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/PropertyInformation.java [UTF-8] Fri Jun  5 17:46:07 2015
@@ -128,7 +128,7 @@ final class PropertyInformation<E> exten
     PropertyInformation(final Citation standard, final String property, final Method getter,
             final Class<E> elementType, final ValueRange range)
     {
-        super(standard, property);
+        super(standard, property, getter.isAnnotationPresent(Deprecated.class));
         parent = getter.getDeclaringClass();
         this.elementType = elementType;
         final UML uml = getter.getAnnotation(UML.class);

Modified: sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultIdentifier.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultIdentifier.java?rev=1683824&r1=1683823&r2=1683824&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultIdentifier.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultIdentifier.java [UTF-8] Fri Jun  5 17:46:07 2015
@@ -301,7 +301,7 @@ public class DefaultIdentifier extends I
 
     /**
      * Sets the organization or party responsible for definition and maintenance of the
-     * {@linkplain #getCode code}.
+     * {@linkplain #getCode() code}.
      *
      * @param newValue The new authority.
      */

Modified: sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultMetadata.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultMetadata.java?rev=1683824&r1=1683823&r2=1683824&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultMetadata.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultMetadata.java [UTF-8] Fri Jun  5 17:46:07 2015
@@ -877,6 +877,8 @@ public class DefaultMetadata extends ISO
 
     /**
      * Returns the citation(s) for the standard(s) to which the metadata conform.
+     * The collection returned by this method typically contains elements from the
+     * {@link org.apache.sis.metadata.iso.citation.Citations#ISO_19115} list.
      *
      * @return The standard(s) to which the metadata conform.
      *

Modified: sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/ImmutableIdentifier.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/ImmutableIdentifier.java?rev=1683824&r1=1683823&r2=1683824&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/ImmutableIdentifier.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/ImmutableIdentifier.java [UTF-8] Fri Jun  5 17:46:07 2015
@@ -420,12 +420,8 @@ public class ImmutableIdentifier extends
 
     /**
      * Organization or party responsible for definition and maintenance of the {@linkplain #getCode() code}.
-     * The organization's abbreviation is often the same than this identifier {@linkplain #getCodeSpace()
-     * code space}, but not necessarily.
-     *
-     * <div class="note"><b>Example:</b> Coordinate Reference System (CRS) identified by an EPSG code will return
-     * contact information for the <cite>International Association of Oil &amp; Gas producers</cite> (IOGP), since
-     * IOGP is the organization maintaining the EPSG geodetic database.</div>
+     * The organization's abbreviation is often the same than this identifier {@linkplain #getCodeSpace() code space},
+     * but not necessarily.
      *
      * @return The authority, or {@code null} if not available.
      */



Mime
View raw message