TAMAYA-182: Adapted modules to new builder patter changes, including tests. 
Fixed compile errors, or excluded modules from compilation (see root pom).


Project: http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/commit/041f5998
Tree: 
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/tree/041f5998
Diff: 
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/diff/041f5998

Branch: refs/heads/master
Commit: 041f5998509dce3893263cfc0262f3342cc9d6ea
Parents: 2b1ef40
Author: anatole <[email protected]>
Authored: Sun Oct 30 18:23:15 2016 +0100
Committer: anatole <[email protected]>
Committed: Sun Oct 30 18:23:15 2016 +0100

----------------------------------------------------------------------
 apache-commons/pom.xml                          |   6 +-
 .../commons/CommonsConfigPropertySource.java    |  11 +-
 .../commons/IniConfigurationFormat.java         |   2 +-
 builder/pom.xml                                 | 104 ---
 .../tamaya/builder/ConfigurationBuilder.java    | 605 -------------
 .../ProgrammaticConfigurationContext.java       | 388 --------
 .../tamaya/builder/PropertySourceBuilder.java   | 118 ---
 .../tamaya/builder/SimplePropertySource.java    |  86 --
 .../org/apache/tamaya/builder/package-info.java |  28 -
 .../builder/ConfigurationBuilderTest.java       | 907 -------------------
 .../builder/TestANonSPIPropertyFilter.java      |  35 -
 .../builder/TestBNonSPIPropertyFilter.java      |  35 -
 .../tamaya/builder/TestPropertyFilter.java      |  35 -
 .../tamaya/builder/TestPropertySource.java      |  59 --
 .../builder/TestPropertySourceProvider.java     |  91 --
 .../builder/TestPropertySourceProviderB.java    |  91 --
 .../builder/util/mockito/NotMockedAnswer.java   |  57 --
 .../tamaya/builder/util/types/CustomTypeA.java  |  34 -
 .../tamaya/builder/util/types/CustomTypeB.java  |  39 -
 .../tamaya/builder/util/types/CustomTypeC.java  |  36 -
 .../types/CustomTypeCPropertyConverter.java     |  29 -
 .../org.apache.tamaya.spi.PropertyConverter     |  19 -
 .../org.apache.tamaya.spi.PropertyFilter        |  19 -
 .../org.apache.tamaya.spi.PropertySource        |  19 -
 ...org.apache.tamaya.spi.PropertySourceProvider |  19 -
 .../test/resources/configfiles/json/first.json  |   4 -
 .../test/resources/configfiles/json/second.json |   4 -
 .../test/resources/configfiles/json/simple.json |   4 -
 .../test/resources/configfiles/json/third.json  |   4 -
 .../test/resources/configfiles/other/simple.oml |  19 -
 configured-sysprops/pom.xml                     |  78 ++
 .../se/ConfiguredSystemProperties.java          | 340 +++++++
 .../tamaya-configured-sysprops.iml              |  17 +
 .../tamaya/consul/ConsulPropertySourceTest.java |  75 ++
 .../apache/tamaya/consul/ConsulWriteTest.java   |  80 ++
 metamodel-simple/config/README.txt              |  20 -
 metamodel-simple/config/test3.properties        |  21 -
 metamodel-simple/pom.xml                        |  86 --
 .../ConfigDirPropertySourceProvider.java        |  81 --
 .../MetainfConfigPropertySourceProvider.java    |  62 --
 ...org.apache.tamaya.spi.PropertySourceProvider |  20 -
 .../tamaya/metamodel/simple/SimpleTest.java     |  26 -
 .../resources/META-INF/config/test.properties   |  20 -
 .../resources/META-INF/config/test2.properties  |  20 -
 metamodel-staged/pom.xml                        | 114 ---
 .../org/apache/tamaya/dsl/DSLFormatManager.java | 115 ---
 .../apache/tamaya/dsl/MetaConfiguration.java    | 144 ---
 .../org/apache/tamaya/dsl/ProfileManager.java   | 213 -----
 .../apache/tamaya/dsl/TamayaConfigurator.java   | 234 -----
 .../tamaya/dsl/WrappedPropertySource.java       | 100 --
 .../DSLLoadingConfigurationProviderSpi.java     |  82 --
 .../NamedDSLPropertySourceProvider.java         |  53 --
 .../ResourceDSLPropertySourceProvider.java      |  82 --
 .../org/apache/tamaya/dsl/package-info.java     |  23 -
 .../spi/BaseStagedPropertySourceProvider.java   | 121 ---
 .../staged/spi/DSLPropertySourceProvider.java   |  51 --
 .../spi/StagedConfigPropertiesProvider.java     | 137 ---
 .../apache/tamaya/staged/spi/package-info.java  |  23 -
 ...g.apache.tamaya.spi.ConfigurationProviderSpi |  19 -
 ....tamaya.staged.spi.DSLPropertySourceProvider |  20 -
 .../apache/tamaya/dsl/ProfileManagerTest.java   |  78 --
 .../src/test/resources/GLOBAL.properties        |  19 -
 .../src/test/resources/TEST.properties          |  19 -
 .../src/test/resources/tamaya-TEST.yaml         |  27 -
 .../src/test/resources/tamaya-config.yaml       |  37 -
 .../tamaya/metamodel/dsl/DSLFormatManager.java  | 115 +++
 .../tamaya/metamodel/dsl/MetaConfiguration.java | 142 +++
 .../tamaya/metamodel/dsl/ProfileManager.java    | 213 +++++
 .../metamodel/dsl/TamayaConfigurator.java       | 234 +++++
 .../metamodel/dsl/WrappedPropertySource.java    | 100 ++
 .../DSLLoadingConfigurationProviderSpi.java     |  81 ++
 .../NamedDSLPropertySourceProvider.java         |  53 ++
 .../ResourceDSLPropertySourceProvider.java      |  82 ++
 .../tamaya/metamodel/dsl/package-info.java      |  23 +
 .../spi/BaseStagedPropertySourceProvider.java   | 121 +++
 .../spi/DSLPropertySourceProvider.java          |  51 ++
 .../spi/StagedConfigPropertiesProvider.java     | 137 +++
 .../tamaya/metamodel/spi/package-info.java      |  23 +
 ...maya.metamodel.spi.DSLPropertySourceProvider |  20 +
 ...g.apache.tamaya.spi.ConfigurationProviderSpi |  19 +
 metamodel/src/test/resources/GLOBAL.properties  |  19 +
 metamodel/src/test/resources/TEST.properties    |  19 +
 metamodel/src/test/resources/tamaya-TEST.yaml   |  27 +
 pom.xml                                         |  72 +-
 propertysources/pom.xml                         |  90 ++
 .../ConfigDirPropertySourceProvider.java        |  81 ++
 .../FileProprtyStoreProviderSpi.java            |  85 ++
 .../HazelcastProprtyStoreProviderSpi.java       |  87 ++
 .../MetainfConfigPropertySourceProvider.java    |  62 ++
 .../propertysources/PropertySourceBuilder.java  | 119 +++
 remote/pom.xml                                  |   2 +-
 .../internal/FileProprtyStoreProviderSpi.java   |  85 --
 ...he.tamaya.store.spi.PropertyStoreProviderSpi |  18 -
 .../HazelcastProprtyStoreProviderSpi.java       |  87 --
 .../org.apache.tamaya.store.PropertyStore       |  19 -
 sysprops/pom.xml                                |  89 --
 .../se/ConfiguredSystemProperties.java          | 353 --------
 tamaya-classloader-support/pom.xml              |  73 --
 .../AbstractClassloaderAwareItemLoader.java     | 268 ------
 .../clsupport/CLAwareConfigurationContext.java  | 105 ---
 .../tamaya/clsupport/CLAwareServiceContext.java | 248 -----
 .../tamaya/clsupport/ServiceContainer.java      | 306 -------
 .../apache/tamaya/clsupport/package-info.java   |  22 -
 .../org.apache.tamaya.spi.ServiceContext        |  19 -
 ...he.tamaya.environment.spi.ContextProviderSpi |  23 -
 ...org.apache.tamaya.environment.spi.ContextSpi |  19 -
 ui/base/pom.xml                                 |   2 +-
 ui/mutableconfig/pom.xml                        |   2 +-
 usagetracker/pom.xml                            | 113 +++
 .../apache/tamaya/usagetracker/ConfigUsage.java | 129 +++
 .../apache/tamaya/usagetracker/UsageStat.java   | 312 +++++++
 .../internal/DefaultConfigUsage.java            | 176 ++++
 .../internal/UsageTrackerFilter.java            |  46 +
 .../tamaya/usagetracker/spi/ConfigUsageSpi.java | 101 +++
 .../resources/META-INF/configmodel.properties   |  35 +
 ...org.apache.tamaya.events.ConfigEventListener |  19 +
 ...org.apache.tamaya.model.spi.ModelProviderSpi |  22 +
 .../org.apache.tamaya.spi.PropertyFilter        |  19 +
 ...pache.tamaya.usagetracker.spi.ConfigUsageSpi |  19 +
 .../tamaya/model/ConfigUsageStatsTest.java      |  75 ++
 .../java/test/model/TestConfigAccessor.java     |  45 +
 .../resources/META-INF/configmodel.properties   |  96 ++
 .../META-INF/javaconfiguration.properties       |  22 +
 ...org.apache.tamaya.model.spi.ModelProviderSpi |  19 +
 .../src/test/resources/examples/configmodel.ini |  76 ++
 .../test/resources/examples/configmodel.json    | 108 +++
 .../resources/examples/configmodel.properties   |  96 ++
 .../src/test/resources/examples/configmodel.xml |  97 ++
 .../test/resources/examples/configmodel.yaml    | 106 +++
 .../apache/tamaya/validation/ConfigModel.java   |  78 ++
 .../tamaya/validation/ConfigModelManager.java   | 298 ++++++
 .../apache/tamaya/validation/ModelTarget.java   |  37 +
 .../apache/tamaya/validation/Validation.java    | 203 +++++
 .../tamaya/validation/ValidationResult.java     |  59 ++
 .../internal/ConfigDocumentationBean.java       | 197 ++++
 .../ConfiguredInlineModelProviderSpi.java       |  69 ++
 .../ConfiguredPropertiesModelProviderSpi.java   | 154 ++++
 .../ConfiguredResourcesModelProviderSpi.java    | 160 ++++
 .../ConfiguredTypeEventsModelPopulator.java     |  90 ++
 .../ConfiguredTypeEventsModelProvider.java      |  51 ++
 .../validation/spi/AbstractConfigModel.java     |  88 ++
 .../spi/ConfigDocumentationMBean.java           |  53 ++
 .../validation/spi/ConfigModelReader.java       | 144 +++
 .../tamaya/validation/spi/GroupModel.java       | 110 +++
 .../tamaya/validation/spi/ModelProviderSpi.java |  39 +
 .../tamaya/validation/spi/ParameterModel.java   | 242 +++++
 .../tamaya/validation/spi/SectionModel.java     | 202 +++++
 ...maya.validation.spi.ConfigDocumentationMBean |  38 +
 ...pache.tamaya.validation.spi.ModelProviderSpi |  41 +
 .../validation/ConfigModelProviderTest.java     |  68 ++
 .../tamaya/validation/ValidationTests.java      |  52 ++
 .../internal/ConfigDocumentationBeanTest.java   | 108 +++
 152 files changed, 6988 insertions(+), 6703 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/041f5998/apache-commons/pom.xml
----------------------------------------------------------------------
diff --git a/apache-commons/pom.xml b/apache-commons/pom.xml
index 2b5eda0..47eea0b 100644
--- a/apache-commons/pom.xml
+++ b/apache-commons/pom.xml
@@ -22,12 +22,12 @@ under the License.
 
     <parent>
         <groupId>org.apache.tamaya.ext</groupId>
-        <artifactId>tamaya-integrations</artifactId>
-        <version>0.2-incubating-SNAPSHOT</version>
+        <artifactId>tamaya-sandbox</artifactId>
+        <version>0.3-incubating-SNAPSHOT</version>
         <relativePath>..</relativePath>
     </parent>
     <artifactId>tamaya-commons-config</artifactId>
-    <name>Apache Tamaya Commons Integration - Apache Commons</name>
+    <name>Apache Tamaya Modules - Apache Commons</name>
     <packaging>bundle</packaging>
 
     <dependencies>

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/041f5998/apache-commons/src/main/java/org/apache/tamaya/integration/commons/CommonsConfigPropertySource.java
----------------------------------------------------------------------
diff --git 
a/apache-commons/src/main/java/org/apache/tamaya/integration/commons/CommonsConfigPropertySource.java
 
b/apache-commons/src/main/java/org/apache/tamaya/integration/commons/CommonsConfigPropertySource.java
index b2f2e82..2cbd4c3 100644
--- 
a/apache-commons/src/main/java/org/apache/tamaya/integration/commons/CommonsConfigPropertySource.java
+++ 
b/apache-commons/src/main/java/org/apache/tamaya/integration/commons/CommonsConfigPropertySource.java
@@ -22,6 +22,7 @@ package org.apache.tamaya.integration.commons;
 
 import org.apache.commons.configuration.Configuration;
 import org.apache.tamaya.spi.PropertySource;
+import org.apache.tamaya.spi.PropertyValue;
 
 import java.util.HashMap;
 import java.util.Iterator;
@@ -64,8 +65,9 @@ public class CommonsConfigPropertySource implements 
PropertySource {
     }
 
     @Override
-    public String get(String key) {
-        return commonsConfig.getString(key);
+    public PropertyValue get(String key) {
+        return PropertyValue.of(key, commonsConfig.getString(key),
+                getName());
     }
 
     @Override
@@ -78,4 +80,9 @@ public class CommonsConfigPropertySource implements 
PropertySource {
         }
         return config;
     }
+
+    @Override
+    public boolean isScannable() {
+        return true;
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/041f5998/apache-commons/src/main/java/org/apache/tamaya/integration/commons/IniConfigurationFormat.java
----------------------------------------------------------------------
diff --git 
a/apache-commons/src/main/java/org/apache/tamaya/integration/commons/IniConfigurationFormat.java
 
b/apache-commons/src/main/java/org/apache/tamaya/integration/commons/IniConfigurationFormat.java
index 0e21f4f..67cf7fc 100644
--- 
a/apache-commons/src/main/java/org/apache/tamaya/integration/commons/IniConfigurationFormat.java
+++ 
b/apache-commons/src/main/java/org/apache/tamaya/integration/commons/IniConfigurationFormat.java
@@ -50,7 +50,7 @@ public class IniConfigurationFormat implements 
ConfigurationFormat {
                     String key = keyIter.next();
                     properties.put(key, sectionConfig.getString(key));
                 }
-                builder.addProperties(section, properties);
+                builder.addSectionProperties(section, properties);
             }
         } catch (ConfigurationException e) {
             throw new ConfigException("Failed to parse ini-file format from " 
+ url, e);

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/041f5998/builder/pom.xml
----------------------------------------------------------------------
diff --git a/builder/pom.xml b/builder/pom.xml
deleted file mode 100644
index 96f6244..0000000
--- a/builder/pom.xml
+++ /dev/null
@@ -1,104 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-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.ext</groupId>
-        <artifactId>tamaya-extensions</artifactId>
-        <version>0.3-incubating-SNAPSHOT</version>
-    </parent>
-
-    <artifactId>tamaya-builder</artifactId>
-    <name>Apache Tamaya Modules - Builder</name>
-    <packaging>jar</packaging> <!-- bundle -->
-
-    <inceptionYear>2015</inceptionYear>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.tamaya</groupId>
-            <artifactId>tamaya-api</artifactId>
-            <version>${project.version}</version>
-            <scope>provided</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.tamaya.ext</groupId>
-            <artifactId>tamaya-formats</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.tamaya</groupId>
-            <artifactId>tamaya-core</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.tamaya.ext</groupId>
-            <artifactId>tamaya-spisupport</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.tamaya.ext</groupId>
-            <artifactId>tamaya-json</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.hamcrest</groupId>
-            <artifactId>java-hamcrest</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.mockito</groupId>
-            <artifactId>mockito-core</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-        </dependency>
-
-
-    </dependencies>
-
-    <!--build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <extensions>true</extensions>
-                <configuration>
-                    <instructions>
-                        <Export-Package>
-                            org.apache.tamaya.builder
-                        </Export-Package>
-                    </instructions>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build -->
-    
-</project>

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/041f5998/builder/src/main/java/org/apache/tamaya/builder/ConfigurationBuilder.java
----------------------------------------------------------------------
diff --git 
a/builder/src/main/java/org/apache/tamaya/builder/ConfigurationBuilder.java 
b/builder/src/main/java/org/apache/tamaya/builder/ConfigurationBuilder.java
deleted file mode 100644
index afdc121..0000000
--- a/builder/src/main/java/org/apache/tamaya/builder/ConfigurationBuilder.java
+++ /dev/null
@@ -1,605 +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.builder;
-
-import org.apache.tamaya.ConfigException;
-import org.apache.tamaya.Configuration;
-import org.apache.tamaya.spi.PropertyConverter;
-import org.apache.tamaya.TypeLiteral;
-import org.apache.tamaya.format.ConfigurationData;
-import org.apache.tamaya.format.ConfigurationFormats;
-import org.apache.tamaya.format.FlattenedDefaultPropertySource;
-import org.apache.tamaya.spi.ConfigurationContext;
-import org.apache.tamaya.spi.PropertyFilter;
-import org.apache.tamaya.spi.PropertySource;
-import org.apache.tamaya.spi.PropertySourceProvider;
-import org.apache.tamaya.spi.PropertyValueCombinationPolicy;
-import org.apache.tamaya.spisupport.DefaultConfiguration;
-
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.Collection;
-import java.util.Objects;
-
-import static java.lang.String.format;
-
-/**
- * <p>Builder class used for building a configuration manually without relying
- * only on the Service Provider Interface API.</p>
- *
- * <p><strong>Features of the builder</strong></p>
- *
- * <ol>
- *   <li>Adding of property converters manually</li>
- *   <li>Adding of property sources directly</li>
- *   <li>Adding of property sources via URL</li>
- *   <li>Adding of property source providers directly</li>
- *   <li>Enabling and disabling of via SPI mechanism provided resources as 
converters,
- *       property sources, etc.</li>
- * </ol>
- *
- * <p><strong>Example</strong></p>
- *
- * <pre>{@code ConfigurationBuilder builder = new ConfigurationBuilder();
- * builder.disableProvidedPropertySources()           // Do not load provided 
property
- *        .disableProvidedPropertySourceProviders()   // sources and providers 
automatically
- *        .addPropertySource("file:/etc/conf.properties"); // Load properties 
from conf.properties
- *
- * Configuration config = builder.build();
- * }</pre>
- *
- * <p><strong>Support for configuration formats</strong></p>
- *
- * The configuration builder allows you to put property resources
- * via a URL, as shown in the code example above, without implementing
- * a {@link org.apache.tamaya.spi.PropertySource PropertySource} or providing 
an
- * instance of a {@link org.apache.tamaya.spi.PropertySource PropertySource}.
- * If a property resource in
- * a specific format can be added to configuration builder or not depends
- * on the available implementations of
- * {@link org.apache.tamaya.format.ConfigurationFormat} in the classpath.
- * Which formats are available can be checked via
- * {@link org.apache.tamaya.format.ConfigurationFormats#getFormats()}.
- */
-public class ConfigurationBuilder {
-    /** Builder used to create new ConfigurationContext instances. */
-    private final ProgrammaticConfigurationContext.Builder contextBuilder = 
new ProgrammaticConfigurationContext.Builder();
-
-    /**
-     * Flag if the config has already been built.
-     * Configuration can be built only once
-     */
-    private boolean built;
-
-    /**
-     * Flag if all existing property converter service providers
-     * should be loaded if the configuration is build.
-     */
-    private boolean loadProvidedPropertyConverters = true;
-
-    /**
-     * Flag if all existing property source service providers
-     * will be loaded if the configuration is build.
-     */
-    private boolean loadProvidedPropertySources = false;
-    private boolean loadProvidedPropertySourceProviders = false;
-
-    private boolean isLoadProvidedPropertyFilters = false;
-
-    /**
-     * Creates a new builder instance.
-     */
-    public ConfigurationBuilder() {
-    }
-
-    /**
-     * Allows to set configuration context during unit tests.
-     */
-    ConfigurationBuilder setConfigurationContext(ConfigurationContext 
configurationContext) {
-        //noinspection deprecation
-        contextBuilder.setConfigurationContext(configurationContext);
-        return this;
-    }
-
-    /**
-     * Adds one resources with properties in an arbitrary format
-     * to the configuration to be build.
-     *
-     * <p>If a specific format is supported depends on the available
-     * {@link org.apache.tamaya.format.ConfigurationFormat} 
implementations.</p>
-     *
-     * <pre>{@code URL resource = new URL("file:/etc/service/config.json");
-     *
-     * builder.addPropertySources(resource);}
-     * </pre>
-     *
-     * @param url resource with properties for the the configuration to be 
build.
-     *
-     * @return the builder instance currently used
-     *
-     * @see org.apache.tamaya.format.ConfigurationFormat
-     * @see org.apache.tamaya.format.ConfigurationFormats#getFormats()
-     */
-    public ConfigurationBuilder addPropertySource(URL url) {
-        try {
-            ConfigurationData data = getConfigurationDataFromURL(url);
-
-            FlattenedDefaultPropertySource propertySource = new 
FlattenedDefaultPropertySource(data);
-            addPropertySources(propertySource);
-        } catch (IOException e) {
-            throw new ConfigException("Failed to read " + url.toString(), e);
-        }
-        return this;
-    }
-
-    protected ConfigurationData getConfigurationDataFromURL(URL url) throws 
IOException {
-        ConfigurationData data = 
ConfigurationFormats.readConfigurationData(url);
-
-        if (null == data) {
-            String mesg = format("No configuration format found which is able 
" +
-                                 "to read properties from %s.", 
url.toString());
-
-            throw new ConfigException(mesg);
-        }
-
-        return data;
-    }
-
-    /**
-     * Adds one or more resources with properties in an arbitrary format
-     * to the configuration to be build.
-     *
-     * <p>If a specific format is supported depends on the available
-     * {@link org.apache.tamaya.format.ConfigurationFormat} 
implementations.</p>
-     *
-     *<pre>{@code URL first = new URL("file:/etc/service/config.json");
-     * URL second = new URL("file:/etc/defaults/values.properties");
-     *
-     * builder.addPropertySources(first, second);}
-     *</pre>
-     *
-     * @param urls list of resources with properties for the configuration to 
be
-     *             build.
-     *
-     * @return the builder instance currently used
-     *
-     * @see org.apache.tamaya.format.ConfigurationFormat
-     * @see org.apache.tamaya.format.ConfigurationFormats#getFormats()
-     */
-    public ConfigurationBuilder addPropertySources(URL... urls) {
-        for(URL url:urls){
-            if(url!=null){
-                addPropertySource(url);
-            }
-        }
-        return this;
-    }
-
-    /**
-     * Adds one or more resources with properties in an arbitrary format
-     * to the configuration to be build.
-     *
-     * <p>If a specific format is supported depends on the available
-     * {@link org.apache.tamaya.format.ConfigurationFormat} 
implementations.</p>
-     *
-     *<pre>{@code URL first = new URL("file:/etc/service/config.json");
-     * URL second = new URL("file:/etc/defaults/values.properties");
-     *
-     * builder.addPropertySources(first, second);}
-     *</pre>
-     *
-     * @param urls list of resources with properties for the configuration to 
be
-     *             build.
-     *
-     * @return the builder instance currently used
-     *
-     * @see org.apache.tamaya.format.ConfigurationFormat
-     * @see org.apache.tamaya.format.ConfigurationFormats#getFormats()
-     */
-    public ConfigurationBuilder addPropertySources(Collection<URL> urls) {
-        for(URL url:urls) {
-            if (url != null) {
-                addPropertySource(url);
-            }
-        }
-        return this;
-    }
-
-
-    /**
-     * Adds one or more resources with properties in an arbitrary format
-     * to the configuration to be build.
-     *
-     * <p>If a specific format is supported depends on the available
-     * {@link org.apache.tamaya.format.ConfigurationFormat} 
implementations.</p>
-     *
-     *<pre>{@code builder.addPropertySources("file:/etc/service/config.json",
-     *                            "file:/etc/defaults/values.properties");}
-     *</pre>
-     *
-     * @param urls list of resources with properties for the configuration to 
be
-     *             build.
-     *
-     * @return the builder instance currently used
-     *
-     * @see org.apache.tamaya.format.ConfigurationFormat
-     * @see org.apache.tamaya.format.ConfigurationFormats#getFormats()
-     */
-    public ConfigurationBuilder addPropertySources(String... urls) {
-        for(String url:urls) {
-            if (url != null) {
-                try{
-                    addPropertySource(new URL(url));
-                } catch(Exception e){
-                    throw new ConfigException("Invalid URL: " + url);
-                }
-            }
-        }
-        return this;
-    }
-
-    /**
-     * Adds one or more property source instances to the configuration to be 
build.
-     *
-     *<pre>{@code PropertySource first = new CustomPropertySource();
-     * PropertySource second = new YetAnotherPropertySource();
-     *
-     * builder.addPropertySources(first, second)};
-     *</pre>
-     *
-     * @param sources list of property source instances with properties for the
-     *                configuration to be build.
-     *
-     * @return the builder instance currently used
-     *
-     * @see org.apache.tamaya.spi.PropertySource
-     */
-    public ConfigurationBuilder addPropertySources(PropertySource... sources){
-        checkBuilderState();
-
-        contextBuilder.addPropertySources(Objects.requireNonNull(sources));
-        return this;
-    }
-
-    private void checkBuilderState() {
-        if (built) {
-            throw new IllegalStateException("Configuration has already been 
build.");
-        }
-    }
-
-    /**
-     * Adds one or more property source provider instances to the 
configuration to be build.
-     *
-     * <pre>{@code PropertySourceProvider jc = new JavaConfigurationProvider();
-     *
-     * builder.addPropertySources(jc)};
-     * </pre>
-     *
-     * @param providers list of property source provider instances each 
providing a set
-     *                  of property source instances for the configuration to 
be build.
-     *
-     * @return the builder instance currently used
-     *
-     * @see org.apache.tamaya.spi.PropertySourceProvider
-     */
-    public ConfigurationBuilder 
addPropertySourceProviders(PropertySourceProvider... providers){
-        contextBuilder.addPropertySourceProviders(providers);
-        return this;
-    }
-
-    /**
-     * Adds one or more property filter instances to the configuration to be 
build.
-     *
-     * <pre>{@code PropertyFilter quoteReplacingFilter = new QuoteFilter();
-     * PropertyFilter commaRemovingFilter = new CommaFilter();
-     *
-     * builder.addPropertyFilters(commaRemovingFilter, quoteReplacingFilter)};
-     * </pre>
-     *
-     * @param filters list of property filter instances which should be applied
-     *                to the properties of the configuration to be build.
-     *
-     * @return the builder instance currently used
-     *
-     * @see org.apache.tamaya.spi.PropertyFilter
-     * @see #disableProvidedPropertyFilters()
-     * @see #enabledProvidedPropertyFilters()
-     */
-    public ConfigurationBuilder addPropertyFilters(PropertyFilter... filters){
-        Objects.requireNonNull(filters);
-
-        contextBuilder.addPropertyFilters(filters);
-        return this;
-    }
-
-
-    /**
-     * @param propertyValueCombinationPolicy combination policy to use for 
this builder. 
-     * @return the builder instance currently in use.
-     */
-    public ConfigurationBuilder 
setPropertyValueCombinationPolicy(PropertyValueCombinationPolicy 
propertyValueCombinationPolicy){
-        
contextBuilder.setPropertyValueCombinationPolicy(propertyValueCombinationPolicy);
-        return this;
-    }
-
-    /**
-     * Adds a property converter for the a given type to the configuration to
-     * be build.
-     *
-     * <pre>{@code PropertyConverter<MyType> converter = value -> new 
MyType(value, 42);
-     *
-     * builder.addPropertyConverter(MyType.class, converter}
-     * </pre>
-     *
-     * @param <T> the type of the configuration
-     * @param type the required target type the converter should be applied to
-     * @param converter the converter to be used to convert the string property
-     *                  to the given target type.
-     *
-     * @return the builder instance currently used
-     *
-     * @see org.apache.tamaya.spi.PropertyConverter
-     * @see #enableProvidedPropertyConverters()
-     * @see #disableProvidedPropertyConverters()
-     */
-    public <T> ConfigurationBuilder addPropertyConverter(Class<T> type, 
PropertyConverter<T> converter) {
-        Objects.requireNonNull(type);
-        Objects.requireNonNull(converter);
-        return addPropertyConverter(TypeLiteral.of(type), 
(PropertyConverter<Object>)converter);
-    }
-
-    /**
-     * Adds a propertyConverter of a given type.
-     *  
-     * @param <T> the type of the configuration
-     * @param type type literal of this converter.
-     * @param propertyConverter property converter.
-     * @return the builder instance currently used
-     */
-    public <T> ConfigurationBuilder addPropertyConverter(TypeLiteral<T> type, 
PropertyConverter<T> propertyConverter){
-        Objects.requireNonNull(type);
-        Objects.requireNonNull(propertyConverter);
-        contextBuilder.addPropertyConverter(type, propertyConverter);
-        return this;
-    }
-
-    /**
-     * Checks if the automatic loading of all {@link 
org.apache.tamaya.spi.PropertyConverter
-     * PropertyConverter} service providers is enabled or disabled.
-     *
-     * @return {@code true} if the automatic loading is enabled,
-     *         otherwise {@code false}.
-     *
-     * @see #enableProvidedPropertyConverters()
-     * @see #disableProvidedPropertyConverters()
-     * @see #addPropertyConverter(Class, 
org.apache.tamaya.spi.PropertyConverter)
-     * @see #addPropertyConverter(org.apache.tamaya.TypeLiteral, 
org.apache.tamaya.spi.PropertyConverter)
-     */
-    public boolean isPropertyConverterLoadingEnabled() {
-        return loadProvidedPropertyConverters;
-    }
-
-    /**
-     * Enables the loading of all {@link 
org.apache.tamaya.spi.PropertyConverter}
-     * service providers.
-     *
-     * @return the builder instance currently used
-     *
-     * @see org.apache.tamaya.spi.PropertyConverter
-     * @see #disableProvidedPropertyConverters()
-     * @see #enableProvidedPropertyConverters()
-     */
-    public ConfigurationBuilder enableProvidedPropertyConverters() {
-        checkBuilderState();
-
-        loadProvidedPropertyConverters = true;
-
-        return this;
-    }
-
-    /**
-     * Disables the automatic loading of all {@link 
org.apache.tamaya.spi.PropertyConverter}
-     * service providers.
-     *
-     * @return the builder instance currently used
-     *
-     * @see org.apache.tamaya.spi.PropertyConverter
-     * @see #enableProvidedPropertyConverters()
-     * @see #addPropertyConverter(Class, 
org.apache.tamaya.spi.PropertyConverter)
-     */
-    public ConfigurationBuilder disableProvidedPropertyConverters() {
-        checkBuilderState();
-
-        loadProvidedPropertyConverters = false;
-
-        return this;
-    }
-
-
-    /**
-     * Enables the automatic loading of all {@link 
org.apache.tamaya.spi.PropertySource}
-     * service providers.
-     *
-     * @return the builder instance currently used
-     *
-     * @see org.apache.tamaya.spi.PropertySource
-     * @see #disableProvidedPropertySources()
-     */
-    public ConfigurationBuilder enableProvidedPropertySources() {
-        checkBuilderState();
-
-        loadProvidedPropertySources = true;
-
-        return this;
-    }
-
-    /**
-     * Checks if the automatic loading of all {@link 
org.apache.tamaya.spi.PropertySource
-     * PropertySource} service providers is enabled or disabled.
-     *
-     * @return {@code true} if the automatic loading is enabled,
-     *         otherwise {@code false}.
-     */
-    public boolean isPropertySourcesLoadingEnabled() {
-        return loadProvidedPropertySources;
-    }
-
-
-    /**
-     * Checks if the automatic loading of all {@link 
org.apache.tamaya.spi.PropertyFilter
-     * PropertyFilter} service providers is enabled or disabled.
-     *
-     * @return {@code true} if the automatic loading is enabled,
-     *         otherwise {@code false}.
-     */
-    public boolean isPropertyFilterLoadingEnabled() {
-        return isLoadProvidedPropertyFilters;
-    }
-
-    /**
-     * Enables the automatic loading of all {@link 
org.apache.tamaya.spi.PropertyFilter}
-     * service providers.
-     *
-     * @return the builder instance currently used
-     *
-     * @see org.apache.tamaya.spi.PropertyFilter
-     * @see #disableProvidedPropertyFilters()
-     * @see #addPropertyFilters(org.apache.tamaya.spi.PropertyFilter...)
-     */
-    public ConfigurationBuilder enabledProvidedPropertyFilters() {
-        checkBuilderState();
-
-        isLoadProvidedPropertyFilters = true;
-
-        return this;
-    }
-
-    /**
-     * Disables the automatic loading of all {@link 
org.apache.tamaya.spi.PropertyFilter}
-     * service providers.
-     *
-     * @see org.apache.tamaya.spi.PropertyFilter
-     * @see #enabledProvidedPropertyFilters()
-     * @see #addPropertyFilters(org.apache.tamaya.spi.PropertyFilter...)
-     *
-     * @return the builder instance currently used
-     */
-    public ConfigurationBuilder disableProvidedPropertyFilters() {
-        checkBuilderState();
-
-        isLoadProvidedPropertyFilters = false;
-
-        return this;
-    }
-
-    /**
-     * Disables the automatic loading of all {@link 
org.apache.tamaya.spi.PropertySource}
-     * service providers.
-     *
-     * @return the builder instance currently used
-     *
-     * @see org.apache.tamaya.spi.PropertySource
-     * @see #enableProvidedPropertySources()
-     */
-    public ConfigurationBuilder disableProvidedPropertySources() {
-        checkBuilderState();
-
-        loadProvidedPropertySources = false;
-
-        return this;
-    }
-
-    /**
-     * Enables the automatic loading of {@link 
org.apache.tamaya.spi.PropertySourceProvider
-     * property source providers} provided via the SPI API.
-     *
-     * @return the builder instance currently used
-     *
-     * @see org.apache.tamaya.spi.PropertySourceProvider
-     */
-    public ConfigurationBuilder enableProvidedPropertySourceProviders() {
-        checkBuilderState();
-
-        loadProvidedPropertySourceProviders = true;
-
-        return this;
-    }
-
-    /**
-     * Disables the automatic loading of {@link 
org.apache.tamaya.spi.PropertySourceProvider
-     * property source providers} provided via the SPI API.
-     *
-     * @return the builder instance currently used
-     */
-    public ConfigurationBuilder disableProvidedPropertySourceProviders() {
-        checkBuilderState();
-
-        loadProvidedPropertySourceProviders = false;
-
-        return this;
-    }
-
-    /**
-     * Checks if the automatic loading of {@link 
org.apache.tamaya.spi.PropertySourceProvider
-     * PropertySourceProviders} is enabled or disabled.
-     *
-     * @return {@code true} if the automatic loading is enabled,
-     *         otherwise {@code false}.
-     */
-    public boolean isPropertySourceProvidersLoadingEnabled() {
-        return loadProvidedPropertySourceProviders;
-    }
-
-    //X TODO think on a functionality/API for using the default 
PropertyConverters and use the configured ones here
-    //X TODO as overrides used first.
-
-
-    /**
-     * Builds a new configuration based on the configuration of this builder 
instance.
-     *
-     * @return a new {@link org.apache.tamaya.Configuration configuration 
instance},
-     *         never {@code null}.
-     */
-    public Configuration build() {
-        checkBuilderState();
-
-        built = true;
-
-        
contextBuilder.loadProvidedPropertyConverters(isPropertyConverterLoadingEnabled());
-        
contextBuilder.loadProvidedPropertySources(isPropertySourcesLoadingEnabled());
-        
contextBuilder.loadProvidedPropertySourceProviders(isPropertySourceProvidersLoadingEnabled());
-        
contextBuilder.loadProvidedPropertyFilters(isLoadProvidedPropertyFilters);
-
-        return new DefaultConfiguration(contextBuilder.build());
-    }
-
-    /**
-     * Mapper to map a URL given as string to an URL instance.
-     */
-    private static class StringToURLMapper {
-        public URL apply(String u) {
-            try {
-                return new URL(u);
-            } catch (MalformedURLException e) {
-                throw new ConfigException(u + " is not a valid URL", e);
-            }
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/041f5998/builder/src/main/java/org/apache/tamaya/builder/ProgrammaticConfigurationContext.java
----------------------------------------------------------------------
diff --git 
a/builder/src/main/java/org/apache/tamaya/builder/ProgrammaticConfigurationContext.java
 
b/builder/src/main/java/org/apache/tamaya/builder/ProgrammaticConfigurationContext.java
deleted file mode 100644
index 68e770d..0000000
--- 
a/builder/src/main/java/org/apache/tamaya/builder/ProgrammaticConfigurationContext.java
+++ /dev/null
@@ -1,388 +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.builder;
-
-
-import org.apache.tamaya.spi.PropertyConverter;
-import org.apache.tamaya.TypeLiteral;
-import org.apache.tamaya.spi.ConfigurationContext;
-import org.apache.tamaya.spi.ConfigurationContextBuilder;
-import org.apache.tamaya.spi.PropertyFilter;
-import org.apache.tamaya.spi.PropertySource;
-import org.apache.tamaya.spi.PropertySourceProvider;
-import org.apache.tamaya.spi.PropertyValueCombinationPolicy;
-import org.apache.tamaya.spi.ServiceContextManager;
-import org.apache.tamaya.spisupport.PriorityServiceComparator;
-import org.apache.tamaya.spisupport.PropertyConverterManager;
-import org.apache.tamaya.spisupport.PropertySourceComparator;
-
-import javax.annotation.Priority;
-import java.util.*;
-import java.util.concurrent.locks.Lock;
-import java.util.concurrent.locks.ReadWriteLock;
-import java.util.concurrent.locks.ReentrantReadWriteLock;
-import java.util.logging.Logger;
-
-/**
- * Implementation of the {@link org.apache.tamaya.spi.ConfigurationContext}
- * used by the {@link org.apache.tamaya.builder.ConfigurationBuilder}
- * internally.
- */
-class ProgrammaticConfigurationContext implements ConfigurationContext {
-
-    private static final Comparator<PropertySource> PS_COMPARATOR = new 
PropertySourceComparator();
-    private static final Comparator<Object> COMP_COMPARATOR = new 
PriorityServiceComparator();
-    /**
-     * The logger used.
-     */
-    private final static Logger LOG = 
Logger.getLogger(ProgrammaticConfigurationContext.class.getName());
-    /**
-     * Cubcomponent handling {@link org.apache.tamaya.spi.PropertyConverter} 
instances.
-     */
-    private PropertyConverterManager propertyConverterManager = new 
PropertyConverterManager();
-
-    /**
-     * The current unmodifiable list of loaded {@link 
org.apache.tamaya.spi.PropertySource} instances.
-     */
-    private List<PropertySource> immutablePropertySources = new ArrayList<>();
-
-    /**
-     * The current unmodifiable list of loaded {@link 
org.apache.tamaya.spi.PropertyFilter} instances.
-     */
-    private List<PropertyFilter> immutablePropertyFilters = new ArrayList<>();
-
-    /**
-     * The overriding policy used when combining PropertySources registered to 
evalute the final configuration
-     * values.
-     */
-    private PropertyValueCombinationPolicy propertyValueCombinationPolicy;
-
-    /**
-     * Lock for internal synchronization.
-     */
-    private final ReadWriteLock propertySourceLock = new 
ReentrantReadWriteLock();
-
-
-    /**
-     * The first time the Configuration system gets invoked we do initialize
-     * all our {@link org.apache.tamaya.spi.PropertySource}s and
-     * {@link org.apache.tamaya.spi.PropertyFilter}s which are known at 
startup.
-     */
-    @SuppressWarnings("unchecked")
-    public ProgrammaticConfigurationContext(Builder builder) {
-        propertyConverterManager = new 
PropertyConverterManager(builder.loadProvidedPropertyConverters);
-
-        List<PropertySource> sources = getAllPropertySources(builder);
-        Collections.sort(sources, PS_COMPARATOR);
-        immutablePropertySources = Collections.unmodifiableList(sources);
-
-
-        List<PropertyFilter> filters = getPropertyFilters(builder);
-        Collections.sort(filters, COMP_COMPARATOR);
-        immutablePropertyFilters = Collections.unmodifiableList(filters);
-
-
-        propertyValueCombinationPolicy = 
builder.propertyValueCombinationPolicy;
-        for(Map.Entry<TypeLiteral<?>, List<PropertyConverter<?>>> en: 
builder.propertyConverters.entrySet()){
-            if(en!=null){
-                for(PropertyConverter pv:en.getValue()) {
-                    propertyConverterManager.register(en.getKey(), pv);
-                }
-            }
-        }
-
-        LOG.info("Using " + immutablePropertySources.size() + " property 
sources: " + immutablePropertySources);
-        LOG.info("Using " + immutablePropertyFilters.size() + " property 
filters: " + immutablePropertyFilters);
-        LOG.info("Using PropertyValueCombinationPolicy: " + 
propertyValueCombinationPolicy);
-    }
-
-    private List<PropertyFilter> getPropertyFilters(Builder builder) {
-        List<PropertyFilter> provided = new ArrayList<>();
-        if(builder.loadProvidedPropertyFilters) {
-            
provided.addAll(ServiceContextManager.getServiceContext().getServices(PropertyFilter.class));
-        }
-        for(PropertyFilter pf:builder.propertyFilters) {
-            if (pf != null) {
-                provided.add(pf);
-            }
-        }
-        return provided;
-    }
-
-    private List<PropertySource> getAllPropertySources(Builder builder) {
-        List<PropertySource> provided = new ArrayList<>();
-        if(builder.loadProvidedPropertySources) {
-            
provided.addAll(ServiceContextManager.getServiceContext().getServices(PropertySource.class));
-        }
-        for(PropertySource ps:builder.propertySources){
-            if(ps!=null){
-                provided.add(ps);
-            }
-        }
-        if (builder.loadProvidedPropertySourceProviders) {
-            List<PropertySourceProvider> providers = 
ServiceContextManager.getServiceContext()
-                                                                  
.getServices(PropertySourceProvider.class);
-            for (PropertySourceProvider provider : providers) {
-                for(PropertySource ps:provider.getPropertySources()) {
-                    if(ps!=null) {
-                        provided.addAll(provider.getPropertySources());
-                    }
-                }
-            }
-        }
-        return provided;
-    }
-
-    public void addPropertySources(PropertySource... propertySourcesToAdd) {
-        Lock writeLock = propertySourceLock.writeLock();
-        try {
-            writeLock.lock();
-            List<PropertySource> provided = new ArrayList<>();
-            for(PropertySource ps:propertySourcesToAdd){
-                if(ps!=null){
-                    provided.add(ps);
-                }
-            }
-            this.immutablePropertySources = 
Collections.unmodifiableList(provided);
-        } finally {
-            writeLock.unlock();
-        }
-    }
-
-    /**
-     * Order property source reversely, the most important come first.
-     *
-     * @param source1 the first PropertySource
-     * @param source2 the second PropertySource
-     * @return the comparison result.
-     */
-    private int comparePropertySources(PropertySource source1, PropertySource 
source2) {
-
-        //X TODO this method duplicates 
org.apache.tamaya.core.internal.DefaultConfigurationContext.PropertySourceComparator.comparePropertySources()
-        //X maybe we should extract the Comperator in an own class for real 
code-reuse (copy paste == bad code reuse)
-
-        if (source1.getOrdinal() < source2.getOrdinal()) {
-            return -1;
-        } else if (source1.getOrdinal() > source2.getOrdinal()) {
-            return 1;
-        } else {
-            return 
source1.getClass().getName().compareTo(source2.getClass().getName());
-        }
-    }
-
-    /**
-     * Compare 2 filters for ordering the filter chain.
-     *
-     * @param filter1 the first filter
-     * @param filter2 the second filter
-     * @return the comparison result
-     */
-    private int comparePropertyFilters(PropertyFilter filter1, PropertyFilter 
filter2) {
-
-        //X TODO this method duplicates 
org.apache.tamaya.core.internal.DefaultConfigurationContext.PropertySourceComparator.comparePropertyFilters()
-        //X maybe we should extract the Comperator in an own class for real 
code-reuse (copy paste == bad code reuse)
-
-        Priority prio1 = filter1.getClass().getAnnotation(Priority.class);
-        Priority prio2 = filter2.getClass().getAnnotation(Priority.class);
-        int ord1 = prio1 != null ? prio1.value() : 0;
-        int ord2 = prio2 != null ? prio2.value() : 0;
-
-        if (ord1 < ord2) {
-            return -1;
-        } else if (ord1 > ord2) {
-            return 1;
-        } else {
-            return 
filter1.getClass().getName().compareTo(filter2.getClass().getName());
-        }
-    }
-
-    @Override
-    public List<PropertySource> getPropertySources() {
-        return immutablePropertySources;
-    }
-
-    public <T> void addPropertyConverter(TypeLiteral<T> typeToConvert, 
PropertyConverter<T> propertyConverter) {
-        propertyConverterManager.register(typeToConvert, propertyConverter);
-        LOG.info("Added PropertyConverter: " + 
propertyConverter.getClass().getName());
-    }
-
-    @Override
-    public Map<TypeLiteral<?>, List<PropertyConverter<?>>> 
getPropertyConverters() {
-        return propertyConverterManager.getPropertyConverters();
-    }
-
-    @Override
-    public <T> List<PropertyConverter<T>> getPropertyConverters(TypeLiteral<T> 
targetType) {
-        return propertyConverterManager.getPropertyConverters(targetType);
-    }
-
-    @Override
-    public List<PropertyFilter> getPropertyFilters() {
-        return immutablePropertyFilters;
-    }
-
-    @Override
-    public PropertyValueCombinationPolicy getPropertyValueCombinationPolicy() {
-        return propertyValueCombinationPolicy;
-    }
-
-
-    @Override
-    public ConfigurationContextBuilder toBuilder() {
-        // @todo Check if it could be useful to support this method, Oliver B. 
Fischer
-        throw new RuntimeException("This method is currently not supported.");
-    }
-
-    /**
-     * The Builder for {@link ProgrammaticConfigurationContext}
-     */
-    public final static class Builder {
-        /**
-         * The current unmodifiable list of loaded {@link 
org.apache.tamaya.spi.PropertySource} instances.
-         */
-        private final List<PropertySource> propertySources = new ArrayList<>();
-
-        /**
-         * The current unmodifiable list of loaded {@link 
org.apache.tamaya.spi.PropertyFilter} instances.
-         */
-        private final List<PropertyFilter> propertyFilters = new ArrayList<>();
-
-        private final Map<TypeLiteral<?>, List<PropertyConverter<?>>> 
propertyConverters = new HashMap<>();
-
-        /**
-         * The overriding policy used when combining PropertySources 
registered to evalute the final configuration
-         * values.
-         */
-        private PropertyValueCombinationPolicy propertyValueCombinationPolicy =
-                PropertyValueCombinationPolicy.DEFAULT_OVERRIDING_COLLECTOR;
-
-        private boolean loadProvidedPropertyConverters;
-        private boolean loadProvidedPropertySources;
-        private boolean loadProvidedPropertySourceProviders;
-        private boolean loadProvidedPropertyFilters;
-
-        public Builder 
setPropertyValueCombinationPolicy(PropertyValueCombinationPolicy policy) {
-            this.propertyValueCombinationPolicy = 
Objects.requireNonNull(policy);
-            return this;
-        }
-
-        public Builder addPropertySources(PropertySource... propertySources) {
-            for (PropertySource ps : propertySources) {
-                if (ps != null) {
-                    this.propertySources.add(ps);
-                }
-            }
-            return this;
-        }
-
-        public Builder addPropertySources(Collection<PropertySource> 
propertySources) {
-            for (PropertySource ps : propertySources) {
-                if (ps != null) {
-                    this.propertySources.add(ps);
-                }
-            }
-            return this;
-        }
-
-        public Builder addPropertySourceProviders(PropertySourceProvider... 
propertySourceProviders) {
-            for (PropertySourceProvider ps : propertySourceProviders) {
-                if (ps != null) {
-                    this.propertySources.addAll(ps.getPropertySources());
-                }
-            }
-            return this;
-        }
-
-        public Builder 
addPropertySourceProviders(Collection<PropertySourceProvider> 
propertySourceProviders) {
-            for (PropertySourceProvider ps : propertySourceProviders) {
-                if (ps != null) {
-                    this.propertySources.addAll(ps.getPropertySources());
-                }
-            }
-            return this;
-        }
-
-        public Builder addPropertyFilters(PropertyFilter... propertyFIlter) {
-            for (PropertyFilter pf : propertyFIlter) {
-                if (pf != null) {
-                    this.propertyFilters.add(pf);
-                }
-            }
-            return this;
-        }
-
-        public Builder addPropertyFilters(Collection<PropertyFilter> 
propertyFIlter) {
-            for (PropertyFilter pf : propertyFIlter) {
-                if (pf != null) {
-                    this.propertyFilters.add(pf);
-                }
-            }
-            return this;
-        }
-
-        /**
-         * Should be never used.
-         */
-        @Deprecated
-        public Builder setConfigurationContext(ConfigurationContext 
configurationContext) {
-            this.addPropertySources(configurationContext.getPropertySources());
-            this.addPropertyFilters(configurationContext.getPropertyFilters());
-            this.propertyValueCombinationPolicy = Objects.requireNonNull(
-                    configurationContext.getPropertyValueCombinationPolicy());
-            return this;
-        }
-
-        //X TODO think on a functonality/API for using the default 
PropertyConverters and use the configured ones here
-        //X TODO as overrides used first.
-
-        public <T> Builder addPropertyConverter(TypeLiteral<T> type, 
PropertyConverter<T> propertyConverter) {
-            if(!propertyConverters.containsKey(type)){
-                List<PropertyConverter<?>> convList = new ArrayList<>();
-                convList.add(propertyConverter);
-                propertyConverters.put(type, convList);
-            }
-            return this;
-        }
-
-        public ConfigurationContext build() {
-            return new ProgrammaticConfigurationContext(this);
-        }
-
-
-        public void loadProvidedPropertyConverters(boolean state) {
-            loadProvidedPropertyConverters = state;
-        }
-
-        public void loadProvidedPropertySources(boolean state) {
-            loadProvidedPropertySources = state;
-        }
-
-        public void loadProvidedPropertySourceProviders(boolean state) {
-            loadProvidedPropertySourceProviders = state;
-        }
-
-        public void loadProvidedPropertyFilters(boolean state) {
-            loadProvidedPropertyFilters = state;
-        }
-
-    }
-
-
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/041f5998/builder/src/main/java/org/apache/tamaya/builder/PropertySourceBuilder.java
----------------------------------------------------------------------
diff --git 
a/builder/src/main/java/org/apache/tamaya/builder/PropertySourceBuilder.java 
b/builder/src/main/java/org/apache/tamaya/builder/PropertySourceBuilder.java
deleted file mode 100644
index 481a80c..0000000
--- a/builder/src/main/java/org/apache/tamaya/builder/PropertySourceBuilder.java
+++ /dev/null
@@ -1,118 +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.builder;
-
-import org.apache.tamaya.spi.PropertySource;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Objects;
-
-/**
- * Simple builder for building a {@link org.apache.tamaya.spi.PropertySource}.
- */
-public final class PropertySourceBuilder {
-    /** The ordinal to be used. */
-    private int ordinal;
-    /** The name to be used. */
-    private final String name;
-    /** The properties. */
-    private final Map<String,String> properties = new HashMap<>();
-
-    /** private constructor. */
-    private PropertySourceBuilder(String name){
-        this.name = Objects.requireNonNull(name);
-    }
-
-    /**
-     * Gets a new instance of a builder.
-     * @param name The name of the property source, not null.
-     * @return a new instance.
-     */
-    public static PropertySourceBuilder of(String name){
-        return new PropertySourceBuilder(name);
-    }
-
-    /**
-     * Gets a new instance of a builder.
-     * @param name The name of the property source, not null.
-     * @return a new instance.
-     */
-    public static PropertySourceBuilder from(String name){
-        return new PropertySourceBuilder(name);
-    }
-
-    /**
-     * Sets a new property key/value.
-     * @param key the property key, not null.
-     * @param value the property value, not null.
-     * @return the bulder for chaining.
-     */
-    public PropertySourceBuilder put(String key, String value){
-        this.properties.put(key, value);
-        return this;
-    }
-
-    /**
-     * Put all the given key, values.
-     * @param values the new key/values, not null.
-     * @return the bulder for chaining.
-     */
-    public PropertySourceBuilder putAll(Map<String, String> values){
-        this.properties.putAll(values);
-        return this;
-    }
-
-    /**
-     * Sets the ordinal to be used explicitly (instead evaluating it using 
{@code tamaya.ordinal}.
-     * @param ordinal the explicit ordinal to be used.
-     * @return the bulder for chaining.
-     */
-    public PropertySourceBuilder withOrdinal(int ordinal){
-        this.ordinal = ordinal;
-        return this;
-    }
-
-    /**
-     * Puts all values from the given property source.
-     * @param propertySource the property source, not null.
-     * @return the bulder for chaining.
-     */
-    public PropertySourceBuilder putAll(PropertySource propertySource){
-        this.properties.putAll(propertySource.getProperties());
-        return this;
-    }
-
-    /**
-     * Creates a new immutable {@link org.apache.tamaya.spi.PropertySource} 
instance.
-     * @return a new immutable {@link org.apache.tamaya.spi.PropertySource} 
instance, never null.
-     */
-    public PropertySource build(){
-        return new SimplePropertySource(name, properties);
-    }
-
-    @Override
-    public String toString() {
-        return "PropertySourceBuilder{" +
-                "ordinal=" + ordinal +
-                ", name='" + name + '\'' +
-                ", properties=" + properties +
-                '}';
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/041f5998/builder/src/main/java/org/apache/tamaya/builder/SimplePropertySource.java
----------------------------------------------------------------------
diff --git 
a/builder/src/main/java/org/apache/tamaya/builder/SimplePropertySource.java 
b/builder/src/main/java/org/apache/tamaya/builder/SimplePropertySource.java
deleted file mode 100644
index 085bd9a..0000000
--- a/builder/src/main/java/org/apache/tamaya/builder/SimplePropertySource.java
+++ /dev/null
@@ -1,86 +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.builder;
-
-import org.apache.tamaya.spi.PropertySource;
-import org.apache.tamaya.spi.PropertyValue;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Objects;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-/**
-* Simple property source implementation using a map.
-*/
-public class SimplePropertySource implements PropertySource {
-    /** The properties. */
-    private final Map<String, String> properties;
-    /** The source's name. */
-    private final String name;
-
-    public SimplePropertySource(String name, Map<String, String> properties){
-        this.properties = new HashMap<>(properties);
-        this.name = Objects.requireNonNull(name);
-    }
-
-    @Override
-    public int getOrdinal(){
-        PropertyValue configuredOrdinal = get(TAMAYA_ORDINAL);
-        if(configuredOrdinal!=null){
-            try{
-                return Integer.parseInt(configuredOrdinal.getValue());
-            } catch(Exception e){
-                Logger.getLogger(getClass().getName()).log(Level.WARNING,
-                        "Configured Ordinal is not an int number: " + 
configuredOrdinal, e);
-            }
-        }
-        return getDefaultOrdinal();
-    }
-
-    public int getDefaultOrdinal(){
-        return 0;
-    }
-
-    @Override
-    public String getName() {
-        return name;
-    }
-
-    @Override
-    public PropertyValue get(String key) {
-        return null;
-    }
-
-    @Override
-    public Map<String, String> getProperties() {
-        return this.properties;
-    }
-
-    @Override
-    public boolean isScannable() {
-        return false;
-    }
-
-    @Override
-    public String toString(){
-        return "SimplePropertySource(name="+name+", 
numProps="+properties.size()+")";
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/041f5998/builder/src/main/java/org/apache/tamaya/builder/package-info.java
----------------------------------------------------------------------
diff --git a/builder/src/main/java/org/apache/tamaya/builder/package-info.java 
b/builder/src/main/java/org/apache/tamaya/builder/package-info.java
deleted file mode 100644
index 24c86a9..0000000
--- a/builder/src/main/java/org/apache/tamaya/builder/package-info.java
+++ /dev/null
@@ -1,28 +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 provides
- * {@link org.apache.tamaya.builder.ConfigurationBuilder a configuration
- * builder} that allows to build a configuration manually without
- * using exclusively on the Service Provider Interface API of Tamaya.
- *
- * @see org.apache.tamaya.builder.ConfigurationBuilder
- * @see org.apache.tamaya.Configuration
- */
-package org.apache.tamaya.builder;
\ No newline at end of file

Reply via email to