Reimplemented (also simjplified) Tamaya core completely based on latest JSR API. Moved prior Tamaya API into compat module.
Signed-off-by: Anatole Tresch <anat...@apache.org> Project: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/commit/9bc56a38 Tree: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/tree/9bc56a38 Diff: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/diff/9bc56a38 Branch: refs/heads/configjsr Commit: 9bc56a38b01ead60cd36a87c29d3eb14a2edfeea Parents: 27c0d76 Author: Anatole Tresch <anat...@apache.org> Authored: Sun Dec 10 23:02:02 2017 +0100 Committer: Anatole Tresch <anat...@apache.org> Committed: Sun Dec 10 23:02:10 2017 +0100 ---------------------------------------------------------------------- code/api/bnd.bnd | 24 - code/api/pom.xml | 65 --- .../java/org/apache/tamaya/ConfigException.java | 44 -- .../java/org/apache/tamaya/ConfigOperator.java | 38 -- .../java/org/apache/tamaya/ConfigQuery.java | 37 -- .../java/org/apache/tamaya/Configuration.java | 179 ------- .../apache/tamaya/ConfigurationProvider.java | 138 ------ .../java/org/apache/tamaya/TypeLiteral.java | 212 --------- .../java/org/apache/tamaya/package-info.java | 24 - .../apache/tamaya/spi/ConfigurationBuilder.java | 348 -------------- .../apache/tamaya/spi/ConfigurationContext.java | 174 ------- .../tamaya/spi/ConfigurationContextBuilder.java | 336 ------------- .../tamaya/spi/ConfigurationProviderSpi.java | 128 ----- .../apache/tamaya/spi/ConversionContext.java | 267 ----------- .../org/apache/tamaya/spi/Experimental.java | 32 -- .../org/apache/tamaya/spi/FilterContext.java | 140 ------ .../apache/tamaya/spi/PropertyConverter.java | 44 -- .../org/apache/tamaya/spi/PropertyFilter.java | 51 -- .../org/apache/tamaya/spi/PropertySource.java | 174 ------- .../tamaya/spi/PropertySourceProvider.java | 61 --- .../org/apache/tamaya/spi/PropertyValue.java | 232 --------- .../apache/tamaya/spi/PropertyValueBuilder.java | 196 -------- .../spi/PropertyValueCombinationPolicy.java | 71 --- .../org/apache/tamaya/spi/ServiceContext.java | 93 ---- .../tamaya/spi/ServiceContextManager.java | 118 ----- .../org/apache/tamaya/spi/package-info.java | 24 - code/api/src/main/resources/tamaya-banner.txt | 11 - .../org/apache/tamaya/ConfigExceptionTest.java | 45 -- .../org/apache/tamaya/ConfigurationTest.java | 63 --- .../org/apache/tamaya/TestConfiguration.java | 137 ------ .../tamaya/TestConfigurationProvider.java | 79 ---- .../java/org/apache/tamaya/TypeLiteralTest.java | 90 ---- .../tamaya/spi/ConversionContextTest.java | 194 -------- .../apache/tamaya/spi/FilterContextTest.java | 158 ------- .../tamaya/spi/PropertyValueBuilderTest.java | 246 ---------- .../spi/PropertyValueCombinationPolicyTest.java | 89 ---- .../apache/tamaya/spi/PropertyValueTest.java | 250 ---------- .../tamaya/spi/ServiceContextManagerTest.java | 90 ---- .../apache/tamaya/spi/ServiceContextTest.java | 113 ----- .../apache/tamaya/spi/TestServiceContext.java | 105 ----- ...g.apache.tamaya.spi.ConfigurationProviderSpi | 19 - .../org.apache.tamaya.spi.ServiceContext | 19 - .../org/apache/tamaya/base/FormatUtils.java | 47 ++ .../tamaya/spi/ConfigContextSupplier.java | 47 ++ .../spi/ConfigValueCombinationPolicy.java | 72 +++ .../tamaya/spi/StandaloneConfigContext.java | 292 ++++++++++++ code/core/bnd.bnd | 28 +- code/core/pom.xml | 11 +- .../org/apache/tamaya/core/OSGIActivator.java | 29 +- .../tamaya/core/internal/BannerManager.java | 165 ------- .../tamaya/core/internal/CoreConfiguration.java | 43 -- .../core/internal/CoreConfigurationBuilder.java | 91 ---- .../internal/CoreConfigurationProvider.java | 101 ---- .../core/internal/OSGIServiceComparator.java | 70 --- .../core/internal/OSGIServiceContext.java | 172 ------- .../tamaya/core/internal/OSGIServiceLoader.java | 254 ---------- .../converters/BigDecimalConverter.java | 76 --- .../converters/BigIntegerConverter.java | 106 ----- .../internal/converters/BooleanConverter.java | 73 --- .../core/internal/converters/ByteConverter.java | 83 ---- .../core/internal/converters/CharConverter.java | 80 ---- .../internal/converters/ClassConverter.java | 78 --- .../core/internal/converters/ConvertQuery.java | 68 --- .../internal/converters/CurrencyConverter.java | 102 ---- .../internal/converters/DoubleConverter.java | 93 ---- .../internal/converters/DurationConverter.java | 59 --- .../core/internal/converters/FileConverter.java | 62 --- .../internal/converters/FloatConverter.java | 93 ---- .../internal/converters/InstantConverter.java | 57 --- .../internal/converters/IntegerConverter.java | 86 ---- .../internal/converters/LocalDateConverter.java | 57 --- .../converters/LocalDateTimeConverter.java | 57 --- .../internal/converters/LocalTimeConverter.java | 57 --- .../core/internal/converters/LongConverter.java | 83 ---- .../internal/converters/NumberConverter.java | 84 ---- .../converters/OffsetDateTimeConverter.java | 57 --- .../converters/OffsetTimeConverter.java | 57 --- .../internal/converters/OptionalConverter.java | 65 --- .../core/internal/converters/PathConverter.java | 63 --- .../internal/converters/ShortConverter.java | 84 ---- .../internal/converters/SupplierConverter.java | 71 --- .../core/internal/converters/URIConverter.java | 62 --- .../core/internal/converters/URLConverter.java | 62 --- .../core/internal/converters/package-info.java | 23 - .../tamaya/core/internal/package-info.java | 25 - .../org/apache/tamaya/core/package-info.java | 2 +- .../services/org.apache.tamaya.Configuration | 19 - ...he.tamaya.core.internal.ConfigValueEvaluator | 19 - .../org.apache.tamaya.spi.ConfigurationBuilder | 19 - ...g.apache.tamaya.spi.ConfigurationProviderSpi | 19 - .../org.apache.tamaya.spi.PropertyConverter | 44 -- .../org.apache.tamaya.spi.PropertySource | 22 - .../org.apache.tamaya.spi.ServiceContext | 2 +- .../tamaya/core/ConfigurationBuilderTest.java | 440 ----------------- .../core/ConfigurationContextBuilderTest.java | 422 ----------------- .../apache/tamaya/core/ConfigurationTest.java | 27 +- .../apache/tamaya/core/TestPropertySource.java | 72 --- .../tamaya/core/internal/BannerManagerTest.java | 90 ---- .../tamaya/core/internal/CTestConverter.java | 7 +- .../internal/CoreConfigurationBuilderTest.java | 219 --------- .../internal/CoreConfigurationProviderTest.java | 93 ---- .../core/internal/CoreConfigurationTest.java | 177 ------- .../internal/DefaultJavaConfigurationTest.java | 98 ++-- .../converters/BigDecimalConverterTest.java | 51 +- .../converters/BooleanConverterTest.java | 55 ++- .../internal/converters/ByteConverterTest.java | 27 +- .../internal/converters/CharConverterTest.java | 36 +- .../internal/converters/ClassConverterTest.java | 17 +- .../ConverterTestsPropertySource.java | 202 ++++---- .../converters/CurrencyConverterTest.java | 50 +- .../converters/DoubleConverterTest.java | 51 +- .../converters/DurationConverterTest.java | 15 +- .../internal/converters/FloatConverterTest.java | 51 +- .../converters/InstantConverterTest.java | 7 +- .../converters/IntegerConverterTest.java | 33 +- .../converters/LocalDateConverterTest.java | 7 +- .../converters/LocalDateTimeConverterTest.java | 7 +- .../converters/LocalTimeConverterTest.java | 7 +- .../internal/converters/LongConverterTest.java | 33 +- .../converters/NumberConverterTest.java | 28 +- .../converters/OffsetDateTimeConverterTest.java | 7 +- .../converters/OffsetTimeConverterTest.java | 7 +- .../converters/OptionalConverterTest.java | 13 +- .../internal/converters/PathConverterTest.java | 7 +- .../internal/converters/ShortConverterTest.java | 31 +- .../internal/converters/URIConverterTest.java | 29 +- .../internal/converters/URLConverterTest.java | 17 +- .../testdata/TestPropertyDefaultSource.java | 57 --- .../core/testdata/TestPropertyFilter.java | 41 -- .../testdata/TestPropertySourceProvider.java | 36 +- .../testdata/TestRemovingPropertyFilter.java | 45 -- .../META-INF/javaconfiguration.properties | 22 - .../resources/META-INF/javaconfiguration.xml | 25 - ...g.apache.tamaya.spi.ConfigurationProviderSpi | 18 - .../org.apache.tamaya.spi.PropertyConverter | 19 - .../org.apache.tamaya.spi.PropertyFilter | 20 - .../org.apache.tamaya.spi.PropertySource | 22 - ...org.apache.tamaya.spi.PropertySourceProvider | 19 - code/old/api/bnd.bnd | 24 + code/old/api/pom.xml | 65 +++ .../java/org/apache/tamaya/ConfigException.java | 44 ++ .../java/org/apache/tamaya/ConfigOperator.java | 38 ++ .../java/org/apache/tamaya/ConfigQuery.java | 37 ++ .../java/org/apache/tamaya/Configuration.java | 179 +++++++ .../apache/tamaya/ConfigurationProvider.java | 138 ++++++ .../java/org/apache/tamaya/TypeLiteral.java | 212 +++++++++ .../java/org/apache/tamaya/package-info.java | 24 + .../apache/tamaya/spi/ConfigurationBuilder.java | 348 ++++++++++++++ .../apache/tamaya/spi/ConfigurationContext.java | 174 +++++++ .../tamaya/spi/ConfigurationContextBuilder.java | 336 +++++++++++++ .../tamaya/spi/ConfigurationProviderSpi.java | 128 +++++ .../apache/tamaya/spi/ConversionContext.java | 267 +++++++++++ .../org/apache/tamaya/spi/Experimental.java | 32 ++ .../org/apache/tamaya/spi/FilterContext.java | 140 ++++++ .../apache/tamaya/spi/PropertyConverter.java | 44 ++ .../org/apache/tamaya/spi/PropertyFilter.java | 51 ++ .../org/apache/tamaya/spi/PropertySource.java | 174 +++++++ .../tamaya/spi/PropertySourceProvider.java | 61 +++ .../org/apache/tamaya/spi/PropertyValue.java | 232 +++++++++ .../apache/tamaya/spi/PropertyValueBuilder.java | 196 ++++++++ .../spi/PropertyValueCombinationPolicy.java | 71 +++ .../org/apache/tamaya/spi/ServiceContext.java | 93 ++++ .../tamaya/spi/ServiceContextManager.java | 118 +++++ .../org/apache/tamaya/spi/package-info.java | 24 + .../api/src/main/resources/tamaya-banner.txt | 11 + .../org/apache/tamaya/ConfigExceptionTest.java | 45 ++ .../org/apache/tamaya/ConfigurationTest.java | 63 +++ .../org/apache/tamaya/TestConfiguration.java | 137 ++++++ .../tamaya/TestConfigurationProvider.java | 79 ++++ .../java/org/apache/tamaya/TypeLiteralTest.java | 90 ++++ .../tamaya/spi/ConversionContextTest.java | 194 ++++++++ .../apache/tamaya/spi/FilterContextTest.java | 158 +++++++ .../tamaya/spi/PropertyValueBuilderTest.java | 246 ++++++++++ .../spi/PropertyValueCombinationPolicyTest.java | 89 ++++ .../apache/tamaya/spi/PropertyValueTest.java | 250 ++++++++++ .../tamaya/spi/ServiceContextManagerTest.java | 90 ++++ .../apache/tamaya/spi/ServiceContextTest.java | 113 +++++ .../apache/tamaya/spi/TestServiceContext.java | 105 +++++ ...g.apache.tamaya.spi.ConfigurationProviderSpi | 19 + .../org.apache.tamaya.spi.ServiceContext | 19 + code/old/core/bnd.bnd | 43 ++ code/old/core/pom.xml | 95 ++++ .../org/apache/tamaya/core/OSGIActivator.java | 68 +++ .../tamaya/core/internal/BannerManager.java | 165 +++++++ .../tamaya/core/internal/CoreConfiguration.java | 43 ++ .../core/internal/CoreConfigurationBuilder.java | 89 ++++ .../internal/CoreConfigurationProvider.java | 101 ++++ .../core/internal/OSGIServiceComparator.java | 70 +++ .../core/internal/OSGIServiceContext.java | 172 +++++++ .../tamaya/core/internal/OSGIServiceLoader.java | 254 ++++++++++ .../converters/BigDecimalConverter.java | 76 +++ .../converters/BigIntegerConverter.java | 106 +++++ .../internal/converters/BooleanConverter.java | 73 +++ .../core/internal/converters/ByteConverter.java | 83 ++++ .../core/internal/converters/CharConverter.java | 80 ++++ .../internal/converters/ClassConverter.java | 78 +++ .../core/internal/converters/ConvertQuery.java | 68 +++ .../internal/converters/CurrencyConverter.java | 102 ++++ .../internal/converters/DoubleConverter.java | 93 ++++ .../internal/converters/DurationConverter.java | 59 +++ .../core/internal/converters/FileConverter.java | 62 +++ .../internal/converters/FloatConverter.java | 93 ++++ .../internal/converters/InstantConverter.java | 57 +++ .../internal/converters/IntegerConverter.java | 86 ++++ .../internal/converters/LocalDateConverter.java | 57 +++ .../converters/LocalDateTimeConverter.java | 57 +++ .../internal/converters/LocalTimeConverter.java | 57 +++ .../core/internal/converters/LongConverter.java | 83 ++++ .../internal/converters/NumberConverter.java | 84 ++++ .../converters/OffsetDateTimeConverter.java | 57 +++ .../converters/OffsetTimeConverter.java | 57 +++ .../internal/converters/OptionalConverter.java | 65 +++ .../core/internal/converters/PathConverter.java | 63 +++ .../internal/converters/ShortConverter.java | 84 ++++ .../internal/converters/SupplierConverter.java | 71 +++ .../core/internal/converters/URIConverter.java | 62 +++ .../core/internal/converters/URLConverter.java | 62 +++ .../core/internal/converters/package-info.java | 23 + .../tamaya/core/internal/package-info.java | 25 + .../org/apache/tamaya/core/package-info.java | 24 + .../services/org.apache.tamaya.Configuration | 19 + ...he.tamaya.core.internal.ConfigValueEvaluator | 19 + .../org.apache.tamaya.spi.ConfigurationBuilder | 19 + ...g.apache.tamaya.spi.ConfigurationProviderSpi | 19 + .../org.apache.tamaya.spi.PropertyConverter | 44 ++ .../org.apache.tamaya.spi.PropertySource | 22 + .../org.apache.tamaya.spi.ServiceContext | 19 + .../tamaya/core/ConfigurationBuilderTest.java | 438 +++++++++++++++++ .../core/ConfigurationContextBuilderTest.java | 422 +++++++++++++++++ .../apache/tamaya/core/ConfigurationTest.java | 57 +++ .../apache/tamaya/core/TestPropertySource.java | 72 +++ .../java/org/apache/tamaya/core/internal/A.java | 29 ++ .../java/org/apache/tamaya/core/internal/B.java | 29 ++ .../tamaya/core/internal/BannerManagerTest.java | 90 ++++ .../java/org/apache/tamaya/core/internal/C.java | 56 +++ .../tamaya/core/internal/CTestConverter.java | 32 ++ .../internal/CoreConfigurationBuilderTest.java | 219 +++++++++ .../internal/CoreConfigurationProviderTest.java | 93 ++++ .../core/internal/CoreConfigurationTest.java | 178 +++++++ .../internal/DefaultJavaConfigurationTest.java | 50 ++ .../converters/BigDecimalConverterTest.java | 133 ++++++ .../converters/BooleanConverterTest.java | 118 +++++ .../internal/converters/ByteConverterTest.java | 81 ++++ .../internal/converters/CharConverterTest.java | 86 ++++ .../internal/converters/ClassConverterTest.java | 67 +++ .../ConverterTestsPropertySource.java | 254 ++++++++++ .../converters/CurrencyConverterTest.java | 159 +++++++ .../converters/DoubleConverterTest.java | 175 +++++++ .../converters/DurationConverterTest.java | 79 ++++ .../internal/converters/FloatConverterTest.java | 176 +++++++ .../converters/InstantConverterTest.java | 57 +++ .../converters/IntegerConverterTest.java | 111 +++++ .../converters/LocalDateConverterTest.java | 57 +++ .../converters/LocalDateTimeConverterTest.java | 57 +++ .../converters/LocalTimeConverterTest.java | 57 +++ .../internal/converters/LongConverterTest.java | 111 +++++ .../converters/NumberConverterTest.java | 103 ++++ .../converters/OffsetDateTimeConverterTest.java | 57 +++ .../converters/OffsetTimeConverterTest.java | 56 +++ .../converters/OptionalConverterTest.java | 42 ++ .../internal/converters/PathConverterTest.java | 58 +++ .../internal/converters/ShortConverterTest.java | 111 +++++ .../internal/converters/URIConverterTest.java | 68 +++ .../internal/converters/URLConverterTest.java | 69 +++ .../testdata/TestPropertyDefaultSource.java | 57 +++ .../core/testdata/TestPropertyFilter.java | 41 ++ .../testdata/TestPropertySourceProvider.java | 79 ++++ .../testdata/TestRemovingPropertyFilter.java | 45 ++ .../META-INF/javaconfiguration.properties | 22 + .../resources/META-INF/javaconfiguration.xml | 25 + ...g.apache.tamaya.spi.ConfigurationProviderSpi | 18 + .../org.apache.tamaya.spi.PropertyConverter | 19 + .../org.apache.tamaya.spi.PropertyFilter | 20 + .../org.apache.tamaya.spi.PropertySource | 22 + ...org.apache.tamaya.spi.PropertySourceProvider | 19 + .../src/test/resources/invalid-properties.xml | 25 + .../src/test/resources/java-security.policy | 5 + .../src/test/resources/non-xml-properties.xml | 18 + .../test/resources/overrideOrdinal.properties | 25 + .../core/src/test/resources/testfile.properties | 22 + .../src/test/resources/valid-properties.xml | 25 + code/old/core/src/test/resources/x34.properties | 19 + code/old/spi-support/bnd.bnd | 26 + code/old/spi-support/pom.xml | 81 ++++ .../tamaya/spisupport/ConfigValueEvaluator.java | 48 ++ .../tamaya/spisupport/ConfigurationBuilder.java | 334 +++++++++++++ .../spisupport/DefaultConfigValueEvaluator.java | 70 +++ .../tamaya/spisupport/DefaultConfiguration.java | 283 +++++++++++ .../spisupport/DefaultConfigurationBuilder.java | 239 ++++++++++ .../spisupport/DefaultConfigurationContext.java | 277 +++++++++++ .../DefaultConfigurationContextBuilder.java | 437 +++++++++++++++++ .../spisupport/DefaultServiceContext.java | 204 ++++++++ .../apache/tamaya/spisupport/EnumConverter.java | 83 ++++ .../spisupport/PriorityServiceComparator.java | 84 ++++ .../spisupport/PropertyConverterManager.java | 471 +++++++++++++++++++ .../spisupport/PropertyFilterComparator.java | 72 +++ .../tamaya/spisupport/PropertyFiltering.java | 124 +++++ .../spisupport/PropertySourceComparator.java | 122 +++++ .../tamaya/spisupport/ReflectionUtil.java | 42 ++ .../tamaya/spisupport/RegexPropertyFilter.java | 84 ++++ .../propertysource/BasePropertySource.java | 172 +++++++ .../propertysource/BuildablePropertySource.java | 231 +++++++++ .../BuildablePropertySourceProvider.java | 114 +++++ .../propertysource/CLIPropertySource.java | 137 ++++++ .../EnvironmentPropertySource.java | 287 +++++++++++ .../JavaConfigurationPropertySource.java | 134 ++++++ .../propertysource/MapPropertySource.java | 102 ++++ .../PropertiesResourcePropertySource.java | 109 +++++ .../propertysource/SimplePropertySource.java | 284 +++++++++++ .../propertysource/SystemPropertySource.java | 199 ++++++++ .../propertysource/WrappedPropertySource.java | 126 +++++ .../spisupport/propertysource/package-info.java | 23 + .../java/org/apache/tamaya/spisupport/A.java | 29 ++ .../java/org/apache/tamaya/spisupport/B.java | 29 ++ .../BuildablePropertySourceProviderTest.java | 78 +++ .../spisupport/BuildablePropertySourceTest.java | 89 ++++ .../java/org/apache/tamaya/spisupport/C.java | 56 +++ .../tamaya/spisupport/CTestConverter.java | 32 ++ .../DefaultConfigurationBuilderTest.java | 220 +++++++++ .../spisupport/DefaultConfigurationTest.java | 202 ++++++++ .../spisupport/DefaultServiceContextTest.java | 138 ++++++ .../spisupport/EmptyConfigurationContext.java | 78 +++ .../EmptyConfigurationContextBuilder.java | 174 +++++++ .../tamaya/spisupport/EnumConverterTest.java | 52 ++ .../PriorityServiceComparatorTest.java | 44 ++ .../PropertyConverterManagerTest.java | 180 +++++++ .../PropertyFilterComparatorTest.java | 76 +++ .../spisupport/RegexPropertyFilterTest.java | 70 +++ .../spisupport/TestConfigurationProvider.java | 92 ++++ .../propertysource/BasePropertySourceTest.java | 136 ++++++ .../propertysource/CLIPropertySourceTest.java | 59 +++ .../propertysource/EnumConverterTest.java | 60 +++ .../EnvironmentPropertySourceTest.java | 68 +++ .../JavaConfigurationProviderTest.java | 46 ++ .../propertysource/MapPropertySourceTest.java | 76 +++ .../PropertiesFilePropertySourceTest.java | 60 +++ .../SimplePropertySourceTest.java | 89 ++++ .../SystemPropertySourceTest.java | 91 ++++ .../TestPropertyDefaultSource.java | 57 +++ .../services/DefaultServiceContext.java | 205 ++++++++ .../META-INF/javaconfiguration.properties | 22 + .../resources/META-INF/javaconfiguration.xml | 25 + ...g.apache.tamaya.spi.ConfigurationProviderSpi | 18 + .../org.apache.tamaya.spi.PropertyConverter | 19 + .../org.apache.tamaya.spi.ServiceContext | 19 + ...tServiceContextTest$InvalidPriorityInterface | 18 + ...efaultServiceContextTest$MultiImplsInterface | 20 + .../src/test/resources/invalid-properties.xml | 25 + .../src/test/resources/non-xml-properties.xml | 18 + .../test/resources/overrideOrdinal.properties | 25 + .../src/test/resources/testfile.properties | 22 + .../src/test/resources/valid-properties.xml | 25 + code/pom.xml | 4 +- code/spi-support/bnd.bnd | 26 - code/spi-support/pom.xml | 81 ---- .../tamaya/spisupport/ConfigValueEvaluator.java | 48 -- .../tamaya/spisupport/ConfigurationBuilder.java | 334 ------------- .../spisupport/DefaultConfigValueEvaluator.java | 70 --- .../tamaya/spisupport/DefaultConfiguration.java | 283 ----------- .../spisupport/DefaultConfigurationBuilder.java | 236 ---------- .../spisupport/DefaultConfigurationContext.java | 277 ----------- .../DefaultConfigurationContextBuilder.java | 437 ----------------- .../spisupport/DefaultServiceContext.java | 204 -------- .../apache/tamaya/spisupport/EnumConverter.java | 83 ---- .../spisupport/PriorityServiceComparator.java | 84 ---- .../spisupport/PropertyConverterManager.java | 471 ------------------- .../spisupport/PropertyFilterComparator.java | 72 --- .../tamaya/spisupport/PropertyFiltering.java | 124 ----- .../spisupport/PropertySourceComparator.java | 122 ----- .../tamaya/spisupport/ReflectionUtil.java | 42 -- .../tamaya/spisupport/RegexPropertyFilter.java | 84 ---- .../propertysource/BasePropertySource.java | 173 ------- .../propertysource/BuildablePropertySource.java | 231 --------- .../BuildablePropertySourceProvider.java | 114 ----- .../propertysource/CLIPropertySource.java | 137 ------ .../EnvironmentPropertySource.java | 287 ----------- .../JavaConfigurationPropertySource.java | 134 ------ .../propertysource/MapPropertySource.java | 102 ---- .../PropertiesResourcePropertySource.java | 109 ----- .../propertysource/SimplePropertySource.java | 284 ----------- .../propertysource/SystemPropertySource.java | 199 -------- .../propertysource/WrappedPropertySource.java | 126 ----- .../spisupport/propertysource/package-info.java | 23 - .../java/org/apache/tamaya/spisupport/A.java | 29 -- .../java/org/apache/tamaya/spisupport/B.java | 29 -- .../BuildablePropertySourceProviderTest.java | 78 --- .../spisupport/BuildablePropertySourceTest.java | 89 ---- .../java/org/apache/tamaya/spisupport/C.java | 56 --- .../tamaya/spisupport/CTestConverter.java | 32 -- .../DefaultConfigurationBuilderTest.java | 220 --------- .../spisupport/DefaultConfigurationTest.java | 202 -------- .../spisupport/DefaultServiceContextTest.java | 138 ------ .../spisupport/EmptyConfigurationContext.java | 78 --- .../EmptyConfigurationContextBuilder.java | 174 ------- .../tamaya/spisupport/EnumConverterTest.java | 52 -- .../PriorityServiceComparatorTest.java | 44 -- .../PropertyConverterManagerTest.java | 180 ------- .../PropertyFilterComparatorTest.java | 76 --- .../spisupport/RegexPropertyFilterTest.java | 70 --- .../spisupport/TestConfigurationProvider.java | 92 ---- .../propertysource/BasePropertySourceTest.java | 136 ------ .../propertysource/CLIPropertySourceTest.java | 59 --- .../propertysource/EnumConverterTest.java | 60 --- .../EnvironmentPropertySourceTest.java | 68 --- .../JavaConfigurationProviderTest.java | 46 -- .../propertysource/MapPropertySourceTest.java | 76 --- .../PropertiesFilePropertySourceTest.java | 60 --- .../SimplePropertySourceTest.java | 89 ---- .../SystemPropertySourceTest.java | 91 ---- .../TestPropertyDefaultSource.java | 57 --- .../services/DefaultServiceContext.java | 205 -------- .../META-INF/javaconfiguration.properties | 22 - .../resources/META-INF/javaconfiguration.xml | 25 - ...g.apache.tamaya.spi.ConfigurationProviderSpi | 18 - .../org.apache.tamaya.spi.PropertyConverter | 19 - .../org.apache.tamaya.spi.ServiceContext | 19 - ...tServiceContextTest$InvalidPriorityInterface | 18 - ...efaultServiceContextTest$MultiImplsInterface | 20 - .../src/test/resources/invalid-properties.xml | 25 - .../src/test/resources/non-xml-properties.xml | 18 - .../test/resources/overrideOrdinal.properties | 25 - .../src/test/resources/testfile.properties | 22 - .../src/test/resources/valid-properties.xml | 25 - pom.xml | 10 + 424 files changed, 21726 insertions(+), 18153 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/9bc56a38/code/api/bnd.bnd ---------------------------------------------------------------------- diff --git a/code/api/bnd.bnd b/code/api/bnd.bnd deleted file mode 100644 index b606a72..0000000 --- a/code/api/bnd.bnd +++ /dev/null @@ -1,24 +0,0 @@ --buildpath: \ - osgi.annotation; version=6.0.0,\ - osgi.core; version=6.0,\ - osgi.cmpn; version=6.0 - --testpath: \ - ${junit} - -javac.source: 1.8 -javac.target: 1.8 - -Bundle-Version: ${version}.${tstamp} -Bundle-SymbolicName: org.apache.tamaya -Bundle-Name: Apache Tamaya - API -Bundle-Description: Apacha Tamaya Configuration Java API -Bundle-Category: API -Bundle-Copyright: (C) Apache Foundation -Bundle-License: Apache Licence version 2 -Bundle-Vendor: Apache Software Foundation -Bundle-ContactAddress: dev-tam...@incubator.apache.org -Bundle-DocURL: http://tamaya.apache.org -Export-Package: \ - org.apache.tamaya,\ - org.apache.tamaya.spi http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/9bc56a38/code/api/pom.xml ---------------------------------------------------------------------- diff --git a/code/api/pom.xml b/code/api/pom.xml deleted file mode 100644 index 581e18d..0000000 --- a/code/api/pom.xml +++ /dev/null @@ -1,65 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy current the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <parent> - <groupId>org.apache.tamaya</groupId> - <artifactId>tamaya-code</artifactId> - <version>0.4-incubating-SNAPSHOT</version> - </parent> - - <artifactId>tamaya-api</artifactId> - <name>Apache Tamaya Core API</name> - <packaging>jar</packaging> - - <description> - The API for accessing configuration data. - </description> - - - <url>http://tamaya.incubator.apache.org</url> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.hamcrest</groupId> - <artifactId>java-hamcrest</artifactId> - </dependency> - <dependency> - <groupId>org.assertj</groupId> - <artifactId>assertj-core</artifactId> - </dependency> - <dependency> - <groupId>org.mockito</groupId> - <artifactId>mockito-core</artifactId> - </dependency> - <dependency> - <groupId>org.osgi</groupId> - <artifactId>org.osgi.annotation</artifactId> - <scope>provided</scope> - <optional>true</optional> - </dependency> - </dependencies> - -</project> http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/9bc56a38/code/api/src/main/java/org/apache/tamaya/ConfigException.java ---------------------------------------------------------------------- diff --git a/code/api/src/main/java/org/apache/tamaya/ConfigException.java b/code/api/src/main/java/org/apache/tamaya/ConfigException.java deleted file mode 100644 index 38b0801..0000000 --- a/code/api/src/main/java/org/apache/tamaya/ConfigException.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.tamaya; - -/** - * Exception class (runtime exception) for configuration issues. - */ -public class ConfigException extends RuntimeException{ - - private static final long serialVersionUID = -5886094818057522680L; - - /** - * Creates a new configuration exception. - * @param message the exception message, not {@code null}. - */ - public ConfigException(String message){ - super(message); - } - - /** - * Creates a new configuration exception. - * @param message the exception message, not {@code null}. - * @param t the throwable. - */ - public ConfigException(String message, Throwable t){ - super(message, t); - } -} http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/9bc56a38/code/api/src/main/java/org/apache/tamaya/ConfigOperator.java ---------------------------------------------------------------------- diff --git a/code/api/src/main/java/org/apache/tamaya/ConfigOperator.java b/code/api/src/main/java/org/apache/tamaya/ConfigOperator.java deleted file mode 100644 index b14c155..0000000 --- a/code/api/src/main/java/org/apache/tamaya/ConfigOperator.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.tamaya; - -/** - * Models a function that maps a given {@link org.apache.tamaya.Configuration} to another {@link org.apache.tamaya.Configuration}. This can be used - * to modell additional functionality and applying it to a given {@link org.apache.tamaya.Configuration} instance by calling - * the {@link org.apache.tamaya.Configuration#with(org.apache.tamaya.ConfigOperator)} method. - */ -@FunctionalInterface -public interface ConfigOperator { - - /** - * Creates a new {@link org.apache.tamaya.Configuration} based on the given Configuration. Operators basically acts similar to - * decorators, whereas operated instances may have non compatible behaviour, e.g. by applying security constraints - * or view restrictions. - * - * @param config the input configuration, not {@code null}. - * @return the operated configuration, never {@code null}. - */ - Configuration operate(Configuration config); -} http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/9bc56a38/code/api/src/main/java/org/apache/tamaya/ConfigQuery.java ---------------------------------------------------------------------- diff --git a/code/api/src/main/java/org/apache/tamaya/ConfigQuery.java b/code/api/src/main/java/org/apache/tamaya/ConfigQuery.java deleted file mode 100644 index 28b8b93..0000000 --- a/code/api/src/main/java/org/apache/tamaya/ConfigQuery.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.tamaya; - -/** - * Models a function that maps a given {@link Configuration} to something else. This can be used - * to model additional functionality and applying it to a given {@link Configuration} instance by - * calling the {@link Configuration#query(ConfigQuery)} method. - */ -@FunctionalInterface -public interface ConfigQuery<T> { - - /** - * Creates a result based on the given Configuration. Queries basically acts similar to - * operators, whereas they returns any kind of result. - * - * @param config the input configuration, not {@code null}. - * @return the query result. - */ - T query(Configuration config); -} http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/9bc56a38/code/api/src/main/java/org/apache/tamaya/Configuration.java ---------------------------------------------------------------------- diff --git a/code/api/src/main/java/org/apache/tamaya/Configuration.java b/code/api/src/main/java/org/apache/tamaya/Configuration.java deleted file mode 100644 index b891d43..0000000 --- a/code/api/src/main/java/org/apache/tamaya/Configuration.java +++ /dev/null @@ -1,179 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.tamaya; - -import org.apache.tamaya.spi.ConfigurationBuilder; -import org.apache.tamaya.spi.ConfigurationContext; - -import java.util.Map; - - -/** - * <p>A configuration models a aggregated set current properties, identified by - * a unique key, but adds higher level access functions to - * a {@link org.apache.tamaya.spi.PropertySource}. Hereby in most - * cases a configuration is a wrapper around a composite - * {@link org.apache.tamaya.spi.PropertySource} instance, which may combine - * multiple child config in well defined tree like structure, - * where nodes define logically the rules current priority, filtering, - * combination and overriding. - * </p> - * <h3>Implementation Requirements</h3> - * Implementations current this interface must be - * <ul> - * <li>Thread safe</li> - * <li>Immutable</li> - * </ul> - * - * <p>It is not recommended that implementations also are serializable, since the any configuration can be <i>frozen</i> - * by reading out its complete configuration map into a serializable and remotable structure. This helps significantly - * simplifying the development current this interface, e.g. for being backed up by systems and stores that are not part current - * this library at all.</p> - */ -public interface Configuration { - - /** - * Access a property. - * - * @param key the property's key, not {@code null}. - * @return the property's value. - */ - default String get(String key){ - return get(key, TypeLiteral.of(String.class)); - } - - /** - * Access a property. - * - * @param key the property's key, not {@code null}. - * @param defaultValue value to be returned, if no value is present, not {@code null} - * @return the property's keys. - */ - default String getOrDefault(String key, String defaultValue){ - return getOrDefault(key, TypeLiteral.of(String.class), defaultValue); - } - - /** - * Get the property keys as type T. This will implicitly require a corresponding {@link - * org.apache.tamaya.spi.PropertyConverter} to be available that is capable current providing type T - * fromMap the given String keys. - * - * @param <T> the type of the class modeled by the type parameter - * @param key the property's absolute, or relative path, e.g. @code - * a/b/c/d.myProperty}, not {@code null}. - * @param type The target type required, not {@code null}. - * @param defaultValue value to be used, if no value is present, not {@code null} - * @return the property value, never {@code null}. - * @throws ConfigException if the keys could not be converted to the required target type. - */ - default <T> T getOrDefault(String key, Class<T> type, T defaultValue){ - return getOrDefault(key, TypeLiteral.of(type), defaultValue); - } - - /** - * Get the property keys as type T. This will implicitly require a corresponding {@link - * org.apache.tamaya.spi.PropertyConverter} to be available that is capable current providing type T - * fromMap the given String keys. - * - * @param <T> the type of the class modeled by the type parameter - * @param key the property's absolute, or relative path, e.g. @code - * a/b/c/d.myProperty}. - * @param type The target type required, not {@code null}. - * @return the property value, never {@code null}. - * @throws ConfigException if the keys could not be converted to the required target type. - */ - default <T> T get(String key, Class<T> type){ - return get(key, TypeLiteral.of(type)); - } - - /** - * Get the property keys as type T. This will implicitly require a corresponding {@link - * org.apache.tamaya.spi.PropertyConverter} to be available that is capable current providing type T - * fromMap the given String keys. - * - * @param <T> the type of the type literal - * @param key the property's absolute, or relative path, e.g. @code - * a/b/c/d.myProperty}, not {@code null}. - * @param type The target type required, not {@code null}. - * @return the property value, never {@code null}. - * @throws ConfigException if the keys could not be converted to the required target type. - */ - <T> T get(String key, TypeLiteral<T> type); - - /** - * Get the property keys as type T. This will implicitly require a corresponding {@link - * org.apache.tamaya.spi.PropertyConverter} to be available that is capable current providing type T - * fromMap the given String keys. - * - * @param <T> the type of the type literal - * @param key the property's absolute, or relative path, e.g. - * {@code a/b/c/d.myProperty}, not {@code null}. - * @param type The target type required, not {@code null}. - * @param defaultValue default value to be used, if no value is present. - * @return the property value, never null. - * @throws ConfigException if the keys could not be converted to the required target type. - */ - <T> T getOrDefault(String key, TypeLiteral<T> type, T defaultValue); - - /** - * Access all currently known configuration properties as a full {@code Map<String,String>}. - * Be aware that entries from non scannable parts of the registered {@link org.apache.tamaya.spi.PropertySource} - * instances may not be contained in the result, but nevertheless be accessible calling one of the - * {@code get(...)} methods. - * @return all currently known configuration properties. - */ - Map<String,String> getProperties(); - - /** - * Extension point for adjusting configuration. - * - * @param operator A configuration operator, e.g. a filter, or an adjuster - * combining configurations, never {@code null}. - * @return the new adjusted configuration returned by the {@code operator}, never {@code null}. - */ - default Configuration with(ConfigOperator operator){ - return operator.operate(this); - } - - /** - * Query a configuration. - * - * @param <T> the type of the configuration. - * @param query the query, not {@code null}. - * @return the result returned by the {@code query}. - */ - default <T> T query(ConfigQuery<T> query){ - return query.query(this); - } - - /** - * Access a configuration's context. - * @return the configuration context, never null. - */ - ConfigurationContext getContext(); - - /** - * Create a new builder using this instance as it's base. - * @return a new builder, never null. - */ - default ConfigurationBuilder toBuilder() { - return ConfigurationProvider.getConfigurationBuilder().setConfiguration(this); - } - -} http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/9bc56a38/code/api/src/main/java/org/apache/tamaya/ConfigurationProvider.java ---------------------------------------------------------------------- diff --git a/code/api/src/main/java/org/apache/tamaya/ConfigurationProvider.java b/code/api/src/main/java/org/apache/tamaya/ConfigurationProvider.java deleted file mode 100644 index bacb944..0000000 --- a/code/api/src/main/java/org/apache/tamaya/ConfigurationProvider.java +++ /dev/null @@ -1,138 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.tamaya; - -import org.apache.tamaya.spi.*; - -import java.util.logging.Logger; - -/** - * Static access to the {@link Configuration} for the very application. - */ -public final class ConfigurationProvider { - - private static final Logger LOG = Logger.getLogger(ConfigurationProvider.class.getName()); - - private static ConfigurationProviderSpi spi() { - ConfigurationProviderSpi spi = ServiceContextManager.getServiceContext() - .getService(ConfigurationProviderSpi.class); - if(spi==null){ - throw new IllegalStateException("ConfigurationProviderSpi not available."); - } - return spi; - } - - private ConfigurationProvider() { - // just to prevent initialisation - } - - /** - * Access the current configuration. - * - * @return the corresponding Configuration instance, never {@code null}. - */ - public static Configuration getConfiguration() { - return spi().getConfiguration(); - } - - /** - * Creates a new configuration instance based on the given context. - * - * @param context the configuration context, not {@code null}. - * @return a new Configuration instance, never {@code null}. - */ - public static Configuration createConfiguration(ConfigurationContext context) { - return spi().createConfiguration(context); - } - - /** - * Get access to the current ConfigurationContext. - * - * @return the current ConfigurationContext, never null. - * @deprecated Use {@link Configuration#getContext()} instead of. - */ - @Deprecated - public static ConfigurationContext getConfigurationContext() { - return spi().getConfigurationContext(); - } - - /** - * This method allows to replace the current {@link org.apache.tamaya.spi.ConfigurationContext} with a new - * instance. This can be used to update the context with a new one, e.g. because some of the configuration - * data has changed and should be updated. It is the responsibility of the ConfigurationProvider to trigger - * corresponding update events for the current {@link org.apache.tamaya.Configuration}, so observing - * listeners can do whatever is appropriate to react to any given configuration changes. - * - * @param context the new ConfigurationContext to be applied. - * @throws java.lang.UnsupportedOperationException if the current provider is read-only and does not support - * applying a new ConfigurationContext. - * @deprecated Use #setConfiguration(Configuration) instead of. - */ - @Deprecated - public static void setConfigurationContext(ConfigurationContext context) { - spi().setConfigurationContext(context); - } - - /** - * This method allows to replace the current default {@link org.apache.tamaya.Configuration} with a new - * instance. It is the responsibility of the ConfigurationProvider to trigger - * corresponding update events for the current {@link org.apache.tamaya.Configuration}, so observing - * listeners can do whatever is appropriate to react to any given configuration change. - * - * @param config the new Configuration to be applied, not {@code null} - * @throws java.lang.UnsupportedOperationException if the current provider is read-only and - * does not support - * applying a new Configuration. - */ - public static void setConfiguration(Configuration config) { - LOG.info("TAMAYA Applying new Configuration: " + config); - spi().setConfiguration(config); - } - - /** - * Create a new {@link ConfigurationBuilder} instance. This method creates - * a new builder instance that is not related to any concrete {@link org.apache.tamaya.spi.ConfigurationContext}. - * You can use {@link #setConfigurationContext(org.apache.tamaya.spi.ConfigurationContext)} to change the - * current configuration context. - * - * @return a new, empty {@link ConfigurationBuilder}, never null. - * @see #setConfigurationContext(org.apache.tamaya.spi.ConfigurationContext) - * @see org.apache.tamaya.spi.ConfigurationContext - * @deprecated Will be removed. - */ - @Deprecated - public static ConfigurationContextBuilder getConfigurationContextBuilder() { - return spi().getConfigurationContextBuilder(); - } - - /** - * Create a new {@link ConfigurationBuilder} instance. This method creates - * a new builder instance that is not related to any concrete {@link org.apache.tamaya.spi.ConfigurationContext}. - * You can use {@link #setConfigurationContext(org.apache.tamaya.spi.ConfigurationContext)} to change the - * current configuration context. - * - * @return a new, empty {@link ConfigurationBuilder}, never null. - * @see #setConfigurationContext(org.apache.tamaya.spi.ConfigurationContext) - * @see org.apache.tamaya.spi.ConfigurationContext - */ - public static ConfigurationBuilder getConfigurationBuilder() { - return spi().getConfigurationBuilder(); - } - -} http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/9bc56a38/code/api/src/main/java/org/apache/tamaya/TypeLiteral.java ---------------------------------------------------------------------- diff --git a/code/api/src/main/java/org/apache/tamaya/TypeLiteral.java b/code/api/src/main/java/org/apache/tamaya/TypeLiteral.java deleted file mode 100644 index f530a29..0000000 --- a/code/api/src/main/java/org/apache/tamaya/TypeLiteral.java +++ /dev/null @@ -1,212 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.tamaya; - -import java.io.Serializable; -import java.lang.reflect.GenericArrayType; -import java.lang.reflect.ParameterizedType; -import java.lang.reflect.Type; -import java.util.Objects; - - -/** - * <p>Class for instantiation of objects that represent parameterized types - * with current parameters.</p> - * - * <p>An object that represents a parameterized type may be obtained by - * subclassing <tt>TypeLiteral</tt>.</p> - * - * <pre> - * TypeLiteral<List<Integer>> stringListType = new TypeLiteral<List<Integer>>() {}; - * </pre> - * - * @param <T> the type, including all type parameters - */ -public class TypeLiteral<T> implements Serializable { - - private static final long serialVersionUID = 1L; - private static final Type[] EMPTY_TYPE_ARRAY = new Type[0]; - /** The current defined type. */ - private final Type definedType; - - /** - * Constructor. - * @param definedType the defined type. - */ - public TypeLiteral(Type definedType) { - Objects.requireNonNull(definedType, "Type must be given"); - - this.definedType = definedType; - } - - /** - * Constructor only for directly implemeting a TypeLiteral hereby dynamically implementing a generic interface. - */ - public TypeLiteral() { - this.definedType = getDefinedType(this.getClass()); - } - - /** - * Creates a new TypeLiteral based on a given type. - * - * @param type the type , not {@code null}. - * @param <R> the literal generic type. - * @return the corresponding TypeLiteral, never {@code null}. - */ - public static <R> TypeLiteral<R> of(Type type) { - Objects.requireNonNull(type, "Type must be given."); - - return new TypeLiteral<>(type); - } - - /** - * Checks the current implemented generic interfaces and evaluates the given single type parameter. - * - * @param clazz the class to check, not {@code null}. - * @param interfaceType the interface type to be checked, not {@code null}. - * @return the generic type parameters, or an empty array, if it cannot be evaluated. - */ - public static Type[] getGenericInterfaceTypeParameters(Class<?> clazz, Class<?> interfaceType) { - Objects.requireNonNull(clazz, "Class parameter must be given."); - Objects.requireNonNull(interfaceType, "Interface parameter must be given."); - - for (Type type : clazz.getGenericInterfaces()) { - if (type instanceof ParameterizedType) { - ParameterizedType parameterizedType = (ParameterizedType) type; - if(parameterizedType.getRawType().equals(interfaceType)){ - return parameterizedType.getActualTypeArguments(); - } - } - } - return EMPTY_TYPE_ARRAY; - } - - /** - * Method that checks the class's type for a generic interface implementation type. - * - * @param type the type, not {@code null}. - * @return the generic type parameter of the given single type generic interfaceType, or an empty array. - */ - public static Type[] getTypeParameters(Type type) { - Objects.requireNonNull(type, "Type must be given."); - - if (type instanceof ParameterizedType) { - ParameterizedType parameterizedType = (ParameterizedType) type; - return parameterizedType.getActualTypeArguments(); - } - return EMPTY_TYPE_ARRAY; - } - - public final Type getType() { - return definedType; - } - - /** - * Returns basic raw Java type. - * - * @return the actual type represented by this object - */ - @SuppressWarnings("unchecked") - public final Class<T> getRawType() { - Class<T> rawType; - - if (this.definedType instanceof ParameterizedType) { - ParameterizedType pt = (ParameterizedType) this.definedType; - rawType = (Class<T>) pt.getRawType(); - } else if (this.definedType instanceof GenericArrayType) { - rawType = (Class<T>) Object[].class; - } else if (this.definedType instanceof Class) { - rawType = (Class<T>) this.definedType; - } else { - throw new RuntimeException("Illegal type for the Type Literal Class"); - } - - return rawType; - } - - - protected Type getDefinedType(Class<?> clazz) { - Type type; - - if (clazz == null) { - throw new RuntimeException("Class parameter clazz can not be null"); - } - - Type superClazz = clazz.getGenericSuperclass(); - - if (superClazz instanceof ParameterizedType) { - ParameterizedType pt = (ParameterizedType) superClazz; - Type[] actualArgs = pt.getActualTypeArguments(); - - if (actualArgs.length == 1) { - type = actualArgs[0]; - - } else { - throw new RuntimeException("More than one parametric type"); - } - - } else if (superClazz.equals(Object.class)) { - throw new RuntimeException("Super class must be parametrized type"); - } else { - type = getDefinedType((Class<?>) superClazz); - } - - return type; - } - - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((definedType == null) ? 0 : definedType.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - TypeLiteral<?> other = (TypeLiteral<?>) obj; - if (definedType == null) { - if (other.definedType != null) { - return false; - } - } else if (!definedType.equals(other.definedType)) { - return false; - } - return true; - } - - - @Override - public String toString() { - return "TypeLiteral{" + - "type=" + definedType + - '}'; - } - -} http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/9bc56a38/code/api/src/main/java/org/apache/tamaya/package-info.java ---------------------------------------------------------------------- diff --git a/code/api/src/main/java/org/apache/tamaya/package-info.java b/code/api/src/main/java/org/apache/tamaya/package-info.java deleted file mode 100644 index 60692a4..0000000 --- a/code/api/src/main/java/org/apache/tamaya/package-info.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -/** - * This package contains the Apache Tamaya API. - */ -@org.osgi.annotation.versioning.Version("0.4") -package org.apache.tamaya; \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/9bc56a38/code/api/src/main/java/org/apache/tamaya/spi/ConfigurationBuilder.java ---------------------------------------------------------------------- diff --git a/code/api/src/main/java/org/apache/tamaya/spi/ConfigurationBuilder.java b/code/api/src/main/java/org/apache/tamaya/spi/ConfigurationBuilder.java deleted file mode 100644 index a2b3257..0000000 --- a/code/api/src/main/java/org/apache/tamaya/spi/ConfigurationBuilder.java +++ /dev/null @@ -1,348 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.tamaya.spi; - -import org.apache.tamaya.Configuration; -import org.apache.tamaya.TypeLiteral; - -import java.util.Collection; -import java.util.Comparator; -import java.util.List; -import java.util.Map; - -/** - * A builder for creating new instance of {@link Configuration}. - * Builders can be obtained in exactly two ways: - * <ol> - * <li>By accessing a preinitialized builder from an existing {@link Configuration}, - * by calling {@link org.apache.tamaya.spi.Configuration#toBuilder()}.</li> - * <li>By accessing an empty builder instance from - * {@link org.apache.tamaya.ConfigurationProvider#getConfigurationBuilder()}.</li> - * </ol> - * After all changes are applied to a builder a new {@link Configuration} instance can - * be created and can be applied by calling - * {@link #build()}}. - * - */ -public interface ConfigurationBuilder { - - /** - * Init this builder instance with the given {@link Configuration} instance. This - * method will use any existing property sources, filters, converters and the combination - * policy of the given {@link Configuration} and initialize the current builder - * with them. All previous property sources, filters, converters and the combination - * policy of this instance will be replaced. - * - * @param config the {@link Configuration} instance to be used, not {@code null}. - * @return this builder, for chaining, never null. - */ - ConfigurationBuilder setConfiguration(Configuration config); - - /** - * Init this builder instance with the given {@link ConfigurationContext} instance. This - * method will use any existing property sources, filters, converters and the combination - * policy of the given {@link ConfigurationContext} and initialize the current builder - * with them. All previous property sources, filters, converters and the combination - * policy of this instance will be replaced. - * - * @param context the {@link ConfigurationContext} instance to be used, not {@code null}. - * @return this builder, for chaining, never null. - */ - ConfigurationBuilder setContext(ConfigurationContext context); - - /** - * This method can be used for adding {@link PropertySource}s. - * Hereby the property source is added to the tail of property sources with - * lowest priority regardless of its current ordinal value. To sort the property - * sources based on their ordinals call {@link #sortPropertySources}. - * - * @param propertySources the PropertySources to add - * @return this builder, for chaining, never null. - * @throws IllegalArgumentException If a property source with a given name already - * exists. - */ - ConfigurationBuilder addPropertySources(PropertySource... propertySources); - - /** - * This method can be used for programmatically adding {@link PropertySource}s. - * Hereby the property source is added to the tail of property sources with - * lowest priority regardless of its current ordinal value. To sort the property - * sources based on their ordinals call {@link #sortPropertySources}. - * - * @param propertySources the PropertySources to add - * @return this builder, for chaining, never null. - * @throws IllegalArgumentException If a property source with a given name already - * exists. - */ - ConfigurationBuilder addPropertySources(Collection<PropertySource> propertySources); - - /** - * Add all registered (default) property sources to the context built. The sources are ordered - * based on their ordinal values and added to the chain of property sources with - * higher priority. - * @return this builder, for chaining, never null. - */ - ConfigurationBuilder addDefaultPropertySources(); - - /** - * Removes the given property sources, if existing. The existing order of property - * sources is preserved. - * - * @param propertySources the property sources to remove, not {@code null}. - * @return the builder for chaining. - */ - ConfigurationBuilder removePropertySources(PropertySource... propertySources); - - /** - * Removes the given property sources, if existing. The existing order of property - * sources is preserved. - * - * @param propertySources the property sources to remove, not {@code null}. - * @return the builder for chaining. - */ - ConfigurationBuilder removePropertySources(Collection<PropertySource> propertySources); - - /** - * Access the current chain of property sources. Items at the end of the list have - * precedence/more significance. - * - * @return the property source chain, never {@code null}. - */ - List<PropertySource> getPropertySources(); - - /** - * Access the current chain of property filters. Items at the end of the list have - * precedence/more significance. - * - * @return the property filter chain, never {@code null}. - */ - List<PropertyFilter> getPropertyFilters(); - - /** - * Access the current registered property converters. - * - * @return the current registered property converters. - */ - Map<TypeLiteral<?>, Collection<PropertyConverter<?>>> getPropertyConverter(); - - /** - * Increases the priority of the given property source, by moving it towards the end - * of the chain of property sources. If the property source given is already at the end - * this method has no effect. This operation does not change any ordinal values. - * - * @param propertySource the property source to be incresed regarding its significance. - * @return the builder for chaining. - * @throws IllegalArgumentException If no such property source exists in the current - * chain. - */ - ConfigurationBuilder increasePriority(PropertySource propertySource); - - /** - * Decreases the priority of the given property source, by moving it towards the start - * of the chain of property sources. If the property source given is already the first - * this method has no effect. This operation does not change any ordinal values. - * - * @param propertySource the property source to be decresed regarding its significance. - * @return the builder for chaining. - * @throws IllegalArgumentException If no such property source exists in the current - * chain. - */ - ConfigurationBuilder decreasePriority(PropertySource propertySource); - - /** - * Increases the priority of the given property source to be maximal, by moving it to - * the tail of the of property source chain. If the property source given is - * already the last item this method has no effect. This operation does not change - * any ordinal values. - * - * @param propertySource the property source to be maximized regarding its significance. - * @return the builder for chaining. - * @throws IllegalArgumentException If no such property source exists in the current - * chain. - */ - ConfigurationBuilder highestPriority(PropertySource propertySource); - - /** - * Decreases the priority of the given property source to be minimal, by moving it to - * the start of the chain of property source chain. If the property source given is - * already the first item this method has no effect. This operation does not change - * any ordinal values. - * - * @param propertySource the property source to be minimized regarding its significance. - * @return the builder for chaining. - * @throws IllegalArgumentException If no such property source exists in the current - * chain. - */ - ConfigurationBuilder lowestPriority(PropertySource propertySource); - - /** - * Adds the given PropertyFilter instances, hereby the instances are added - * to the end of the list with highest priority. The ordering of existing - * property filters remains unchanged. To sort the property - * filters call {@link #sortPropertyFilter}. - * - * @param filters the filters to add - * @return this builder, for chaining, never null. - */ - ConfigurationBuilder addPropertyFilters(PropertyFilter... filters); - - /** - * Adds the given PropertyFilter instances, hereby the instances are added - * to the end of the list with highest priority. The ordering of existing - * property filters remains unchanged. To sort the property - * filters call {@link #sortPropertyFilter}. - * - * @param filters the filters to add - * @return this builder, for chaining, never null. - */ - ConfigurationBuilder addPropertyFilters(Collection<PropertyFilter> filters); - - /** - * Add all auto-discoverable property filters to the context built. - * @return this builder, for chaining, never null. - */ - ConfigurationBuilder addDefaultPropertyFilters(); - - - /** - * Removes the given PropertyFilter instances, if existing. The order of the remaining - * filters is preserved. - * - * @param filters the filter to remove - * @return this builder, for chaining, never null. - */ - ConfigurationBuilder removePropertyFilters(PropertyFilter... filters); - - /** - * Removes the given PropertyFilter instances, if existing. The order of the remaining - * filters is preserved. - * - * @param filters the filter to remove - * @return this builder, for chaining, never null. - */ - ConfigurationBuilder removePropertyFilters(Collection<PropertyFilter> filters); - - /** - * This method can be used for adding {@link PropertyConverter}s. - * Converters are added at the end after any existing converters. - * For converters already registered for the current target type the - * method has no effect. - * - * @param typeToConvert the type for which the converter is for - * @param propertyConverters the PropertyConverters to add for this type - * @param <T> the target type. - * @return this builder, for chaining, never null. - */ - <T> ConfigurationBuilder addPropertyConverters(TypeLiteral<T> typeToConvert, - @SuppressWarnings("unchecked") PropertyConverter<T>... propertyConverters); - - /** - * This method can be used for adding {@link PropertyConverter}s. - * Converters are added at the end after any existing converters. - * For converters already registered for the current target type the - * method has no effect. - * - * @param typeToConvert the type for which the converter is for - * @param propertyConverters the PropertyConverters to add for this type - * @param <T> the target type. - * @return this builder, for chaining, never null. - */ - <T> ConfigurationBuilder addPropertyConverters(TypeLiteral<T> typeToConvert, - Collection<PropertyConverter<T>> propertyConverters); - - /** - * Add all auto-discoverable property converters to the context built. - * @return this builder, for chaining, never null. - */ - ConfigurationBuilder addDefaultPropertyConverters(); - - /** - * Removes the given PropertyConverter instances for the given type, - * if existing. - * - * @param typeToConvert the type which the converter is for - * @param propertyConverters the converter to remove - * @param <T> the target type. - * @return this builder, for chaining, never null. - */ - <T> ConfigurationBuilder removePropertyConverters(TypeLiteral<T> typeToConvert, - @SuppressWarnings("unchecked") PropertyConverter<T>... propertyConverters); - - /** - * Removes the given PropertyConverter instances for the given type, - * if existing. - * - * @param typeToConvert the type which the converter is for - * @param propertyConverters the converter to remove - * @param <T> the target type. - * @return this builder, for chaining, never null. - */ - <T> ConfigurationBuilder removePropertyConverters(TypeLiteral<T> typeToConvert, - Collection<PropertyConverter<T>> propertyConverters); - - /** - * Removes all converters for the given type, which actually renders a given type - * unsupported for type conversion. - * - * @param typeToConvert the type which the converter is for - * @return this builder, for chaining, never null. - */ - ConfigurationBuilder removePropertyConverters(TypeLiteral<?> typeToConvert); - - /** - * Sorts the current registered property sources using the given comparator. - * - * NOTE: property sources at the beginning have minimal significance. - * - * @param comparator the comparator to be used, not {@code null}. - * @return this instance for chaining. - */ - ConfigurationBuilder sortPropertySources(Comparator<PropertySource> comparator); - - /** - * Sorts the current registered property filters using the given comparator. - * - * NOTE: property filters at the beginning have minimal significance. - * - * @param comparator the comparator to be used, not {@code null}. - * @return this instance for chaining. - */ - ConfigurationBuilder sortPropertyFilter(Comparator<PropertyFilter> comparator); - - /** - * Sets the {@link PropertyValueCombinationPolicy} used to evaluate the final - * property values. - * - * @param policy the {@link PropertyValueCombinationPolicy} used, not {@code null}. - * @return this builder, for chaining, never null. - */ - ConfigurationBuilder setPropertyValueCombinationPolicy(PropertyValueCombinationPolicy policy); - - /** - * Builds a new {@link Configuration} based on the data in this builder. The ordering of property - * sources and property filters is not changed, regardless of their ordinals. For ensure a certain - * ordering/significance use {@link #sortPropertyFilter(Comparator)} and/or {@link #sortPropertySources(Comparator)} - * before building the context. - * - * @return the final configuration, never null. - */ - Configuration build(); - -} - http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/9bc56a38/code/api/src/main/java/org/apache/tamaya/spi/ConfigurationContext.java ---------------------------------------------------------------------- diff --git a/code/api/src/main/java/org/apache/tamaya/spi/ConfigurationContext.java b/code/api/src/main/java/org/apache/tamaya/spi/ConfigurationContext.java deleted file mode 100644 index f077a1d..0000000 --- a/code/api/src/main/java/org/apache/tamaya/spi/ConfigurationContext.java +++ /dev/null @@ -1,174 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.tamaya.spi; - - -import org.apache.tamaya.TypeLiteral; - -import java.util.List; -import java.util.Map; - -/** - * Central SPI for programmatically dealing with the setup of the configuration system. - * This includes adding and enlisting {@link org.apache.tamaya.spi.PropertySource}s, - * managing {@link PropertyConverter}s, ConfigFilters, etc. - */ -public interface ConfigurationContext { - - /** - * This method can be used for programmatically adding {@link PropertySource}s. - * It is not needed for normal 'usage' by end users, but only for Extension Developers! - * - * @param propertySources the PropertySources to add - * @deprecated Use {@link ConfigurationContextBuilder} to create a new {@link ConfigurationContext}. - * @see #toBuilder() - */ - @Deprecated - void addPropertySources(PropertySource... propertySources); - - /** - * This method returns the current list of registered PropertySources ordered via their ordinal. - * PropertySources with a lower ordinal come last. The PropertySource with the - * highest ordinal comes first. - * If two PropertySources have the same ordinal number they will get sorted - * using their class name just to ensure the user at least gets the same ordering - * after a JVM restart, hereby names before are added last. - * PropertySources are loaded when this method is called the first time, which basically is - * when the first time configuration is accessed. - * - * @return a sorted list of registered PropertySources. The returned list need not be modifiable - */ - List<PropertySource> getPropertySources(); - - /** - * Access a {@link PropertySource} using its (unique) name. - * @param name the propoerty source's name, not {@code null}. - * @return the propoerty source found, or {@code null}. - */ - PropertySource getPropertySource(String name); - - /** - * This method can be used for programmatically adding {@link PropertyConverter}s. - * It is not needed for normal 'usage' by end users, but only for Extension Developers! - * - * @param <T> the type of the type literal - * @param type the type which the converters is for - * @param propertyConverter the PropertyConverters to add for this type - * @deprecated Use {@link ConfigurationContextBuilder} to create a new {@link ConfigurationContext}. - * @see #toBuilder() - */ - @Deprecated - <T> void addPropertyConverter(TypeLiteral<T> type, PropertyConverter<T> propertyConverter); - - - /** - * <p> - * This method returns the Map of registered PropertyConverters - * per type. - * The List for each type is ordered via their {@link javax.annotation.Priority} and - * cladd name. - * </p> - * - * <p>A simplified scenario could be like:</p> - * <pre> - * { - * Date.class -> {StandardDateConverter, TimezoneDateConverter, MyCustomDateConverter } - * Boolean.class -> {StandardBooleanConverter, FrenchBooleanConverter} - * Integer.class -> {DynamicDefaultConverter} - * } - * </pre> - * - * @return map with sorted list of registered PropertySources per type. - */ - Map<TypeLiteral<?>, List<PropertyConverter<?>>> getPropertyConverters(); - - /** - * <p> - * This method returns the registered PropertyConverters for a given type. - * The List for each type is ordered via their {@link javax.annotation.Priority}. - * </p> - * - * <p> - * PropertyConverters with a higher Priority come first. The PropertyConverter with the - * lowest Priority comes last. - * If two PropertyConverter have the same ordinal number they will get sorted - * using their class name just to ensure the user at least gets the same ordering - * after a JVM restart. - * </p> - * - * <p> - * Additionally if a PropertyProvider is accessed, which is not registered the implementation - * should try to figure out, if there could be a default implementation as follows:</p> - * <ol> - * <li>Look for static factory methods: {@code of(String), valueOf(String), getInstance(String), - * instanceOf(String), fomr(String)}</li> - * <li>Look for a matching constructor: {@code T(String)}.</li> - * </ol> - * - * <p> - * If a correspoding factory method or constructor could be found, a corresponding - * PropertyConverter should be created and registered automatically for the given - * type. - * </p> - * - * <p> The scenario could be like:</p> - * - * <pre> - * { - * Date.class -> {MyCustomDateConverter,StandardDateConverter, TimezoneDateConverter} - * Boolean.class -> {StandardBooleanConverter, FrenchBooleanConverter} - * Integer.class -> {DynamicDefaultConverter} - * } - * </pre> - * - * <p> - * The converters returned for a type should be used as a chain, whereas the result of the - * first converters that is able to convert the configured value, is taken as the chain's result. - * No more converters are called after a converters has successfully converted the input into - * the required target type. - * </p> - * - * @param <T> the type of the type literal - * @param type type of the desired converters - * @return a sorted list of registered PropertySources per type. - */ - <T> List<PropertyConverter<T>> getPropertyConverters(TypeLiteral<T> type); - - /** - * Access the current PropertyFilter instances. - * @return the list of registered PropertyFilters, never null. - */ - List<PropertyFilter> getPropertyFilters(); - - /** - * Access the {@link org.apache.tamaya.spi.PropertyValueCombinationPolicy} used to evaluate the final - * property values. - * @return the {@link org.apache.tamaya.spi.PropertyValueCombinationPolicy} used, never null. - */ - PropertyValueCombinationPolicy getPropertyValueCombinationPolicy(); - - /** - * Creates a {@link ConfigurationContextBuilder} preinitialized with the data from this instance. - * @return a new builder instance, never null. - * @deprecated Will be removed. - */ - @Deprecated - ConfigurationContextBuilder toBuilder(); - -}