sis-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From desruisse...@apache.org
Subject svn commit: r1773010 [1/8] - in /sis/branches/JDK7: ./ application/sis-console/src/main/artifact/ application/sis-openoffice/src/main/unopkg/ core/sis-build-helper/src/main/javadoc/ core/sis-feature/src/main/java/org/apache/sis/feature/ core/sis-featur...
Date Wed, 07 Dec 2016 04:14:47 GMT
Author: desruisseaux
Date: Wed Dec  7 04:14:44 2016
New Revision: 1773010

URL: http://svn.apache.org/viewvc?rev=1773010&view=rev
Log:
Merge the GeoTIFF and other work from JDK8 branch.

Added:
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/sql/SQLBuilder.java
      - copied unchanged from r1773005, sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/sql/SQLBuilder.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/sql/TypeMapper.java
      - copied unchanged from r1773005, sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/sql/TypeMapper.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/sql/
      - copied from r1773005, sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/sql/
    sis/branches/JDK7/core/sis-metadata/src/main/resources/org/
      - copied from r1773005, sis/branches/JDK8/core/sis-metadata/src/main/resources/org/
    sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/internal/metadata/sql/ScriptRunnerTest.java
      - copied unchanged from r1773005, sis/branches/JDK8/core/sis-metadata/src/test/java/org/apache/sis/internal/metadata/sql/ScriptRunnerTest.java
    sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/internal/metadata/sql/TypeMapperTest.java
      - copied unchanged from r1773005, sis/branches/JDK8/core/sis-metadata/src/test/java/org/apache/sis/internal/metadata/sql/TypeMapperTest.java
    sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/metadata/sql/
      - copied from r1773005, sis/branches/JDK8/core/sis-metadata/src/test/java/org/apache/sis/metadata/sql/
    sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/Codes.java
      - copied, changed from r1773005, sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/Codes.java
    sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/CodesTest.java
      - copied unchanged from r1773005, sis/branches/JDK8/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/CodesTest.java
    sis/branches/JDK7/ide-project/NetBeans/nbproject/build-impl.xml~
      - copied, changed from r1773005, sis/branches/JDK7/ide-project/NetBeans/nbproject/build-impl.xml
    sis/branches/JDK7/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/CRSBuilder.java
      - copied, changed from r1773005, sis/branches/JDK8/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/CRSBuilder.java
    sis/branches/JDK7/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/GeoCodes.java
      - copied unchanged from r1773005, sis/branches/JDK8/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/GeoCodes.java
    sis/branches/JDK7/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/GeoKeys.java
      - copied, changed from r1769011, sis/branches/JDK8/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/GeoKeys.java
    sis/branches/JDK7/storage/sis-geotiff/src/test/java/org/apache/sis/storage/geotiff/CRSBuilderTest.java
      - copied unchanged from r1773005, sis/branches/JDK8/storage/sis-geotiff/src/test/java/org/apache/sis/storage/geotiff/CRSBuilderTest.java
    sis/branches/JDK7/storage/sis-geotiff/src/test/java/org/apache/sis/storage/geotiff/GeoIdentifiers.java
      - copied, changed from r1773005, sis/branches/JDK8/storage/sis-geotiff/src/test/java/org/apache/sis/storage/geotiff/GeoIdentifiers.java
    sis/branches/JDK7/storage/sis-geotiff/src/test/java/org/apache/sis/storage/geotiff/GeoKeysTest.java
      - copied unchanged from r1773005, sis/branches/JDK8/storage/sis-geotiff/src/test/java/org/apache/sis/storage/geotiff/GeoKeysTest.java
Modified:
    sis/branches/JDK7/   (props changed)
    sis/branches/JDK7/application/sis-console/src/main/artifact/LICENSE   (props changed)
    sis/branches/JDK7/application/sis-console/src/main/artifact/NOTICE   (props changed)
    sis/branches/JDK7/application/sis-openoffice/src/main/unopkg/build-instruction.html   (props changed)
    sis/branches/JDK7/core/sis-build-helper/src/main/javadoc/overview.html   (props changed)
    sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractAssociation.java
    sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractAttribute.java
    sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractIdentifiedType.java
    sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractOperation.java
    sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/CharacteristicTypeMap.java
    sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/DefaultAssociationRole.java
    sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/DefaultAttributeType.java
    sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/DefaultFeatureType.java
    sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/FeatureFormat.java
    sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/Field.java
    sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/FieldType.java
    sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/PropertyView.java
    sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/builder/AssociationRoleBuilder.java
    sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/builder/AttributeTypeBuilder.java
    sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/builder/CharacteristicTypeBuilder.java
    sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/builder/FeatureTypeBuilder.java
    sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/builder/OperationWrapper.java
    sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/builder/TypeBuilder.java
    sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/internal/feature/AttributeConvention.java
    sis/branches/JDK7/core/sis-feature/src/test/java/org/apache/sis/feature/CharacteristicTypeMapTest.java
    sis/branches/JDK7/core/sis-feature/src/test/java/org/apache/sis/feature/FeatureFormatTest.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/sql/ScriptRunner.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Convention.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Formatter.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/Cloner.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/DefaultFormat.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/DefaultAggregateInformation.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/lineage/DefaultSource.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGridSpatialRepresentation.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/sql/MetadataSource.java
    sis/branches/JDK7/core/sis-metadata/src/main/javadoc/overview.html   (props changed)
    sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/internal/metadata/sql/TestDatabase.java
    sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/test/suite/MetadataTestSuite.java
    sis/branches/JDK7/core/sis-referencing/pom.xml
    sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/geometry/GeneralEnvelope.java
    sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CC_GeneralOperationParameter.java
    sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/CoordinateOperations.java
    sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/MergedProperties.java
    sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/ReferencingUtilities.java
    sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/ServicesForMetadata.java
    sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Equirectangular.java
    sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/LambertConformal2SP.java
    sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/MapProjection.java
    sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Mercator1SP.java
    sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Mercator2SP.java
    sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/PolarStereographicA.java
    sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/PolarStereographicB.java
    sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Providers.java
    sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/RegionalMercator.java
    sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/parameter/ParameterFormat.java
    sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/parameter/Verifier.java
    sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/AbstractIdentifiedObject.java
    sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/AuthorityFactories.java
    sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/Builder.java
    sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/CRS.java
    sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/CommonCRS.java
    sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultGeographicCRS.java
    sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/CoordinateSystems.java
    sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/ConcurrentAuthorityFactory.java
    sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/GeodeticAuthorityFactory.java
    sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/IdentifiedObjectFinder.java
    sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/MultiAuthoritiesFactory.java
    sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/UnavailableFactoryException.java
    sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/sql/EPSGDataAccess.java
    sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/sql/EPSGInstaller.java
    sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/sql/InstallationScriptProvider.java
    sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/AbstractCoordinateOperation.java
    sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/AbstractSingleOperation.java
    sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/CoordinateOperationFinder.java
    sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/CoordinateOperationRegistry.java
    sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultConcatenatedOperation.java
    sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultConversion.java
    sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultOperationMethod.java
    sis/branches/JDK7/core/sis-referencing/src/main/javadoc/overview.html   (props changed)
    sis/branches/JDK7/core/sis-referencing/src/main/resources/org/apache/sis/referencing/factory/sql/EPSG_Finish.sql
    sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/parameter/ParameterFormatTest.java
    sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/referencing/EPSGFactoryFallbackTest.java
    sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/referencing/GeodeticObjectVerifier.java
    sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/DefaultProjectedCRSTest.java
    sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/DefaultCartesianCSTest.java
    sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/referencing/factory/GIGS2001.java
    sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/referencing/factory/GIGS2002.java
    sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/referencing/factory/GIGS2003.java
    sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/referencing/factory/GIGS2004.java
    sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/referencing/factory/GIGS2005.java
    sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/referencing/factory/GIGS2006.java
    sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/referencing/factory/GIGS2007.java
    sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/referencing/factory/GIGS2008.java
    sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/referencing/factory/GIGS2009.java
    sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/referencing/factory/sql/EPSGDataFormatter.java
    sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/referencing/factory/sql/EPSGFactoryTest.java
    sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/referencing/factory/sql/EPSGInstallerTest.java
    sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/DefaultTransformationTest.java
    sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/ConformalProjectionTest.java
    sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/EquirectangularTest.java
    sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/LambertConicConformalTest.java
    sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/MercatorTest.java
    sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/transform/MathTransformTestCase.java
    sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/test/integration/MetadataTest.java
    sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/test/suite/ReferencingTestSuite.java
    sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/gco/ObjectIdentification.html   (props changed)
    sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/internal/jdk8/JDK8.java
    sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/internal/simple/SimpleIdentifiedObject.java
    sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/internal/simple/SimpleMetadata.java   (props changed)
    sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/internal/system/DefaultFactories.java
    sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/internal/system/DelayedExecutor.java
    sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/internal/system/DelayedRunnable.java
    sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/internal/system/Semaphores.java
    sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/internal/system/Threads.java
    sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/internal/util/Constants.java
    sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/internal/util/EmptySortedSet.java
    sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/internal/util/LazySet.java
    sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/internal/util/LazySynchronizedIterator.java
    sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/math/Fraction.java
    sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/measure/ConventionalUnit.java
    sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/measure/RangeFormat.java
    sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/measure/SystemUnit.java
    sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/measure/UnitFormat.java
    sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/measure/Units.java
    sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/Classes.java
    sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/Deprecable.java
    sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/Utilities.java
    sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/collection/BackingStoreException.java
    sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/iso/Types.java
    sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/logging/WarningListeners.java
    sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.java
    sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.properties
    sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors_fr.properties
    sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary.java
    sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary.properties
    sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary_fr.properties
    sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/xml/MarshallerPool.java
    sis/branches/JDK7/core/sis-utility/src/main/javadoc/overview.html   (props changed)
    sis/branches/JDK7/core/sis-utility/src/main/resources/org/apache/sis/measure/UnitNames.properties
    sis/branches/JDK7/core/sis-utility/src/main/resources/org/apache/sis/measure/UnitNames_fr.properties
    sis/branches/JDK7/core/sis-utility/src/test/java/org/apache/sis/measure/RangeFormatTest.java
    sis/branches/JDK7/core/sis-utility/src/test/java/org/apache/sis/measure/UnitFormatTest.java
    sis/branches/JDK7/core/sis-utility/src/test/java/org/apache/sis/test/Assert.java
    sis/branches/JDK7/core/sis-utility/src/test/java/org/apache/sis/util/LocalesTest.java
    sis/branches/JDK7/ide-project/NetBeans/build.xml
    sis/branches/JDK7/ide-project/NetBeans/nbproject/build-impl.xml
    sis/branches/JDK7/ide-project/NetBeans/nbproject/genfiles.properties
    sis/branches/JDK7/ide-project/NetBeans/nbproject/project.properties
    sis/branches/JDK7/pom.xml
    sis/branches/JDK7/src/main/javadoc/overview.html   (props changed)
    sis/branches/JDK7/storage/sis-earth-observation/src/main/java/org/apache/sis/storage/earthobservation/LandsatReader.java
    sis/branches/JDK7/storage/sis-earth-observation/src/main/java/org/apache/sis/storage/earthobservation/doc-files/LandsatMetadata.html   (props changed)
    sis/branches/JDK7/storage/sis-earth-observation/src/test/java/org/apache/sis/storage/earthobservation/LandsatReaderTest.java
    sis/branches/JDK7/storage/sis-geotiff/src/main/java/org/apache/sis/internal/geotiff/Resources.java
    sis/branches/JDK7/storage/sis-geotiff/src/main/java/org/apache/sis/internal/geotiff/Resources.properties
    sis/branches/JDK7/storage/sis-geotiff/src/main/java/org/apache/sis/internal/geotiff/Resources_fr.properties
    sis/branches/JDK7/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/DeferredEntry.java
    sis/branches/JDK7/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/GeoTIFF.java
    sis/branches/JDK7/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/GeoTiffStore.java
    sis/branches/JDK7/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/ImageFileDirectory.java
    sis/branches/JDK7/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/Reader.java
    sis/branches/JDK7/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/Tags.java
    sis/branches/JDK7/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/Type.java
    sis/branches/JDK7/storage/sis-geotiff/src/test/java/org/apache/sis/test/suite/GeoTiffTestSuite.java
    sis/branches/JDK7/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/Variable.java
    sis/branches/JDK7/storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/MetadataReader.java
    sis/branches/JDK7/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/MetadataBuilder.java
    sis/branches/JDK7/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/Resources.java
    sis/branches/JDK7/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/Resources.properties
    sis/branches/JDK7/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/Resources_fr.properties
    sis/branches/JDK7/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/csv/Store.java
    sis/branches/JDK7/storage/sis-storage/src/test/java/org/apache/sis/internal/storage/MetadataBuilderTest.java

Propchange: sis/branches/JDK7/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Dec  7 04:14:44 2016
@@ -1,4 +1,4 @@
 /sis/branches/Android:1430670-1480699
 /sis/branches/JDK6:1394913-1508480
-/sis/branches/JDK8:1584960-1768733,1769012
+/sis/branches/JDK8:1584960-1773005
 /sis/trunk:1394364-1508466,1519089-1519674

Propchange: sis/branches/JDK7/application/sis-console/src/main/artifact/LICENSE
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sis/branches/JDK7/application/sis-console/src/main/artifact/LICENSE
------------------------------------------------------------------------------
    svn:mime-type = text/plain;charset=UTF-8

Propchange: sis/branches/JDK7/application/sis-console/src/main/artifact/NOTICE
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sis/branches/JDK7/application/sis-console/src/main/artifact/NOTICE
------------------------------------------------------------------------------
    svn:mime-type = text/plain;charset=UTF-8

Propchange: sis/branches/JDK7/application/sis-openoffice/src/main/unopkg/build-instruction.html
------------------------------------------------------------------------------
--- svn:mime-type (original)
+++ svn:mime-type Wed Dec  7 04:14:44 2016
@@ -1 +1 @@
-text/html
+text/html;charset=UTF-8

Propchange: sis/branches/JDK7/core/sis-build-helper/src/main/javadoc/overview.html
------------------------------------------------------------------------------
--- svn:mime-type (original)
+++ svn:mime-type Wed Dec  7 04:14:44 2016
@@ -1 +1 @@
-text/html
+text/html;charset=UTF-8

Modified: sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractAssociation.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractAssociation.java?rev=1773010&r1=1773009&r2=1773010&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractAssociation.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractAssociation.java [UTF-8] Wed Dec  7 04:14:44 2016
@@ -49,7 +49,7 @@ import org.opengis.feature.MultiValuedPr
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.5
- * @version 0.6
+ * @version 0.8
  * @module
  *
  * @see AbstractFeature
@@ -229,7 +229,7 @@ public abstract class AbstractAssociatio
     public String toString() {
         final String pt = DefaultAssociationRole.getTitleProperty(role);
         final Iterator<Feature> it = getValues().iterator();
-        return FieldType.toString("FeatureAssociation", role.getName(),
+        return FieldType.toString(isDeprecated(role), "FeatureAssociation", role.getName(),
                 DefaultAssociationRole.getValueTypeName(role), new Iterator<Object>()
         {
             @Override public boolean hasNext() {

Modified: sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractAttribute.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractAttribute.java?rev=1773010&r1=1773009&r2=1773010&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractAttribute.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractAttribute.java [UTF-8] Wed Dec  7 04:14:44 2016
@@ -69,7 +69,7 @@ import org.opengis.feature.MultiValuedPr
  * @author  Johann Sorel (Geomatys)
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.5
- * @version 0.6
+ * @version 0.8
  * @module
  *
  * @see AbstractFeature
@@ -464,7 +464,7 @@ public abstract class AbstractAttribute<
     @Debug
     @Override
     public String toString() {
-        final StringBuilder buffer = FieldType.toString("Attribute", type.getName(),
+        final StringBuilder buffer = FieldType.toString(isDeprecated(type), "Attribute", type.getName(),
                 Classes.getShortName(type.getValueClass()), getValues().iterator());
         if (characteristics != null && !characteristics.isEmpty()) {
             buffer.append(System.lineSeparator());

Modified: sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractIdentifiedType.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractIdentifiedType.java?rev=1773010&r1=1773009&r2=1773010&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractIdentifiedType.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractIdentifiedType.java [UTF-8] Wed Dec  7 04:14:44 2016
@@ -18,18 +18,19 @@ package org.apache.sis.feature;
 
 import java.util.Map;
 import java.util.Locale;
+import java.util.Objects;
 import java.io.Serializable;
 import org.opengis.util.NameFactory;
 import org.opengis.util.GenericName;
 import org.opengis.util.InternationalString;
 import org.apache.sis.internal.system.DefaultFactories;
 import org.apache.sis.util.resources.Errors;
+import org.apache.sis.util.Deprecable;
 import org.apache.sis.util.iso.Types;
 
 import static org.apache.sis.util.ArgumentChecks.ensureNonNull;
 
 // Branch-dependent imports
-import java.util.Objects;
 import org.opengis.feature.IdentifiedType;
 
 
@@ -38,10 +39,10 @@ import org.opengis.feature.IdentifiedTyp
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.5
- * @version 0.6
+ * @version 0.8
  * @module
  */
-public class AbstractIdentifiedType implements IdentifiedType, Serializable {
+public class AbstractIdentifiedType implements IdentifiedType, Deprecable, Serializable {
     /**
      * For cross-version compatibility.
      */
@@ -80,6 +81,19 @@ public class AbstractIdentifiedType impl
     public static final String DESCRIPTION_KEY = "description";
 
     /**
+     * Key for the <code>{@value}</code> property to be given to the constructor.
+     * This is used for setting the value to be returned by {@link #isDeprecated()}.
+     *
+     * <p>If this property is set to {@code true}, then the value associated to {@link #DESCRIPTION_KEY}
+     * should give the replacement (e.g. <cite>"superceded by …"</cite>).</p>
+     *
+     * @see #isDeprecated()
+     *
+     * @since 0.8
+     */
+    public static final String DEPRECATED_KEY = "deprecated";
+
+    /**
      * The name of this type.
      *
      * @see #getName()
@@ -114,6 +128,14 @@ public class AbstractIdentifiedType impl
     private final InternationalString description;
 
     /**
+     * {@code true} if this type is deprecated.
+     *
+     * @see #isDeprecated()
+     * @see #DEPRECATED_KEY
+     */
+    final boolean deprecated;
+
+    /**
      * Constructs a type from the given properties. Keys are strings from the table below.
      * The map given in argument shall contain an entry at least for the {@value #NAME_KEY}.
      * Other entries listed in the table below are optional.
@@ -144,6 +166,10 @@ public class AbstractIdentifiedType impl
      *     <td>{@value #DESCRIPTION_KEY}</td>
      *     <td>{@link InternationalString} or {@link String}</td>
      *     <td>{@link #getDescription()}</td>
+     *   <tr>
+     *     <td>{@value #DEPRECATED_KEY}</td>
+     *     <td>{@link Boolean}</td>
+     *     <td>{@link #isDeprecated()}</td>
      *   </tr>
      *   <tr>
      *     <td>{@value org.apache.sis.referencing.AbstractIdentifiedObject#LOCALE_KEY}</td>
@@ -177,12 +203,29 @@ public class AbstractIdentifiedType impl
         } else if (value instanceof GenericName) {
             name = (GenericName) value;
         } else {
-            throw new IllegalArgumentException(Errors.getResources(identification).getString(
-                    Errors.Keys.IllegalPropertyValueClass_2, NAME_KEY, value.getClass()));
+            throw illegalPropertyType(identification, NAME_KEY, value);
         }
-        definition  = Types.toInternationalString(identification, DEFINITION_KEY );
+        definition  = Types.toInternationalString(identification, DEFINITION_KEY);
         designation = Types.toInternationalString(identification, DESIGNATION_KEY);
         description = Types.toInternationalString(identification, DESCRIPTION_KEY);
+        value = identification.get(DEPRECATED_KEY);
+        if (value == null) {
+            deprecated = false;
+        } else if (value instanceof Boolean) {
+            deprecated = (Boolean) value;
+        } else {
+            throw illegalPropertyType(identification, DEPRECATED_KEY, value);
+        }
+    }
+
+    /**
+     * Returns the exception to be thrown when a property is of illegal type.
+     */
+    private static IllegalArgumentException illegalPropertyType(final Map<String,?> identification,
+            final String key, final Object value)
+    {
+        return new IllegalArgumentException(Errors.getResources(identification).getString(
+                Errors.Keys.IllegalPropertyValueClass_2, key, value.getClass()));
     }
 
     /**
@@ -241,6 +284,9 @@ public class AbstractIdentifiedType impl
      * Returns optional information beyond that required for concise definition of the element.
      * The description may assist in understanding the element scope and application.
      *
+     * <p>If this type {@linkplain #isDeprecated() is deprecated}, then the description should give
+     * indication about the replacement (e.g. <cite>"superceded by …"</cite>).</p>
+     *
      * @return information beyond that required for concise definition of the element, or {@code null} if none.
      */
     @Override
@@ -248,6 +294,40 @@ public class AbstractIdentifiedType impl
         return description;
     }
 
+    /**
+     * Returns comments on or information about this type.
+     * The default implementation performs the following choice:
+     *
+     * <ul>
+     *   <li>If this type {@linkplain #isDeprecated() is deprecated}, returns the
+     *       {@linkplain #getDescription() description}. The description of deprecated types
+     *       should give indication about the replacement (e.g. <cite>"superceded by …"</cite>).</li>
+     *   <li>Otherwise returns {@code null} since remarks are not part of the ISO 19109 feature model.</li>
+     * </ul>
+     *
+     * @return the remarks, or {@code null} if none.
+     *
+     * @since 0.8
+     */
+    @Override
+    public InternationalString getRemarks() {
+        return deprecated ? description : null;
+    }
+
+    /**
+     * Returns {@code true} if this type is deprecated.
+     * If this method returns {@code true}, then the {@linkplain #getRemarks() remarks} should give
+     * indication about the replacement (e.g. <cite>"superceded by …"</cite>).
+     *
+     * @return whether this type is deprecated.
+     *
+     * @since 0.8
+     */
+    @Override
+    public boolean isDeprecated() {
+        return deprecated;
+    }
+
     /*
      * ISO 19109 properties omitted for now:
      *
@@ -267,7 +347,7 @@ public class AbstractIdentifiedType impl
      */
     @Override
     public int hashCode() {
-        return Objects.hash(name, definition, designation, description);
+        return Objects.hash(name, definition, designation, description, deprecated);
     }
 
     /**
@@ -283,7 +363,8 @@ public class AbstractIdentifiedType impl
             return Objects.equals(name,        that.name) &&
                    Objects.equals(definition,  that.definition) &&
                    Objects.equals(designation, that.designation) &&
-                   Objects.equals(description, that.description);
+                   Objects.equals(description, that.description) &&
+                   deprecated == that.deprecated;
         }
         return false;
     }

Modified: sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractOperation.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractOperation.java?rev=1773010&r1=1773009&r2=1773010&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractOperation.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractOperation.java [UTF-8] Wed Dec  7 04:14:44 2016
@@ -82,6 +82,41 @@ public abstract class AbstractOperation
     /**
      * Constructs an operation from the given properties. The identification map is given unchanged to
      * the {@linkplain AbstractIdentifiedType#AbstractIdentifiedType(Map) super-class constructor}.
+     * The following table is a reminder of main (not all) recognized map entries:
+     *
+     * <table class="sis">
+     *   <caption>Recognized map entries (non exhaustive list)</caption>
+     *   <tr>
+     *     <th>Map key</th>
+     *     <th>Value type</th>
+     *     <th>Returned by</th>
+     *   </tr>
+     *   <tr>
+     *     <td>{@value org.apache.sis.feature.AbstractIdentifiedType#NAME_KEY}</td>
+     *     <td>{@link GenericName} or {@link String}</td>
+     *     <td>{@link #getName()}</td>
+     *   </tr>
+     *   <tr>
+     *     <td>{@value org.apache.sis.feature.AbstractIdentifiedType#DEFINITION_KEY}</td>
+     *     <td>{@link InternationalString} or {@link String}</td>
+     *     <td>{@link #getDefinition()}</td>
+     *   </tr>
+     *   <tr>
+     *     <td>{@value org.apache.sis.feature.AbstractIdentifiedType#DESIGNATION_KEY}</td>
+     *     <td>{@link InternationalString} or {@link String}</td>
+     *     <td>{@link #getDesignation()}</td>
+     *   </tr>
+     *   <tr>
+     *     <td>{@value org.apache.sis.feature.AbstractIdentifiedType#DESCRIPTION_KEY}</td>
+     *     <td>{@link InternationalString} or {@link String}</td>
+     *     <td>{@link #getDescription()}</td>
+     *   </tr>
+     *   <tr>
+     *     <td>{@value org.apache.sis.feature.AbstractIdentifiedType#DEPRECATED_KEY}</td>
+     *     <td>{@link Boolean}</td>
+     *     <td>{@link #isDeprecated()}</td>
+     *   </tr>
+     * </table>
      *
      * @param  identification  the name and other information to be given to this operation.
      */

Modified: sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/CharacteristicTypeMap.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/CharacteristicTypeMap.java?rev=1773010&r1=1773009&r2=1773010&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/CharacteristicTypeMap.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/CharacteristicTypeMap.java [UTF-8] Wed Dec  7 04:14:44 2016
@@ -18,6 +18,8 @@ package org.apache.sis.feature;
 
 import java.util.Map;
 import java.util.HashMap;
+import org.opengis.util.ScopedName;
+import org.opengis.util.GenericName;
 import org.apache.sis.internal.util.AbstractMap;
 import org.apache.sis.internal.util.CollectionsExt;
 import org.apache.sis.util.collection.Containers;
@@ -28,6 +30,7 @@ import static org.apache.sis.util.Argume
 
 // Branch-dependent imports
 import org.opengis.feature.AttributeType;
+import org.apache.sis.internal.jdk8.JDK8;
 
 
 /**
@@ -45,7 +48,7 @@ import org.opengis.feature.AttributeType
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.5
- * @version 0.5
+ * @version 0.8
  * @module
  */
 final class CharacteristicTypeMap extends AbstractMap<String,AttributeType<?>> {
@@ -81,9 +84,9 @@ final class CharacteristicTypeMap extend
      * <p>This method does not clone the {@code characterizedBy} array. If that array
      * is a user-provided argument, then cloning that array is caller responsibility.</p>
      *
-     * @param  source The attribute which is characterized by {@code characterizedBy}.
-     * @param  characterizedBy Characteristics of {@code source}. Should not be empty.
-     * @return A map for this given characteristics.
+     * @param  source  the attribute which is characterized by {@code characterizedBy}.
+     * @param  characterizedBy  characteristics of {@code source}. Should not be empty.
+     * @return a map for this given characteristics.
      * @throws IllegalArgumentException if two characteristics have the same name.
      */
     static CharacteristicTypeMap create(final AttributeType<?> source, final AttributeType<?>[] characterizedBy) {
@@ -104,20 +107,47 @@ final class CharacteristicTypeMap extend
      * <p>This constructor does not clone the {@code characterizedBy} array. If that array
      * is a user-provided argument, then cloning that array is caller responsibility.</p>
      *
-     * @param  source The attribute which is characterized by {@code characterizedBy}.
-     * @param  characterizedBy Characteristics of {@code source}. Should not be empty.
+     * @param  source  the attribute which is characterized by {@code characterizedBy}.
+     * @param  characterizedBy  characteristics of {@code source}. Should not be empty.
      * @throws IllegalArgumentException if two characteristics have the same name.
      */
     private CharacteristicTypeMap(final AttributeType<?> source, final AttributeType<?>[] characterizedBy) {
         this.characterizedBy = characterizedBy;
         int index = 0;
         final Map<String,Integer> indices = new HashMap<>(Containers.hashMapCapacity(characterizedBy.length));
+        final Map<String,Integer> aliases = new HashMap<>();
         for (int i=0; i<characterizedBy.length; i++) {
             final AttributeType<?> attribute = characterizedBy[i];
             ensureNonNullElement("characterizedBy", i, attribute);
-            final String name = AbstractIdentifiedType.toString(attribute.getName(), source, "characterizedBy", i);
-            if (indices.put(name, index++) != null) {
-                throw new IllegalArgumentException(Errors.format(Errors.Keys.DuplicatedIdentifier_1, name));
+            GenericName name = attribute.getName();
+            String key = AbstractIdentifiedType.toString(name, source, "characterizedBy", i);
+            final Integer value = index++;
+            if (indices.put(key, value) != null) {
+                throw new IllegalArgumentException(Errors.format(Errors.Keys.DuplicatedIdentifier_1, key));
+            }
+            /*
+             * If some characteristics use long name of the form "head:tip", creates short aliases containing
+             * only the "tip" name for convenience, provided that it does not create ambiguity. If an alias
+             * could map to two or more characteristics, then that alias is not added. Those ambiguous aliases
+             * are identified by the -1 value in the 'aliases' map.
+             */
+            while (name instanceof ScopedName) {
+                if (name == (name = ((ScopedName) name).tail())) break;   // Safety against broken implementations.
+                key = name.toString();
+                if (key == null || (key = key.trim()).isEmpty()) break;   // Safety against broken implementations.
+                if (aliases.put(key, value) != null) {
+                    aliases.put(key, -1);
+                }
+            }
+        }
+        /*
+         * Copy the aliases only after we finished to create the list of all fully-qualified names.
+         * The copy operation shall exclude all ambiguous names.
+         */
+        for (final Map.Entry<String,Integer> entry : aliases.entrySet()) {
+            final Integer value = entry.getValue();
+            if (value >= 0) {
+                JDK8.putIfAbsent(indices, entry.getKey(), value);
             }
         }
         this.indices = CollectionsExt.compact(indices);

Modified: sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/DefaultAssociationRole.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/DefaultAssociationRole.java?rev=1773010&r1=1773009&r2=1773010&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/DefaultAssociationRole.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/DefaultAssociationRole.java [UTF-8] Wed Dec  7 04:14:44 2016
@@ -114,6 +114,11 @@ public class DefaultAssociationRole exte
      *     <td>{@link InternationalString} or {@link String}</td>
      *     <td>{@link #getDescription()}</td>
      *   </tr>
+     *   <tr>
+     *     <td>{@value org.apache.sis.feature.AbstractIdentifiedType#DEPRECATED_KEY}</td>
+     *     <td>{@link Boolean}</td>
+     *     <td>{@link #isDeprecated()}</td>
+     *   </tr>
      * </table>
      *
      * @param identification  the name and other information to be given to this association role.
@@ -481,6 +486,6 @@ public class DefaultAssociationRole exte
     @Debug
     @Override
     public String toString() {
-        return toString("FeatureAssociationRole", getName(), valueType.getName()).toString();
+        return toString(deprecated, "FeatureAssociationRole", getName(), valueType.getName()).toString();
     }
 }

Modified: sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/DefaultAttributeType.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/DefaultAttributeType.java?rev=1773010&r1=1773009&r2=1773010&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/DefaultAttributeType.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/DefaultAttributeType.java [UTF-8] Wed Dec  7 04:14:44 2016
@@ -99,7 +99,7 @@ import org.opengis.feature.AttributeType
  * @author  Johann Sorel (Geomatys)
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.5
- * @version 0.5
+ * @version 0.8
  * @module
  *
  * @see DefaultFeatureType
@@ -165,6 +165,11 @@ public class DefaultAttributeType<V> ext
      *     <td>{@link InternationalString} or {@link String}</td>
      *     <td>{@link #getDescription()}</td>
      *   </tr>
+     *   <tr>
+     *     <td>{@value org.apache.sis.feature.AbstractIdentifiedType#DEPRECATED_KEY}</td>
+     *     <td>{@link Boolean}</td>
+     *     <td>{@link #isDeprecated()}</td>
+     *   </tr>
      * </table>
      *
      * @param identification   the name and other information to be given to this attribute type.
@@ -361,6 +366,6 @@ public class DefaultAttributeType<V> ext
     @Debug
     @Override
     public String toString() {
-        return toString("AttributeType", getName(), Classes.getShortName(valueClass)).toString();
+        return toString(deprecated, "AttributeType", getName(), Classes.getShortName(valueClass)).toString();
     }
 }

Modified: sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/DefaultFeatureType.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/DefaultFeatureType.java?rev=1773010&r1=1773009&r2=1773010&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/DefaultFeatureType.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/DefaultFeatureType.java [UTF-8] Wed Dec  7 04:14:44 2016
@@ -26,10 +26,11 @@ import java.util.IdentityHashMap;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Iterator;
+import java.util.Objects;
 import java.io.IOException;
 import java.io.ObjectInputStream;
 import org.opengis.util.NameFactory;
-import org.opengis.util.LocalName;
+import org.opengis.util.ScopedName;
 import org.opengis.util.GenericName;
 import org.opengis.util.InternationalString;
 import org.opengis.parameter.ParameterDescriptorGroup;
@@ -40,7 +41,6 @@ import org.apache.sis.internal.util.Unmo
 import org.apache.sis.internal.feature.Resources;
 
 // Branch-dependent imports
-import java.util.Objects;
 import org.apache.sis.internal.jdk8.JDK8;
 import org.opengis.feature.IdentifiedType;
 import org.opengis.feature.PropertyType;
@@ -238,6 +238,11 @@ public class DefaultFeatureType extends
      *     <td>{@link InternationalString} or {@link String}</td>
      *     <td>{@link #getDescription()}</td>
      *   </tr>
+     *   <tr>
+     *     <td>{@value org.apache.sis.feature.AbstractIdentifiedType#DEPRECATED_KEY}</td>
+     *     <td>{@link Boolean}</td>
+     *     <td>{@link #isDeprecated()}</td>
+     *   </tr>
      * </table>
      *
      * @param identification  the name and other information to be given to this feature type.
@@ -383,19 +388,18 @@ public class DefaultFeatureType extends
         /*
          * If some properties use long name of the form "head:tip", creates short aliases containing only the "tip"
          * name for convenience, provided that it does not create ambiguity.  If a short alias could map to two or
-         * more properties, then this alias is not added.
+         * more properties, then that alias is not added.
          *
          * In the 'aliases' map below, null values will be assigned to ambiguous short names.
          */
         final Map<String, PropertyType> aliases = new LinkedHashMap<>();
         for (final PropertyType property : allProperties) {
-            final GenericName name = property.getName();
-            final LocalName tip = name.tip();
-            if (tip != name) {                                          // Slight optimization for a common case.
-                final String key = tip.toString();
-                if (key != null && !key.isEmpty() && !key.equals(name.toString())) {
-                    aliases.put(key, aliases.containsKey(key) ? null : property);
-                }
+            GenericName name = property.getName();
+            while (name instanceof ScopedName) {
+                if (name == (name = ((ScopedName) name).tail())) break;   // Safety against broken implementations.
+                String key = name.toString();
+                if (key == null || (key = key.trim()).isEmpty()) break;   // Safety against broken implementations.
+                aliases.put(key, aliases.containsKey(key) ? null : property);
             }
         }
         for (final Map.Entry<String,PropertyType> entry : aliases.entrySet()) {
@@ -407,7 +411,7 @@ public class DefaultFeatureType extends
                     // The 'indices' value may be null if the property is an operation.
                     final Integer value = indices.get(property.getName().toString());
                     if (value != null && indices.put(tip, value) != null) {
-                        throw new AssertionError(tip);  // Should never happen.
+                        throw new AssertionError(tip);                                  // Should never happen.
                     }
                 }
             }

Modified: sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/FeatureFormat.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/FeatureFormat.java?rev=1773010&r1=1773009&r2=1773010&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/FeatureFormat.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/FeatureFormat.java [UTF-8] Wed Dec  7 04:14:44 2016
@@ -16,6 +16,8 @@
  */
 package org.apache.sis.feature;
 
+import java.util.List;
+import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.Locale;
 import java.util.TimeZone;
@@ -30,6 +32,7 @@ import org.opengis.util.InternationalStr
 import org.opengis.util.GenericName;
 import org.apache.sis.io.TableAppender;
 import org.apache.sis.io.TabularFormat;
+import org.apache.sis.util.Deprecable;
 import org.apache.sis.util.CharSequences;
 import org.apache.sis.util.ArgumentChecks;
 import org.apache.sis.util.resources.Errors;
@@ -48,6 +51,7 @@ import org.opengis.feature.Feature;
 import org.opengis.feature.FeatureType;
 import org.opengis.feature.FeatureAssociationRole;
 import org.opengis.feature.Operation;
+import org.apache.sis.util.Characters;
 
 
 /**
@@ -195,12 +199,13 @@ public class FeatureFormat extends Tabul
          * In none we will ommit the "characteristics" column, which is the last column.
          */
         boolean hasCharacteristics = false;
+        boolean hasDeprecatedTypes = false;
         for (final PropertyType propertyType : featureType.getProperties(true)) {
-            if (propertyType instanceof AttributeType<?>) {
-                if (!((AttributeType<?>) propertyType).characteristics().isEmpty()) {
-                    hasCharacteristics = true;
-                    break;
-                }
+            if (!hasCharacteristics && propertyType instanceof AttributeType<?>) {
+                hasCharacteristics = !((AttributeType<?>) propertyType).characteristics().isEmpty();
+            }
+            if (!hasDeprecatedTypes && propertyType instanceof Deprecable) {
+                hasDeprecatedTypes = ((Deprecable) propertyType).isDeprecated();
             }
         }
         /*
@@ -229,15 +234,10 @@ header: for (int i=0; ; i++) {
                 case 1:  nextColumn(table); key = Vocabulary.Keys.Type; break;
                 case 2:  nextColumn(table); key = Vocabulary.Keys.Cardinality; break;
                 case 3:  nextColumn(table); key = (feature != null) ? Vocabulary.Keys.Value : Vocabulary.Keys.DefaultValue; break;
-                case 4: {
-                    if (hasCharacteristics) {
-                        nextColumn(table);
-                        key = Vocabulary.Keys.Characteristics;
-                        break;
-                    } else {
-                        break header;
-                    }
-                }
+                case 4:  if (!hasCharacteristics) continue;
+                         nextColumn(table); key = Vocabulary.Keys.Characteristics; break;
+                case 5:  if (!hasDeprecatedTypes) continue;
+                         nextColumn(table); key = Vocabulary.Keys.Remarks; break;
                 default: break header;
             }
             table.append(resources.getString(key));
@@ -250,6 +250,7 @@ header: for (int i=0; ; i++) {
          */
         final StringBuffer  buffer  = new StringBuffer();
         final FieldPosition dummyFP = new FieldPosition(-1);
+        final List<String>  remarks = new ArrayList<>();
         for (final PropertyType propertyType : featureType.getProperties(true)) {
             Object value = null;
             if (feature != null) {
@@ -389,10 +390,32 @@ header: for (int i=0; ; i++) {
                     }
                 }
             }
+            /*
+             * Column 5 - Deprecation
+             */
+            if (hasDeprecatedTypes) {
+                nextColumn(table);
+                if (org.apache.sis.feature.Field.isDeprecated(propertyType)) {
+                    table.append(resources.getString(Vocabulary.Keys.Deprecated));
+                    final InternationalString r = ((Deprecable) propertyType).getRemarks();
+                    if (r != null) {
+                        remarks.add(r.toString(displayLocale));
+                        appendSuperscript(remarks.size(), table);
+                    }
+                }
+            }
             table.nextLine();
         }
         table.nextLine('─');
         table.flush();
+        /*
+         * If there is any remarks, write them below the table.
+         */
+        final int n = remarks.size();
+        for (int i=0; i<n; i++) {
+            appendSuperscript(i+1, toAppendTo);
+            toAppendTo.append(' ').append(remarks.get(i)).append(lineSeparator);
+        }
     }
 
     /**
@@ -444,6 +467,17 @@ header: for (int i=0; ; i++) {
         }
     }
 
+    /**
+     * Appends the given number as an superscript if possible, or as an ordinary number otherwise.
+     */
+    private static void appendSuperscript(final int n, final Appendable toAppendTo) throws IOException {
+        if (n >= 0 && n < 10) {
+            toAppendTo.append(Characters.toSuperScript((char) ('0' + n)));
+        } else {
+            toAppendTo.append('(').append(String.valueOf(n)).append(')');
+        }
+    }
+
     /**
      * Formats the given object using a shared instance of {@code ParameterFormat}.
      * This is used for {@link DefaultParameterDescriptorGroup#toString()} implementation.

Modified: sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/Field.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/Field.java?rev=1773010&r1=1773009&r2=1773010&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/Field.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/Field.java [UTF-8] Wed Dec  7 04:14:44 2016
@@ -23,8 +23,10 @@ import org.apache.sis.util.resources.Err
 
 // Branch-dependent imports
 import org.opengis.feature.Property;
+import org.opengis.feature.PropertyType;
 import org.opengis.feature.MultiValuedPropertyException;
 import org.opengis.feature.InvalidPropertyValueException;
+import org.apache.sis.util.Deprecable;
 
 
 /**
@@ -33,7 +35,7 @@ import org.opengis.feature.InvalidProper
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.5
- * @version 0.6
+ * @version 0.8
  * @module
  */
 abstract class Field<V> implements Property {
@@ -106,4 +108,11 @@ abstract class Field<V> implements Prope
         }
         setValue(value);
     }
+
+    /**
+     * Returns whether the given property is deprecated.
+     */
+    static boolean isDeprecated(final PropertyType type) {
+        return (type instanceof Deprecable) && ((Deprecable) type).isDeprecated();
+    }
 }

Modified: sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/FieldType.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/FieldType.java?rev=1773010&r1=1773009&r2=1773010&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/FieldType.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/FieldType.java [UTF-8] Wed Dec  7 04:14:44 2016
@@ -130,12 +130,17 @@ abstract class FieldType extends Abstrac
      *     PropertyType[“name” : ValueClass]
      * }
      *
-     * @param className  the interface name of the object on which {@code toString()} is invoked.
-     * @param name       the property type name, sometime {@link #getName()} or sometime the name of another object.
-     * @param valueType  the name of value class (attribute), or the feature type name (association).
+     * @param deprecated  whether the type to format is deprecated.
+     * @param className   the interface name of the object on which {@code toString()} is invoked.
+     * @param name        the property type name, sometime {@link #getName()} or sometime the name of another object.
+     * @param valueType   the name of value class (attribute), or the feature type name (association).
      */
-    static StringBuilder toString(final String className, final GenericName name, final Object valueType) {
-        final StringBuilder buffer = new StringBuilder(40).append(className).append('[');
+    static StringBuilder toString(final boolean deprecated, final String className, final GenericName name, final Object valueType) {
+        final StringBuilder buffer = new StringBuilder(40);
+        if (deprecated) {
+            buffer.append("Deprecated");
+        }
+        buffer.append(className).append('[');
         if (name != null) {
             buffer.append('“');
         }
@@ -154,13 +159,16 @@ abstract class FieldType extends Abstrac
      *     Property[“name” : ValueClass] = {value1, value2, ...}
      * }
      *
-     * @param className  the interface name of the object on which {@code toString()} is invoked.
-     * @param name       the property type name, sometime {@link #getName()} or sometime the name of another object.
-     * @param valueType  the name of value class (attribute), or the feature type name (association).
-     * @param values     the actual values.
+     * @param deprecated  whether the type to format is deprecated.
+     * @param className   the interface name of the object on which {@code toString()} is invoked.
+     * @param name        the property type name, sometime {@link #getName()} or sometime the name of another object.
+     * @param valueType   the name of value class (attribute), or the feature type name (association).
+     * @param values      the actual values.
      */
-    static StringBuilder toString(final String className, final GenericName name, final Object valueType, final Iterator<?> values) {
-        final StringBuilder buffer = toString(className, name, valueType);
+    static StringBuilder toString(final boolean deprecated, final String className, final GenericName name,
+            final Object valueType, final Iterator<?> values)
+    {
+        final StringBuilder buffer = toString(deprecated, className, name, valueType);
         if (values.hasNext()) {
             final Object value = values.next();
             final boolean isMultiValued = values.hasNext();

Modified: sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/PropertyView.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/PropertyView.java?rev=1773010&r1=1773009&r2=1773010&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/PropertyView.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/PropertyView.java [UTF-8] Wed Dec  7 04:14:44 2016
@@ -210,7 +210,7 @@ abstract class PropertyView<V> extends F
     @Debug
     @Override
     public final String toString() {
-        return FieldType.toString(getClass().getSimpleName(), getName(),
+        return FieldType.toString(false, getClass().getSimpleName(), getName(),
                 Classes.getShortName(getValueClass()), getValues().iterator()).toString();
     }
 }

Modified: sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/builder/AssociationRoleBuilder.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/builder/AssociationRoleBuilder.java?rev=1773010&r1=1773009&r2=1773010&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/builder/AssociationRoleBuilder.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/builder/AssociationRoleBuilder.java [UTF-8] Wed Dec  7 04:14:44 2016
@@ -214,6 +214,15 @@ public final class AssociationRoleBuilde
     }
 
     /**
+     * {@inheritDoc}
+     */
+    @Override
+    public AssociationRoleBuilder setDeprecated(final boolean deprecated) {
+        super.setDeprecated(deprecated);
+        return this;
+    }
+
+    /**
      * Builds the association role from the information specified to this builder.
      * If a role has already been built and this builder state has not changed since the role creation,
      * then the previously created {@code FeatureAssociationRole} instance is returned.

Modified: sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/builder/AttributeTypeBuilder.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/builder/AttributeTypeBuilder.java?rev=1773010&r1=1773009&r2=1773010&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/builder/AttributeTypeBuilder.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/builder/AttributeTypeBuilder.java [UTF-8] Wed Dec  7 04:14:44 2016
@@ -22,6 +22,7 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.Objects;
 import java.lang.reflect.Array;
 import org.opengis.util.GenericName;
 import org.opengis.referencing.crs.CoordinateReferenceSystem;
@@ -39,7 +40,6 @@ import org.apache.sis.util.ObjectConvert
 import org.apache.sis.util.UnconvertibleObjectException;
 
 // Branch-dependent imports
-import java.util.Objects;
 import org.opengis.feature.AttributeType;
 
 
@@ -646,6 +646,15 @@ public final class AttributeTypeBuilder<
         return this;
     }
 
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public AttributeTypeBuilder<V> setDeprecated(final boolean deprecated) {
+        super.setDeprecated(deprecated);
+        return this;
+    }
+
     /**
      * Appends a text inside the value returned by {@link #toString()}, before the closing bracket.
      */

Modified: sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/builder/CharacteristicTypeBuilder.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/builder/CharacteristicTypeBuilder.java?rev=1773010&r1=1773009&r2=1773010&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/builder/CharacteristicTypeBuilder.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/builder/CharacteristicTypeBuilder.java [UTF-8] Wed Dec  7 04:14:44 2016
@@ -282,6 +282,15 @@ public final class CharacteristicTypeBui
     }
 
     /**
+     * {@inheritDoc}
+     */
+    @Override
+    public CharacteristicTypeBuilder<V> setDeprecated(final boolean deprecated) {
+        super.setDeprecated(deprecated);
+        return this;
+    }
+
+    /**
      * Builds the characteristic type from the information specified to this builder.
      * If a type has already been built and this builder state has not changed since the type creation,
      * then the previously created {@code AttributeType} instance is returned.

Modified: sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/builder/FeatureTypeBuilder.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/builder/FeatureTypeBuilder.java?rev=1773010&r1=1773009&r2=1773010&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/builder/FeatureTypeBuilder.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/builder/FeatureTypeBuilder.java [UTF-8] Wed Dec  7 04:14:44 2016
@@ -660,6 +660,15 @@ public class FeatureTypeBuilder extends
     }
 
     /**
+     * {@inheritDoc}
+     */
+    @Override
+    public FeatureTypeBuilder setDeprecated(final boolean deprecated) {
+        super.setDeprecated(deprecated);
+        return this;
+    }
+
+    /**
      * Builds the feature type from the information and properties specified to this builder.
      * One of the {@code setName(…)} methods must have been invoked before this {@code build()} method (mandatory).
      * All other methods are optional, but some calls to a {@code add} method are usually needed.

Modified: sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/builder/OperationWrapper.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/builder/OperationWrapper.java?rev=1773010&r1=1773009&r2=1773010&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/builder/OperationWrapper.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/builder/OperationWrapper.java [UTF-8] Wed Dec  7 04:14:44 2016
@@ -70,6 +70,7 @@ final class OperationWrapper extends Pro
     @Override public TypeBuilder setDefinition (CharSequence definition)  {throw readOnly();}
     @Override public TypeBuilder setDesignation(CharSequence designation) {throw readOnly();}
     @Override public TypeBuilder setDescription(CharSequence description) {throw readOnly();}
+    @Override public TypeBuilder setDeprecated (boolean deprecated)       {throw readOnly();}
 
     /**
      * Returns the exception to be thrown for read-only wrapper.

Modified: sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/builder/TypeBuilder.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/builder/TypeBuilder.java?rev=1773010&r1=1773009&r2=1773010&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/builder/TypeBuilder.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/builder/TypeBuilder.java [UTF-8] Wed Dec  7 04:14:44 2016
@@ -20,6 +20,7 @@ import java.util.Map;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Locale;
+import java.util.Objects;
 import org.opengis.util.ScopedName;
 import org.opengis.util.GenericName;
 import org.apache.sis.internal.feature.Resources;
@@ -27,12 +28,12 @@ import org.apache.sis.feature.AbstractId
 import org.apache.sis.util.resources.Vocabulary;
 import org.apache.sis.util.resources.Errors;
 import org.apache.sis.util.NullArgumentException;
+import org.apache.sis.util.Deprecable;
 import org.apache.sis.util.Localized;
 import org.apache.sis.util.Classes;
 import org.apache.sis.util.Debug;
 
 // Branch-dependent imports
-import java.util.Objects;
 import org.opengis.feature.IdentifiedType;
 import org.opengis.feature.PropertyNotFoundException;
 
@@ -88,6 +89,9 @@ public abstract class TypeBuilder implem
             putIfNonNull(AbstractIdentifiedType.DEFINITION_KEY,  template.getDefinition());
             putIfNonNull(AbstractIdentifiedType.DESIGNATION_KEY, template.getDesignation());
             putIfNonNull(AbstractIdentifiedType.DESCRIPTION_KEY, template.getDescription());
+            if (template instanceof Deprecable && ((Deprecable) template).isDeprecated()) {
+                identification.put(AbstractIdentifiedType.DEPRECATED_KEY, Boolean.TRUE);
+            }
         }
     }
 
@@ -313,6 +317,8 @@ public abstract class TypeBuilder implem
     /**
      * Sets optional information beyond that required for concise definition of the element.
      * The description may assist in understanding the feature scope and application.
+     * If the type {@linkplain #isDeprecated() is deprecated}, then the description should
+     * give indication about the replacement (e.g. <cite>"superceded by …"</cite>).
      *
      * @param  description  information beyond that required for concise definition of the element, or {@code null} if none.
      * @return {@code this} for allowing method calls chaining.
@@ -328,6 +334,42 @@ public abstract class TypeBuilder implem
     }
 
     /**
+     * Returns {@code true} if the type is deprecated.
+     * If this method returns {@code true}, then the {@linkplain #getDescription() description} should give
+     * indication about the replacement (e.g. <cite>"superceded by …"</cite>).
+     *
+     * @return whether this type is deprecated.
+     *
+     * @see AbstractIdentifiedType#isDeprecated()
+     */
+    public boolean isDeprecated() {
+        return Boolean.TRUE.equals(identification.get(AbstractIdentifiedType.DEPRECATED_KEY));
+    }
+
+    /**
+     * Sets whether the type is deprecated.
+     * If the type is deprecated, then the {@linkplain #setDescription(CharSequence) description}
+     * should be set to an indication about the replacement (e.g. <cite>"superceded by …"</cite>).
+     *
+     * @param  deprecated  whether this type is deprecated.
+     * @return {@code this} for allowing method calls chaining.
+     *
+     * @see #isDeprecated()
+     * @see AbstractIdentifiedType#DEPRECATED_KEY
+     */
+    public TypeBuilder setDeprecated(final boolean deprecated) {
+        final Boolean wrapper = deprecated;
+        Object previous = identification.put(AbstractIdentifiedType.DEPRECATED_KEY, wrapper);
+        if (previous == null) {
+            previous = Boolean.FALSE;
+        }
+        if (!Objects.equals(wrapper, previous)) {
+            clearCache();
+        }
+        return this;
+    }
+
+    /**
      * Returns the element of the given name in the given list. The given name does not need to contains
      * all elements of a {@link ScopedName}; it can be only the tip (for example {@code "myName"} instead
      * of {@code "myScope:myName"}) provided that ignoring the name head does not create ambiguity.
@@ -337,6 +379,7 @@ public abstract class TypeBuilder implem
      * @return element of the given name, or {@code null} if none were found.
      * @throws IllegalArgumentException if the given name is ambiguous.
      */
+    @SuppressWarnings("null")
     final <E extends TypeBuilder> E forName(final List<E> types, final String name) {
         E best      = null;                     // Best type found so far.
         E ambiguity = null;                     // If two types are found at the same depth, the other type.

Modified: sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/internal/feature/AttributeConvention.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/internal/feature/AttributeConvention.java?rev=1773010&r1=1773009&r2=1773010&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/internal/feature/AttributeConvention.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/internal/feature/AttributeConvention.java [UTF-8] Wed Dec  7 04:14:44 2016
@@ -167,7 +167,7 @@ public final class AttributeConvention e
     static {
         final NameFactory factory = DefaultFactories.forBuildin(NameFactory.class);
         NAMESPACE                     = factory.createGenericName(null, "Apache", Constants.SIS);
-        NameSpace ns                  = factory.createNameSpace(NAMESPACE, null);
+        final NameSpace ns            = factory.createNameSpace(NAMESPACE, null);
         IDENTIFIER_PROPERTY           = factory.createLocalName(ns, "@identifier");
         GEOMETRY_PROPERTY             = factory.createLocalName(ns, "@geometry");
         ENVELOPE_PROPERTY             = factory.createLocalName(ns, "@envelope");

Modified: sis/branches/JDK7/core/sis-feature/src/test/java/org/apache/sis/feature/CharacteristicTypeMapTest.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-feature/src/test/java/org/apache/sis/feature/CharacteristicTypeMapTest.java?rev=1773010&r1=1773009&r2=1773010&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-feature/src/test/java/org/apache/sis/feature/CharacteristicTypeMapTest.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-feature/src/test/java/org/apache/sis/feature/CharacteristicTypeMapTest.java [UTF-8] Wed Dec  7 04:14:44 2016
@@ -28,6 +28,7 @@ import static org.apache.sis.test.Assert
 
 // Branch-dependent imports
 import org.opengis.feature.AttributeType;
+import org.apache.sis.util.iso.Names;
 
 
 /**
@@ -35,7 +36,7 @@ import org.opengis.feature.AttributeType
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.5
- * @version 0.5
+ * @version 0.8
  * @module
  */
 @DependsOn(DefaultAttributeTypeTest.class)
@@ -109,4 +110,24 @@ public final strictfp class Characterist
         assertNotSame(temperature, unserialized);
         assertSame(temperature.characteristics(), unserialized.characteristics());
     }
+
+    /**
+     * Tests usage of names in namespaces.
+     */
+    @Test
+    public void testQualifiedNames() {
+        final DefaultAttributeType<?> a1, a2, a3, tp;
+        a1 = new DefaultAttributeType<>(singletonMap(NAME_KEY, Names.parseGenericName(null, null, "ns1:accuracy")), Float.class, 1, 1, 0.1f);
+        a2 = new DefaultAttributeType<>(singletonMap(NAME_KEY, Names.parseGenericName(null, null, "ns2:accuracy")), Float.class, 1, 1, 0.1f);
+        a3 = new DefaultAttributeType<>(singletonMap(NAME_KEY, Names.parseGenericName(null, null, "ns2:s3:units")), String.class, 1, 1, "°C");
+        tp = new DefaultAttributeType<>(singletonMap(NAME_KEY, "temperature"), Float.class, 1, 1, null, a1, a2, a3);
+
+        final Map<String, AttributeType<?>> characteristics = tp.characteristics();
+        assertSame("ns1:accuracy", a1, characteristics.get("ns1:accuracy"));
+        assertSame("ns2:accuracy", a2, characteristics.get("ns2:accuracy"));
+        assertSame("ns2:s3:units", a3, characteristics.get("ns2:s3:units"));
+        assertSame(    "s3:units", a3, characteristics.get(    "s3:units"));
+        assertSame(       "units", a3, characteristics.get(       "units"));
+        assertNull("    accuracy",     characteristics.get("    accuracy"));        // Because ambiguous.
+    }
 }

Modified: sis/branches/JDK7/core/sis-feature/src/test/java/org/apache/sis/feature/FeatureFormatTest.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-feature/src/test/java/org/apache/sis/feature/FeatureFormatTest.java?rev=1773010&r1=1773009&r2=1773010&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-feature/src/test/java/org/apache/sis/feature/FeatureFormatTest.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-feature/src/test/java/org/apache/sis/feature/FeatureFormatTest.java [UTF-8] Wed Dec  7 04:14:44 2016
@@ -20,6 +20,7 @@ import java.util.Arrays;
 import java.util.Collections;
 import java.util.Locale;
 import java.util.Map;
+import java.util.HashMap;
 import java.util.Random;
 import org.apache.sis.test.DependsOn;
 import org.apache.sis.test.TestCase;
@@ -101,6 +102,32 @@ public final strictfp class FeatureForma
     }
 
     /**
+     * Tests the formatting of a {@link DefaultFeatureType} that contains deprecated properties.
+     */
+    @Test
+    @SuppressWarnings("serial")
+    public void testFeatureTypeWithDeprecatedProperties() {
+        DefaultFeatureType feature = DefaultFeatureTypeTest.city();
+        final Map<String,Object> properties = new HashMap<String,Object>(name("highway"));
+        properties.put(DefaultAttributeType.DEPRECATED_KEY, Boolean.TRUE);
+        properties.put(DefaultAttributeType.DESCRIPTION_KEY, "Replaced by pedestrian areas.");
+        feature = new DefaultFeatureType(name("City for human"), false, new DefaultFeatureType[] {feature},
+                new DefaultAttributeType<>(properties, String.class, 0, 2, null));
+
+        final FeatureFormat format = new FeatureFormat(Locale.US, null);
+        final String text = format.format(feature);
+        assertMultilinesEquals("City for human ⇾ City\n" +
+                "┌────────────┬─────────┬─────────────┬───────────────┬─────────────┐\n" +
+                "│ Name       │ Type    │ Cardinality │ Default value │ Remarks     │\n" +
+                "├────────────┼─────────┼─────────────┼───────────────┼─────────────┤\n" +
+                "│ city       │ String  │ [1 … 1]     │ Utopia        │             │\n" +
+                "│ population │ Integer │ [1 … 1]     │               │             │\n" +
+                "│ highway    │ String  │ [0 … 2]     │               │ Deprecated¹ │\n" +
+                "└────────────┴─────────┴─────────────┴───────────────┴─────────────┘\n" +
+                "¹ Replaced by pedestrian areas.\n", text);
+    }
+
+    /**
      * Tests the formatting of an {@link AbstractFeature}.
      */
     @Test



Mime
View raw message