You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tamaya.apache.org by an...@apache.org on 2015/05/05 13:11:20 UTC

[01/10] incubator-tamaya git commit: Updated docs.

Repository: incubator-tamaya
Updated Branches:
  refs/heads/master 699cdf861 -> 84d60674f


Updated docs.


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

Branch: refs/heads/master
Commit: f4ea961addd8e1e5e390189085228b9b9096d44d
Parents: 699cdf8
Author: anatole <an...@apache.org>
Authored: Thu Apr 30 00:38:48 2015 +0200
Committer: anatole <an...@apache.org>
Committed: Tue May 5 13:11:01 2015 +0200

----------------------------------------------------------------------
 docs/images/CoreDesign.png | Bin 0 -> 43759 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/f4ea961a/docs/images/CoreDesign.png
----------------------------------------------------------------------
diff --git a/docs/images/CoreDesign.png b/docs/images/CoreDesign.png
new file mode 100644
index 0000000..a84d8a6
Binary files /dev/null and b/docs/images/CoreDesign.png differ


[08/10] incubator-tamaya git commit: Removed unused dormant parts. Moved usable dormant utils into new sandbox module. Fixed jqassistant issues in simple metamodel module.

Posted by an...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/main/java/old/ConfigurationProviderSpi.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/main/java/old/ConfigurationProviderSpi.java b/dormant/core/src/main/java/old/ConfigurationProviderSpi.java
deleted file mode 100644
index 26697ea..0000000
--- a/dormant/core/src/main/java/old/ConfigurationProviderSpi.java
+++ /dev/null
@@ -1,46 +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 old;
-
-import org.apache.tamaya.Configuration;
-
-/**
-* This configuration provider SPI allows to register the effective factory logic to of and manage a configuration
-* instance. Hereby the qualifiers determine the type current configuration. By default
-*/
-public interface ConfigurationProviderSpi{
-
-    /**
-     * Returns the name current the configuration provided.
-     * @return the name current the configuration provided, not empty.
-     */
-    String getConfigName();
-
-    /**
-     * Get the {@link Configuration}, if available.
-     * @return according configuration, or null, if none is available for the given environment.
-     */
-    Configuration getConfiguration();
-
-    /**
-     * Reloads the provider for the current context.
-     */
-    void reload();
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/main/java/old/ContextualPropertySource.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/main/java/old/ContextualPropertySource.java b/dormant/core/src/main/java/old/ContextualPropertySource.java
deleted file mode 100644
index 3ff5e15..0000000
--- a/dormant/core/src/main/java/old/ContextualPropertySource.java
+++ /dev/null
@@ -1,142 +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.core.properties;
-
-import org.apache.tamaya.spi.PropertySource;
-
-import java.util.*;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.function.Supplier;
-
-/**
- * Created by Anatole on 12.04.2014.
- */
-class ContextualPropertySource implements PropertySource {
-
-    private volatile Map<String,PropertySource> cachedMaps = new ConcurrentHashMap<>();
-
-    private Supplier<PropertySource> mapSupplier;
-    private Supplier<String> isolationKeySupplier;
-    private String name;
-
-
-    /**
-     * Creates a new contextual PropertyMap. Contextual maps delegate to different instances current PropertyMap depending
-     * on the keys returned fromMap the isolationP
-     *
-     * @param mapSupplier
-     * @param isolationKeySupplier
-     */
-    public ContextualPropertySource(String name, Supplier<PropertySource> mapSupplier, Supplier<String> isolationKeySupplier){
-        this.name = Optional.ofNullable(name).orElse("<noname>");
-        Objects.requireNonNull(mapSupplier);
-        Objects.requireNonNull(isolationKeySupplier);
-        this.mapSupplier = mapSupplier;
-        this.isolationKeySupplier = isolationKeySupplier;
-    }
-
-    /**
-     * This method provides the contextual Map for the current environment. Hereby, ba default, for each different
-     * key returned by the #isolationKeySupplier a separate PropertyMap instance is acquired fromMap the #mapSupplier.
-     * If the map supplier returns an instance it is cached in the local #cachedMaps.
-     *
-     * @return the current contextual PropertyMap.
-     */
-    protected PropertySource getContextualMap(){
-        String environmentKey = this.isolationKeySupplier.get();
-        if(environmentKey == null){
-            return PropertySource.EMPTY_PROPERTYSOURCE;
-        }
-        PropertySource map = this.cachedMaps.get(environmentKey);
-        if(map == null){
-            synchronized(cachedMaps){
-                map = this.cachedMaps.get(environmentKey);
-                if(map == null){
-                    map = this.mapSupplier.get();
-                    if(map == null){
-                        return PropertySource.EMPTY_PROPERTYSOURCE;
-                    }
-                    this.cachedMaps.put(environmentKey, map);
-                }
-            }
-        }
-        return map;
-    }
-
-    @Override
-    public Map<String,String> getProperties(){
-        return getContextualMap().getProperties();
-    }
-
-    @Override
-    public String getName(){
-        return this.name;
-    }
-
-    @Override
-    public Optional<String> get(String key){
-        return getContextualMap().get(key);
-    }
-
-    /**
-     * Access a cached PropertyMap.
-     *
-     * @param key the target environment key as returned by the environment key supplier, not null.
-     * @return the corresponding PropertyMap, or null.
-     */
-    public PropertySource getCachedMap(String key){
-        return this.cachedMaps.get(key);
-    }
-
-    /**
-     * Access the set current currently loaded/cached maps.
-     *
-     * @return the set current cached map keys, never null.
-     */
-    public Set<String> getCachedMapKeys(){
-        return this.cachedMaps.keySet();
-    }
-
-    /**
-     * Access the supplier for environment key, determining map isolation.
-     *
-     * @return the environment key supplier instance, not null.
-     */
-    public Supplier<String> getIsolationKeySupplier(){
-        return this.isolationKeySupplier;
-    }
-
-    /**
-     * Access the supplier for new PropertyMap instances.
-     *
-     * @return the PropertyMap supplier instance, not null.
-     */
-    public Supplier<PropertySource> getMapSupplier(){
-        return this.mapSupplier;
-    }
-
-    @Override
-    public String toString(){
-        return "ContextualMap{" +
-                "cachedMaps(key)=" + cachedMaps.keySet() +
-                ", mapSupplier=" + mapSupplier +
-                ", isolationKeySupplier=" + isolationKeySupplier +
-                '}';
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/main/java/old/DefaultConfigurationSpi.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/main/java/old/DefaultConfigurationSpi.java b/dormant/core/src/main/java/old/DefaultConfigurationSpi.java
deleted file mode 100644
index fe9f788..0000000
--- a/dormant/core/src/main/java/old/DefaultConfigurationSpi.java
+++ /dev/null
@@ -1,116 +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 old;
-
-import java.lang.reflect.Proxy;
-import java.util.Collections;
-import java.util.Map;
-import java.util.Optional;
-import java.util.concurrent.ConcurrentHashMap;
-
-import org.apache.tamaya.ConfigException;
-import org.apache.tamaya.Configuration;
-import org.apache.tamaya.core.internal.config.FallbackSimpleConfigProvider;
-import org.apache.tamaya.core.internal.el.DefaultExpressionEvaluator;
-import org.apache.tamaya.core.internal.inject.ConfigTemplateInvocationHandler;
-import org.apache.tamaya.core.internal.inject.ConfigurationInjector;
-import org.apache.tamaya.core.spi.ExpressionEvaluator;
-import org.apache.tamaya.spi.ConfigurationSpi;
-import org.apache.tamaya.spi.ServiceContext;
-
-
-/**
- * Default SPI that implements the behaviour of {@link org.apache.tamaya.spi.ConfigurationSpi}.
- */
-@SuppressWarnings("unchecked")
-public class DefaultConfigurationSpi implements ConfigurationSpi {
-
-    private static final String DEFAULT_CONFIG_NAME = "default";
-
-    private Map<String, ConfigurationProviderSpi> configProviders = new ConcurrentHashMap<>();
-
-    private ExpressionEvaluator expressionEvaluator = loadEvaluator();
-
-    private ExpressionEvaluator loadEvaluator() {
-        ExpressionEvaluator eval = ServiceContext.getInstance().getService(ExpressionEvaluator.class).orElse(null);
-        if (eval == null) {
-            eval = new DefaultExpressionEvaluator();
-        }
-        return eval;
-    }
-
-    public DefaultConfigurationSpi() {
-        if(configProviders.isEmpty()) {
-            for (ConfigurationProviderSpi spi : ServiceContext.getInstance().getServices(ConfigurationProviderSpi.class, Collections.emptyList())) {
-                configProviders.put(spi.getConfigName(), spi);
-            }
-        }
-    }
-
-    @Override
-    public <T> T createTemplate(Class<T> type, Configuration... configurations) {
-        ClassLoader cl = Optional.ofNullable(Thread.currentThread()
-                .getContextClassLoader()).orElse(getClass().getClassLoader());
-        return (T) Proxy.newProxyInstance(cl, new Class[]{type}, new ConfigTemplateInvocationHandler(type, configurations));
-    }
-
-    /**
-     *
-     * @param instance the instance with configuration annotations, not null.
-     * @param configurations the configurations to be used for evaluating the values for injection into {@code instance}.
-     *                If no items are passed, the default configuration is used.
-     */
-    @Override
-    public void configure(Object instance, Configuration... configurations) {
-        ConfigurationInjector.configure(instance, configurations);
-    }
-
-
-    @Override
-    public String evaluateValue(String expression, Configuration... configurations) {
-        return expressionEvaluator.evaluate(expression, configurations);
-    }
-
-    @Override
-    public boolean isConfigurationAvailable(String name) {
-        ConfigurationProviderSpi spi = this.configProviders.get(name);
-        return spi != null;
-    }
-
-    @Override
-    public Configuration getConfiguration(String name) {
-        ConfigurationProviderSpi provider = configProviders.get(name);
-        if (provider == null) {
-            if (DEFAULT_CONFIG_NAME.equals(name)) {
-                provider = new FallbackSimpleConfigProvider();
-                configProviders.put(DEFAULT_CONFIG_NAME, provider);
-            } else {
-                throw new ConfigException("No such config: " + name);
-            }
-        }
-        Configuration config = provider.getConfiguration();
-        if (config == null) {
-            throw new ConfigException("No such config: " + name);
-        }
-        return config;
-    }
-
-
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/main/java/old/DefaultServiceComparator.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/main/java/old/DefaultServiceComparator.java b/dormant/core/src/main/java/old/DefaultServiceComparator.java
deleted file mode 100644
index f284426..0000000
--- a/dormant/core/src/main/java/old/DefaultServiceComparator.java
+++ /dev/null
@@ -1,85 +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 old;
-
-import java.util.*;
-
-/**
- * Simple comparator based on a Collection of {@link OrdinalProvider} instances.
- */
-final class DefaultServiceComparator implements Comparator<Object>{
-
-    /**
-     * List of ordinal providers loaded.
-     */
-    private List<OrdinalProvider> ordinalProviders = new ArrayList<>();
-
-    DefaultServiceComparator(Collection<? extends OrdinalProvider> providers){
-        ordinalProviders.addAll(Objects.requireNonNull(providers));
-        ordinalProviders.sort(this::compare);
-    }
-
-    private int compare(OrdinalProvider provider1, OrdinalProvider provider2){
-        int o1 = getOrdinal(provider1);
-        int o2 = getOrdinal(provider2);
-        int order = o1-o2;
-        if(order < 0){
-            return -1;
-        }
-        else if(order > 0){
-            return 1;
-        }
-        return 0;
-    }
-
-    private int getOrdinal(OrdinalProvider provider){
-        if(provider instanceof Orderable){
-            return ((Orderable)provider).order();
-        }
-        return 0;
-    }
-
-    public int getOrdinal(Object service){
-        for(OrdinalProvider provider: ordinalProviders){
-            OptionalInt ord = provider.getOrdinal(service.getClass());
-            if(ord.isPresent()){
-                return ord.getAsInt();
-            }
-        }
-        if(service instanceof Orderable){
-            return ((Orderable)service).order();
-        }
-        return 0;
-    }
-
-
-    @Override
-    public int compare(Object o1, Object o2) {
-        int ord1 = getOrdinal(o1);
-        int ord2 = getOrdinal(o2);
-        int order = ord1-ord2;
-        if(order < 0){
-            return -1;
-        }
-        else if(order > 0){
-            return 1;
-        }
-        return 0;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/main/java/old/DefaultServiceContextProvider.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/main/java/old/DefaultServiceContextProvider.java b/dormant/core/src/main/java/old/DefaultServiceContextProvider.java
deleted file mode 100644
index ae02afd..0000000
--- a/dormant/core/src/main/java/old/DefaultServiceContextProvider.java
+++ /dev/null
@@ -1,112 +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 old;
-
-import org.apache.tamaya.spi.ServiceContext;
-
-import java.util.*;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-/**
- * This class implements the (default) {@link org.apache.tamaya.spi.ServiceContext} interface and hereby uses the JDK
- * {@link java.util.ServiceLoader} to load the services required.
- */
-@SuppressWarnings({"rawtypes", "unchecked"})
-class DefaultServiceContextProvider implements ServiceContext {
-    /** List current services loaded, per class. */
-	private final ConcurrentHashMap<Class, List<Object>> servicesLoaded = new ConcurrentHashMap<>();
-    /** Singletons. */
-    private final ConcurrentHashMap<Class, Optional<?>> singletons = new ConcurrentHashMap<>();
-    /** Comparator for ordering of multiple services found. */
-    private DefaultServiceComparator serviceComparator;
-
-    public DefaultServiceContextProvider(){
-        serviceComparator = new DefaultServiceComparator(getServices(OrdinalProvider.class, Collections.emptyList()));
-    }
-
-    @Override
-    public <T> Optional<T> getService(Class<T> serviceType) {
-		Optional<T> cached = (Optional<T>)singletons.get(serviceType);
-        if(cached==null) {
-            List<? extends T> services = getServices(serviceType, Collections.emptyList());
-            if (services.isEmpty()) {
-                cached = Optional.empty();
-            }
-            else{
-                cached = Optional.of(services.get(0));
-            }
-            singletons.put(serviceType, cached);
-        }
-        return cached;
-    }
-
-    /**
-     * Loads and registers services.
-     *
-     * @param serviceType
-     *            The service type.
-     * @param <T>
-     *            the concrete type.
-     * @param defaultList
-     *            the list current items returned, if no services were found.
-     * @return the items found, never {@code null}.
-     */
-    @Override
-    public <T> List<? extends T> getServices(final Class<T> serviceType, final List<? extends T> defaultList) {
-        List<T> found = (List<T>) servicesLoaded.get(serviceType);
-        if (found != null) {
-            return found;
-        }
-        return loadServices(serviceType, defaultList);
-    }
-
-    /**
-     * Loads and registers services.
-     *
-     * @param   serviceType  The service type.
-     * @param   <T>          the concrete type.
-     * @param   defaultList  the list current items returned, if no services were found.
-     *
-     * @return  the items found, never {@code null}.
-     */
-    private <T> List<? extends T> loadServices(final Class<T> serviceType, final List<? extends T> defaultList) {
-        try {
-            List<T> services = new ArrayList<>();
-            for (T t : ServiceLoader.load(serviceType)) {
-                services.add(t);
-            }
-            if(services.isEmpty()){
-                services.addAll(defaultList);
-            }
-            if(!serviceType.equals(OrdinalProvider.class)) {
-                services.sort(serviceComparator);
-            }
-            services = Collections.unmodifiableList(services);
-            final List<T> previousServices = (List<T>) servicesLoaded.putIfAbsent(serviceType, (List<Object>)services);
-            return previousServices != null ? previousServices : services;
-        } catch (Exception e) {
-            Logger.getLogger(DefaultServiceContextProvider.class.getName()).log(Level.WARNING,
-                                                                         "Error loading services current type " + serviceType, e);
-            return defaultList;
-        }
-    }
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/main/java/old/DelegatingPropertySource.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/main/java/old/DelegatingPropertySource.java b/dormant/core/src/main/java/old/DelegatingPropertySource.java
deleted file mode 100644
index 7f4ce43..0000000
--- a/dormant/core/src/main/java/old/DelegatingPropertySource.java
+++ /dev/null
@@ -1,79 +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 old;
-
-import org.apache.tamaya.spi.PropertySource;
-
-import java.util.*;
-
-/**
- * Implementation for a {@link org.apache.tamaya.spi.PropertySource} that is an aggregate current
- * multiple child instances. Controlled by an {@link org.apache.tamaya.AggregationPolicy} the
- * following aggregations are supported:
- * <ul>
- * <li><b>IGNORE_DUPLICATES: </b>Ignore all overrides.</li>
- * <li><b>: </b></li>
- * <li><b>: </b></li>
- * <li><b>: </b></li>
- * </ul>
- */
-class DelegatingPropertySource implements PropertySource {
-
-    private PropertySource mainMap;
-    private Map<String,String> parentMap;
-    private String name;
-
-
-    /**
-     * Creates a mew instance, with aggregation polilcy
-     * {@code AggregationPolicy.OVERRIDE}.
-     *
-     * @param mainMap   The main ConfigMap.
-     * @param parentMap The delegated parent ConfigMap.
-     */
-    public DelegatingPropertySource(String name, PropertySource mainMap, Map<String, String> parentMap){
-        this.name = Optional.of(name).orElse("<noname>");
-        this.parentMap = Objects.requireNonNull(parentMap);
-        this.parentMap = Objects.requireNonNull(parentMap);
-    }
-
-    @Override
-    public Map<String,String> getProperties(){
-        return null;
-    }
-
-    @Override
-    public String getName(){
-        return this.name;
-    }
-
-    @Override
-    public Optional<String> get(String key){
-        Optional<String> val = mainMap.get(key);
-        if(!val.isPresent()){
-            return Optional.ofNullable(parentMap.get(key));
-        }
-        return val;
-    }
-
-    @Override
-    public String toString(){
-        return super.toString() + "(mainMap=" + mainMap + ", delegate=" + parentMap + ")";
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/main/java/old/MappedConfiguration.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/main/java/old/MappedConfiguration.java b/dormant/core/src/main/java/old/MappedConfiguration.java
deleted file mode 100644
index 43c63dc..0000000
--- a/dormant/core/src/main/java/old/MappedConfiguration.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package old;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Objects;
-import java.util.function.UnaryOperator;
-
-import org.apache.tamaya.Configuration;
-import org.apache.tamaya.core.config.AbstractConfiguration;
-
-/**
- * Configuration implementation that maps certain parts (defined by an {@code UnaryOperator<String>}) to alternate areas.
- */
-class MappedConfiguration extends AbstractConfiguration implements Configuration {
-
-	private static final long serialVersionUID = 8690637705511432083L;
-
-	/** The mapping operator. */
-    private UnaryOperator<String> keyMapper;
-    /** The base configuration. */
-    private Configuration config;
-
-    /**
-     * Creates a new instance.
-     * @param config the base configuration, not null
-     * @param keyMapper The mapping operator, not null
-     */
-    public MappedConfiguration(Configuration config, UnaryOperator<String> keyMapper) {
-        super(config.getName());
-        this.config = Objects.requireNonNull(config);
-        this.keyMapper = Objects.requireNonNull(keyMapper);
-    }
-
-    @Override
-    public Map<String, String> getProperties() {
-        Map<String, String> result = new HashMap<>();
-        Map<String, String> map = this.config.getProperties();
-        map.forEach((k,v) -> {
-            String targetKey = keyMapper.apply(k);
-            if(targetKey!=null){
-                result.put(targetKey, v);
-            }
-        });
-        return result;
-    }
-
-    @Override
-    public boolean isEmpty() {
-        return this.config.isEmpty();
-    }
-
-    @Override
-    public Configuration toConfiguration() {
-        return this;
-    }
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/main/java/old/SubtractingPropertySource.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/main/java/old/SubtractingPropertySource.java b/dormant/core/src/main/java/old/SubtractingPropertySource.java
deleted file mode 100644
index 4dc1d18..0000000
--- a/dormant/core/src/main/java/old/SubtractingPropertySource.java
+++ /dev/null
@@ -1,56 +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.core.properties;
-
-import org.apache.tamaya.spi.PropertySource;
-
-import java.util.*;
-import java.util.stream.Collectors;
-
-class SubtractingPropertySource extends AbstractPropertySource {
-
-    private static final long serialVersionUID = 4301042530074932562L;
-    private PropertySource unit;
-    private List<PropertySource> subtrahends;
-
-    public SubtractingPropertySource(String name, PropertySource configuration, List<PropertySource> subtrahends){
-        super(name);
-        Objects.requireNonNull(configuration);
-        this.unit = configuration;
-        this.subtrahends = new ArrayList<>(subtrahends);
-    }
-
-    private boolean filter(Map.Entry<String,String> entry){
-        for(PropertySource prov: subtrahends){
-            if(prov.get(entry.getKey()).isPresent()){
-                return false;
-            }
-        }
-        return true;
-    }
-
-    @Override
-    public Map<String,String> getProperties(){
-        return this.unit.getProperties().entrySet().stream().filter(this::filter).collect(Collectors.toMap(
-                Map.Entry::getKey,
-                Map.Entry::getValue
-        ));
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/main/java/org/apache/tamaya/core/ConfigurationFunctions.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/main/java/org/apache/tamaya/core/ConfigurationFunctions.java b/dormant/core/src/main/java/org/apache/tamaya/core/ConfigurationFunctions.java
deleted file mode 100644
index b1c2522..0000000
--- a/dormant/core/src/main/java/org/apache/tamaya/core/ConfigurationFunctions.java
+++ /dev/null
@@ -1,213 +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.core;
-
-import org.apache.tamaya.Configuration;
-import org.apache.tamaya.core.properties.PropertySourceBuilder;
-
-import java.util.*;
-import java.util.function.Function;
-import java.util.function.Predicate;
-import java.util.function.UnaryOperator;
-import java.util.stream.Collectors;
-
-/**
- * Accessor that provides useful functions along with configuration.
- */
-public final class ConfigurationFunctions {
-    /**
-     * Private singleton constructor.
-     */
-    private ConfigurationFunctions() {
-    }
-
-    /**
-     * Creates a ConfigOperator that creates a Configuration containing only keys
-     * that are contained in the given area (non recursive). Hereby
-     * the area key is stripped away fromMap the resulting key.
-     *
-     * @param areaKey the area key, not null
-     * @return the area configuration, with the areaKey stripped away.
-     */
-    public static UnaryOperator<Configuration> selectArea(String areaKey) {
-        return selectArea(areaKey, true);
-    }
-
-    /**
-     * Creates a ConfigOperator that creates a Configuration containing only keys
-     * that are contained in the given area (non recursive).
-     *
-     * @param areaKey   the area key, not null
-     * @param stripKeys if set to true, the area key is stripped away fromMap the resulting key.
-     * @return the area configuration, with the areaKey stripped away.
-     */
-    public static UnaryOperator<Configuration> selectArea(String areaKey, boolean stripKeys) {
-        return config -> {
-            Map<String, String> area = new HashMap<>();
-            area.putAll(
-                    config.getProperties().entrySet().stream()
-                            .filter(e -> isKeyInArea(e.getKey(), areaKey))
-                            .collect(Collectors.toMap(
-                                    e -> stripKeys ? e.getKey().substring(areaKey.length() + 1) : e.getKey(),
-                                    Map.Entry::getValue)));
-            return Configuration.from(PropertySourceBuilder.of("area: " + areaKey).addMap(area).build());
-        };
-    }
-
-    /**
-     * Calculates the current area key and compares it with the given key.
-     *
-     * @param key     the fully qualified entry key, not null
-     * @param areaKey the area key, not null
-     * @return true, if the entry is exact in this area
-     */
-    public static boolean isKeyInArea(String key, String areaKey) {
-        int lastIndex = key.lastIndexOf('.');
-        String curAreaKey = lastIndex > 0 ? key.substring(0, lastIndex) : "";
-        return curAreaKey.equals(areaKey);
-    }
-
-    /**
-     * Return a query to evaluate the set with all fully qualifies area names. This method should return the areas as accurate as possible,
-     * but may not provide a complete set of areas that are finally accessible, especially when the underlying storage
-     * does not support key iteration.
-     *
-     * @return s set with all areas, never {@code null}.
-     */
-    public static Function<Configuration,Set<String>> getAreas() {
-        return config -> {
-            final Set<String> areas = new HashSet<>();
-            config.getProperties().keySet().forEach(s -> {
-                int index = s.lastIndexOf('.');
-                if (index > 0) {
-                    areas.add(s.substring(0, index));
-                } else {
-                    areas.add("<root>");
-                }
-            });
-            return areas;
-        };
-    }
-
-    /**
-     * Return a query to evaluate the set with all fully qualified area names, containing the transitive closure also including all
-     * subarea names, regardless if properties are accessible or not. This method should return the areas as accurate
-     * as possible, but may not provide a complete set of areas that are finally accessible, especially when the
-     * underlying storage does not support key iteration.
-     *
-     * @return s set with all transitive areas, never {@code null}.
-     */
-    public static Function<Configuration,Set<String>> getTransitiveAreas() {
-        return config -> {
-            final Set<String> transitiveAreas = new HashSet<>();
-            config.query(getAreas()).forEach(s -> {
-                int index = s.lastIndexOf('.');
-                if (index < 0) {
-                    transitiveAreas.add("<root>");
-                } else {
-                    while (index > 0) {
-                        s = s.substring(0, index);
-                        transitiveAreas.add(s);
-                        index = s.lastIndexOf('.');
-                    }
-                }
-            });
-            return transitiveAreas;
-        };
-    }
-
-    /**
-     * Return a query to evaluate the set with all fully qualified area names, containing only the
-     * areas that match the predicate and have properties attached. This method should return the areas as accurate as possible,
-     * but may not provide a complete set of areas that are finally accessible, especially when the underlying storage
-     * does not support key iteration.
-     *
-     * @param predicate A predicate to deternine, which areas should be returned, not {@code null}.
-     * @return s set with all areas, never {@code null}.
-     */
-    public static Function<Configuration,Set<String>> getAreas(final Predicate<String> predicate) {
-        return config -> {
-            return config.query(getAreas()).stream().filter(predicate).collect(Collectors.toCollection(TreeSet::new));
-        };
-    }
-
-    /**
-     * Return a query to evaluate the set with all fully qualified area names, containing the transitive closure also including all
-     * subarea names, regardless if properties are accessible or not. This method should return the areas as accurate as possible,
-     * but may not provide a complete set of areas that are finally accessible, especially when the underlying storage
-     * does not support key iteration.
-     *
-     * @param predicate A predicate to deternine, which areas should be returned, not {@code null}.
-     * @return s set with all transitive areas, never {@code null}.
-     */
-    public static Function<Configuration,Set<String>> getTransitiveAreas(Predicate<String> predicate) {
-        return config -> {
-            return config.query(getTransitiveAreas()).stream().filter(predicate).collect(Collectors.toCollection(TreeSet::new));
-        };
-    }
-
-    /**
-     * Return a query to evaluate to evaluate if an area exists. In case where the underlying storage implementation does not allow
-     * querying the keys available, {@code false} should be returned.
-     *
-     * @param areaKey the configuration area (sub)path.
-     * @return {@code true}, if such a node exists.
-     */
-    public static Function<Configuration,Boolean> containsArea(String areaKey) {
-        return config -> {
-            return config.query(getAreas()).contains(areaKey);
-        };
-    }
-
-    /**
-     * Creates a ConfigOperator that creates a Configuration containing only keys
-     * that are contained in the given area (recursive). Hereby
-     * the area key is stripped away fromMap the resulting key.
-     *
-     * @param areaKey the area key, not null
-     * @return the area configuration, with the areaKey stripped away.
-     */
-    public static UnaryOperator<Configuration> selectAreaRecursive(String areaKey) {
-        return selectAreaRecursive(areaKey, true);
-    }
-
-    /**
-     * Creates a ConfigOperator that creates a Configuration containing only keys
-     * that are contained in the given area (recursive).
-     *
-     * @param areaKey   the area key, not null
-     * @param stripKeys if set to true, the area key is stripped away fromMap the resulting key.
-     * @return the area configuration, with the areaKey stripped away.
-     */
-    public static UnaryOperator<Configuration> selectAreaRecursive(String areaKey, boolean stripKeys) {
-        return config -> {
-            Map<String, String> area = new HashMap<>();
-            String lookupKey = areaKey + '.';
-            area.putAll(
-                    config.getProperties().entrySet().stream()
-                            .filter(e -> e.getKey().startsWith(lookupKey))
-                            .collect(Collectors.toMap(
-                                    e -> stripKeys ? e.getKey().substring(areaKey.length() + 1) : e.getKey(),
-                                    Map.Entry::getValue)));
-            return Configuration.from(PropertySourceBuilder.of("area (recursive): " + areaKey).addMap(area).build());
-        };
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/main/java/org/apache/tamaya/core/config/AbstractConfiguration.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/main/java/org/apache/tamaya/core/config/AbstractConfiguration.java b/dormant/core/src/main/java/org/apache/tamaya/core/config/AbstractConfiguration.java
deleted file mode 100644
index 8289d64..0000000
--- a/dormant/core/src/main/java/org/apache/tamaya/core/config/AbstractConfiguration.java
+++ /dev/null
@@ -1,55 +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.core.config;
-
-import java.util.Optional;
-
-import org.apache.tamaya.*;
-import org.apache.tamaya.core.properties.AbstractPropertySource;
-import old.PropertyAdapterProviderSpi;
-import org.apache.tamaya.spi.ServiceContext;
-
-/**
- * Abstract implementation class for {@link org.apache.tamaya.Configuration}, which supports optimistic
- * locking and mutability.
- */
-public abstract class AbstractConfiguration extends AbstractPropertySource implements Configuration{
-
-    private static final long serialVersionUID = 503764580971917964L;
-
-    private final Object LOCK = new Object();
-
-    protected AbstractConfiguration(String name){
-        super(name);
-    }
-
-
-    @Override
-    public <T> Optional<T> get(String key, Class<T> type){
-        PropertyAdapterProviderSpi as = ServiceContext.getInstance().getSingleton(PropertyAdapterProviderSpi.class);
-        PropertyAdapter<T> adapter = as.getPropertyAdapter(type);
-        if(adapter == null){
-            throw new ConfigException(
-                    "Can not adapt config property '" + key + "' to " + type.getName() + ": no such " +
-                            "adapter.");
-        }
-        return getAdapted(key, adapter);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/main/java/org/apache/tamaya/core/config/ConfigFunctions.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/main/java/org/apache/tamaya/core/config/ConfigFunctions.java b/dormant/core/src/main/java/org/apache/tamaya/core/config/ConfigFunctions.java
deleted file mode 100644
index 7306fff..0000000
--- a/dormant/core/src/main/java/org/apache/tamaya/core/config/ConfigFunctions.java
+++ /dev/null
@@ -1,239 +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.core.config;
-
-import old.MappedConfiguration;
-import org.apache.tamaya.ConfigQuery;
-import org.apache.tamaya.Configuration;
-import org.apache.tamaya.core.properties.PropertySourceBuilder;
-
-import java.util.*;
-import java.util.function.Predicate;
-import java.util.function.UnaryOperator;
-import java.util.stream.Collectors;
-
-/**
- * Accessor that provides useful functions along with configuration.
- */
-public final class ConfigFunctions {
-    /**
-     * Private singleton constructor.
-     */
-    private ConfigFunctions() {
-    }
-
-    /**
-     * Creates a ConfigOperator that creates a Configuration containing only keys
-     * that are contained in the given area (non recursive). Hereby
-     * the area key is stripped away fromMap the resulting key.
-     *
-     * @param areaKey the area key, not null
-     * @return the area configuration, with the areaKey stripped away.
-     */
-    public static UnaryOperator<Configuration> selectArea(String areaKey) {
-        return selectArea(areaKey, true);
-    }
-
-    /**
-     * Creates a ConfigOperator that creates a Configuration containing only keys
-     * that are contained in the given area (non recursive).
-     *
-     * @param areaKey   the area key, not null
-     * @param stripKeys if set to true, the area key is stripped away fromMap the resulting key.
-     * @return the area configuration, with the areaKey stripped away.
-     */
-    public static UnaryOperator<Configuration> selectArea(String areaKey, boolean stripKeys) {
-        return config -> {
-            Map<String, String> area = new HashMap<>();
-            area.putAll(
-                    config.getProperties().entrySet().stream()
-                            .filter(e -> isKeyInArea(e.getKey(), areaKey))
-                            .collect(Collectors.toMap(
-                                    e -> stripKeys ? e.getKey().substring(areaKey.length() + 1) : e.getKey(),
-                                    Map.Entry::getValue)));
-            return PropertySourceBuilder.of("area: " + areaKey).addMap(area).build().toConfiguration();
-        };
-    }
-
-    /**
-     * Calculates the current area key and compares it with the given key.
-     *
-     * @param key     the fully qualified entry key, not null
-     * @param areaKey the area key, not null
-     * @return true, if the entry is exact in this area
-     */
-    public static boolean isKeyInArea(String key, String areaKey) {
-        int lastIndex = key.lastIndexOf('.');
-        String curAreaKey = lastIndex > 0 ? key.substring(0, lastIndex) : "";
-        return curAreaKey.equals(areaKey);
-    }
-
-    /**
-     * Return a query to evaluate the set with all fully qualifies area names. This method should return the areas as accurate as possible,
-     * but may not provide a complete set of areas that are finally accessible, especially when the underlying storage
-     * does not support key iteration.
-     *
-     * @return s set with all areas, never {@code null}.
-     */
-    public static ConfigQuery<Set<String>> getAreas() {
-        return config -> {
-            final Set<String> areas = new HashSet<>();
-            config.getProperties().keySet().forEach(s -> {
-                int index = s.lastIndexOf('.');
-                if (index > 0) {
-                    areas.add(s.substring(0, index));
-                } else {
-                    areas.add("<root>");
-                }
-            });
-            return areas;
-        };
-    }
-
-    /**
-     * Return a query to evaluate the set with all fully qualified area names, containing the transitive closure also including all
-     * subarea names, regardless if properties are accessible or not. This method should return the areas as accurate
-     * as possible, but may not provide a complete set of areas that are finally accessible, especially when the
-     * underlying storage does not support key iteration.
-     *
-     * @return s set with all transitive areas, never {@code null}.
-     */
-    public static ConfigQuery<Set<String>> getTransitiveAreas() {
-        return config -> {
-            final Set<String> transitiveAreas = new HashSet<>();
-            config.query(getAreas()).forEach(s -> {
-                int index = s.lastIndexOf('.');
-                if (index < 0) {
-                    transitiveAreas.add("<root>");
-                } else {
-                    while (index > 0) {
-                        s = s.substring(0, index);
-                        transitiveAreas.add(s);
-                        index = s.lastIndexOf('.');
-                    }
-                }
-            });
-            return transitiveAreas;
-        };
-    }
-
-    /**
-     * Return a query to evaluate the set with all fully qualified area names, containing only the
-     * areas that match the predicate and have properties attached. This method should return the areas as accurate as possible,
-     * but may not provide a complete set of areas that are finally accessible, especially when the underlying storage
-     * does not support key iteration.
-     *
-     * @param predicate A predicate to deternine, which areas should be returned, not {@code null}.
-     * @return s set with all areas, never {@code null}.
-     */
-    public static ConfigQuery<Set<String>> getAreas(final Predicate<String> predicate) {
-        return config -> {
-            return config.query(getAreas()).stream().filter(predicate).collect(Collectors.toCollection(TreeSet::new));
-        };
-    }
-
-    /**
-     * Return a query to evaluate the set with all fully qualified area names, containing the transitive closure also including all
-     * subarea names, regardless if properties are accessible or not. This method should return the areas as accurate as possible,
-     * but may not provide a complete set of areas that are finally accessible, especially when the underlying storage
-     * does not support key iteration.
-     *
-     * @param predicate A predicate to deternine, which areas should be returned, not {@code null}.
-     * @return s set with all transitive areas, never {@code null}.
-     */
-    public static ConfigQuery<Set<String>> getTransitiveAreas(Predicate<String> predicate) {
-        return config -> {
-            return config.query(getTransitiveAreas()).stream().filter(predicate).collect(Collectors.toCollection(TreeSet::new));
-        };
-    }
-
-    /**
-     * Return a query to evaluate to evaluate if an area exists. In case where the underlying storage implementation does not allow
-     * querying the keys available, {@code false} should be returned.
-     *
-     * @param areaKey the configuration area (sub)path.
-     * @return {@code true}, if such a node exists.
-     */
-    public static ConfigQuery<Boolean> containsArea(String areaKey) {
-        return config -> {
-            return config.query(getAreas()).contains(areaKey);
-        };
-    }
-
-    /**
-     * Creates a ConfigOperator that creates a Configuration containing only keys
-     * that are contained in the given area (recursive). Hereby
-     * the area key is stripped away fromMap the resulting key.
-     *
-     * @param areaKey the area key, not null
-     * @return the area configuration, with the areaKey stripped away.
-     */
-    public static UnaryOperator<Configuration> selectAreaRecursive(String areaKey) {
-        return selectAreaRecursive(areaKey, true);
-    }
-
-    /**
-     * Creates a ConfigOperator that creates a Configuration containing only keys
-     * that are contained in the given area (recursive).
-     *
-     * @param areaKey   the area key, not null
-     * @param stripKeys if set to true, the area key is stripped away fromMap the resulting key.
-     * @return the area configuration, with the areaKey stripped away.
-     */
-    public static UnaryOperator<Configuration> selectAreaRecursive(String areaKey, boolean stripKeys) {
-        return config -> {
-            Map<String, String> area = new HashMap<>();
-            String lookupKey = areaKey + '.';
-            area.putAll(
-                    config.getProperties().entrySet().stream()
-                            .filter(e -> e.getKey().startsWith(lookupKey))
-                            .collect(Collectors.toMap(
-                                    e -> stripKeys ? e.getKey().substring(areaKey.length() + 1) : e.getKey(),
-                                    Map.Entry::getValue)));
-            return PropertySourceBuilder.of("area (recursive): " + areaKey).addMap(area).build().toConfiguration();
-        };
-    }
-
-    /**
-     * Creates a ConfigOperator that creates a Configuration containing only keys
-     * that are contained in the given area (non recursive). Hereby
-     * the area key is stripped away fromMap the resulting key.
-     *
-     * @param areaKey       the area key, not null
-     * @param mappedAreaKey the target key, not null
-     * @return the area configuration, with the areaKey stripped away.
-     */
-    public static UnaryOperator<Configuration> mapArea(String areaKey, String mappedAreaKey) {
-        return mapKeys(key -> key.startsWith(areaKey + '.') ?
-                mappedAreaKey + key.substring(areaKey.length()) : key);
-    }
-
-    /**
-     * Creates a {@link UnaryOperator} that creates a {@link org.apache.tamaya.Configuration} that maps any keys as
-     * defined by the {@code keyMapper} given. If the {@code keyMapper} returns
-     * {@code null} for a keys, it is removed from the resulting map.
-     *
-     * @param keyMapper the key mapper, not null
-     * @return the area configuration, with the areaKey stripped away.
-     */
-    public static UnaryOperator<Configuration> mapKeys(UnaryOperator<String> keyMapper) {
-        return (c) -> new MappedConfiguration(c, keyMapper);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/main/java/org/apache/tamaya/core/internal/MetaConfig.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/main/java/org/apache/tamaya/core/internal/MetaConfig.java b/dormant/core/src/main/java/org/apache/tamaya/core/internal/MetaConfig.java
deleted file mode 100644
index 6233a93..0000000
--- a/dormant/core/src/main/java/org/apache/tamaya/core/internal/MetaConfig.java
+++ /dev/null
@@ -1,70 +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.core.internal;
-
-import org.apache.tamaya.core.properties.ConfigurationFormat;
-import org.apache.tamaya.core.resource.Resource;
-import org.apache.tamaya.spi.ServiceContext;
-import org.apache.tamaya.core.resource.ResourceLoader;
-
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-/**
- * Singleton to read the configuration for the configuration system
- * fromMap {@code META-INF/config.properties}.
- * Created by Anatole on 17.10.2014.
- */
-public final class MetaConfig {
-
-    private static  final Logger LOG = Logger.getLogger(MetaConfig.class.getName());
-
-    private static final MetaConfig INSTANCE = new MetaConfig();
-
-    private Map<String,String> properties = new HashMap<>();
-
-    private MetaConfig(){
-        List<Resource> resources = ServiceContext.getInstance().getService(ResourceLoader.class).get().getResources(MetaConfig.class.getClassLoader(),
-                "classpath:META-INF/config.properties");
-        for(Resource res:resources){
-            List<ConfigurationFormat> formats = ConfigurationFormat.getFormats(res);
-            for(ConfigurationFormat format:formats) {
-                try {
-
-                    Map<String, String> read = format.readConfiguration(res);
-                    properties.putAll(read);
-                } catch (Exception e) {
-                    LOG.log(Level.SEVERE, e, () -> "Error reading meta configuration fromMap " + res);
-                }
-            }
-        }
-    }
-
-    public static String getKey(String key){
-        return INSTANCE.properties.get(key);
-    }
-
-    public static String getOrDefault(String key, String defaultValue){
-        return INSTANCE.properties.getOrDefault(key, defaultValue);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/main/java/org/apache/tamaya/core/internal/config/FallbackSimpleConfigProvider.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/main/java/org/apache/tamaya/core/internal/config/FallbackSimpleConfigProvider.java b/dormant/core/src/main/java/org/apache/tamaya/core/internal/config/FallbackSimpleConfigProvider.java
deleted file mode 100644
index dc34c55..0000000
--- a/dormant/core/src/main/java/org/apache/tamaya/core/internal/config/FallbackSimpleConfigProvider.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package org.apache.tamaya.core.internal.config;
-
-import org.apache.tamaya.Configuration;
-import org.apache.tamaya.core.properties.AggregationPolicy;
-import org.apache.tamaya.core.properties.PropertySourceBuilder;
-import old.ConfigurationProviderSpi;
-import org.apache.tamaya.core.properties.PropertySourcesBuilder;
-
-/**
- * Implementation of a default config provider used as fallback, if no {@link old.ConfigurationProviderSpi}
- * instance is registered for providing the {@code default} {@link org.apache.tamaya.Configuration}. The providers loads the follwing
- * config format:
- * <ul>
- *     <li>Classpath: META-INF/cfg/default/&#42;&#42;/&#42;.xml, META-INF/cfg/default/&#42;&#42;/&#42;.properties, META-INF/cfg/default/&#42;&#42;/&#42;.ini</li>
- *     <li>Classpath: META-INF/cfg/config/#42;#42;/#42;.xml, META-INF/cfg/config/#42;#42;/#42;.properties, META-INF/cfg/config/#42;#42;/#42;.ini</li>
- *     <li>Files: defined by the system property -Dconfig.dir</li>
- *     <li>system properties</li>
- * </ul>
- */
-public class FallbackSimpleConfigProvider implements ConfigurationProviderSpi {
-
-    private static final String DEFAULT_CONFIG_NAME = "default";
-
-    /**
-     * The loaded configuration instance.
-     */
-    private volatile Configuration configuration;
-
-    @Override
-    public String getConfigName() {
-        return DEFAULT_CONFIG_NAME;
-    }
-
-    @Override
-    public Configuration getConfiguration() {
-        Configuration cfg = configuration;
-        if (cfg == null) {
-            reload();
-            cfg = configuration;
-        }
-        return cfg;
-    }
-
-
-    @Override
-    public void reload() {
-        this.configuration = Configuration.from(
-                PropertySourcesBuilder.of()
-                                .addPaths("META-INF/cfg/default/**/*.xml", "META-INF/cfg/default/**/*.properties", "META-INF/cfg/default/**/*.ini")
-                                .build())
-                        .addProviders(PropertySourcesBuilder.of("CL default")
-                                .withAggregationPolicy(AggregationPolicy.LOG_ERROR)
-                                .addPaths("META-INF/cfg/config/**/*.xml", "META-INF/cfg/config/**/*.properties", "META-INF/cfg/config/**/*.ini")
-                                .build())
-                        .addSystemProperties()
-                        .addEnvironmentProperties()
-                        .build());
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/main/java/org/apache/tamaya/core/internal/config/FileChangeListener.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/main/java/org/apache/tamaya/core/internal/config/FileChangeListener.java b/dormant/core/src/main/java/org/apache/tamaya/core/internal/config/FileChangeListener.java
deleted file mode 100644
index e1a3026..0000000
--- a/dormant/core/src/main/java/org/apache/tamaya/core/internal/config/FileChangeListener.java
+++ /dev/null
@@ -1,138 +0,0 @@
-package org.apache.tamaya.core.internal.config;
-
-import static java.nio.file.StandardWatchEventKinds.ENTRY_CREATE;
-import static java.nio.file.StandardWatchEventKinds.ENTRY_DELETE;
-import static java.nio.file.StandardWatchEventKinds.ENTRY_MODIFY;
-
-import java.io.IOException;
-import java.nio.file.FileSystem;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.nio.file.StandardWatchEventKinds;
-import java.nio.file.WatchEvent;
-import java.nio.file.WatchKey;
-import java.nio.file.WatchService;
-import java.util.Map;
-import java.util.Objects;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import org.apache.tamaya.ConfigException;
-import old.ConfigurationProviderSpi;
-
-/**
- * Class that has the responsibility to watch the folder and then commit the {@link ConfigurationProviderSpi}
- * to commit the Configuration from the properties or xml files, another ones will be ignored.
- * @see FilesPropertiesConfigProvider
- * This listener will wait to events and wait to one second to watch again.
- * <p>If new file was created or modified will commit from this file.</p>
- * <p>If a file was removed then the listener will load using all files left.</p>
- * @author otaviojava
- */
-class FileChangeListener implements Runnable {
-
-    private static final Logger LOGGER = Logger.getLogger(FileChangeListener.class.getName());
-
-    private WatchService watchService;
-
-    private FileChangeObserver observer;
-
-    private Map<String, String> configurationMap;
-
-    private Path directory;
-
-    private FileReader fileReader = new FileReader();
-
-    public FileChangeListener(FileChangeObserver observer, Map<String, String> mapConfiguration, Path directory) {
-        this.observer = observer;
-        this.configurationMap = mapConfiguration;
-        this.directory = directory;
-        this.watchService = getWatchService();
-
-        if (Objects.nonNull(watchService) && Objects.nonNull(directory)) {
-            try {
-                directory.register(watchService, ENTRY_DELETE, ENTRY_MODIFY,
-                        ENTRY_CREATE);
-            } catch (IOException e) {
-                throw new FileChangeListenerException("An error happened when does try to registry to watch the folder", e);
-            }
-        }
-    }
-
-
-    @Override
-    public void run() {
-        if (Objects.isNull(watchService) || Objects.isNull(directory)) {
-            return;
-        }
-        while (true) {
-            watchFolder();
-        }
-    }
-
-
-    private void watchFolder() {
-        try {
-            WatchKey watckKey = watchService.take();
-            boolean needUpdate = false;
-            for (WatchEvent<?> event : watckKey.pollEvents()) {
-                Path keyDirectory = (Path) watckKey.watchable();
-                if(listenerPath(event, keyDirectory)) {
-                    needUpdate = true;
-                }
-            }
-
-            if (needUpdate) {
-                observer.update(configurationMap);
-            }
-            watckKey.reset();
-            Thread.sleep(1_000L);
-        } catch (Exception e) {
-            throw new FileChangeListenerException("An error happened when does try to watch the folder", e);
-        }
-    }
-
-    private boolean listenerPath(WatchEvent<?> event, Path keyDirectory) {
-        boolean wasModified = false;
-        Path path = keyDirectory.resolve((Path)event.context());
-        if(fileReader.isObservavleFile(path)) {
-
-            if (event.kind() == ENTRY_CREATE || event.kind() == ENTRY_MODIFY) {
-                wasModified = true;
-                configurationMap.putAll(fileReader.runFile(path.toAbsolutePath()));
-                LOGGER.info("An event was detected  in file: " + path.getFileName());
-            }
-
-            if (event.kind() == StandardWatchEventKinds.ENTRY_DELETE) {
-                wasModified = true;
-                configurationMap = fileReader.runFiles(directory);
-                LOGGER.info("A remotion event was detected  in file: " + path.getFileName());
-            }
-
-        } else {
-            LOGGER.info("Ignoring the file: " +  path.getFileName() + " because is not a properties or xml file");
-        }
-        return wasModified;
-    }
-
-    private WatchService getWatchService() {
-        try {
-            FileSystem fileSystem = Paths.get(".").getFileSystem();
-            return fileSystem.newWatchService();
-        } catch (IOException e) {
-            LOGGER.log(Level.WARNING, "The file System does not supports WatchService", e);
-            return null;
-        }
-
-    }
-
-    class FileChangeListenerException extends ConfigException {
-
-        private static final long serialVersionUID = -8965486770881001513L;
-
-        public FileChangeListenerException(String message, Throwable cause) {
-            super(message, cause);
-        }
-
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/main/java/org/apache/tamaya/core/internal/config/FileChangeObserver.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/main/java/org/apache/tamaya/core/internal/config/FileChangeObserver.java b/dormant/core/src/main/java/org/apache/tamaya/core/internal/config/FileChangeObserver.java
deleted file mode 100644
index a7d4ba9..0000000
--- a/dormant/core/src/main/java/org/apache/tamaya/core/internal/config/FileChangeObserver.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package org.apache.tamaya.core.internal.config;
-
-import java.util.Map;
-
-/**
- * Observer to be used in {@link FileChangeListener} to commit all configurations and provider.
- * @author otaviojava
- */
-interface FileChangeObserver {
-
-    void update(Map<String, String> configurationMap);
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/main/java/org/apache/tamaya/core/internal/config/FileConfiguration.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/main/java/org/apache/tamaya/core/internal/config/FileConfiguration.java b/dormant/core/src/main/java/org/apache/tamaya/core/internal/config/FileConfiguration.java
deleted file mode 100644
index 4f76180..0000000
--- a/dormant/core/src/main/java/org/apache/tamaya/core/internal/config/FileConfiguration.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package org.apache.tamaya.core.internal.config;
-
-import java.util.Map;
-import java.util.Objects;
-import java.util.Optional;
-
-import org.apache.tamaya.Configuration;
-
-/**
- * Implementation of Configuration which the information is from xml or properties files.
- * Once the File modified, it will commit automatically by provider.
- * @see FilesPropertiesConfigProvider
- * @see FileChangeObserver
- * @author otaviojava
- */
-class FileConfiguration implements Configuration, FileChangeObserver {
-
-	private Map<String, String> configurationMap;
-
-	public FileConfiguration(Map<String, String> configurationMap) {
-        this.configurationMap = configurationMap;
-    }
-
-    @Override
-	public Optional<String> get(String key) {
-		return Optional.ofNullable(configurationMap.get(key));
-	}
-
-    @Override
-	public String getName() {
-		return "files.config";
-	}
-
-	@Override
-	public Map<String, String> getProperties() {
-		return configurationMap;
-	}
-
-    @Override
-    public void update(Map<String, String> configurationMap) {
-        synchronized (this) {
-            this.configurationMap = configurationMap;
-        }
-    }
-
-    @Override
-    public String toString() {
-        return "org.apache.tamaya.core.internal.config.FileConfiguration: " + configurationMap.toString();
-    }
-
-    @Override
-    public int hashCode() {
-        return Objects.hashCode(configurationMap);
-    }
-
-    @Override
-    public boolean equals(Object obj) {
-        if(this == obj) {
-            return true;
-        }
-        if(Configuration.class.isInstance(obj)) {
-            Configuration other = Configuration.class.cast(obj);
-            return Objects.equals(configurationMap, other.getProperties());
-        }
-
-        return false;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/main/java/org/apache/tamaya/core/internal/config/FileReader.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/main/java/org/apache/tamaya/core/internal/config/FileReader.java b/dormant/core/src/main/java/org/apache/tamaya/core/internal/config/FileReader.java
deleted file mode 100644
index 287ccc4..0000000
--- a/dormant/core/src/main/java/org/apache/tamaya/core/internal/config/FileReader.java
+++ /dev/null
@@ -1,80 +0,0 @@
-package org.apache.tamaya.core.internal.config;
-
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.util.HashMap;
-import java.util.InvalidPropertiesFormatException;
-import java.util.Map;
-import java.util.Properties;
-import java.util.function.Function;
-import java.util.stream.Collectors;
-
-/**
- * Class to read a file and creates a {@link Map} of {@link String}.
- * The implementation of {@link Map} will {@link HashMap}
- * @author otaviojava
- */
-class FileReader {
-
-    private static final String EXTENSIONS_ACCEPTED = "*.{xml,properties}";
-
-    public Map<String, String> runFiles(Path directory) {
-        Properties properties = createProperties(directory);
-        return properties
-                .stringPropertyNames()
-                .stream()
-                .collect(
-                        Collectors.toMap(Function.identity(),
-                                properties::getProperty));
-    }
-
-    public Map<String, String> runFile(Path path) {
-        Properties properties = new Properties();
-        try {
-            loadFile(properties, path);
-        } catch (IOException e) {
-            e.printStackTrace();
-        }
-        return properties
-                .stringPropertyNames()
-                .stream()
-                .collect(
-                        Collectors.toMap(Function.identity(),
-                                properties::getProperty));
-    }
-
-    private Properties createProperties(Path directory) {
-        Properties properties = new Properties();
-
-            try {
-                for (Path path : Files.newDirectoryStream(directory, EXTENSIONS_ACCEPTED)) {
-                    loadFile(properties, path);
-                }
-            } catch (IOException e) {
-                e.printStackTrace();
-            }
-        return properties;
-    }
-
-    private void loadFile(Properties properties, Path path) throws IOException,
-            InvalidPropertiesFormatException {
-        if (isXmlExtension(path)) {
-            properties.loadFromXML(Files.newInputStream(path));
-        } else {
-            properties.load(Files.newInputStream(path));
-        }
-}
-
-    private boolean isXmlExtension(Path path) {
-        return path.toString().toLowerCase().endsWith(".xml");
-    }
-
-    private boolean isPropertiesExtension(Path path) {
-        return path.toString().toLowerCase().endsWith(".properties");
-    }
-
-    public boolean isObservavleFile(Path path) {
-        return isPropertiesExtension(path) || isXmlExtension(path);
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/main/java/org/apache/tamaya/core/internal/config/FilesPropertiesConfigProvider.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/main/java/org/apache/tamaya/core/internal/config/FilesPropertiesConfigProvider.java b/dormant/core/src/main/java/org/apache/tamaya/core/internal/config/FilesPropertiesConfigProvider.java
deleted file mode 100644
index b171d39..0000000
--- a/dormant/core/src/main/java/org/apache/tamaya/core/internal/config/FilesPropertiesConfigProvider.java
+++ /dev/null
@@ -1,97 +0,0 @@
-package org.apache.tamaya.core.internal.config;
-
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-
-import org.apache.tamaya.ConfigException;
-import org.apache.tamaya.Configuration;
-import old.ConfigurationProviderSpi;
-
-/**
- *  This implementation run in a folder and once found xml and properties files
- *  will create the Configuration, when one file is created, deleted or modified the configuration will commit
- *  automatically.
- * The default folder is META-INF/configuration, but you can change using the absolute path in
- * "-Dtamaya.configbase" parameter.
- * @author otaviojava
- */
-public class FilesPropertiesConfigProvider implements ConfigurationProviderSpi, FileChangeObserver {
-
-    private static final String DEFAULT_CONFIG_NAME = "files.configuration";
-
-    private Map<String, String> configurationMap = Collections.emptyMap();
-
-    private ExecutorService executor = Executors.newSingleThreadExecutor();
-
-    private List<FileChangeObserver> fileChangeObservers = new ArrayList<>();
-
-    public FilesPropertiesConfigProvider() {
-        Path directory = getDirectory();
-        if (Objects.nonNull(directory)) {
-            configurationMap = new FileReader().runFiles(directory);
-            Runnable runnable = new FileChangeListener(this, configurationMap, directory);
-            executor.execute(runnable);
-        } else {
-            executor.shutdown();
-        }
-    }
-
-    @Override
-    public String getConfigName() {
-        return DEFAULT_CONFIG_NAME;
-    }
-
-    private Path getDirectory() {
-            String absolutePath = System.getProperty("tamaya.configbase");
-
-            if(Objects.nonNull(absolutePath)) {
-                Path path = Paths.get(absolutePath);
-                if(Files.isDirectory(path)) {
-                    return path;
-                }
-            }
-
-            URL resource = FilesPropertiesConfigProvider.class.getResource("/META-INF/configuration/");
-            if (Objects.nonNull(resource)) {
-                try {
-                    return Paths.get(resource.toURI());
-                } catch (URISyntaxException e) {
-                    throw new ConfigException("An error to find the directory to watch", e);
-                }
-            }
-            return null;
-    }
-
-
-    @Override
-    public Configuration getConfiguration() {
-      return new FileConfiguration(Collections.unmodifiableMap(configurationMap));
-    }
-
-    @Override
-    public void reload() {
-        Path directory = getDirectory();
-        if (Objects.nonNull(directory)) {
-            configurationMap = new FileReader().runFiles(directory);
-        }
-    }
-
-    @Override
-    public void update(Map<String, String> configurationMap) {
-        synchronized (this) {
-            this.configurationMap = configurationMap;
-            Map<String, String> unmodifiableMap = Collections.unmodifiableMap(configurationMap);
-            fileChangeObservers.forEach(fi -> fi.update(unmodifiableMap));
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/main/java/org/apache/tamaya/core/internal/format/DefaultConfigurationFormatSpi.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/main/java/org/apache/tamaya/core/internal/format/DefaultConfigurationFormatSpi.java b/dormant/core/src/main/java/org/apache/tamaya/core/internal/format/DefaultConfigurationFormatSpi.java
deleted file mode 100644
index c4b7ad2..0000000
--- a/dormant/core/src/main/java/org/apache/tamaya/core/internal/format/DefaultConfigurationFormatSpi.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.core.internal.format;
-
-import org.apache.tamaya.core.resource.Resource;
-import org.apache.tamaya.core.properties.ConfigurationFormat;
-import org.apache.tamaya.core.spi.ConfigurationFormatSpi;
-
-import java.util.*;
-import java.util.stream.Collectors;
-
-import org.apache.tamaya.spi.ServiceContext;
-
-/**
- * Singleton accessor to access registered reader mechanism.
- */
-public final class DefaultConfigurationFormatSpi implements ConfigurationFormatSpi {
-
-
-
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/main/java/org/apache/tamaya/core/properties/FrozenPropertySource.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/main/java/org/apache/tamaya/core/properties/FrozenPropertySource.java b/dormant/core/src/main/java/org/apache/tamaya/core/properties/FrozenPropertySource.java
deleted file mode 100644
index 2fe1237..0000000
--- a/dormant/core/src/main/java/org/apache/tamaya/core/properties/FrozenPropertySource.java
+++ /dev/null
@@ -1,87 +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.core.properties;
-
-import org.apache.tamaya.spi.PropertySource;
-
-import java.io.Serializable;
-import java.lang.Override;
-import java.util.Collections;
-import java.util.Map;
-
-/**
- * Configuration implementation that stores all current values current a given (possibly dynamic, contextual and non remote
- * capable instance) and is fully serializable.
- */
-public final class FrozenPropertySource implements PropertySource, Serializable{
-    private static final long serialVersionUID = -6373137316556444171L;
-
-    private int ordinal;
-    private String name;
-    private Map<String,String> properties;
-
-    /**
-     * Constructor.
-     * @param propertySource The base configuration.
-     */
-    private FrozenPropertySource(PropertySource propertySource){
-        this.name = propertySource.getName();
-        this.ordinal = propertySource.ordinal();
-        this.properties = Collections.unmodifiableMap(new HashMap<>(propertySource.getProperties()));
-    }
-
-    public static final FrozenPropertySource of(PropertySource propertySource){
-        if(propertySource instanceof FrozenPropertySource){
-            return propertySource;
-        }
-        return new FrozenPropertySource(propertySource);
-    }
-
-    @Override
-    public Map<String,String> getProperties(){
-        return properties;
-    }
-
-    @Override
-    public boolean equals(Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
-
-        FrozenPropertySource that = (FrozenPropertySource) o;
-
-        if (!name.equals(that.name)) return false;
-        if (!properties.equals(that.properties)) return false;
-
-        return true;
-    }
-
-    @Override
-    public int hashCode() {
-        int result = name.hashCode();
-        result = 31 * result + properties.hashCode();
-        return result;
-    }
-
-    @Override
-    public String toString() {
-        return "FrozenPropertySource{" +
-                ", name=" + name +
-                '}';
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/main/java/org/apache/tamaya/core/properties/PropertySourceFunctions.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/main/java/org/apache/tamaya/core/properties/PropertySourceFunctions.java b/dormant/core/src/main/java/org/apache/tamaya/core/properties/PropertySourceFunctions.java
deleted file mode 100644
index f089f42..0000000
--- a/dormant/core/src/main/java/org/apache/tamaya/core/properties/PropertySourceFunctions.java
+++ /dev/null
@@ -1,116 +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.core.properties;
-
-import org.apache.tamaya.spi.PropertySource;
-
-import java.util.*;
-import java.util.function.Predicate;
-import java.util.function.UnaryOperator;
-
-/**
- * Accessor that provides useful functions along with configuration.
- */
-public final class PropertySourceFunctions {
-    /**
-     * Private singleton constructor.
-     */
-    private PropertySourceFunctions() {
-    }
-
-    /**
-     * Creates a ConfigOperator that creates a Configuration containing only keys
-     * that are contained in the given area (non recursive). Hereby
-     * the area key is stripped away fromMap the resulting key.
-     *
-     * @param areaKey       the area key, not null
-     * @param mappedAreaKey the target key, not null
-     * @return the area configuration, with the areaKey stripped away.
-     */
-    public static UnaryOperator<PropertySource> mapArea(String areaKey, String mappedAreaKey) {
-        return mapKeys(key -> key.startsWith(areaKey + '.') ?
-                mappedAreaKey + key.substring(areaKey.length()) : key);
-    }
-
-    /**
-     * Creates a {@link java.util.function.UnaryOperator} that creates a {@link org.apache.tamaya.Configuration} that maps any keys as
-     * defined by the {@code keyMapper} given. If the {@code keyMapper} returns
-     * {@code null} for a keys, it is removed from the resulting map.
-     *
-     * @param keyMapper the key mapper, not null
-     * @return the area configuration, with the areaKey stripped away.
-     */
-    public static UnaryOperator<PropertySource> mapKeys(UnaryOperator<String> keyMapper) {
-        return (c) -> new MappedPropertySource(c, keyMapper);
-    }
-
-
-
-    /**
-     * Intersetcs the current properties with the given {@link org.apache.tamaya.spi.PropertySource} instance.
-     *
-     * @param providers the maps to be intersected, not null.
-     * @return the builder for chaining.
-     */
-    public UnaryOperator<PropertySource> intersect(PropertySource... providers) {
-        if (providers.length == 0) {
-            return this;
-        }
-        String name = this.currentName;
-        if (currentName == null) {
-            name = "<intersection> -> " + Arrays.toString(providers);
-        }
-        return addPropertySources(PropertySourceFactory.intersected(name, aggregationPolicy, Arrays.asList(providers)));
-    }
-
-
-    /**
-     * Filters the current properties based on the given predicate..
-     *
-     * @param filter the filter to be applied, not null.
-     * @return the new filtering instance.
-     */
-    public UnaryOperator<PropertySource> filter(Predicate<String> filter) {
-        String name = this.currentName;
-        if (currentName == null) {
-            name = "<filtered> -> " + filter;
-        }
-        current = PropertySourceFactory.filtered(name, filter, current);
-        this.currentName = null;
-        return this;
-    }
-
-
-    /**
-     * Replaces all keys in the current provider by the given map.
-     *
-     * @param replacementMap the map instance, that will replace all corresponding entries in {@code mainMap}, not null.
-     * @return the new delegating instance.
-     */
-    public PropertySourceBuilder replace(Map<String, String> replacementMap) {
-        String name = this.currentName;
-        if (currentName == null) {
-            name = "<replacement> -> current=" + current.getName() + " with =" + replacementMap;
-        }
-        current = PropertySourceFactory.replacing(name, current, replacementMap);
-        this.currentName = null;
-        return this;
-    }
-
-}


[02/10] incubator-tamaya git commit: Removed unused file. Added doc.

Posted by an...@apache.org.
Removed unused file.
Added doc.


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

Branch: refs/heads/master
Commit: 77cc0b3471da8326ea245bfa142f24dfc16889e6
Parents: f4ea961
Author: anatole <an...@apache.org>
Authored: Sat May 2 01:04:44 2015 +0200
Committer: anatole <an...@apache.org>
Committed: Tue May 5 13:11:02 2015 +0200

----------------------------------------------------------------------
 docs/index.adoc                                 |  31 ++++--
 .../core/internal/PropertiesFileLoader.java     | 102 -------------------
 2 files changed, 21 insertions(+), 112 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/77cc0b34/docs/index.adoc
----------------------------------------------------------------------
diff --git a/docs/index.adoc b/docs/index.adoc
index de1e98d..c7ef8ec 100644
--- a/docs/index.adoc
+++ b/docs/index.adoc
@@ -124,11 +124,11 @@ The Tamaya project consists of the following parts:
   It is modelled in a extensible way and only requires a few kb. The main features supported by the link:API.html[] are:
   ** Reading configuration as String/String key/value pairs
   ** Reading configuration as type safe values, including type conversion.
-  ** Extending configuration using operators and queries.
-  ** An SPI providing abstractions for component lifecycle, property sources, property source providers, configuration
-     context and property filters.
-* The link:Core.html[Core] implements the link:API.html[API]. Basically with the core part (and the API) you are ready to go, but you may
-  add additional extensions that provide more features that are very useful.
+  ** Converting/mapping configuration using operators and queries.
+  ** An SPI providing abstractions for handling property sources, property filters and component lifecycle management.
+
+* The link:Core.html[Core] implements the link:API.html[API]. Basically with the core part (and the API) you are ready
+to go, but you may want to add additional extensions that provide more features that are very useful.
 * Extensions are additional libraries that you can add to your project setup. Most important features are:
   ** Dynamic resolution of configured values.
   ** Pattern based resource location
@@ -141,14 +141,25 @@ The Tamaya project consists of the following parts:
 
 == Further Information
 
-* There is a small document discussing link:usecases.html[Use Cases] and
-* a document discussing link:requirements.html[Requirements].
+There is further documentation available describing in more detail
+* link:usecases.html[Possible Use Cases]
+* link:requirements.html[Requirements].
 
 == Detailed Documentation
 
-* link:API.html[Tamaya API Documentation] and link:../javadoc/api/index.html[API Javadoc]
-* link:Core.html[Tamaya Core Documentation] and link:../javadoc/core/index.html[Core Javadoc]
-* link:modules.html[Tamaya Modules Documentation] and link:../javadoc/modules/index.html[Extensions Javadoc]
+Javadoc of the current API
+
+* link:API.html[General API Documentation] and link:../javadoc/api/java7/index.html[API Javadoc for Java7] /
+  link:../javadoc/api/java8/index.html[API Javadoc for Java8]
+
+Javadoc of the current Core Implementation
+
+* link:Core.html[General Core Documentation] and link:../javadoc/core/java7/index.html[Core Javadoc for Java7] /
+  link:../javadoc/core/java8/index.html[Core Javadoc for Java8]
+
+Javadoc of the current Extension Modules
+
+* link:modules.html[General Module Documentation]
 
 
 == Examples

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/77cc0b34/java7/core/src/main/java/org/apache/tamaya/core/internal/PropertiesFileLoader.java
----------------------------------------------------------------------
diff --git a/java7/core/src/main/java/org/apache/tamaya/core/internal/PropertiesFileLoader.java b/java7/core/src/main/java/org/apache/tamaya/core/internal/PropertiesFileLoader.java
deleted file mode 100644
index cf2d637..0000000
--- a/java7/core/src/main/java/org/apache/tamaya/core/internal/PropertiesFileLoader.java
+++ /dev/null
@@ -1,102 +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.core.internal;
-//
-//import java.io.IOException;
-//import java.io.InputStream;
-//import java.net.URL;
-//import java.util.Enumeration;
-//import java.util.HashSet;
-//import java.util.Objects;
-//import java.util.Properties;
-//import java.util.Set;
-//
-//public final class PropertiesFileLoader {
-//
-//
-//    private PropertiesFileLoader() {
-//        // no instantiation
-//    }
-//
-//
-//    /**
-//     * loads all properties-files with the given name.
-//     * If the name do not end with {@code .properties} it will be appended
-//     *
-//     * @param name of the properties file
-//     *
-//     * @return URLs of properties-files or
-//     *         an empty {@link java.util.Set} if no files has been found
-//     *
-//     * @throws java.io.IOException in case of problems loading the properties-files
-//     */
-//    public static Set<URL> resolvePropertiesFiles(String name) throws IOException {
-//        Objects.requireNonNull(name);
-//
-//        if (!name.endsWith(".properties")) {
-//            name = name + ".properties";
-//        }
-//
-//        Set<URL> urls = new HashSet<>();
-//
-//        Enumeration<URL> files = Thread.currentThread().getContextClassLoader().getResources(name);
-//        while (files.hasMoreElements()) {
-//            urls.add(files.nextElement());
-//        }
-//
-//        return urls;
-//    }
-//
-//
-//    /**
-//     * loads the Properties from the given URL
-//     *
-//     * @param propertiesFile {@link java.net.URL} to load Properties from
-//     *
-//     * @return loaded {@link java.util.Properties}
-//     *
-//     * @throws IllegalStateException in case of an error while reading properties-file
-//     */
-//    public static Properties load(URL propertiesFile) {
-//
-//        Properties properties = new Properties();
-//
-//        InputStream stream = null;
-//        try {
-//            stream = propertiesFile.openStream();
-//
-//            if (stream != null) {
-//                properties.load(stream);
-//            }
-//        } catch (IOException e) {
-//            throw new IllegalStateException("Error loading Properties " + propertiesFile, e);
-//        } finally {
-//            if (stream != null) {
-//                try {
-//                    stream.close();
-//                } catch (IOException e) {
-//                    // bad luck -> stream is already closed
-//                }
-//            }
-//        }
-//
-//        return properties;
-//    }
-//
-//}


[10/10] incubator-tamaya git commit: Removed.

Posted by an...@apache.org.
Removed.


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

Branch: refs/heads/master
Commit: 84d60674ff6009665dd35e5b0ffe0366c1233c2d
Parents: 46ede97
Author: anatole <an...@apache.org>
Authored: Tue May 5 13:09:07 2015 +0200
Committer: anatole <an...@apache.org>
Committed: Tue May 5 13:11:04 2015 +0200

----------------------------------------------------------------------
 .../environment/spi/EnvironmentProvider.java    | 44 --------------------
 1 file changed, 44 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/84d60674/dormant/modules/metamodels/environment/src/main/java/org/apache/tamaya/metamodel/environment/spi/EnvironmentProvider.java
----------------------------------------------------------------------
diff --git a/dormant/modules/metamodels/environment/src/main/java/org/apache/tamaya/metamodel/environment/spi/EnvironmentProvider.java b/dormant/modules/metamodels/environment/src/main/java/org/apache/tamaya/metamodel/environment/spi/EnvironmentProvider.java
deleted file mode 100644
index ef4ff43..0000000
--- a/dormant/modules/metamodels/environment/src/main/java/org/apache/tamaya/metamodel/environment/spi/EnvironmentProvider.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.metamodel.environment.spi;
-
-import java.util.Map;
-
-/**
- * SPI for components that define a concrete type current {@link org.apache.tamaya.metamodel.environment.Environment}.
- * The chain current environment config determine the current {@link org.apache.tamaya.metamodel.environment.Environment} active
- * and its parent instances.
- * Created by Anatole on 14.10.2014.
- */
-public interface EnvironmentProvider {
-
-    /**
-     * Evaluates if an environment is currently active.
-     * @return
-     */
-    boolean isActive();
-
-    /**
-     * Returns the properties to be added to the environment.
-     * @return the properties, or an empty map if no properties are to be added (or the provider is not active for the
-     * current runtime state).
-     */
-    Map<String,String> getEnvironmentData();
-
-}


[09/10] incubator-tamaya git commit: Removed unused dormant parts. Moved usable dormant utils into new sandbox module. Fixed jqassistant issues in simple metamodel module.

Posted by an...@apache.org.
Removed unused dormant parts.
Moved usable dormant utils into new sandbox module.
Fixed jqassistant issues in simple metamodel module.


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

Branch: refs/heads/master
Commit: 46ede97ca47666778669d5de317ea83088273603
Parents: 77cc0b3
Author: anatole <an...@apache.org>
Authored: Tue May 5 13:04:32 2015 +0200
Committer: anatole <an...@apache.org>
Committed: Tue May 5 13:11:03 2015 +0200

----------------------------------------------------------------------
 dormant/core/src/main/asciidoc/design.adoc      | 1077 ------------------
 .../AbstractClasspathAwarePropertySource.java   |   82 --
 .../main/java/old/AbstractPropertySource.java   |   60 -
 .../main/java/old/AggregatedPropertySource.java |   98 --
 .../main/java/old/BuildablePropertySource.java  |   60 -
 .../src/main/java/old/ConfigurationBuilder.java |  375 ------
 .../main/java/old/ConfigurationProviderSpi.java |   46 -
 .../main/java/old/ContextualPropertySource.java |  142 ---
 .../main/java/old/DefaultConfigurationSpi.java  |  116 --
 .../main/java/old/DefaultServiceComparator.java |   85 --
 .../java/old/DefaultServiceContextProvider.java |  112 --
 .../main/java/old/DelegatingPropertySource.java |   79 --
 .../src/main/java/old/MappedConfiguration.java  |   57 -
 .../java/old/SubtractingPropertySource.java     |   56 -
 .../tamaya/core/ConfigurationFunctions.java     |  213 ----
 .../core/config/AbstractConfiguration.java      |   55 -
 .../tamaya/core/config/ConfigFunctions.java     |  239 ----
 .../apache/tamaya/core/internal/MetaConfig.java |   70 --
 .../config/FallbackSimpleConfigProvider.java    |   59 -
 .../internal/config/FileChangeListener.java     |  138 ---
 .../internal/config/FileChangeObserver.java     |   13 -
 .../core/internal/config/FileConfiguration.java |   68 --
 .../tamaya/core/internal/config/FileReader.java |   80 --
 .../config/FilesPropertiesConfigProvider.java   |   97 --
 .../format/DefaultConfigurationFormatSpi.java   |   38 -
 .../core/properties/FrozenPropertySource.java   |   87 --
 .../properties/PropertySourceFunctions.java     |  116 --
 .../factories/PropertySourceFactory.java        |  279 -----
 .../factories/PropertySourcesBuilder.java       |  367 ------
 .../ResourcePropertySourceProvider.java         |   70 --
 .../filtered/AggregatedPropertySource.java      |   97 --
 .../filtered/FilteredPropertySource.java        |   68 --
 .../filtered/IntersectingPropertySource.java    |   50 -
 .../filtered/MappedPropertySource.java          |   66 --
 .../filtered/ValueFilteredPropertySource.java   |   55 -
 .../tamaya/core/spi/ObjectConfiguratorSpi.java  |   37 -
 .../services/old.ConfigurationProviderSpi       |   20 -
 .../org.apache.tamaya.core.ConfigurationFormat  |   21 -
 ...pache.tamaya.core.config.ConfigurationFormat |   21 -
 ....apache.tamaya.core.resources.ResourceLoader |   20 -
 ...pache.tamaya.core.spi.ConfigurationFormatSpi |   19 -
 ...rg.apache.tamaya.core.spi.ExpressionResolver |   20 -
 .../org.apache.tamaya.core.spi.PathResolver     |   20 -
 ...e.tamaya.core.spi.PropertyProviderBuilderSpi |   19 -
 .../org.apache.tamaya.spi.ConfigurationSpi      |   19 -
 .../org.apache.tamaya.spi.PropertyAdapterSpi    |   19 -
 dormant/core/src/main/resources/log4j2.xml      |   31 -
 ...tionManagerSingletonSpiSingletonSpiTest.java |   96 --
 .../java/org/apache/tamaya/JavaOneDemo.java     |   75 --
 .../config/ConfiguredSystemPropertiesTest.java  |   94 --
 .../tamaya/core/config/MutableConfigTest.java   |   50 -
 .../internal/DefaultServiceContextTest.java     |  131 ---
 .../core/internal/PropetiesFileLoaderTest.java  |   75 --
 .../FilesPropertiesConfigProviderTest.java      |   69 --
 .../properties/PropertySourceBuilderTest.java   |   52 -
 .../internal/MutableTestConfigProvider.java     |   90 --
 .../tamaya/internal/TestConfigProvider.java     |   68 --
 .../java/org/apache/tamaya/package-info.java    |   22 -
 .../annotations/AutoConfiguredClass.java        |   91 --
 .../samples/annotations/AutoConfiguredTest.java |   43 -
 .../samples/annotations/ConfigTemplate.java     |   67 --
 .../samples/annotations/ConfiguredClass.java    |  114 --
 .../samples/annotations/ConfiguredTest.java     |   65 --
 .../samples/devops/DeploymentProvider.java      |   43 -
 .../simple/SimplePropertiesAndCLISample.java    |   69 --
 .../apache/tamaya/ucs/UC1ReadProperties.java    |  220 ----
 .../apache/tamaya/ucs/UC2CombineProperties.java |   70 --
 .../tamaya/ucs/deltaspike/ConfigFiltering.java  |   60 -
 .../core/src/test/resources/META-INF/beans.xml  |   25 -
 .../test/resources/META-INF/config.properties   |   19 -
 .../test/resources/META-INF/config/example.ini  |   31 -
 .../META-INF/config/example.properties          |   31 -
 .../test/resources/META-INF/config/example.xml  |   25 -
 .../META-INF/configuration/example.ini          |   18 -
 .../META-INF/configuration/example.properties   |   20 -
 .../META-INF/configuration/example.xml          |   23 -
 .../META-INF/env/application.properties         |   19 -
 .../src/test/resources/META-INF/env/ear.ini     |   20 -
 .../resources/META-INF/env/system.properties    |   19 -
 .../resources/META-INF/meta-model.properties    |   18 -
 .../services/old.ConfigurationProviderSpi       |   19 -
 ...tServiceContextTest$InvalidPriorityInterface |   19 -
 ...efaultServiceContextTest$MultiImplsInterface |   20 -
 ...g.apache.tamaya.core.spi.EnvironmentProvider |   19 -
 .../org.apache.tamaya.spi.PropertyFilter        |   20 -
 .../org.apache.tamaya.spi.PropertySource        |   22 -
 ...org.apache.tamaya.spi.PropertySourceProvider |   20 -
 .../core/src/test/resources/cfg/autoloaded.xml  |   33 -
 dormant/core/src/test/resources/cfg/test.xml    |   33 -
 .../test/resources/javaconfiguration.properties |   22 -
 .../test/resources/overrideOrdinal.properties   |   25 -
 dormant/core/src/test/resources/test.properties |   27 -
 .../core/src/test/resources/testfile.properties |   22 -
 .../UC1ReadProperties/UC1ReadPropertiesTest.ini |   41 -
 .../UC1ReadPropertiesTest.properties            |   34 -
 .../UC1ReadProperties/UC1ReadPropertiesTest.xml |   25 -
 .../ucs/UC2CombineProperties/props1.properties  |   24 -
 .../ucs/UC2CombineProperties/props2.properties  |   24 -
 .../integration/cdi/ConfigurationExtension.java |   81 --
 .../cdi/src/main/resources/META-INF/beans.xml   |   24 -
 .../javax.enterprise.inject.spi.Extension       |   19 -
 .../tamaya/integration/cdi/ConfiguredClass.java |  133 ---
 .../tamaya/integration/cdi/ConfiguredTest.java  |   52 -
 .../integration/cdi/TestConfigProvider.java     |   69 --
 .../cdi/src/test/resources/META-INF/beans.xml   |   24 -
 .../apache/tamaya/management/ManagedConfig.java |   95 --
 .../tamaya/management/ManagedConfigMBean.java   |  176 ---
 .../tamaya/management/ManagedEnvironment.java   |   69 --
 .../management/ManagedEnvironmentMBean.java     |   88 --
 .../src/main/resources/META-INF/beans.xml       |   24 -
 .../src/test/resources/META-INF/beans.xml       |   24 -
 dormant/modules/integration/se/pom.xml          |   71 --
 .../se/ConfiguredSystemProperties.java          |  353 ------
 .../environment/BuildableEnvironment.java       |  109 --
 .../metamodel/environment/Environment.java      |   86 --
 .../environment/EnvironmentBuilder.java         |   97 --
 ...DependentApplicationEnvironmentProvider.java |  101 --
 ...ssLoaderDependentEarEnvironmentProvider.java |  108 --
 .../internal/InitialEnvironmentProvider.java    |   74 --
 .../internal/SingleEnvironmentManager.java      |   70 --
 .../SystemClassLoaderEnvironmentProvider.java   |   74 --
 .../environment/spi/EnvironmentSpi.java         |   49 -
 .../org.apache.tamaya.spi.EnvironmentSpi        |   19 -
 .../environment/EnvironmentManagerTest.java     |   66 --
 .../TestEnvironmentManagerSingleton.java        |   37 -
 .../environment/TestEnvironmentProvider.java    |   48 -
 .../services/old.ConfigurationProviderSpi       |   19 -
 dormant/pom.xml                                 |   35 -
 ...org.apache.tamaya.spi.PropertySourceProvider |   19 +
 sandbox/environment/pom.xml                     |   42 +
 .../environment/BuildableRuntimeContext.java    |  113 ++
 .../tamaya/environment/RuntimeContext.java      |   83 ++
 .../environment/RuntimeContextBuilder.java      |   75 ++
 .../environment/RuntimeContextProvider.java     |   59 +
 ...DependentApplicationEnvironmentProvider.java |  102 ++
 ...ssLoaderDependentEarEnvironmentProvider.java |  108 ++
 .../internal/InitialEnvironmentProvider.java    |   75 ++
 .../internal/SingleEnvironmentManager.java      |   69 ++
 .../SystemClassLoaderEnvironmentProvider.java   |   75 ++
 .../environment/spi/ContextDataProvider.java    |    7 +
 .../tamaya/environment/spi/ContextSpi.java      |   45 +
 .../environment/EnvironmentManagerTest.java     |   66 ++
 .../TestEnvironmentManagerSingleton.java        |   35 +
 .../environment/TestEnvironmentProvider.java    |   48 +
 ...org.apache.tamaya.environment.spi.ContextSpi |   19 +
 sandbox/functions/pom.xml                       |   52 +
 .../functions/ConfigurationFunctions.java       |  239 ++++
 .../tamaya/functions/FilteredConfiguration.java |   52 +
 .../functions/FilteredPropertySource.java       |   66 ++
 .../tamaya/functions/MappedConfiguration.java   |   48 +
 .../tamaya/functions/MappedPropertySource.java  |   66 ++
 .../functions/MetaEnrichedPropertySource.java   |   62 +
 .../functions/PropertySourceFunctions.java      |  226 ++++
 .../functions/ValueFilteredPropertySource.java  |   55 +
 sandbox/integration/cdi/pom.xml                 |    2 +-
 .../integration/cdi/ConfigurationExtension.java |   79 ++
 .../cdi/src/main/resources/META-INF/beans.xml   |   24 +
 .../javax.enterprise.inject.spi.Extension       |   19 +
 .../tamaya/integration/cdi/ConfiguredClass.java |  133 +++
 .../tamaya/integration/cdi/ConfiguredTest.java  |   52 +
 .../integration/cdi/TestConfigProvider.java     |   69 ++
 .../cdi/src/test/resources/META-INF/beans.xml   |   24 +
 sandbox/integration/commons/pom.xml             |    2 +-
 sandbox/integration/pom.xml                     |    2 +-
 sandbox/management/pom.xml                      |    4 +-
 .../apache/tamaya/management/ManagedConfig.java |   95 ++
 .../tamaya/management/ManagedConfigMBean.java   |  176 +++
 .../tamaya/management/ManagedEnvironment.java   |   69 ++
 .../management/ManagedEnvironmentMBean.java     |   88 ++
 .../src/main/resources/META-INF/beans.xml       |   24 +
 .../src/test/resources/META-INF/beans.xml       |   24 +
 sandbox/pom.xml                                 |    3 +
 sandbox/sysprops/pom.xml                        |   71 ++
 .../se/ConfiguredSystemProperties.java          |  353 ++++++
 174 files changed, 3214 insertions(+), 9716 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/main/asciidoc/design.adoc
----------------------------------------------------------------------
diff --git a/dormant/core/src/main/asciidoc/design.adoc b/dormant/core/src/main/asciidoc/design.adoc
deleted file mode 100644
index 61750e3..0000000
--- a/dormant/core/src/main/asciidoc/design.adoc
+++ /dev/null
@@ -1,1077 +0,0 @@
-Configuration User Guide
-========================
-Anatole Tresch <at...@gmail.com>
-:Author Initials: ATR
-:source-highlighter: coderay
-:toc:
-:icons:
-:numbered:
-:website: http://tamaya.incubator.apache.org/
-
-
-<<<
-:numbered!:
------------------------------------------------------------
-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.
------------------------------------------------------------
-
-:numbered:
-
-'Apache Tamaya Core' is an implementation of the 'Apache Tamaya Config API'. The API is separated
-so also other can provide their own implementations. This document will discuss topics
-from both areas, API and this implementation, using a more general view.
-
-.This document
-**********************************************************************
-This is an overview document that describes all relevant aspects of
-this Java configuration implementation.
-
-For a shorter introduction you may check out the quick start guide
-(tbd).
-**********************************************************************
-
-
-== Introduction to Java Configuration
-
-[NOTE]
-You may also checkout the introductory blog http://javaeeconfig.blogspot.ch/[here].
-
-=== General Aspects
-
-Basically one might ask, what configuration is at all. When looking at the a computation model, where some input is
-converted to some output, configuration can be seen as some kind of control flow, which affects the transformation.
-Nevertheless configuration is not equal to the program converting input to output. Configuration is more like a
-constraint recipe that tells the program in place, what to do, but only within the boundaries of the program allows to
-be configured. Obviously, if the configuration is so powerful, that it is capable of performing any task, it is
-questionable, if this should be called 'configuration' (it may be called more a 'script' or 'recipe').
-
-So summarizing configuration should be
-
-* constrained and limited for purpose.
-* must be interpreted by some algorithmic logic
-
-== Configuration is an API
-
-Configuration is not there just for fun. With configuration your program logic defines an API, which clients interacts
-with. If you change it, you will break the contract. If you replace configuration, you must deprecated it. But things
-get worse. With code you have a compiler that flags out deprecations and will fail if pieces do not fit together
-anymore. With configuration you do not have any such tools.
-
-As a consequence, like with APIs, you must think on what should be configurable. In general, similar as when designing
-programmatic APIs, reduce your API footprint to an absolute minimum. Frankly speaking, if something is not really
-meant to be configured or very complex to configure, or even very rarely used, consider to make it non configurable
-at all. Instead of ensure the component is well encapsulated as a Java artifact, so customers still can replace it
-with their own version if needed.
-
-Configuration Types
-~~~~~~~~~~~~~~~~~~~
-When thinking on configuration types there are a couple of things that are commonly used to 'configure' a program:
-
-* command line arguments
-* environment properties
-* system properties
-* files and classpath resources, using different formats; including standardized deployment descriptors as well as
-vendor specific formats
-* databases
-* remote configuration services
-* ...
-
-This is list is for sure far from being complete. Nevertheless there are some similarities in most cases you will find:
-
-* a configuration entry is *identified by some literal key*.
-* configuration values most of the times are *literal values*.
-* configuration most of the time is *single valued*, but sometimes also *multi valued* (e.g. collections).
-* often keys use a *naming scheme* similar to package and class names (though property names are typically in lower
-case), e.g. +a.b.c.myvalue+. Hereby +myvalue+ can be defined as the 'parameter name' and +a.b.c+ can be named the
-'parameter area'.
-* theoretically configuration values (as well as keys) may be of any type. Nevertheless if we would not constrain
-anything, we are again struggling with complexity and overlapping functionality with other standards, e.g. 'CDI', are
- the natural consequence.
-
-Configuration Building Blocks
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-So given the list above configuration is not a monolithic thing. It is a composite of
-
-* different configuration 'providers'
-* different configuration 'sources'
-* 'Override and priority rules' for resolution of ambiguous entries
-* 'Filters and views' for limiting access and ensure only the information required is visible
-
-Finally composition can be made in different ways:
-
-* 'unions', rendering redundant entries to according multi-value entries.
-* 'resolving unions', where overriding and prioritization mechanism resolve the entries are visible in the composite
-configuration
-* 'extending', where only additional entries not contained in the base configuration are added, but the (redundant ones)
- are ignored.
-* 'exclusive add', where only entries were taken up into the composite that are contained only in either of the base
-configurations, but never in both.
-* 'subtractive', where you will remove the entries from the base configuration, that are contained in the second
-configuration
-* ...
-
-Additionally configuration
-
-* may be 'static'
-* may be different 'depending' on the current runtime environment
-* or even 'mutable' to some extend (or at least updateable).
-* maybe public or may contain entries to be protected by 'security' mechanism
-
-Configuration Metadata
-~~~~~~~~~~~~~~~~~~~~~~
-Configuration meta data allows to store and provide additional data that 'describes configuration'. It can be scoped on:
-
-* to a 'complete' configuration
-* a 'partial' configuration
-a single configuration 'entry'
-
-Possible meta data could be:
-
-* the data provider
-* any additional provider settings
-* the type of data source
-* the configuration data's sensitivity
-* the configuration data owner
-* the exact source of the data, e.g. the jar file and resource path, where a classpath resource was loaded from.
-
-Configuration Locations
-~~~~~~~~~~~~~~~~~~~~~~~
-Separate Configuration from Code
-An area of discussion is sometimes if configuration must be strictly separated from code. I will not join any of the sometimes religious discussion on that, but define some rules of thumb, when I think configuration should be separated and when it should be deployed along the code.
-Configuration that is internal only, meaning it is not meant being used by clients, should always deployed with the code, basically within the same jar, if possible. This makes sense since such configuration is highly coupled to the code.
-Default configuration that may be overridden, should still be deployed along the code. This ensures the defaults are always visible, when the code is deployed (with an according configuration reading mechanism in place, e.g. that honors the same classloading boundaries). Also it is a precondition to let convention-over-configuration to work effectively.
-In next step I would think of configuration that controls the overall basic deployment setup, but still targets rather general concerns. For example configuration defining which modules are loaded, depending on the current deployment stage is such a case. Such configuration, though it may be stage specific, will not be affected by changes within the current runtime environment. I would recommend to deploy such configuration also with the application, e.g. as part of the deployed ear or war-archives. Reason is, that I tend to see configuration also as a n (optionally stage specific) default configuration.
-Finally there is configuration that targets direct deployment aspects and that may change for each single deployment, regardless if performed manually or in an automated cloud like environment. This configuration should be separated from the code, meaning independently deployed. Hereby there are several options how to achieve this:
-Deploy the files required with ssh, sftp or similar to the target node, where it can be read.
-Mount some specific area into the file system, where the files are locally visible, e.g. nfs etc.
-
-* Access configuration from a configuration server (Pull-scenario).
-* Open a connection and wait, for the configuration server to push the configuration required onto your node
-(push-scenario).
-* Add Configuration as Classpath Resources
-
-Many people tend to see configuration as files that must be deployed to the target system. Nevertheless in case of internal and default configuration (refer to the previous section for more details), deploying this configuration type as files in a separate deployment channel also creates some possible issues:
-
-* It is cumbersome if clients have to care about what additional configuration must be installed to get things running
-. They want to define the dependency on the library and start working with it. In practice this may be even worse, when different versions of the classes require different (default) configuration. Often then outdated configuration is then shipped with newer version of the component, which often end up in hard to find errors.
-* Also on the deployment side (DevOps) it makes the deployment bigger (more files to be deployed) and more complex,
-for configuration updates.
-
-Whereas when configuration is deployed as classpath resources there are some real benefits:
-* The classloader hierarchy ensures the configuration is only visible, where it should be visible. There is less risk,
- that configuration from different deplyment levels (= class loaders) is mixed up.
-* Reading classpath resources is standard mechanism of the JDK, it is also possibly during very early points of server
- startup or logging initialization.
-* Reading classpath resources is relatively fast and also can be secured, if necessary.
-
-But deploying configuration as classpath resources also has some disadvantages:
-* First of all, it is less transparent. Theoretically each jar in a 200 jar deployment can contain relevant
-configuration. To find all the relevant entries maybe very difficult, especially if no common configuration lookup mechanism is defined and each code, is looking up configuration at arbitrary locations.
-* Overriding may also be more complex. You can override a file deployed to some file system easily, whereas changing a
- file contained in a jar, basically requires exchanging the whole jar (we ignore other possibilities here).
-
-Fortunately the disadvantages can be handled relatively easily by externalizing the concern of configuration reading and management into a dedicated configuration service.
-
-Using a Configuration Service
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-If you would let each code individually lookup the configuration you may end up in systems that hard to control because
-
-* you will have to know which code is reading and using which configuration, and have to look into the source code to
-see what is happening
-* configuration locations are scattered across your system
-* you will probably have to deal with several different formats
-
-Core Functionality
-^^^^^^^^^^^^^^^^^^
-Using a dedicated configuration service for reading and managing configuration has several advantages:
-
-* It allows to define a (or several) configuration meta model, defining
-where configuration is located (CLI arguments, system properties, environment properties, classpath, filesystem, remote resources etc).
-* how configuration can be overridden (ordering of declarations, explicit priorities and overrides etc).
-* in what format configuration must be provided (properties, XML, JSON, ...)
-* manage the configuration read, depending on the current runtime environment and
-* optimize configuration access, e.g. by caching or preloading.
-* provide hooks for listening to configuration changes (new configuration added, configuration altered or deleted)
-* also such s service can provide additional meta data about configuration and configuration entries.
-
-Extended Functionality
-^^^^^^^^^^^^^^^^^^^^^^
-As a benefit, since a configuration service controls everything happening in the area of configuration, it can provide additional services:
-
-* It can intercept configuration access to ensure security constraints
-* It can configuration access to log which code is using what kind of configuration. This can also easily be used of
-configuration evolution, e.g. by writing warning messages when deprecated parameters are read.
-* It can include additional configuration sources and locations to a configuration transparently, without having to
-change any client code.
-* a configuration service can be made remotely accessible, so it acts as a configuration server (pull scenario), or
-* it can be triggered, so it pushes configuration changes, to the according remote instances (push scenario)
-* ...
-
-Configuration Injection
-^^^^^^^^^^^^^^^^^^^^^^^
-We have seen that a configuration service can create huge benefits. Nevertheless we have to be careful to avoid a hard
-dependency on the configuration service component. This would happen, if we access all our configuration using a service
-location pattern, e.g.
-
-[source,java]
-------------------------------------------------------------
-Configuration config =
-       ConfigService.getConfiguration(MyConfigs.MainConfig);
-------------------------------------------------------------
-
-Fortunately since Java EE 6 we have CDI in place, which allows us to transparently inject things, so we might think of
-doing thinks as follows:
-
-[source,java]
-------------------------------------------------------------
-public class MyClass{
-  @Configured
-  private String userName;
-
-  @Configured
-  private int userName;
-
-  ...
-}
-------------------------------------------------------------
-
-The code snippet above does only depend on the +@Configured+ annotation. All configuration management logic is
-completely hidden.
-
-Integration with Other Services
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Basically, since 'Java Configuration' may be used ins such a variety of scenarios, it is wise to implement it
-'independently' of any other standards. This ensures it can be used within standalone SE environments, as well as in a
-Java EE context. Components that rely on configuration can basically access the Configuration service's API to
-access Configuration. In a EE context the application server can access configuration during server or application
-startup to setup the application and its corresponding (administrative) resources. All other EE modules, including CDI,
-may access configuration services to setup, thus enabling servers and applications to be deployed and configured in a
-complete dynamic way.
-
-Basic Concepts
---------------
-
-Key-Value Paris
-~~~~~~~~~~~~~~~
-
-As explained in the introductory section, configuration is defined to be a set of literal keys, mapped to literal
-values. This basically can be modeled using
-+java.util.Map<String,String>+ as the base for modeling a configuration. Additionally we add method for providing
-meta-data and for observing configuration:
-
-[source,java]
---------------------------------------
-public interface PropertyMap extends Map<String,String>{
-
-    /**
-     * Get the sources read for this {@link PropertyMap} instance.
-     *
-     * @return the sources for the instance, never {@code null}.
-     */
-    Set<String> getSources();
-
-    /**
-     * Get the meta information for the given key.
-     *
-     * @param key the key, not {@code null}.
-     * @return the according meta-info, or {@code null}.
-     */
-    Map<String,String> getMetaInfo(String key);
-
-    /**
-     * Get the property map's general meta-info.
-     *
-     * @return the property map's general meta-info, never null.
-     */
-    Map<String,String> getMetaInfo();
-
-    /**
-     * Reloads the {@link PropertyMap}.
-     */
-    void reload();
-
-    /**
-     * This method allows to check, if an instance is mutable. If an instance is not mutable most of the so called
-     * <i>optional</i> method of {@link java.util.Map} will throw an {@link java.lang.UnsupportedOperationException}:
-     * <ul>
-     * <li>{@link #put(Object, Object)}</li>
-     * <li>{@link #putAll(java.util.Map)}</li>
-     * <li>{@link #clear()}</li>
-     * <li>{@link #putIfAbsent(Object, Object)}</li>
-     * <li>{@link #remove(Object)}</li>
-     * <li>{@link #remove(Object, Object)}</li>
-     * <li>{@link #replace(Object, Object)}</li>
-     * <li>{@link #replace(Object, Object, Object)}</li>
-     * <li>{@link #replaceAll(java.util.function.BiFunction)}</li>
-     * </ul>
-     * <p>Note that if an instance is not mutable, it may still change its state on reload or update,
-     * but it does not support programmatically controlled, arbitrary changes.</p>
-     *
-     * @return true, if this instance is mutable.
-     */
-    boolean isMutable();
-
-    /**
-     * Adds a listener for configuration changes, duplicates are ignored.
-     *
-     * @param l the listener to be added.
-     */
-    public void addConfigChangeListener(ConfigChangeListener l);
-
-    /**
-     * Adds a listener for configuration changes, duplicates are ignored.
-     *
-     * @param l the listener to be added.
-     */
-    public void addWeakConfigChangeListener(ConfigChangeListener l);
-
-    /**
-     * Removes a listener for configuration changes from this configuration.
-     *
-     * @param l the listener to be removed. If the given instance is not mutable, the call will be ignored.
-     */
-    public void removeConfigChangeListener(ConfigChangeListener l);
-
-}
---------------------------------------
-
-This looks quite simple, but is able to cover additional requirements by adding effective
-
-* extension points like queries and type adapters
-* type support for JDK's standard types (boolean, characters, numbers)
-* enabling child modules
-* and more...
-
-Adding Type Safety
-~~~~~~~~~~~~~~~~~~
-
-The point that configuration is basically modelled as +String+ must not mean, that we only are able use +String+ values
-as configuration representation. So how we can still cover the following requirements, when we basically model
-configuration as +Map<String,String>+ or +javax.config.PropertyMap+ respectively?
-
-* it should be possible to access configuration as non literal type
-* all types contained in java.lang should be supported.
-* nevertheless arbitrary other types should also be enabled
-* it should be possible to register "converters"
-* it should also be possible to pass a matching "converter" programmatically
-* First of all we have to think about, what kind of functionality we want to add here to the basic Configuration
-interface (this is also the reason why converter is written in italic face above).
-* Basically adding type support requires a configuration entry's value, that is a +String+ to be compatible with some
-arbitrary type. This exactly matches the 'GoF's adapter pattern'. So let as define an adapter:
-
-[source,java]
-----------------------------------------
-@FunctionalInterface
-public interface PropertyAdapter<T>{
-   <T> T adapt(String value);
-}
-----------------------------------------
-
-On the configuration part, we must provide a method that allows us to seemlessly access a configured value using such
-an adapter instance:
-
-[source,java]
-----------------------------------------
-/**
- * Get the property value as type {@code Class<T>}.
- * <p>
- * If {@code Class<T>} is not one of
- * {@code Boolean, Short, Integer, Long, Float, Double, BigInteger,
- * BigDecimal, String} , an according {@link PropertyAdapter} must be
- * available to perform the conversion from {@link String} to
- * {@code Class<T>}.
- *
- * @param key     the property's absolute, or relative path, e.g. @code
- *                a/b/c/d.myProperty}.
- * @param adapter the PropertyAdapter to perform the conversion from
- *                {@link String} to {@code Class<T>}, not {@code null}.
- * @return the property's value.
- * @throws IllegalArgumentException if the value could not be converted to the required target
- *                                  type, or no such property exists.
- */
-public <T> T getAdapted(String key, PropertyAdapter<T> adapter);
-
-/**
- * Get the property value as type {@code Class<T>}.
- *
- * @param key          the property's absolute, or relative path, e.g. @code
- *                     a/b/c/d.myProperty}.
- * @param adapter      the {@link PropertyAdapter} to perform the conversion from
- *                     {@link String} to {@code Class<T>}, not {@code null}.
- * @param defaultValue the default value, returned if no such property exists or the
- *                     property's value is {@code null}.
- * @return the property's value.
- * @throws IllegalArgumentException if the value could not be converted to the required target
- *                                  type.
- */
-public <T> T getAdaptedOrDefault(String key, PropertyAdapter<T> adapter, T defaultValue);
-----------------------------------------
-
-For existing wrapper types, such as +java.lang.Integer, java.lang.Long+ etc. it is useful to add convenience methods.
-So instead of calling +getAdapted(myPropertyApater)+ I can simply call
-
-[source,java]
------------------------------------------
-Integer intValue = configMap.getIntValue("myKey");
------------------------------------------
-
-This would add quite a few methods to the configuration abstraction. Unfortunately this would lead in a powerful
-but rather extensive API abstraction, which is hard and cumbersome to implement. Also creating combined composite maps
-based on other maps will be much more complicated because any objects could participate as possible values of the
-child maps involved. So we must separate these concerns.
-
-
-Separating PropertyMap and Configuration
-~~~~~~~~~~~~~~~~~~----------------------
-
-In the previous section we have seen, that adding type safety and adapter support to the +PropertyMap+ interface would
-result in a big and difficult to implement API. So it makes sense to separate these concerns:
-
-* Keep +PropertyMap+ as simple key/value pair, that is also simple to implement. This enables clients to easily
-implement any type of configuration source as long as it is mappable somehow to a +Map<String,String>+.
-* Define another API concept that extends +PropertyMap+ hereby adding additional functionalities as needed.
-
-So let's define a +Configuration+ by extending +PropertyMap+ and adding additional functionalities:
-
-[source,java]
--------------------------------------------
-public interface Configuration extends PropertyMap{
-   ...
-   Character getCharacter(String key);
-   Byte getByte(String key);
-   Short getShort(String key);
-   Integer getInteger(String key);
-   Long getLong(String key);
-   Float getFloat(String key);
-   Double getDouble(String key);
-   ...
-}
--------------------------------------------
-
-By default, a +RuntimeException+ is thrown, if a value is missing, so these methods
-never will return null values. Additionally it might be a good idea to let also default values to be returned, so we
-add also defined the following methods:
-
-[source,java]
--------------------------------------------
-Character getCharacterOrDefault(String key, Character defaultValue);
-Byte getByteOrDefault(String key, Byte defaultValue);
-Short getShortOrDefault(String key, Short defaultValue);
-Integer getIntegerOrDefault(String key, Integer defaultValue);
-Long getLongOrDefault(String key, Long defaultValue);
-Float getFloatOrDefault(String key, Float defaultValue);
-Double getDoubleOrDefault(String key, Double defaultValue);
-<T> T getAdaptedOrDefault(String key, Adapter<T> adapter,  T defaultValue);
--------------------------------------------
-
-With the above signatures passing null as a default value is completely valid. So one might write:
-
-[source,java]
--------------------------------------------
-Byte myNumber = config.getByte("minNumber", null);
-if(myNumber==null){
-   // do whatever needed
-}
--------------------------------------------
-
-Summarizing a +Configuration+ now would be modeled as follows:
-
-[source,java]
--------------------------------------------
-public interface Configuration extends PropertyMap{
-    public Boolean getBoolean(String key);
-    public Boolean getBooleanOrDefault(String key, Boolean defaultValue);
-    public Byte getByte(String key);
-    public Byte getByteOrDefault(String key, Byte defaultValue);
-    public Short getShort(String key);
-    public Short getShortOrDefault(String key, Short defaultValue);
-    public Integer getInteger(String key);
-    public Integer getIntegerOrDefault(String key, Integer defaultValue);
-    public Long getLong(String key);
-    public Long getLongOrDefault(String key, Long defaultValue);
-    public Float getFloat(String key);
-    public Float getFloatOrDefault(String key, Float defaultValue);
-    public Double getDouble(String key);
-    public Double getDoubleOrDefault(String key, Double defaultValue);
-    public <T> T getAdapted(String key, PropertyAdapter<T> adapter);
-    public <T> T getAdaptedOrDefault(String key, PropertyAdapter<T> adapter, T defaultValue);
-    public <T> T getOrDefault(String key, Class<T> type, T defaultValue);
-    public <T> T get(String key, Class<T> type);
-}
--------------------------------------------
-
-But still this concept is not flexible enough, so lets add some additional extension points.
-
-Adding Extension Points
-~~~~~~~~~~~~~~~~~~~~~~~
-
-Basically an extension can be modeled as a 'function' that transform a given +Configuration+ into something other:
-
-* as an +UnaryOperator+ a +Configuration+ is transformed into another +Configuration+. This interface is called a
-  +ConfigurationAdjuster+.
-* as a +Function+ a +Configuration+ is transformed to something else (this basically includes the above case). This interface is called a
-  +ConfigurationQuery+.
-
-Both interfaces are modeled as +@FunctionalInterface+.
-
-Given this, the following extension points can be added to a +Configuration+:
-
-[source,java]
------------------------------------------------
-/**
- * Extension point for adjusting configuration.
- *
- * @param adjuster A configuration ajuster, e.g. a filter, or an adjuster
- *                 combining configurations.
- * @return the new adjusted configuration, never {@code null}.
- */
-public Configuration with(ConfigurationAdjuster adjuster);
-
-/**
- * Query some value from a configuration.
- *
- * @param query the query, never {@code null}.
- * @return the result
- */
-public <T> T query(ConfigurationQuery<T> query);
------------------------------------------------
-
-Additional Functions
-~~~~~~~~~~~~~~~~~~~~
-
-Finally a +Configuration+ should also provide functions to inspect the parameters and areas in more detail:
-
-* Get a set of all known areas of a configuration.
-* Get a set of all known transitive areas of a configuration (building a transitive closure or areas).
-* Get all areas that are selected by some +Predicate+.
-* Get all areas that are selected by some +Predicate+ (building a transitive closure or areas).
-* allow to check if a give area is present or not.
-* also a +Configuration+ should be referrable somehow, so it should provides ome kind of identifier. Currently
-this is modeled as a simple +String+.
-
-These aspects can be modelled using the following code:
-
-[source,java]
---------------------------------------
-/**
- * Get the Configuration's id.
- * @return the Configuration's identifier, never null.
- */
-public String getConfigId();
-
-/**
- * Return a set with all fully qualifies area names.
- *
- * @return s set with all areas, never {@code null}.
- */
-public Set<String> getAreas();
-
-/**
- * Return a set with all fully qualified area names, containing the transitive closure also including all
- * subarea names, regardless if properties are accessible or not.
- *
- * @return s set with all transitive areas, never {@code null}.
- */
-public Set<String> getTransitiveAreas();
-
-/**
- * Return a set with all fully qualified area names, containing only the
- * areas that match the predicate and have properties attached
- *
- * @param predicate A predicate to deternine, which areas should be returned, not {@code null}.
- * @return s set with all areas, never {@code null}.
- */
-public Set<String> getAreas(Predicate<String> predicate);
-
-/**
- * Return a set with all fully qualified area names, containing the transitive closure also including all
- * subarea names, regardless if properties are accessible or not.
- *
- * @param predicate A predicate to deternine, which areas should be returned, not {@code null}.
- * @return s set with all transitive areas, never {@code null}.
- */
-public Set<String> getTransitiveAreas(Predicate<String> predicate);
-
-/**
- * Allows to evaluate if an area exists.
- *
- * @param key the configuration area (sub)path.
- * @return {@code true}, if such a node exists.
- */
-public boolean containsArea(String key);
---------------------------------------
-
-
-Config Change Listeners
-~~~~~~~~~~~~~~~~~~~~~~~
-
-Many use cases require that configuration may change dynamically or at least is updated during runtime. One example is
-that a remote configuration server is receiving some update that should be reflected throughout all connected systems.
-From a programmatic side on SE level this feature can be implemented by implementing an observer pattern:
-
-[source,java]
-.ConfigChangeListener
---------------------------------------
-/**
- * Interface implemented by code interested in configuration changes, especially for code running in
- * a standalone/non CDI context. When CDI is available, {@link ConfigChangeEvent} are distributed by
- * sending corresponding enterprise events.
- */
-@FunctionalInterface
-public interface ConfigChangeListener {
-
-	/**
-	 * Method called on change.
-	 *
-	 * @param event
-	 *            the {@link ConfigChangeEvent}, never {@code null}.
-	 */
-	void configChanged(ConfigChangeEvent event);
-}
---------------------------------------
-
-Instances of the interface above then can be registered either using hard or soft references on each +PropertyMap+
-instance (and therefore also similarly on each +Configuration+ instance):
-
-[source,java]
-.Adding/removing listeners to Configuration
---------------------------------------
-/**
- * Adds a listener for configuration changes, duplicates are ignored.
- *
- * @param l the listener to be added.
- */
-public void addConfigChangeListener(ConfigChangeListener l);
-
-/**
- * Adds a listener for configuration changes, duplicates are ignored.
- *
- * @param l the listener to be added.
- */
-public void addWeakConfigChangeListener(ConfigChangeListener l);
-
-/**
- * Removes a listener for configuration changes from this configuration.
- *
- * @param l the listener to be removed. If the given instance is not mutable, the call will be ignored.
- */
-public void removeConfigChangeListener(ConfigChangeListener l);
---------------------------------------
-
-Configuration changes itself are modeled using a +ConfigChangeEvent+, which provides additional information about
-items removed, added or updated, including old and new values, where available.
-
-Modeling the Runtime Environment
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-A runtime environment basically is modeled similarly to Property maps. This allows to include arbitrary additional
-environment parameters as useful. Nevertheless environments also significantly different compared to configuration:
-* Environment data is basically read-only.
-* Environment are organized in an environment tree, allowing to inherit basic properties to subsequent layers.
-* Environment is modeled as a final class, providing a fluent API with a 'builder'. The +EnvironmentContext+ singleton
-provides access to the current environment.
-* Each environment must have an +EnvironmentType+.
-
-Summarizing look at the following snippet:
-
-[source,java]
-.Environment Snippet
---
-public final class Environment implements Serializable {
-	/** serialVersionUID. */
-	private static final long serialVersionUID = -7410447407000577031L;
-
-	private EnvironmentType environmentType;
-	private String name;
-	private Environment parent;
-	private Map<Class<?>, Map<Object, Object>> attributes = new HashMap<Class<?>, Map<Object, Object>>();
-
-	...
-
-	public static final Builder(){
-	...
-	}
-}
---
-
-Different to +Environment+ the +EnvironmentType+ is designed as an interface, that can be implemented by arbitrary
-types. This makes it possible that client code can add additional details as needed.:
-
-[source,java]
-.EnvironmentType
---
-public interface EnvironmentType{
-
-    /**
-     * Get the environment type's name.
-     *
-     * @return the types name.
-     */
-    public String getName();
-
-}
---
-
-Advanced Concepts
------------------
-
-Composite Configurations
-~~~~~~~~~~~~~~~~~~~~~~~~
-
-==== Modeling Common Aspects
-
-Looking at Configuration my working analysis was to model it mainly as a Map<String,String> with additional meta data added. As we have seen this concept comes with several advantages:
-The basic API ( java.util.Map) is already defined by the JDK.
-Since keys as well as values are simple Strings, we inherit all the advantages of the final and immutable  String class, like type and thread safety.
-since we constraint our API to this simple types, we ensure no or minimal overlaps with CDI in the EE context.
-our model is fully compatible with Java SE, providing therefore maximal compatibility also with the SE platform.
-Applied to the configuration format we would define two distinct artifacts:
-a PropertyMap, which models the minimal requirements for a configuration map.
-a Configuration, which extends PropertyMapand provides additional functionalities, such as extension points, type support etc.
-
-[source,java]
-.Interface PropertyMap
----------------------------------------------------------------
-public interface PropertyMap extends Map<String,String>{
-
-    Set<String> getSources();
-    Map<String,String> getMetaInfo(String key);
-    Map<String,String> getMetaInfo();
-
-    void reload();
-    boolean isMutable();
-}
----------------------------------------------------------------
-
-[source,java]
-.Interface Configuration
----------------------------------------------------------------
-public interface Configuration extends PropertyMap{
-
-    String getConfigId();
-
-    Boolean getBoolean(String key);
-    Boolean getBooleanOrDefault(String key,
-                               Boolean defaultValue);
-    Byte getByte(String key);
-    ...
-    <T> T getAdapted(String key, PropertyAdapter<T> adapter);
-    <T> T getAdaptedOrDefault(String key,
-                    PropertyAdapter<T> adapter, T defaultValue);
-
-    <T> T get(String key, Class<T> type);
-    <T> T getOrDefault(String key, Class<T> type,
-                                               T defaultValue);
-    Set<String> getAreas();
-    Set<String> getTransitiveAreas();
-    Set<String> getAreas(Predicate<String> predicate);
-    Set<String> getTransitiveAreas(Predicate<String> predicate);
-    boolean containsArea(String key);
-
-    Configuration with(ConfigurationAdjuster adjuster);
-    <T> T query(ConfigurationQuery<T> query);
-}
----------------------------------------------------------------
-
-A +Configuration+ instance then can be built using a +PropertyMap+, e.g.
-
-[source,java]
-.Building a Configuration
----------------------------------------------------------------
-PropertyMap myPropertyMap = ...;
-Configuration config = new BuildableConfiguration
-                                       .Builder("myTestConfig")
-                   .withUnits(myPropertyMap);
----------------------------------------------------------------
-
-So we can provide partial configurations by just implementing the +PropertyMap+ interface. For convenience an
-+AbstractPropertyMap+ class can be defined that additionally supports implementing this interface:
-
-[source,java]
-.Minimal PropertyMap Implementation
----------------------------------------------------------------
-public class MyPropertyMap extends AbstractPropertyMap{
-    protected Map<String,String> initContentDelegate(){
-      // in reality, provide something useful here...
-      return Collections.emptyMap();
-   }
-}
----------------------------------------------------------------
-
-==== Using Composites to Build Complex Configurations
-
-Given the simple basic +PropertyMap+ interface we can start thinking on how building more complex configurations by
-combining existing combinations. Basically the ingredients required are:
-* two (or more) existing configurations
-* a combination algorithm or policy
-
-Now thinking on mathematical sets, we may provide similar functionality when combining configurations:
-* union
-* intersection
-* subtraction
-
-Additionally we have to think ow we should resolve conflicts (different values with the same key), most important policies are:
-* ignore duplicates (keeping the original values from former entries)
-* override existing previous values by later values
-* throw an exception, when conflicting entries are encountered
-
-This can be modeled by a corresponding policy enum:
-
-[source,java]
-.Enum Type AggregationPolicy
----------------------------------------------------------------
-public enum AggregationPolicy{
-    IGNORE,
-    OVERRIDE,
-    EXCEPTION
-}
----------------------------------------------------------------
-
-Finally we can provide a factory class that provides a commonly used property maps by reading from resolvable paths,
-using common configuration formats, e.g. '.property'-files (the resolution capabilities hereby can be extended by
-implementing and registering a corresponding SPI) most commonly used compositions of partial configurations (maps)
-This can be modeled with a simple singleton as follows:
-
-[source,java]
-.PropertyMaps Singleton Accessor
----------------------------------------------------------------
-public final class PropertyMaps{
-
-    private PropertyMaps(){ }
-
-    // factory methods
-    public static PropertyMap fromArgs(
-              Map<String,String> metaInfo, String... args);
-    public static PropertyMap fromPaths(
-              Map<String,String> metaInfo, String... paths);
-    public static PropertyMap from(
-              Map<String,String> metaInfo,
-              Map<String,String> map);
-    public static PropertyMap fromArgs(String... args);
-    public static PropertyMap fromPaths(String... paths);
-    public static PropertyMap from(Map<String,String> map);
-    public static PropertyMap fromEnvironmentProperties();
-    public static PropertyMap fromSystemProperties();
-
-    // combinations
-    public static PropertyMap unionSet(
-              PropertyMap... propertyMaps);
-    public static PropertyMap unionSet(
-              AggregationPolicy policy,
-              PropertyMap... propertyMaps);
-    public static PropertyMap intersectedSet(
-              PropertyMap... propertyMaps);
-    public static PropertyMap subtractedSet(
-              PropertyMap target, PropertyMap... subtrahendSets);
-    public static PropertyMap filterSets(
-              Predicate<String> filter, PropertyMap propertyMap);
-}
----------------------------------------------------------------
-
-With the given mechanism we are able to define complex configurations, realizing some complex override and configuration rules quite easily:
-
-[source,java]
-.More Complex Programmatic Configuration Example
----------------------------------------------------------------
-String[] cliArgs = ...;
-Map<String,String> defaultMap = ...;
-
-Configuration config = new BuildableConfiguration.Builder(
-                            "myTestConfig").withUnits(
-       PropertyMaps.from(defaultMap),
-       PropertyMaps.fromPaths("classpath:test.properties"),
-       PropertyMaps.fromPaths("classpath:cfg/test.xml"),
-       PropertyMaps.fromSystemProperties(),
-       PropertyMaps.fromPaths(
-                  "url:http://1.2.3.4/remoteCfg.xml"),
-       PropertyMaps.fromArgs(cliArgs),
-      )
-      .build();
----------------------------------------------------------------
-
-Basically the above creates a full fledged +Configuration+ instance that:
-* is built from properties contained in the given default map.
-* may be overridden by entries in test.properties, read from the classpath
-* may be overridden by entries in cfg/test.xml, using the JDKs xml property format (also read from the classpath)
-* may be overridden by entries from the resource loaded from http://1.2.3.4/remoteCfg.xml
-* may be overridden by entries  from the CLI arguments
-
-Of course, this example uses always the same keys for all different partial configuration sources, which might not be a
-realistic setup. But adding a mapping of provided keys to some other keys is basically a trivial task.
-
-==== Summary
-
-Summarizing separating configuration into a simple basic interface (+PropertyMap+) and a more complex extended variant
-(+Configuration+), allows us to easily build composite configurations by combining more simpler partial property maps.
-Most commonly configuration locations, formats and combination strategies can also provided easily by according factory
-classes. Also in most cases, implementing the more simpler +PropertyMap+ interface should completely sufficient.
-Putting all this to reality, we have defined a quite powerful mechanism, that allows us to implement also complex use
-cases with only a few abstractions.
-
-
-Configuration Formats and Locations
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-==== Configuration Formats
-
-Configuration data can be stored in various formats. With the JDK a few possible formats are included by default:
-
-* '.properties' files, readable with +java.util.Properties+ enable storing simple key, value pairs in an ISO-8859-1
-encoded text file, also supporting Unicode escapes.
-* The same +java.util.Properties+ class also provides a corresponding .xml^^ formatted variant, which benefit from all
- the xml encoding options.
-* Parameters passed with +-Dkey=value+ on the Java command line are accessible from +System.getProperties()+.
-* Finally environment properties inherited by the underlying runtime platform are accessible from +System.getenv()+.
-
-All this mechanisms are provided by the Java SE platform out of the box and therefore are widely used. But there are for
-sure more possible formats that might be used as source of configuration, e.g. other xml formats, JSON or databases.
-Therefore it makes sense to model the configuration format explicitly, so custom (or legacy) formats can be supported
-easily:
-
-[source,java]
-.ConfigurationFormat Interface
----------------------------------------------------------------
-public interface ConfigurationFormat{
-    String getFormatName();
-    boolean isAccepted(URI resource);
-    Map<String,String> readConfiguration(URI resource);
-}
----------------------------------------------------------------
-
-Implementations of this class can be simply registered using different component loading mechanism, such as +java
-.util.ServiceLoader+ or, in case of Java EE, alternately as CDI managed bean. Access to the formats can be obtained
-by a corresponding singleton, which provides
-* access to common formats, such as property, or xml-property files.
-* access to other (registered) formats by name
-* access to all currently registered format names
-* access to a matching format given an URI of a resource.
-
-[source,java]
-.ConfigFormats Accessor Singleton
----------------------------------------------------------------
-public final class ConfigFormats{
-
-    private ConfigFormats(){}
-
-    public static ConfigurationFormat getFormat(String formatName);
-    public static Collection<String> getFormatNames();
-    public static ConfigurationFormat getFormat(URI resource);
-    public static ConfigurationFormat getPropertiesFormat();
-    public static ConfigurationFormat getXmlPropertiesFormat();
-}
----------------------------------------------------------------
-
-Also the singleton accessor for accessing predefined maps can be easily enriched by corresponding methods (though with increasing complexity and similar method signatures building a Builder maybe more appropriate):
-
-[source,java]
-.PropertyMaps Accessor Singleton
----------------------------------------------------------------
-public final class PropertyMaps{
-
-    private PropertyMaps(){ }
-
-    // factory methods
-    ...
-    public static PropertyMap fromPaths(
-              Map<String,String> metaInfo,
-              ConfigurationFormat format, String... paths);
-    public static PropertyMap fromPaths(ConfigurationFormat format,
-              String... paths);
-}
----------------------------------------------------------------
-
-==== Configuration Locations
-
-Similar to the fact that configuration data can be formatted differently, configuration can be also be read/accessed
-from different locations:
-* as class path resources
-* as files on the locale file system
-* as resources accessible from a web server (or configuration server)
-* as remote data accessible from a configuration bean (EJB, managed bean, ...)
-* ...
-
-In the above examples/API we simply pass a literal path to locate/define a configuration. Hereby the idea is that the
-path is formatted in a way, so multiple location mechanisms (called readers) can be transparently added/registered
-to the configuration system. A configuration resource then can be defined as <reader>:<location> (the ones, who know
-Spring will possibly see some similarities with Spring's Resource API). Examples of valid configuration resources can
-be:
----------------------------------------------------------------
- classpath:cfg/test-*.xml
- classpath*:cfg/${STAGE}/*.xml
- file:${APP_DIR}/cfg/envconfig/*.xml
- url:http://myconfigserver.intra.net/config/${STAGE}/get?appID=MyApp
- ds:[ConfigDS]SELECT a.key, a.value FROM Config a WHERE a.appID="MyApp"
----------------------------------------------------------------
-
-Hereby
-* +classpath+ uses +ClassLoader.getResource(String)+, also supporting Ant-like path expressions
-* +classpath*+ uses +ClassLoader.getResources(String)+, also supporting Ant-like path expressions
-* +file+ locates files on the local file system, also supporting Ant-like path expressions
-* +url+ uses 'new URL(String)', in the example above calling a Restful service
-* +ds+ accesses configuration data using an OQL query, reading from the ConfigDS datasource.
-
-The exact syntax for path expressions, of course, can be discussed and improved. Dynamic parts basically can be
-implemented using expression language (EL) extensions.
-
-A +ConfigurationReader+ hereby can be modeled by a simple interface as illustrated below:
-
-[source,java]
-.ConfigurationReader Interface
----------------------------------------------------------------
-public interface ConfigurationReader{
-    String getReaderName();
-    Map<String,String> readConfiguration(String readerPath);
-}
----------------------------------------------------------------
-
-Similarly to formats, readers can be managed and accessed/tested from a +ConfigurationReader+ singleton:
-
-[source,java]
-.ConfigReaders Accessor Singleton
----------------------------------------------------------------
-public final class ConfigReaders{
-
-    private ConfigReaders(){}
-    public static ConfigurationReader getReader(String readerName);
-    public static Collection<String> getReaderNames();
-
-}
----------------------------------------------------------------
-
-So given this interfaces and accessors our configuration model now is capable of supporting more or less every type of
-configuration, as long as its mappable to Map<String,String>. It does not imply any constraints, how configuration must
-be stored and managed in an enterprise, nor does it constrain the format of the input source.
-
-But even with that, there are additional things that must be considered:
-* +Configuration+ may also change. Mechanisms must be provided so configuration changes can be propagated to interested
-* parties, both locally optionally also remotely. Such changes might also be propagated across VM boundaries e,g, by
-passing a serialized ChangeSet or Configuration over the network.
-* All examples as of now were programmatically defining the configuration to be used. Typically in an enterprise
-context this is determined by some configuration meta-model (aka meta-configuration).
-* Even worse within an application server running multiple enterprise / web applications several classloaders are
-active. As a consequence configuration that is provided on the classpath must be isolated along the corresponding classloader and its child class loaders.
-Also we have not yet discussed how our configuration service can interoperate / being integrated in more detail within an EE environment. Integration hereby must be enabled on a global or domain level, e.g. for configuring administrative resources, but also interoperate with CDI, enabling powerful injection of configuration.
-
-Contextual Configuration
-~~~~~~~~~~~~~~~~~~~~~~~~
-
-Configuration Metamodel
-~~~~~~~~~~~~~~~~~~~~~~~
-

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/main/java/old/AbstractClasspathAwarePropertySource.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/main/java/old/AbstractClasspathAwarePropertySource.java b/dormant/core/src/main/java/old/AbstractClasspathAwarePropertySource.java
deleted file mode 100644
index 47eb150..0000000
--- a/dormant/core/src/main/java/old/AbstractClasspathAwarePropertySource.java
+++ /dev/null
@@ -1,82 +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.core.properties;
-
-import org.apache.tamaya.core.resource.Resource;
-import org.apache.tamaya.spi.ServiceContext;
-import org.apache.tamaya.core.resource.ResourceLoader;
-
-import java.util.*;
-
-public abstract class AbstractClasspathAwarePropertySource extends AbstractPropertySource {
-
-    private static final long serialVersionUID = 5484306410557548246L;
-    private ClassLoader classLoader;
-    private AbstractClasspathAwarePropertySource parentConfig;
-    private Set<String> sources;
-
-
-    public AbstractClasspathAwarePropertySource(ClassLoader classLoader, AbstractClasspathAwarePropertySource parentConfig,
-                                                Set<String> sourceExpressions, long configReadDT, Map<String, String> entries,
-                                                String name, Set<String> sources, List<Throwable> errors){
-        super(name);
-        Objects.requireNonNull(sources, "sources required.");
-        Objects.requireNonNull(classLoader, "classLoader required.");
-        this.sources = sources;
-        this.classLoader = classLoader;
-        this.parentConfig = parentConfig;
-    }
-
-    public AbstractClasspathAwarePropertySource(ClassLoader classLoader, AbstractClasspathAwarePropertySource parentConfig,
-                                                String sourceExpression){
-        super(parentConfig.getName());
-        Objects.requireNonNull(sources, "sources required.");
-        Objects.requireNonNull(sourceExpression, "sourceExpression required.");
-        List<Resource> resources = ServiceContext.getInstance().getSingleton(ResourceLoader.class).getResources(classLoader, sourceExpression);
-        for(Resource res : resources){
-            addSource(res.toString());
-        }
-        this.classLoader = classLoader;
-        this.parentConfig = parentConfig;
-    }
-
-    protected abstract void readSource(Map<String,String> targetMap, String source);
-
-    @Override
-    public Map<String,String> getProperties(){
-        Map<String,String> result = new HashMap<>();
-        for(String source : sources){
-            //            if(!isSourceRead(source)){
-            readSource(result, source);
-            //            }
-        }
-        return result;
-    }
-
-
-    public ClassLoader getClassLoader(){
-        return classLoader;
-    }
-
-    public AbstractClasspathAwarePropertySource getParentConfig(){
-        return this.parentConfig;
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/main/java/old/AbstractPropertySource.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/main/java/old/AbstractPropertySource.java b/dormant/core/src/main/java/old/AbstractPropertySource.java
deleted file mode 100644
index 879e5a2..0000000
--- a/dormant/core/src/main/java/old/AbstractPropertySource.java
+++ /dev/null
@@ -1,60 +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.core.properties;
-
-import java.io.Serializable;
-import java.util.*;
-
-import org.apache.tamaya.spi.PropertySource;
-
-/**
- * Abstract base class for implementing a {@link org.apache.tamaya.spi.PropertySource}.
- */
-public abstract class AbstractPropertySource implements PropertySource, Serializable{
-    /**
-     * serialVersionUID.
-     */
-    private static final long serialVersionUID = -6553955893879292837L;
-
-    protected String name;
-
-    /**
-     * Constructor.
-     */
-    protected AbstractPropertySource(String name){
-        this.name = Objects.requireNonNull(name);
-    }
-
-    @Override
-    public String getName(){
-        return name;
-    }
-
-
-    @Override
-    public Optional<String> get(String key){
-        return Optional.ofNullable(getProperties().get(key));
-    }
-
-    @Override
-    public String toString(){
-        return getClass().getSimpleName()) + "(name=" + getName()+")");
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/main/java/old/AggregatedPropertySource.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/main/java/old/AggregatedPropertySource.java b/dormant/core/src/main/java/old/AggregatedPropertySource.java
deleted file mode 100644
index e833533..0000000
--- a/dormant/core/src/main/java/old/AggregatedPropertySource.java
+++ /dev/null
@@ -1,98 +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.core.properties;
-
-import org.apache.tamaya.spi.PropertySource;
-
-import java.util.*;
-
-/**
- * Implementation for a {@link org.apache.tamaya.spi.PropertySource} that is an aggregate current
- * multiple child instances. Controlled by an {@link org.apache.tamaya.AggregationPolicy} the
- * following aggregations are supported:
- * <ul>
- * <li><b>IGNORE_DUPLICATES: </b>Ignore all overrides.</li>
- * <li><b>: </b></li>
- * <li><b>: </b></li>
- * <li><b>: </b></li>
- * </ul>
- */
-class AggregatedPropertySource extends AbstractPropertySource {
-
-    private static final long serialVersionUID = -1419376385695224799L;
-	private AggregationPolicy policy = AggregationPolicy.COMBINE;
-	private List<PropertySource> units = new ArrayList<>();
-    private PropertySource mutableProvider;
-
-    /**
-     * Creates a new instance.
-     * @param mutableProvider the provider instance that would be used for delegating
-     *                        change requests.
-     * @param policy
-     *            The aggregation policy to be used.
-     * @param propertyMaps
-     *            The property sets to be included.
-     */
-	public AggregatedPropertySource(String name, PropertySource mutableProvider, AggregationPolicy policy, List<PropertySource> propertyMaps) {
-        super(name);
-        this.policy = Objects.requireNonNull(policy);
-		units.addAll(propertyMaps);
-        this.mutableProvider = mutableProvider;
-	}
-
-	/**
-	 * Get the {@link AggregationPolicy} for this instance.
-	 * 
-	 * @return the {@link AggregationPolicy}, never {@code null}.
-	 */
-	public AggregationPolicy getAggregationPolicy() {
-		return policy;
-	}
-
-	/**
-	 * Return the names current the {@link org.apache.tamaya.spi.PropertySource} instances to be
-	 * aggregated in this instance, in the order current precedence (the first are
-	 * the weakest).
-	 * 
-	 * @return the ordered list current aggregated scope identifiers, never
-	 *         {@code null}.
-	 */
-	public List<PropertySource> getConfigurationUnits() {
-		return Collections.unmodifiableList(units);
-	}
-
-    @Override
-    public Map<String,String> getProperties() {
-		Map<String, String> value = new HashMap<>();
-        for (PropertySource unit : units) {
-            for (Map.Entry<String, String> entry : unit.getProperties()
-                    .entrySet()) {
-                String valueToAdd = this.policy.aggregate(entry.getKey(), value.get(entry.getKey()), entry.getValue());
-                if(valueToAdd==null){
-                    value.remove(entry.getKey());
-                }
-                else{
-                    value.put(entry.getKey(), valueToAdd);
-                }
-            }
-        }
-        return value;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/main/java/old/BuildablePropertySource.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/main/java/old/BuildablePropertySource.java b/dormant/core/src/main/java/old/BuildablePropertySource.java
deleted file mode 100644
index 3a79429..0000000
--- a/dormant/core/src/main/java/old/BuildablePropertySource.java
+++ /dev/null
@@ -1,60 +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.
- */
-package org.apache.tamaya.core.properties;
-
-import org.apache.tamaya.spi.PropertySource;
-
-import java.util.Map;
-import java.util.Objects;
-import java.util.Optional;
-
-/**
- * Created by Anatole on 07.12.2014.
- */
-class BuildablePropertySource implements PropertySource
-{
-
-    private String name;
-    private PropertySource baseProvider;
-
-    public BuildablePropertySource(String name, PropertySource baseProvider) {
-        this.name = Objects.requireNonNull(name);
-        this.baseProvider = Objects.requireNonNull(baseProvider);
-    }
-
-    @Override
-    public Optional<String> get(String key) {
-        return this.baseProvider.get(key);
-    }
-
-    @Override
-    public Map<String, String> getProperties() {
-        return this.baseProvider.getProperties();
-    }
-
-    @Override
-    public String getName() {
-        return this.name;
-    }
-
-    @Override
-    public String toString(){
-        return "BuildablePropertyProvider -> " + getName();
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/main/java/old/ConfigurationBuilder.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/main/java/old/ConfigurationBuilder.java b/dormant/core/src/main/java/old/ConfigurationBuilder.java
deleted file mode 100644
index 0b737fa..0000000
--- a/dormant/core/src/main/java/old/ConfigurationBuilder.java
+++ /dev/null
@@ -1,375 +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 old;
-
-import java.net.URL;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.function.BiFunction;
-import java.util.function.Predicate;
-import java.util.function.Supplier;
-
-import org.apache.tamaya.Configuration;
-import org.apache.tamaya.spi.PropertySource;
-import org.apache.tamaya.core.config.FreezedConfiguration;
-import org.apache.tamaya.core.properties.AggregationPolicy;
-import org.apache.tamaya.core.properties.PropertySourceBuilder;
-
-/**
-* Builder for assembling non trivial {@link org.apache.tamaya.Configuration} instances.
-*/
-public final class ConfigurationBuilder {
-
-    /**
-     * The final meta info to be used, or null, if a default should be generated.
-     */
-    private PropertySourceBuilder builderDelegate;
-
-    /**
-     * Private singleton constructor.
-     */
-    private ConfigurationBuilder(String name) {
-        this.builderDelegate = PropertySourceBuilder.of(name);
-    }
-
-    /**
-     * Private singleton constructor.
-     */
-    private ConfigurationBuilder(String name, PropertySource source) {
-        this.builderDelegate = PropertySourceBuilder.of(name, source);
-    }
-
-    /**
-     * Private singleton constructor.
-     */
-    private ConfigurationBuilder(PropertySource source) {
-        this.builderDelegate = PropertySourceBuilder.of(source);
-    }
-
-
-    /**
-     * Creates a new builder instance.
-     *
-     * @param provider the base provider to be used, not null.
-     * @return a new builder instance, never null.
-     */
-    public static ConfigurationBuilder of(PropertySource provider) {
-        return new ConfigurationBuilder(provider);
-    }
-
-    /**
-     * Creates a new builder instance.
-     *
-     * @param name the provider name, not null.
-     * @return a new builder instance, never null.
-     */
-    public static ConfigurationBuilder of(String name) {
-        return new ConfigurationBuilder(Objects.requireNonNull(name));
-    }
-
-    /**
-     * Creates a new builder instance.
-     *
-     * @return a new builder instance, never null.
-     */
-    public static ConfigurationBuilder of() {
-        return new ConfigurationBuilder("<noname>");
-    }
-
-
-
-
-    /**
-     * Sets the aggregation policy to be used, when adding additional property sets. The policy will
-     * be active a slong as the builder is used or it is reset to another keys.
-     *
-     * @param aggregationPolicy the aggregation policy, not null.
-     * @return the builder for chaining.
-     */
-    public ConfigurationBuilder withAggregationPolicy(AggregationPolicy aggregationPolicy) {
-        this.builderDelegate.withAggregationPolicy(aggregationPolicy);
-        return this;
-    }
-
-    /**
-     * Sets the meta info to be used for the next operation.
-     *
-     * @param name the name, not null.
-     * @return the builder for chaining.
-     */
-    public ConfigurationBuilder withName(String name) {
-        this.builderDelegate.withName(name);
-        return this;
-    }
-
-    /**
-     * Adds the given providers with the current active {@link AggregationPolicy}. By
-     * default {@link AggregationPolicy#OVERRIDE} is used.
-     * @see #withAggregationPolicy(AggregationPolicy)
-     * @param providers providers to be added, not null.
-     * @return the builder for chaining.
-     */
-    public ConfigurationBuilder addProviders(PropertySource... providers) {
-        this.builderDelegate.addProviders(providers);
-        return this;
-    }
-
-    /**
-     * Adds the given providers with the current active {@link AggregationPolicy}. By
-     * default {@link AggregationPolicy#OVERRIDE} is used.
-     * @see #withAggregationPolicy(AggregationPolicy)
-     * @param providers providers to be added, not null.
-     * @return the builder for chaining.
-     */
-    public ConfigurationBuilder addProviders(List<PropertySource> providers) {
-        this.builderDelegate.addProviders(providers);
-        return this;
-    }
-
-
-    /**
-     * Creates a new {@link org.apache.tamaya.spi.PropertySource} using the given command line arguments and adds it
-     * using the current aggregation policy in place.
-     *
-     * @param args the command line arguments, not null.
-     * @return the builder for chaining.
-     */
-    public ConfigurationBuilder addArgs(String... args) {
-        this.builderDelegate.addArgs(args);
-        return this;
-    }
-
-    /**
-     * Creates a new read-only {@link org.apache.tamaya.spi.PropertySource} by reading the according path format. The effective format read
-     * hereby are determined by the {@code PathResolverService} configured into the {@code Bootstrap} SPI.
-     * Properties read are aggregated using the current aggregation policy active.
-     *
-     * @param paths the paths to be resolved by the {@code PathResolverService} , not null.
-     * @return the builder for chaining.
-     */
-    public ConfigurationBuilder addPaths(String... paths) {
-        this.builderDelegate.addPaths(paths);
-        return this;
-    }
-
-
-    /**
-     * Creates a new read-only {@link org.apache.tamaya.spi.PropertySource} by reading the according path format. The effective format read
-     * hereby are determined by the {@code PathResolverService} configured into the {@code Bootstrap} SPI.
-     * Properties read are aggregated using the current aggregation policy active.
-     *
-     * @param paths the paths to be resolved by the {@code PathResolverService} , not null.
-     * @return the builder for chaining.
-     */
-    public ConfigurationBuilder addPaths(List<String> paths) {
-        this.builderDelegate.addPaths(paths);
-        return this;
-    }
-
-    /**
-     * Creates a new read-only {@link org.apache.tamaya.spi.PropertySource} by reading the according URL format.
-     * Properties read are aggregated using the current aggregation policy active.
-     *
-     * @param urls the urls to be read, not null.
-     * @return the builder for chaining.
-     */
-    public ConfigurationBuilder addURLs(URL... urls) {
-        this.builderDelegate.addURLs(urls);
-        return this;
-    }
-
-    /**
-     * Creates a new read-only {@link org.apache.tamaya.spi.PropertySource} by reading the according URL format.
-     * Properties read are aggregated using the current aggregation policy active.
-     *
-     * @param urls the urls to be read, not null.
-     * @return the builder for chaining.
-     */
-    public ConfigurationBuilder addURLs(List<URL> urls) {
-        this.builderDelegate.addURLs(urls);
-        return this;
-    }
-
-
-    /**
-     * Creates a new read-only {@link org.apache.tamaya.spi.PropertySource} based on the given map.
-     * Properties read are aggregated using the current aggregation policy active.
-     *
-     * @param map the map to be added, not null.
-     * @return the builder for chaining.
-     */
-    public ConfigurationBuilder addMap(Map<String, String> map) {
-        this.builderDelegate.addMap(map);
-        return this;
-    }
-
-
-    /**
-     * Add the current environment properties. Aggregation is based on the current {@link AggregationPolicy} acvtive.
-     *
-     * @return the builder for chaining.
-     */
-    public ConfigurationBuilder addEnvironmentProperties() {
-        this.builderDelegate.addEnvironmentProperties();
-        return this;
-    }
-
-    /**
-     * Add the current system properties. Aggregation is based on the current {@link AggregationPolicy} acvtive.
-     *
-     * @return the builder for chaining.
-     */
-    public ConfigurationBuilder addSystemProperties() {
-        this.builderDelegate.addSystemProperties();
-        return this;
-    }
-
-    /**
-     * Adds the given {@link org.apache.tamaya.spi.PropertySource} instances using the current {@link AggregationPolicy}
-     * active.
-     *
-     * @param providers the maps to be included, not null.
-     * @return the builder for chaining.
-     */
-    public ConfigurationBuilder aggregate(PropertySource... providers) {
-        this.builderDelegate.aggregate(providers);
-        return this;
-    }
-
-
-    /**
-     * Adds the given {@link org.apache.tamaya.spi.PropertySource} instances using the current {@link AggregationPolicy}
-     * active.
-     *
-     * @param providers the maps to be included, not null.
-     * @return the builder for chaining.
-     */
-    public ConfigurationBuilder aggregate(List<PropertySource> providers) {
-        this.builderDelegate.aggregate(providers);
-        return this;
-    }
-
-
-    /**
-     * Intersetcs the current properties with the given {@link org.apache.tamaya.spi.PropertySource} instance.
-     *
-     * @param providers the maps to be intersected, not null.
-     * @return the builder for chaining.
-     */
-    public ConfigurationBuilder intersect(PropertySource... providers) {
-        this.builderDelegate.intersect(providers);
-        return this;
-    }
-
-
-    /**
-     * Subtracts with the given {@link org.apache.tamaya.spi.PropertySource} instance from the current properties.
-     *
-     * @param providers the maps to be subtracted, not null.
-     * @return the builder for chaining.
-     */
-    public ConfigurationBuilder subtract(PropertySource... providers) {
-        this.builderDelegate.subtract(providers);
-        return this;
-    }
-
-
-    /**
-     * Filters the current properties based on the given predicate..
-     *
-     * @param filter the filter to be applied, not null.
-     * @return the new filtering instance.
-     */
-    public ConfigurationBuilder filter(Predicate<String> filter) {
-        this.builderDelegate.filter(filter);
-        return this;
-    }
-
-    /**
-     * Filters the current {@link org.apache.tamaya.Configuration} with the given valueFilter.
-     * @param valueFilter the value filter, not null.
-     * @return the (dynamically) filtered source instance, never null.
-     */
-    public ConfigurationBuilder filterValues(BiFunction<String, String, String> valueFilter){
-        this.builderDelegate.filterValues(valueFilter);
-        return this;
-    }
-
-    /**
-     * Creates a new contextual {@link org.apache.tamaya.spi.PropertySource}. Contextual maps delegate to different instances current PropertyMap depending
-     * on the keys returned fromMap the isolationP
-     *
-     * @param mapSupplier          the supplier creating new provider instances
-     * @param isolationKeySupplier the supplier providing contextual keys based on the current environment.
-     */
-    public ConfigurationBuilder addContextual(Supplier<PropertySource> mapSupplier,
-                                                 Supplier<String> isolationKeySupplier) {
-        this.builderDelegate.addContextual(mapSupplier, isolationKeySupplier);
-        return this;
-    }
-
-    /**
-     * Replaces all keys in the current provider by the given map.
-     *
-     * @param replacementMap the map instance, that will replace all corresponding entries in {@code mainMap}, not null.
-     * @return the new delegating instance.
-     */
-    public ConfigurationBuilder replace(Map<String, String> replacementMap) {
-        this.builderDelegate.replace(replacementMap);
-        return this;
-    }
-
-    /**
-     * Build a new property provider based on the input.
-     * @return a new property provider, or null.
-     */
-    public PropertySource buildPropertySource(){
-        return this.builderDelegate.build();
-    }
-
-    /**
-     * Build a new property provider based on the input.
-     * @return a new property provider, or null.
-     */
-    public Configuration build(){
-        return this.buildPropertySource().toConfiguration();
-    }
-
-    /**
-     * Creates a {@link org.apache.tamaya.spi.PropertySource} instance that is serializable and immutable,
-     * so it can be sent over a network connection.
-     *
-     * @return the freezed instance, never null.
-     */
-    public PropertySource buildFreezedPropertySource() {
-        return this.builderDelegate.buildFrozen();
-    }
-
-    /**
-     * Creates a {@link org.apache.tamaya.spi.PropertySource} instance that is serializable and immutable,
-     * so it can be sent over a network connection.
-     *
-     * @return the freezed instance, never null.
-     */
-    public Configuration buildFreezed() {
-        return FreezedConfiguration.of(this.buildFreezedPropertySource().toConfiguration());
-    }
-
-}


[05/10] incubator-tamaya git commit: Removed unused dormant parts. Moved usable dormant utils into new sandbox module. Fixed jqassistant issues in simple metamodel module.

Posted by an...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/test/resources/test.properties
----------------------------------------------------------------------
diff --git a/dormant/core/src/test/resources/test.properties b/dormant/core/src/test/resources/test.properties
deleted file mode 100644
index 6798ad9..0000000
--- a/dormant/core/src/test/resources/test.properties
+++ /dev/null
@@ -1,27 +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.
-#
-a=Anatole
-b=Bj�rn
-c=Charles
-d=Dani
-e=Eduard
-f=Fane
-g=Gil
-another.compound.area.entry=thisTimeFromProperties...
-another.area.entry=thisTimeFromProperties2...
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/test/resources/testfile.properties
----------------------------------------------------------------------
diff --git a/dormant/core/src/test/resources/testfile.properties b/dormant/core/src/test/resources/testfile.properties
deleted file mode 100644
index 4dc3b91..0000000
--- a/dormant/core/src/test/resources/testfile.properties
+++ /dev/null
@@ -1,22 +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.
-
-key1=val1
-key2=val2
-key3=val3
-key4=val4
-key5=val5

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/test/resources/ucs/UC1ReadProperties/UC1ReadPropertiesTest.ini
----------------------------------------------------------------------
diff --git a/dormant/core/src/test/resources/ucs/UC1ReadProperties/UC1ReadPropertiesTest.ini b/dormant/core/src/test/resources/ucs/UC1ReadProperties/UC1ReadPropertiesTest.ini
deleted file mode 100644
index 6f4301b..0000000
--- a/dormant/core/src/test/resources/ucs/UC1ReadProperties/UC1ReadPropertiesTest.ini
+++ /dev/null
@@ -1,41 +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.
-#
-[a.b]
-c=abcValue-fromIni
-a=abaValue-fromIni
-b=abbValue-fromIni
-
-[mixed]
-a.b=abValue
-a.a.a=aaaValue
-b.b.b=bbbValue
-c.c.c=cccValue
-
-[num]
-Int=123
-Byte=100
-BD=2376523725372653.287362836283628362863
-Double=21334.43254
-
-[other]
-boolean=true
-a=aValue
-b=bValue
-c=cValue
-numInt=9999s

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/test/resources/ucs/UC1ReadProperties/UC1ReadPropertiesTest.properties
----------------------------------------------------------------------
diff --git a/dormant/core/src/test/resources/ucs/UC1ReadProperties/UC1ReadPropertiesTest.properties b/dormant/core/src/test/resources/ucs/UC1ReadProperties/UC1ReadPropertiesTest.properties
deleted file mode 100644
index 2b19362..0000000
--- a/dormant/core/src/test/resources/ucs/UC1ReadProperties/UC1ReadPropertiesTest.properties
+++ /dev/null
@@ -1,34 +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.
-#
-a=aValue
-b=bValue
-c=cValue
-a.b.c=abcValue
-a.b.a=abaValue
-a.b.b=abbValue
-a.b=abValue
-a.a.a=aaaValue
-b.b.b=bbbValue
-c.c.c=cccValue
-numInt=9999
-num.Int=123
-num.Byte=100
-boolean=true
-num.BD=2376523725372653.287362836283628362863
-num.Double=21334.43254

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/test/resources/ucs/UC1ReadProperties/UC1ReadPropertiesTest.xml
----------------------------------------------------------------------
diff --git a/dormant/core/src/test/resources/ucs/UC1ReadProperties/UC1ReadPropertiesTest.xml b/dormant/core/src/test/resources/ucs/UC1ReadProperties/UC1ReadPropertiesTest.xml
deleted file mode 100644
index 535134f..0000000
--- a/dormant/core/src/test/resources/ucs/UC1ReadProperties/UC1ReadPropertiesTest.xml
+++ /dev/null
@@ -1,25 +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.
--->
-<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
-<properties version="1.0">
-	<entry key="a-xml">aFromXml</entry>
-    <entry key="b-xml">bFromXml</entry>
-    <entry key="a.b.c-xml">abcFromXml</entry>
-</properties>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/test/resources/ucs/UC2CombineProperties/props1.properties
----------------------------------------------------------------------
diff --git a/dormant/core/src/test/resources/ucs/UC2CombineProperties/props1.properties b/dormant/core/src/test/resources/ucs/UC2CombineProperties/props1.properties
deleted file mode 100644
index a7590ae..0000000
--- a/dormant/core/src/test/resources/ucs/UC2CombineProperties/props1.properties
+++ /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 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.
-#
-a=a
-b=b
-c=c
-g=g
-h=h
-i=i

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/test/resources/ucs/UC2CombineProperties/props2.properties
----------------------------------------------------------------------
diff --git a/dormant/core/src/test/resources/ucs/UC2CombineProperties/props2.properties b/dormant/core/src/test/resources/ucs/UC2CombineProperties/props2.properties
deleted file mode 100644
index 692ced3..0000000
--- a/dormant/core/src/test/resources/ucs/UC2CombineProperties/props2.properties
+++ /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 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.
-#
-a=A
-b=B
-c=C
-d=D
-e=E
-f=F

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/modules/integration/cdi/src/main/java/org/apache/tamaya/integration/cdi/ConfigurationExtension.java
----------------------------------------------------------------------
diff --git a/dormant/modules/integration/cdi/src/main/java/org/apache/tamaya/integration/cdi/ConfigurationExtension.java b/dormant/modules/integration/cdi/src/main/java/org/apache/tamaya/integration/cdi/ConfigurationExtension.java
deleted file mode 100644
index 4f66e51..0000000
--- a/dormant/modules/integration/cdi/src/main/java/org/apache/tamaya/integration/cdi/ConfigurationExtension.java
+++ /dev/null
@@ -1,81 +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.integration.cdi;
-
-import org.apache.tamaya.core.internal.inject.ConfigurationInjector;
-import org.apache.tamaya.core.internal.inject.ConfiguredType;
-
-import javax.enterprise.context.spi.CreationalContext;
-import javax.enterprise.event.Observes;
-import javax.enterprise.inject.Vetoed;
-import javax.enterprise.inject.spi.*;
-import java.util.*;
-
-/**
- * CDI portable extension that integrates {@link org.apache.tamaya.core.internal.inject.ConfigurationInjector}
- * with CDI by adding configuration features to CDI (config enable CDI beans).
- */
-@Vetoed
-public final class ConfigurationExtension implements Extension {
-
-    public <T> void initializeConfiguredFields(final @Observes ProcessInjectionTarget<T> pit) {
-        final AnnotatedType<T> at = pit.getAnnotatedType();
-        if (!ConfiguredType.isConfigured(at.getJavaClass())) {
-            return;
-        }
-//        final ConfiguredType configuredType = ConfigurationInjector.registerType(at.getJavaClass());
-
-        final InjectionTarget<T> it = pit.getInjectionTarget();
-        InjectionTarget<T> wrapped = new InjectionTarget<T>() {
-            @Override
-            public void inject(T instance, CreationalContext<T> ctx) {
-                it.inject(instance, ctx);
-                ConfigurationInjector.configure(instance);
-            }
-
-            @Override
-            public void postConstruct(T instance) {
-                it.postConstruct(instance);
-            }
-
-            @Override
-            public void preDestroy(T instance) {
-                it.dispose(instance);
-            }
-
-            @Override
-            public void dispose(T instance) {
-                it.dispose(instance);
-            }
-
-            @Override
-            public Set<InjectionPoint> getInjectionPoints() {
-                return it.getInjectionPoints();
-            }
-
-            @Override
-            public T produce(CreationalContext<T> ctx) {
-                return it.produce(ctx);
-            }
-        };
-        pit.setInjectionTarget(wrapped);
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/modules/integration/cdi/src/main/resources/META-INF/beans.xml
----------------------------------------------------------------------
diff --git a/dormant/modules/integration/cdi/src/main/resources/META-INF/beans.xml b/dormant/modules/integration/cdi/src/main/resources/META-INF/beans.xml
deleted file mode 100644
index adee378..0000000
--- a/dormant/modules/integration/cdi/src/main/resources/META-INF/beans.xml
+++ /dev/null
@@ -1,24 +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.
--->
-<beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-       xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://jboss.org/schema/cdi/beans_1_0.xsd">
-
-</beans>
-

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/modules/integration/cdi/src/main/resources/META-INF/services/javax.enterprise.inject.spi.Extension
----------------------------------------------------------------------
diff --git a/dormant/modules/integration/cdi/src/main/resources/META-INF/services/javax.enterprise.inject.spi.Extension b/dormant/modules/integration/cdi/src/main/resources/META-INF/services/javax.enterprise.inject.spi.Extension
deleted file mode 100644
index 2249aca..0000000
--- a/dormant/modules/integration/cdi/src/main/resources/META-INF/services/javax.enterprise.inject.spi.Extension
+++ /dev/null
@@ -1,19 +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.
-#
-org.apache.tamaya.integration.cdi.ConfigurationExtension

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/modules/integration/cdi/src/test/java/org/apache/tamaya/integration/cdi/ConfiguredClass.java
----------------------------------------------------------------------
diff --git a/dormant/modules/integration/cdi/src/test/java/org/apache/tamaya/integration/cdi/ConfiguredClass.java b/dormant/modules/integration/cdi/src/test/java/org/apache/tamaya/integration/cdi/ConfiguredClass.java
deleted file mode 100644
index ba92b3e..0000000
--- a/dormant/modules/integration/cdi/src/test/java/org/apache/tamaya/integration/cdi/ConfiguredClass.java
+++ /dev/null
@@ -1,133 +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.
- *
- */
-package org.apache.tamaya.integration.cdi;
-
-import java.beans.PropertyChangeEvent;
-import java.math.BigDecimal;
-
-import javax.inject.Singleton;
-
-import org.apache.tamaya.annotation.ConfiguredProperty;
-import org.apache.tamaya.annotation.DefaultValue;
-import org.apache.tamaya.annotation.ObservesConfigChange;
-
-/**
- * Created by Anatole on 08.09.2014.
- */
-@Singleton
-public class ConfiguredClass{
-
-//    @WithConfig("testdata")
-    @ConfiguredProperty
-    private String testProperty;
-
-    @ConfiguredProperty(keys = "a.b.c.key1")
-    @ConfiguredProperty(keys = "a.b.c.key2")
-    @ConfiguredProperty(keys = "a.b.c.key3")
-    @DefaultValue("The current \\${JAVA_HOME} env property is ${env:JAVA_HOME}.")
-    String value1;
-
-//    @WithConfig("testdata")
-    @ConfiguredProperty(keys = "foo")
-    @ConfiguredProperty(keys = "a.b.c.key2")
-    private String value2;
-
-    @ConfiguredProperty
-    @DefaultValue("N/A")
-    private String runtimeVersion;
-
-    @ConfiguredProperty
-    @DefaultValue("${sys:java.version}")
-    private String javaVersion2;
-
-    @ConfiguredProperty
-    @DefaultValue("5")
-    private Integer int1;
-
-//    @WithConfig("testdata")
-    @ConfiguredProperty
-    private int int2;
-
-//    @WithConfig("testdata")
-    @ConfiguredProperty
-    private boolean booleanT;
-
-//    @WithConfig("testdata")
-    @ConfiguredProperty(keys = "BD")
-    private BigDecimal bigNumber;
-
-//    @WithConfig("testdata")
-    @ConfiguredProperty(keys = "double1")
-    private double doubleValue;
-
-    @ObservesConfigChange
-    public void changeListener1(PropertyChangeEvent configChange){
-        // will be called
-    }
-
-    public String getTestProperty() {
-        return testProperty;
-    }
-
-    public String getValue1() {
-        return value1;
-    }
-
-    public String getValue2() {
-        return value2;
-    }
-
-    public String getRuntimeVersion() {
-        return runtimeVersion;
-    }
-
-    public String getJavaVersion2() {
-        return javaVersion2;
-    }
-
-    public Integer getInt1() {
-        return int1;
-    }
-
-    public int getInt2() {
-        return int2;
-    }
-
-    public boolean isBooleanT() {
-        return booleanT;
-    }
-
-    public BigDecimal getBigNumber() {
-        return bigNumber;
-    }
-
-    public double getDoubleValue() {
-        return doubleValue;
-    }
-
-    @Override
-	public String toString(){
-        return super.toString() + ": testProperty="+testProperty+", value1="+value1+", value2="+value2
-                +", int1="+int1+", int2="+int2+", booleanT="+booleanT+", bigNumber="+bigNumber
-                +", runtimeVersion="+runtimeVersion+", javaVersion2="+javaVersion2;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/modules/integration/cdi/src/test/java/org/apache/tamaya/integration/cdi/ConfiguredTest.java
----------------------------------------------------------------------
diff --git a/dormant/modules/integration/cdi/src/test/java/org/apache/tamaya/integration/cdi/ConfiguredTest.java b/dormant/modules/integration/cdi/src/test/java/org/apache/tamaya/integration/cdi/ConfiguredTest.java
deleted file mode 100644
index 376df10..0000000
--- a/dormant/modules/integration/cdi/src/test/java/org/apache/tamaya/integration/cdi/ConfiguredTest.java
+++ /dev/null
@@ -1,52 +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.
- *
- */
-
-package org.apache.tamaya.integration.cdi;
-
-import org.apache.deltaspike.testcontrol.api.junit.CdiTestRunner;
-import org.hamcrest.MatcherAssert;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import javax.enterprise.inject.spi.CDI;
-
-import static org.hamcrest.core.Is.is;
-
-/**
- * Created by Anatole on 08.09.2014.
- */
-@RunWith(CdiTestRunner.class)
-public class ConfiguredTest{
-
-    @Ignore
-    @Test
-    public void testInjection(){
-        ConfiguredClass item = CDI.current().select(ConfiguredClass.class).get();
-        System.out.println("********************************************");
-        System.out.println(item);
-        System.out.println("********************************************");
-
-        double actual = 1234.5678;
-
-        MatcherAssert.assertThat(item.getDoubleValue(), is(actual));
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/modules/integration/cdi/src/test/java/org/apache/tamaya/integration/cdi/TestConfigProvider.java
----------------------------------------------------------------------
diff --git a/dormant/modules/integration/cdi/src/test/java/org/apache/tamaya/integration/cdi/TestConfigProvider.java b/dormant/modules/integration/cdi/src/test/java/org/apache/tamaya/integration/cdi/TestConfigProvider.java
deleted file mode 100644
index a10422c..0000000
--- a/dormant/modules/integration/cdi/src/test/java/org/apache/tamaya/integration/cdi/TestConfigProvider.java
+++ /dev/null
@@ -1,69 +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.
- */
-package org.apache.tamaya.integration.cdi;
-
-import org.apache.tamaya.Configuration;
-import org.apache.tamaya.core.properties.PropertySourceBuilder;
-import old.ConfigurationProviderSpi;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * Created by Anatole on 29.09.2014.
- */
-public class TestConfigProvider implements ConfigurationProviderSpi
-{
-
-    private Configuration testConfig;
-
-    public TestConfigProvider(){
-        final Map<String,String> config = new HashMap<>();
-        config.put("a.b.c.key1", "keys current a.b.c.key1");
-        config.put("a.b.c.key2", "keys current a.b.c.key2");
-        config.put("a.b.key3", "keys current a.b.key3");
-        config.put("a.b.key4", "keys current a.b.key4");
-        config.put("a.key5", "keys current a.key5");
-        config.put("a.key6", "keys current a.key6");
-        config.put("int1", "123456");
-        config.put("int2", "111222");
-        config.put("testProperty", "testPropertyValue!");
-        config.put("booleanT", "true");
-        config.put("double1", "1234.5678");
-        config.put("BD", "123456789123456789123456789123456789.123456789123456789123456789123456789");
-        config.put("testProperty", "keys current testProperty");
-        config.put("runtimeVersion", "${java.version}");
-        testConfig = PropertySourceBuilder.of("testdata").addMap(config).build().toConfiguration();
-    }
-
-    @Override
-    public String getConfigName(){
-        return "testdata";
-    }
-
-    @Override
-    public Configuration getConfiguration(){
-        return testConfig;
-    }
-
-    @Override
-    public void reload() {
-
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/modules/integration/cdi/src/test/resources/META-INF/beans.xml
----------------------------------------------------------------------
diff --git a/dormant/modules/integration/cdi/src/test/resources/META-INF/beans.xml b/dormant/modules/integration/cdi/src/test/resources/META-INF/beans.xml
deleted file mode 100644
index adee378..0000000
--- a/dormant/modules/integration/cdi/src/test/resources/META-INF/beans.xml
+++ /dev/null
@@ -1,24 +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.
--->
-<beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-       xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://jboss.org/schema/cdi/beans_1_0.xsd">
-
-</beans>
-

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/modules/integration/managed/src/main/java/org/apache/tamaya/management/ManagedConfig.java
----------------------------------------------------------------------
diff --git a/dormant/modules/integration/managed/src/main/java/org/apache/tamaya/management/ManagedConfig.java b/dormant/modules/integration/managed/src/main/java/org/apache/tamaya/management/ManagedConfig.java
deleted file mode 100644
index b991690..0000000
--- a/dormant/modules/integration/managed/src/main/java/org/apache/tamaya/management/ManagedConfig.java
+++ /dev/null
@@ -1,95 +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.se;
-
-import org.apache.tamaya.ConfigException;
-import org.apache.tamaya.AggregationPolicy;
-
-import java.util.Map;
-import java.util.Set;
-
-/**
- * Created by Anatole on 24.11.2014.
- */
-public class ManagedConfig implements ManagedConfigMBean{
-    @Override
-    public Set<String> getConfigurationNames() {
-        return null;
-    }
-
-    @Override
-    public String getConfigurationInfo(String configName) {
-        return null;
-    }
-
-    @Override
-    public boolean isConfigurationAvailable(String configName, String envType, String context) {
-        return false;
-    }
-
-    @Override
-    public boolean isConfigurationLoaded(String configName, String envType, String context) {
-        return false;
-    }
-
-    @Override
-    public Map<String, String> getConfiguration(String configName, String envType, String context) throws ConfigException {
-        return null;
-    }
-
-    @Override
-    public Map<String, String> getRecursiveConfigValues(String area, String configName, String envType, String context) throws ConfigException {
-        return null;
-    }
-
-    @Override
-    public Map<String, String> getConfigValues(String area, String configName, String envType, String context) throws ConfigException {
-        return null;
-    }
-
-    @Override
-    public Map<String, String> updateConfiguration(String configName, String envType, String context, Map<String, String> values, AggregationPolicy aggregationPolicy) throws ConfigException {
-        return null;
-    }
-
-    @Override
-    public String getConfigurationInfo(String configName, String envType, String context) {
-        return null;
-    }
-
-    @Override
-    public Set<String> getAreas(String configName, String envType, String context) {
-        return null;
-    }
-
-    @Override
-    public Set<String> getTransitiveAreas(String configName, String envType, String context) {
-        return null;
-    }
-
-    @Override
-    public boolean isAreaExisting(String area, String configName, String envType, String context) {
-        return false;
-    }
-
-    @Override
-    public boolean isAreaEmpty(String area, String configName, String envType, String context) {
-        return false;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/modules/integration/managed/src/main/java/org/apache/tamaya/management/ManagedConfigMBean.java
----------------------------------------------------------------------
diff --git a/dormant/modules/integration/managed/src/main/java/org/apache/tamaya/management/ManagedConfigMBean.java b/dormant/modules/integration/managed/src/main/java/org/apache/tamaya/management/ManagedConfigMBean.java
deleted file mode 100644
index c2ade13..0000000
--- a/dormant/modules/integration/managed/src/main/java/org/apache/tamaya/management/ManagedConfigMBean.java
+++ /dev/null
@@ -1,176 +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.se;
-
-
-import org.apache.tamaya.ConfigException;
-import org.apache.tamaya.AggregationPolicy;
-
-import java.util.Map;
-import java.util.Set;
-
-/**
- * Managed bean interface for accessing environment data.
- */
-public interface ManagedConfigMBean {
-    /**
-     * Get the names current the configuration's defined.
-     *
-     * @return the names current the configuration's defined.
-     */
-    public Set<String> getConfigurationNames();
-
-    /**
-     * Get a general configuration info descriptor in JSON format for a configuration
-     * type in the following form:
-     * <pre>
-     *     tbd
-     * </pre>
-     *
-     * @param configName the configuration name, not null.
-     * @return a JSON formatted meta-information.
-     */
-    public String getConfigurationInfo(String configName);
-
-    /**
-     * Allows to determine if a configuration current a given type is available (accessible) in the
-     * given environment context.
-     *
-     * @param configName the configuration name, not null.
-     * @param envType        the environment context, not null.
-     * @param envContext        the environment context, not null.
-     * @return true, if such a configuration is accessible.
-     */
-    public boolean isConfigurationAvailable(String configName, String envType, String envContext);
-
-    /**
-     * Allows to determine if a configuration current a given type is loaded in the
-     * given environment context.
-     *
-     * @param configName the configuration name, not null.
-     * @param envType        the environment context, not null.
-     * @param envContext        the environment context, not null.
-     * @return true, if such a configuration is accessible.
-     */
-    public boolean isConfigurationLoaded(String configName, String envType, String envContext);
-
-    /**
-     * Accesses a configuration current a given type as Map.
-     *
-     * @param configName the configuration name, not null.
-     * @param envType        the environment context, not null.
-     * @param envContext        the environment context, not null.
-     * @return true, if such a configuration is accessible.
-     * @throws org.apache.tamaya.ConfigException If the configuration is not yet loaded.
-     */
-    public Map<String, String> getConfiguration(String configName, String envType, String envContext)
-            throws ConfigException;
-
-    /**
-     * Accesses a configuration values for current a given config area as Map.
-     * @param area the target area key, not null.
-     * @param configName the configuration name, not null.
-     * @param envType        the environment context, not null.
-     * @param envContext        the environment context, not null.
-     * @return the key/values found, including the recursive child values.
-     * @throws org.apache.tamaya.ConfigException If the configuration is not yet loaded.
-     */
-    public Map<String, String> getRecursiveConfigValues(String area, String configName, String envType, String envContext)
-            throws ConfigException;
-
-    /**
-     * Accesses a configuration values for current a given config area as Map.
-     * @param area the target area key, not null.
-     * @param configName the configuration name, not null.
-     * @param envType        the environment context, not null.
-     * @param envContext        the environment context, not null.
-     * @return the key/values found, not transitive.
-     * @throws org.apache.tamaya.ConfigException If the configuration is not yet loaded.
-     */
-    public Map<String, String> getConfigValues(String area, String configName, String envType, String envContext)
-            throws ConfigException;
-
-    /**
-     * Updates a configuration current a given type.
-     *
-     * @param configName        the configuration name, not null.
-     * @param envType        the environment context, not null.
-     * @param envContext        the environment context, not null.
-     * @param values            the values to be changed.
-     * @param aggregationPolicy the aggregation Policy to be used.
-     * @return the configuration after the changesd have been applied.
-     * @throws org.apache.tamaya.ConfigException If the configuration is not yet loaded, or not
-     *                                           mutable.
-     */
-    public Map<String, String> updateConfiguration(String configName, String envType, String envContext, Map<String, String> values, AggregationPolicy aggregationPolicy)
-            throws ConfigException;
-
-    /**
-     * Access a JSON formatted info on a configuration loaded in the form as
-     * <pre>
-     *     tbd
-     * </pre>
-     * @param configName        the configuration name, not null.
-     * @param envType        the environment context, not null.
-     * @param envContext        the environment context, not null.
-     * @return the JSON formatted info, never null.
-     * @throws org.apache.tamaya.ConfigException If the configuration is not yet loaded
-     */
-    public String getConfigurationInfo(String configName, String envType, String envContext);
-
-    /**
-     * Access the defined areas for a given configuration.
-     * @param configName        the configuration name, not null.
-     * @param envContext        the environment context, not null.
-     * @return the areas defined (only returning the areas that contain properties).
-     * @throws org.apache.tamaya.ConfigException If the configuration is not yet loaded
-     */
-    public Set<String> getAreas(String configName, String envType, String envContext);
-
-    /**
-     * Access the transitive areas for a given configuration.
-     * @param configName        the configuration name, not null.
-     * @param envType        the environment context, not null.
-     * @param envContext        the environment context, not null.
-     * @return the transitive areas defined.
-     * @throws org.apache.tamaya.ConfigException If the configuration is not yet loaded
-     */
-    public Set<String> getTransitiveAreas(String configName, String envType, String envContext);
-
-    /**
-     * Allows to determine if an area is existing.
-     * @param area the target area key, not null.
-     * @param configName        the configuration name, not null.
-     * @param envType        the environment context, not null.
-     * @param envContext        the environment context, not null.
-     * @return true, if such an area exists (the area may be empty).
-     */
-    public boolean isAreaExisting(String area, String configName, String envType, String envContext);
-
-    /**
-     * Allows to determine if an area is empty.
-     * @param area the target area key, not null.
-     * @param configName        the configuration name, not null.
-     * @param envType        the environment context, not null.
-     * @param envContext        the environment context, not null.
-     * @return true, if such an area exists and is not empty.
-     */
-    public boolean isAreaEmpty(String area, String configName, String envType, String envContext);
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/modules/integration/managed/src/main/java/org/apache/tamaya/management/ManagedEnvironment.java
----------------------------------------------------------------------
diff --git a/dormant/modules/integration/managed/src/main/java/org/apache/tamaya/management/ManagedEnvironment.java b/dormant/modules/integration/managed/src/main/java/org/apache/tamaya/management/ManagedEnvironment.java
deleted file mode 100644
index e85b1c1..0000000
--- a/dormant/modules/integration/managed/src/main/java/org/apache/tamaya/management/ManagedEnvironment.java
+++ /dev/null
@@ -1,69 +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.se;
-
-import org.apache.tamaya.Environment;
-
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-
-/**
- * MBean implementation for accessing environment data.
- * Created by Anatole on 24.11.2014.
- */
-public class ManagedEnvironment implements ManagedEnvironmentMBean{
-
-    @Override
-    public List<String> getEnvironmentHierarchy() {
-        return Environment.getEnvironmentHierarchy();
-    }
-
-    @Override
-    public String getEnvironmentInfo(String environmentContext) {
-        try {
-            // TODO
-            return "EnvironmentInfo {}";
-        }
-        catch(Exception e){
-            // TODO logging
-            return "EnvironmentInfo{}";
-        }
-    }
-
-    @Override
-    public Map<String, String> getEnvironment(String environmentType, String context) {
-        try {
-            Optional<Environment> env = Environment.getInstance(environmentType, context);
-            if (env.isPresent()) {
-                return env.get().toMap();
-            }
-        } catch (Exception e) {
-            // TODO logging
-        }
-        return Collections.emptyMap();
-    }
-
-    @Override
-    public String getEnvironmentInfo() {
-        // TODO
-        return "EnvironmentInfo {}";
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/modules/integration/managed/src/main/java/org/apache/tamaya/management/ManagedEnvironmentMBean.java
----------------------------------------------------------------------
diff --git a/dormant/modules/integration/managed/src/main/java/org/apache/tamaya/management/ManagedEnvironmentMBean.java b/dormant/modules/integration/managed/src/main/java/org/apache/tamaya/management/ManagedEnvironmentMBean.java
deleted file mode 100644
index b7cdfc3..0000000
--- a/dormant/modules/integration/managed/src/main/java/org/apache/tamaya/management/ManagedEnvironmentMBean.java
+++ /dev/null
@@ -1,88 +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.se;
-
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * Managed bean interface for accessing environment data.
- */
-public interface ManagedEnvironmentMBean {
-
-    /**
-     * Returns the current environment hierarchy defined.
-     * @see org.apache.tamaya.Environment#getEnvironmentType()
-     * @see org.apache.tamaya.Environment#getEnvironmentHierarchy()
-     * @return the current environment type hierarchy defined, never null.
-     */
-    public List<String> getEnvironmentHierarchy();
-
-    /**
-     * Get the common environment information in JSON format, which has the following form:
-     * <pre>
-     * Environment {
-     *     id: "system:VM,domain:testdata",
-     *     metaInfo {
-     *         a: "aValue",
-     *         b: "bValue"
-     *     }
-     *     entries{
-     *         val1: "value1",
-     *         val2: "value2",
-     *     }
-     * }
-     * </pre>
-     * @see org.apache.tamaya.Environment
-     * @param environmentContext the identifier to access the environment instance
-     * @return the environment JSON info, or null, if no such environment is accessible.
-     */
-    public String getEnvironmentInfo(String environmentContext);
-
-    /**
-     * Access the given environment as Map. the {@code environmentContext} is added to the
-     * map using the key {@code __environmentId}.
-     * @param environmentContext the identifier to access the environment instance
-     * @param context the context, not null.
-     * @return a map with the currently defined environment keys and values.
-     */
-    public Map<String,String> getEnvironment(String environmentContext, String context);
-
-    /**
-     * Get a general JSON info on the currently available environments current the form:
-     * <pre>
-     *     EnvironmentInfo{
-     *         host: "hostName",
-     *         ipAddress: "111.112.123.123",
-     *         typeHierarchy: {"system", "domain", "ear", "war", "saas-scope", "tenant"}
-     *         environments {
-     *             Environment {
-     *                 id: "system:VM,domain:testdata",
-     *                 ...
-     *             },
-     *             ...
-     *         }
-     *     }
-     * </pre>
-     * @return
-     */
-    public String getEnvironmentInfo();
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/modules/integration/managed/src/main/resources/META-INF/beans.xml
----------------------------------------------------------------------
diff --git a/dormant/modules/integration/managed/src/main/resources/META-INF/beans.xml b/dormant/modules/integration/managed/src/main/resources/META-INF/beans.xml
deleted file mode 100644
index adee378..0000000
--- a/dormant/modules/integration/managed/src/main/resources/META-INF/beans.xml
+++ /dev/null
@@ -1,24 +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.
--->
-<beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-       xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://jboss.org/schema/cdi/beans_1_0.xsd">
-
-</beans>
-

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/modules/integration/managed/src/test/resources/META-INF/beans.xml
----------------------------------------------------------------------
diff --git a/dormant/modules/integration/managed/src/test/resources/META-INF/beans.xml b/dormant/modules/integration/managed/src/test/resources/META-INF/beans.xml
deleted file mode 100644
index adee378..0000000
--- a/dormant/modules/integration/managed/src/test/resources/META-INF/beans.xml
+++ /dev/null
@@ -1,24 +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.
--->
-<beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-       xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://jboss.org/schema/cdi/beans_1_0.xsd">
-
-</beans>
-

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/modules/integration/se/pom.xml
----------------------------------------------------------------------
diff --git a/dormant/modules/integration/se/pom.xml b/dormant/modules/integration/se/pom.xml
deleted file mode 100644
index 9958368..0000000
--- a/dormant/modules/integration/se/pom.xml
+++ /dev/null
@@ -1,71 +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.integration</groupId>
-        <artifactId>tamaya-integration-all</artifactId>
-        <version>0.1-SNAPSHOT</version>
-        <relativePath>..</relativePath>
-    </parent>
-    <artifactId>tamaya-integration-se</artifactId>
-    <name>Apache Tamaya Modules Integration - Java SE</name>
-    <packaging>jar</packaging>
-
-    <properties>
-    </properties>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.jacoco</groupId>
-                <artifactId>jacoco-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>prepare-agent</id>
-                        <goals>
-                            <goal>prepare-agent</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
-
-    <dependencies>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>tamaya-api</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>tamaya-core</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-    </dependencies>
-
-</project>

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/modules/integration/se/src/main/java/org/apache/tamaya/integration/se/ConfiguredSystemProperties.java
----------------------------------------------------------------------
diff --git a/dormant/modules/integration/se/src/main/java/org/apache/tamaya/integration/se/ConfiguredSystemProperties.java b/dormant/modules/integration/se/src/main/java/org/apache/tamaya/integration/se/ConfiguredSystemProperties.java
deleted file mode 100644
index cdef5be..0000000
--- a/dormant/modules/integration/se/src/main/java/org/apache/tamaya/integration/se/ConfiguredSystemProperties.java
+++ /dev/null
@@ -1,353 +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.integration.se;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.PrintStream;
-import java.io.PrintWriter;
-import java.io.Reader;
-import java.io.Writer;
-import java.util.Collection;
-import java.util.Enumeration;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.function.BiConsumer;
-import java.util.function.BiFunction;
-import java.util.function.Function;
-import java.util.function.Supplier;
-import java.util.logging.Logger;
-
-import org.apache.tamaya.Configuration;
-import org.apache.tamaya.Environment;
-
-/**
- * Properties implementation class that can be applied as current System properties by calling
- * {@link ConfiguredSystemProperties#install()}. The system properties will
- * then behave contextually depending on the current runtime configuration active.
- */
-public class ConfiguredSystemProperties extends Properties {
-
-	private static final long serialVersionUID = 2152870929299226804L;
-
-	private static final Logger LOG = Logger.getLogger(ConfiguredSystemProperties.class.getName());
-    private Properties initialProperties;
-    private static volatile Map<String, Properties> contextualProperties = new ConcurrentHashMap<>();
-    private static volatile Supplier<String> contextProvider = () ->
-            Environment.current().get("context.id").orElse("<system>");
-
-
-    private final Object LOCK = new Object();
-
-
-    private ConfiguredSystemProperties(Properties initialProperties) {
-        super(initialProperties);
-        this.initialProperties = initialProperties;
-    }
-
-    public static void install() {
-        Properties props = System.getProperties();
-        if (props instanceof ConfiguredSystemProperties) {
-            return;
-        }
-        ConfiguredSystemProperties systemProps = new ConfiguredSystemProperties(props);
-        LOG.finest("Installing enhanced system properties...");
-        System.setProperties(systemProps);
-        LOG.info("Installed enhanced system properties successfully.");
-    }
-
-    public static void uninstall() {
-        Properties props = System.getProperties();
-        if (props instanceof ConfiguredSystemProperties) {
-            Properties initialProperties = ((ConfiguredSystemProperties) props).initialProperties;
-            LOG.finest("Uninstalling enhanced system properties...");
-            System.setProperties(initialProperties);
-            LOG.info("Uninstalled enhanced system properties successfully.");
-        }
-    }
-
-    @Override
-    public String getProperty(String key) {
-        return getContextualProperties().getProperty(key);
-    }
-
-    @Override
-    public String getProperty(String key, String defaultValue) {
-        return getContextualProperties().getProperty(key, defaultValue);
-    }
-
-    @Override
-    public Enumeration<?> propertyNames() {
-        return getContextualProperties().propertyNames();
-    }
-
-    @Override
-    public Set<String> stringPropertyNames() {
-        return getContextualProperties().stringPropertyNames();
-    }
-
-    @Override
-    public synchronized int size() {
-        return getContextualProperties().size();
-    }
-
-    @Override
-    public synchronized Enumeration<Object> keys() {
-        return getContextualProperties().keys();
-    }
-
-    @Override
-    public synchronized Enumeration<Object> elements() {
-        return getContextualProperties().elements();
-    }
-
-    @Override
-    public synchronized boolean contains(Object value) {
-        return getContextualProperties().contains(value);
-    }
-
-    @Override
-    public boolean containsValue(Object value) {
-        return getContextualProperties().containsValue(value);
-    }
-
-    @Override
-    public synchronized boolean containsKey(Object key) {
-        return getContextualProperties().containsKey(key);
-    }
-
-    @Override
-    public synchronized Object get(Object key) {
-        return getContextualProperties().get(key);
-    }
-
-    @Override
-    public synchronized Object clone() {
-        return getContextualProperties().clone();
-    }
-
-    @Override
-    public Set<Object> keySet() {
-        return getContextualProperties().keySet();
-    }
-
-    @Override
-    public Set<Map.Entry<Object, Object>> entrySet() {
-        return getContextualProperties().entrySet();
-    }
-
-    @Override
-    public Collection<Object> values() {
-        return getContextualProperties().values();
-    }
-
-
-    @Override
-    public Object getOrDefault(Object key, Object defaultValue) {
-        return getContextualProperties().getOrDefault(key, defaultValue);
-    }
-
-    @Override
-    public void forEach(BiConsumer<? super Object, ? super Object> action) {
-        getContextualProperties().forEach(action);
-    }
-
-
-    @Override
-    public Object computeIfAbsent(Object key, Function<? super Object, ?> mappingFunction) {
-        return getContextualProperties().computeIfAbsent(key, mappingFunction);
-    }
-
-    @Override
-    public synchronized Object computeIfPresent(Object key, BiFunction<? super Object, ? super Object, ?> remappingFunction) {
-        return getContextualProperties().computeIfPresent(key, remappingFunction);
-    }
-
-    @Override
-    public synchronized Object compute(Object key, BiFunction<? super Object, ? super Object, ?> remappingFunction) {
-        return getContextualProperties().compute(key, remappingFunction);
-    }
-
-    @Override
-    public String toString() {
-        return getContextualProperties().toString();
-    }
-
-    @Override
-    public synchronized Object setProperty(String key, String value) {
-        return getContextualProperties().setProperty(key, value);
-    }
-
-    @Override
-    public synchronized void load(Reader reader) throws IOException {
-        getContextualProperties().load(reader);
-    }
-
-    @Override
-    public synchronized void load(InputStream inStream) throws IOException {
-        getContextualProperties().load(inStream);
-    }
-
-    @SuppressWarnings("deprecation")
-	@Override
-    public void save(OutputStream out, String comments) {
-        super.save(out, comments);
-    }
-
-    @Override
-    public void store(Writer writer, String comments) throws IOException {
-        getContextualProperties().store(writer, comments);
-    }
-
-    @Override
-    public void store(OutputStream out, String comments) throws IOException {
-        getContextualProperties().store(out, comments);
-    }
-
-    @Override
-    public void loadFromXML(InputStream in) throws IOException {
-        getContextualProperties().loadFromXML(in);
-    }
-
-    @Override
-    public void storeToXML(OutputStream os, String comment) throws IOException {
-        getContextualProperties().storeToXML(os, comment);
-    }
-
-    @Override
-    public void storeToXML(OutputStream os, String comment, String encoding) throws IOException {
-        getContextualProperties().storeToXML(os, comment, encoding);
-    }
-
-    @Override
-    public void list(PrintStream out) {
-        getContextualProperties().list(out);
-    }
-
-    @Override
-    public void list(PrintWriter out) {
-        getContextualProperties().list(out);
-    }
-
-    @Override
-    public boolean isEmpty() {
-        return getContextualProperties().isEmpty();
-    }
-
-    @Override
-    public Object put(Object key, Object value) {
-        return getContextualProperties().put(key, value);
-    }
-
-    @Override
-    public Object remove(Object key) {
-        return getContextualProperties().remove(key);
-    }
-
-    @Override
-    public void putAll(Map<?, ?> t) {
-        getContextualProperties().putAll(t);
-    }
-
-    @Override
-    public void clear() {
-        getContextualProperties().clear();
-    }
-
-    @Override
-    public boolean equals(Object o) {
-        return getContextualProperties().equals(o);
-    }
-
-    @Override
-    public int hashCode() {
-        return getContextualProperties().hashCode();
-    }
-
-    @Override
-    public void replaceAll(BiFunction<? super Object, ? super Object, ?> function) {
-        getContextualProperties().replaceAll(function);
-    }
-
-    @Override
-    public Object putIfAbsent(Object key, Object value) {
-        return getContextualProperties().putIfAbsent(key, value);
-    }
-
-    @Override
-    public boolean remove(Object key, Object value) {
-        return getContextualProperties().remove(key, value);
-    }
-
-    @Override
-    public boolean replace(Object key, Object oldValue, Object newValue) {
-        return getContextualProperties().replace(key, oldValue, newValue);
-    }
-
-    @Override
-    public Object replace(Object key, Object value) {
-        return getContextualProperties().replace(key, value);
-    }
-
-    @Override
-    public Object merge(Object key, Object value, BiFunction<? super Object, ? super Object, ?> remappingFunction) {
-        return getContextualProperties().merge(key, value, remappingFunction);
-    }
-
-    public Properties getInitialProperties() {
-        return initialProperties;
-    }
-
-    /**
-     * Uninstalls the contextual system properties for the current context, as determined by the current
-     * context provider active.
-     */
-    public static void resetProperties() {
-        String contextId = contextProvider == null ? "" : contextProvider.get();
-        contextualProperties.remove(contextId);
-    }
-
-    protected Properties getContextualProperties() {
-        String contextId = contextProvider == null ? "" : contextProvider.get();
-        Properties props = ConfiguredSystemProperties.contextualProperties.get(contextId);
-        if (props == null) {
-            synchronized (LOCK) {
-                props = ConfiguredSystemProperties.contextualProperties.get(contextId);
-                if (props == null) {
-                    props = createNewProperties();
-                    contextualProperties.put(contextId, props);
-                }
-            }
-        }
-        return props;
-    }
-
-    protected Properties createNewProperties() {
-        Properties props = new Properties(initialProperties);
-        Configuration config = Configuration.current();
-        Map<String, String> configMap = config.getProperties();
-        for (Map.Entry<String, String> en : configMap.entrySet()) {
-            props.put(en.getKey(), en.getValue());
-        }
-        return props;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/modules/metamodels/environment/src/main/java/org/apache/tamaya/metamodel/environment/BuildableEnvironment.java
----------------------------------------------------------------------
diff --git a/dormant/modules/metamodels/environment/src/main/java/org/apache/tamaya/metamodel/environment/BuildableEnvironment.java b/dormant/modules/metamodels/environment/src/main/java/org/apache/tamaya/metamodel/environment/BuildableEnvironment.java
deleted file mode 100644
index 3633c97..0000000
--- a/dormant/modules/metamodels/environment/src/main/java/org/apache/tamaya/metamodel/environment/BuildableEnvironment.java
+++ /dev/null
@@ -1,109 +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.metamodel.environment;
-
-import java.util.*;
-
-/**
- * Environment class that is used by the {@link org.apache.tamaya.metamodel.environment.EnvironmentBuilder}.
- */
-class BuildableEnvironment implements Environment {
-
-    /** The environment data. */
-    private Map<String,String> context = new TreeMap<>();
-
-    /**
-     * Constructor.
-     * @param builder the builder, not null.
-     */
-    BuildableEnvironment(EnvironmentBuilder builder){
-        Objects.requireNonNull(builder);
-        context.putAll(builder.contextData);
-    }
-
-    @Override
-    public Map<String, String> toMap() {
-        return context;
-    }
-
-    @Override
-    public Optional<String> get(String key){
-        return Optional.ofNullable(context.get(key));
-    }
-
-    @Override
-    public boolean containsKey(String key){
-        return context.containsKey(key);
-    }
-
-    @Override
-    public Set<String> keySet() {
-        return context.keySet();
-    }
-
-    @Override
-    public boolean equals(Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
-
-        BuildableEnvironment that = (BuildableEnvironment) o;
-        return context.equals(that.context);
-    }
-
-    @Override
-    public int hashCode() {
-        return context.hashCode();
-    }
-
-    /*
-         * (non-Javadoc)
-         *
-         * @see java.lang.Object#toString()
-         */
-    @Override
-    public String toString(){
-        return "Environment: " + getData();
-    }
-
-    /**
-     * Get the delta.
-     * @return
-     */
-    private String getData() {
-        StringBuilder b = new StringBuilder();
-        for(Map.Entry<String,String> en: this.context.entrySet()){
-            b.append("    ").append(en.getKey()).append('=').append(escape(en.getValue())).append('\n');
-        }
-        if(b.length()>0)
-            b.setLength(b.length()-1);
-        return b.toString();
-    }
-
-    /**
-     * Escapes several characters.
-     * @param value
-     * @return
-     */
-    private String escape(String value){
-        if(value==null)
-            return null;
-        return value.replaceAll("\n", "\\\\n").replaceAll("\r", "\\\\r").replaceAll("\t", "\\\\t")
-                .replaceAll("=", "\\\\=");
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/modules/metamodels/environment/src/main/java/org/apache/tamaya/metamodel/environment/Environment.java
----------------------------------------------------------------------
diff --git a/dormant/modules/metamodels/environment/src/main/java/org/apache/tamaya/metamodel/environment/Environment.java b/dormant/modules/metamodels/environment/src/main/java/org/apache/tamaya/metamodel/environment/Environment.java
deleted file mode 100644
index 8a8b157..0000000
--- a/dormant/modules/metamodels/environment/src/main/java/org/apache/tamaya/metamodel/environment/Environment.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.metamodel.environment;
-
-import org.apache.tamaya.metamodel.environment.spi.EnvironmentSpi;
-import org.apache.tamaya.spi.ServiceContext;
-
-import java.util.Map;
-import java.util.Optional;
-import java.util.Set;
-
-/**
- * Models a runtime environment. Instances current this class are used to
- * evaluate the correct configuration artifacts.<br/>
- * <h3>Implementation Requirements</h3>
- * <p>
- * Implementations current this interface must be
- * <ul>
- * <li>Thread safe.
- * <li>Immutable
- * <li>serializable
- * </ul>
- */
-public interface Environment{
-
-    /**
-     * Access a property.
-     * @param key the property's key, not null.
-     * @return the property's keys.
-     */
-    Optional<String> get(String key);
-
-    /**
-     * Checks if a property is defined.
-     * @param key the property's key, not null.
-     * @return true, if the property is existing.
-     */
-    boolean containsKey(String key);
-
-    /**
-     * Access the set current property keys, defined by this provider.
-     * @return the key set, never null.
-     */
-    Set<String> keySet();
-
-    /**
-     * Access the environment as Map.
-     * @return the Map instance containing the environments properties, never null.
-     */
-    Map<String,String> toMap();
-
-    /**
-     * Get the current {@link org.apache.tamaya.metamodel.environment.Environment}. The environment is used to determine the current runtime state, which
-     * is important for returning the correct configuration.
-     * @return the current Environment, never null.
-     */
-    public static Environment current(){
-        return ServiceContext.getInstance().getSingleton(EnvironmentSpi.class).getCurrentEnvironment();
-    }
-
-    /**
-     * Get the current {@link Environment}. The environment is used to determine the current runtime state, which
-     * is important for returning the correct configuration.
-     * @return the current Environment, never null.
-     */
-    public static Environment root(){
-        return ServiceContext.getInstance().getSingleton(EnvironmentSpi.class).getRootEnvironment();
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/modules/metamodels/environment/src/main/java/org/apache/tamaya/metamodel/environment/EnvironmentBuilder.java
----------------------------------------------------------------------
diff --git a/dormant/modules/metamodels/environment/src/main/java/org/apache/tamaya/metamodel/environment/EnvironmentBuilder.java b/dormant/modules/metamodels/environment/src/main/java/org/apache/tamaya/metamodel/environment/EnvironmentBuilder.java
deleted file mode 100644
index 17ec34b..0000000
--- a/dormant/modules/metamodels/environment/src/main/java/org/apache/tamaya/metamodel/environment/EnvironmentBuilder.java
+++ /dev/null
@@ -1,97 +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.metamodel.environment;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Objects;
-
-/**
-* Builder to create new {@link Environment instances.}
-*/
-public final class EnvironmentBuilder{
-
-    /** The property name for the stage property. */
-    public static final String STAGE_PROP = "stage";
-
-    /** THe environment data. */
-    Map<String,String> contextData = new HashMap<>();
-
-    /**
-     * Constructor.
-     */
-    private EnvironmentBuilder() {
-    }
-
-    /**
-     * Creates a new buildr instance.
-     * @return the new builder instance.
-     */
-    public static final EnvironmentBuilder of() {
-        return new EnvironmentBuilder();
-    }
-
-    /**
-     * Sets a new environment property.
-     * @param key the key, not null.
-     * @param value the keys, not null.
-     * @return the builder for chaining
-     */
-    public EnvironmentBuilder set(String key, String value){
-        this.contextData.put(key, value);
-        return this;
-    }
-
-    /**
-     * Sets new environment properties.
-     * @param values the key/values, not null.
-     * @return the builder for chaining
-     */
-    public EnvironmentBuilder setAll(Map<String,String> values){
-        this.contextData.putAll(values);
-        return this;
-    }
-
-    /**
-     * Sets the stage using the default stage key.
-     * @param stage The stage, not null.
-     * @return the builder for chaining.
-     */
-    public EnvironmentBuilder setStage(String stage){
-        this.contextData.put(STAGE_PROP, Objects.requireNonNull(stage));
-        return this;
-    }
-
-    /**
-     * Access a property
-     * @param key the key, not null.
-     * @return the builder for chaining.
-     */
-    public String getProperty(String key) {
-        return this.contextData.get(key);
-    }
-
-    /**
-     * Builds a new Environment.
-     * @return a new Environment, never null.
-     */
-    public Environment build() {
-        return new BuildableEnvironment(this);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/modules/metamodels/environment/src/main/java/org/apache/tamaya/metamodel/environment/internal/ClassLoaderDependentApplicationEnvironmentProvider.java
----------------------------------------------------------------------
diff --git a/dormant/modules/metamodels/environment/src/main/java/org/apache/tamaya/metamodel/environment/internal/ClassLoaderDependentApplicationEnvironmentProvider.java b/dormant/modules/metamodels/environment/src/main/java/org/apache/tamaya/metamodel/environment/internal/ClassLoaderDependentApplicationEnvironmentProvider.java
deleted file mode 100644
index db4a7c7..0000000
--- a/dormant/modules/metamodels/environment/src/main/java/org/apache/tamaya/metamodel/environment/internal/ClassLoaderDependentApplicationEnvironmentProvider.java
+++ /dev/null
@@ -1,101 +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.metamodel.environment.internal;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import org.apache.tamaya.core.config.ConfigurationFormats;
-import org.apache.tamaya.core.resource.Resource;
-import org.apache.tamaya.core.resource.ResourceLoader;
-import org.apache.tamaya.core.properties.ConfigurationFormat;
-import org.apache.tamaya.metamodel.environment.spi.EnvironmentProvider;
-import org.apache.tamaya.spi.ServiceContext;
-
-/**
- * Application environment provider that is dependent on the current context classloader and tries to
- * evaluate {@code META-INF/env/application.properties, META-INF/env/application.xml and META-INF/env/application.ini}.
- * Only if a property named {@code org.apache.tamaya.env.applicationId} is found, it will
- * be used as the {@code environmentId} and a corresponding {@link org.apache.tamaya.metamodel.environment.Environment} instance
- * is created and attached.
- */
-public class ClassLoaderDependentApplicationEnvironmentProvider implements EnvironmentProvider {
-
-    private static  final Logger LOG = Logger.getLogger(ClassLoaderDependentApplicationEnvironmentProvider.class.getName());
-
-    private Map<ClassLoader, Map<String,String>> environments = new ConcurrentHashMap<>();
-    private Map<ClassLoader, Boolean> environmentAvailable = new ConcurrentHashMap<>();
-
-    @Override
-    public boolean isActive() {
-        ClassLoader cl = Thread.currentThread().getContextClassLoader();
-        if(cl==null){
-            return false;
-        }
-        Boolean available = this.environmentAvailable.get(cl);
-        if(available!=null && !available){
-            return false;
-        }
-        List<Resource> propertyUris = ServiceContext.getInstance().getSingleton(ResourceLoader.class).getResources(cl,
-                "classpath:META-INF/env/application.properties", "classpath:META-INF/env/application.xml", "classpath:META-INF/env/application.ini");
-        available = !propertyUris.isEmpty();
-        this.environmentAvailable.put(cl, available);
-        return available;
-    }
-
-    @Override
-    public Map<String,String> getEnvironmentData() {
-        ClassLoader cl = Thread.currentThread().getContextClassLoader();
-        if(cl==null){
-            return null;
-        }
-        Map<String,String> data = this.environments.get(cl);
-        if(data!=null){
-            return data;
-        }
-        List<Resource> propertyUris = ServiceContext.getInstance().getSingleton(ResourceLoader.class).getResources(cl,
-                "classpath:META-INF/env/application.properties", "classpath:META-INF/env/application.xml", "classpath:META-INF/env/application.ini");
-        data = new HashMap<>();
-
-        for(Resource resource:propertyUris){
-            try{
-                ConfigurationFormat format = ConfigurationFormats.getFormat(resource);
-                data.putAll(format.readConfiguration(resource));
-            }
-            catch(Exception e){
-                LOG.log(Level.SEVERE, e, () -> "Error reading application environment data fromMap " + resource);
-            }
-        }
-        data.put("classloader.type", cl.getClass().getName());
-        data.put("classloader.info", cl.toString());
-        Set<Resource> uris = new HashSet<>();
-        uris.addAll(propertyUris);
-        data.put("environment.sources", uris.toString());
-        data = Collections.unmodifiableMap(data);
-        this.environments.put(cl, data);
-        return data;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/modules/metamodels/environment/src/main/java/org/apache/tamaya/metamodel/environment/internal/ClassLoaderDependentEarEnvironmentProvider.java
----------------------------------------------------------------------
diff --git a/dormant/modules/metamodels/environment/src/main/java/org/apache/tamaya/metamodel/environment/internal/ClassLoaderDependentEarEnvironmentProvider.java b/dormant/modules/metamodels/environment/src/main/java/org/apache/tamaya/metamodel/environment/internal/ClassLoaderDependentEarEnvironmentProvider.java
deleted file mode 100644
index 2ef88ec..0000000
--- a/dormant/modules/metamodels/environment/src/main/java/org/apache/tamaya/metamodel/environment/internal/ClassLoaderDependentEarEnvironmentProvider.java
+++ /dev/null
@@ -1,108 +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.metamodel.environment.internal;
-
-import org.apache.tamaya.core.config.ConfigurationFormats;
-import org.apache.tamaya.core.resource.Resource;
-import org.apache.tamaya.metamodel.environment.EnvironmentBuilder;
-import org.apache.tamaya.metamodel.environment.spi.EnvironmentProvider;
-import org.apache.tamaya.spi.ServiceContext;
-import org.apache.tamaya.core.properties.ConfigurationFormat;
-import org.apache.tamaya.core.resource.ResourceLoader;
-
-
-import java.util.*;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-/**
- * This class implements a {@link EnvironmentProvider} that tries
- * to read configuration for an ear deployment located under {@code META-INF/env/ear.properties,
- * META-INF/env/ear.xml or META-INF/env/ear.ini}. The environment id hereby is defined by a
- * configuration entry named {@code org.apache.tamaya.core.env.earId}.
- *
- * Only if such a configuration with such an {@code earId} is found an {@link org.apache.tamaya.metamodel.environment.Environment}
- * is created and attached to the corresponding ear classloader.
- */
-public class ClassLoaderDependentEarEnvironmentProvider implements EnvironmentProvider {
-
-    private static  final Logger LOG = Logger.getLogger(ClassLoaderDependentEarEnvironmentProvider.class.getName());
-
-//    private static final String EARID_PROP = "environment.earId";
-
-    private Map<ClassLoader, Map<String,String>> environments = new ConcurrentHashMap<>();
-    private Map<ClassLoader, Boolean> environmentAvailable = new ConcurrentHashMap<>();
-
-    @Override
-    public boolean isActive() {
-        ClassLoader cl = Thread.currentThread().getContextClassLoader();
-        if(cl==null){
-            return false;
-        }
-        Boolean available = this.environmentAvailable.get(cl);
-        if(available!=null && !available){
-            return false;
-        }
-        List<Resource> propertyUris = ServiceContext.getInstance().getSingleton(ResourceLoader.class).getResources(cl,
-                "classpath:META-INF/env/ear.properties", "classpath:META-INF/env/ear.xml", "classpath:META-INF/env/ear.ini");
-        available = !propertyUris.isEmpty();
-        this.environmentAvailable.put(cl, available);
-        return available;
-    }
-
-    @Override
-    public Map<String,String> getEnvironmentData() {
-        ClassLoader cl = Thread.currentThread().getContextClassLoader();
-        if(cl==null){
-            return null;
-        }
-        Map<String,String> data = this.environments.get(cl);
-        if(data!=null){
-            return data;
-        }
-        List<Resource> resources = ServiceContext.getInstance().getSingleton(ResourceLoader.class).getResources(cl,
-                "classpath:META-INF/env/ear.properties", "classpath:META-INF/env/ear.xml", "classpath:META-INF/env/ear.ini");
-        data = new HashMap<>();
-        for(Resource resource:resources){
-            try{
-                ConfigurationFormat format = ConfigurationFormats.getFormat(resource);
-                Map<String,String> read = format.readConfiguration(resource);
-                data.putAll(read);
-            }
-            catch(Exception e){
-                LOG.log(Level.SEVERE, e, () -> "Error reading ear environment data fromMap " + resource);
-            }
-        }
-//        String earId = data.getOrDefault(EARID_PROP, cl.toString());
-        String stageValue =  data.get(EnvironmentBuilder.STAGE_PROP);
-        if (stageValue != null) {
-            data.put(EnvironmentBuilder.STAGE_PROP,stageValue);
-        }
-        data.put("classloader.type", cl.getClass().getName());
-        data.put("classloader.info", cl.toString());
-        Set<Resource> resourceSet = new HashSet<>();
-        resourceSet.addAll(resources);
-        data.put("environment.sources", resourceSet.toString());
-        data = Collections.unmodifiableMap(data);
-        this.environments.put(cl, data);
-        return data;
-    }
-
-}


[03/10] incubator-tamaya git commit: Removed unused dormant parts. Moved usable dormant utils into new sandbox module. Fixed jqassistant issues in simple metamodel module.

Posted by an...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/sandbox/functions/src/main/java/org/apache/tamaya/functions/FilteredConfiguration.java
----------------------------------------------------------------------
diff --git a/sandbox/functions/src/main/java/org/apache/tamaya/functions/FilteredConfiguration.java b/sandbox/functions/src/main/java/org/apache/tamaya/functions/FilteredConfiguration.java
new file mode 100644
index 0000000..1b731c1
--- /dev/null
+++ b/sandbox/functions/src/main/java/org/apache/tamaya/functions/FilteredConfiguration.java
@@ -0,0 +1,52 @@
+package org.apache.tamaya.functions;
+
+import org.apache.tamaya.Configuration;
+import org.apache.tamaya.TypeLiteral;
+
+import java.util.Map;
+import java.util.Objects;
+import java.util.Optional;
+import java.util.function.BiPredicate;
+import java.util.stream.Collectors;
+
+/**
+ * Configuration that filters part of the entries defined by a filter predicate.
+ */
+class FilteredConfiguration implements Configuration {
+
+    private final Configuration baseConfiguration;
+    private final BiPredicate<String, String> filter;
+    private String filterType;
+
+    FilteredConfiguration(Configuration baseConfiguration, BiPredicate<String, String> filter, String filterType) {
+        this.baseConfiguration = Objects.requireNonNull(baseConfiguration);
+        this.filter = Objects.requireNonNull(filter);
+        this.filterType = Optional.ofNullable(filterType).orElse(this.filter.toString());
+    }
+
+    @Override
+    public <T> T get(String key, TypeLiteral<T> type) {
+        String value = baseConfiguration.get(key);
+        if (filter.test(key, value)) {
+            return baseConfiguration.get(key, type);
+        }
+        return null;
+    }
+
+    @Override
+    public Map<String, String> getProperties() {
+        return baseConfiguration.getProperties().entrySet().stream().filter(
+                en -> filter.test(en.getKey(), en.getValue())).collect(Collectors.toMap(
+                en -> en.getKey(), en -> en.getValue()
+        ));
+    }
+
+    @Override
+    public String toString() {
+        return "FilteredConfiguration{" +
+                "baseConfiguration=" + baseConfiguration +
+                ", filter=" + filter +
+                '}';
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/sandbox/functions/src/main/java/org/apache/tamaya/functions/FilteredPropertySource.java
----------------------------------------------------------------------
diff --git a/sandbox/functions/src/main/java/org/apache/tamaya/functions/FilteredPropertySource.java b/sandbox/functions/src/main/java/org/apache/tamaya/functions/FilteredPropertySource.java
new file mode 100644
index 0000000..38c29dd
--- /dev/null
+++ b/sandbox/functions/src/main/java/org/apache/tamaya/functions/FilteredPropertySource.java
@@ -0,0 +1,66 @@
+/*
+ * 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.functions;
+
+import org.apache.tamaya.spi.PropertySource;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+import java.util.function.Predicate;
+
+class FilteredPropertySource implements PropertySource {
+
+    private PropertySource baseSource;
+    private Predicate<String> filter;
+
+    public FilteredPropertySource(PropertySource baseSource, Predicate<String> filter){
+        this.baseSource = Objects.requireNonNull(baseSource);
+        this.filter = Objects.requireNonNull(filter);
+    }
+
+    @Override
+    public int getOrdinal(){
+        return baseSource.getOrdinal();
+    }
+
+    @Override
+    public String getName() {
+        return baseSource.getName();
+    }
+
+    @Override
+    public Map<String,String> getProperties(){
+        final Map<String,String> result = new HashMap<>();
+        this.baseSource.getProperties().entrySet().forEach(e -> {
+            if(filter.test(e.getKey())){
+                result.put(e.getKey(), e.getValue());
+            }
+        });
+        return result;
+    }
+
+    @Override
+    public String toString() {
+        return "FilteredPropertySource{" +
+                "baseSource=" + baseSource +
+                ", filter=" + filter +
+                '}';
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/sandbox/functions/src/main/java/org/apache/tamaya/functions/MappedConfiguration.java
----------------------------------------------------------------------
diff --git a/sandbox/functions/src/main/java/org/apache/tamaya/functions/MappedConfiguration.java b/sandbox/functions/src/main/java/org/apache/tamaya/functions/MappedConfiguration.java
new file mode 100644
index 0000000..a7af911
--- /dev/null
+++ b/sandbox/functions/src/main/java/org/apache/tamaya/functions/MappedConfiguration.java
@@ -0,0 +1,48 @@
+package org.apache.tamaya.functions;
+
+import org.apache.tamaya.Configuration;
+import org.apache.tamaya.TypeLiteral;
+
+import java.util.Map;
+import java.util.Objects;
+import java.util.Optional;
+import java.util.function.BiPredicate;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+/**
+ * Configuration that filters part of the entries defined by a filter predicate.
+ */
+class MappedConfiguration implements Configuration {
+
+    private final Configuration baseConfiguration;
+    private final Function<String, String> keyMapper;
+    private final String mapType;
+
+    MappedConfiguration(Configuration baseConfiguration, Function<String, String> keyMapper, String mapType) {
+        this.baseConfiguration = Objects.requireNonNull(baseConfiguration);
+        this.keyMapper = Objects.requireNonNull(keyMapper);
+        this.mapType = Optional.ofNullable(mapType).orElse(this.keyMapper.toString());
+    }
+
+    @Override
+    public <T> T get(String key, TypeLiteral<T> type) {
+        return baseConfiguration.get(this.keyMapper.apply(key), type);
+    }
+
+    @Override
+    public Map<String, String> getProperties() {
+        return baseConfiguration.getProperties().entrySet().stream().collect(Collectors.toMap(
+                en -> keyMapper.apply(en.getKey()), en -> en.getValue()
+        ));
+    }
+
+    @Override
+    public String toString() {
+        return "FilteredConfiguration{" +
+                "baseConfiguration=" + baseConfiguration +
+                ", mapping=" + mapType +
+                '}';
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/sandbox/functions/src/main/java/org/apache/tamaya/functions/MappedPropertySource.java
----------------------------------------------------------------------
diff --git a/sandbox/functions/src/main/java/org/apache/tamaya/functions/MappedPropertySource.java b/sandbox/functions/src/main/java/org/apache/tamaya/functions/MappedPropertySource.java
new file mode 100644
index 0000000..ae37168
--- /dev/null
+++ b/sandbox/functions/src/main/java/org/apache/tamaya/functions/MappedPropertySource.java
@@ -0,0 +1,66 @@
+package org.apache.tamaya.functions;
+
+import org.apache.tamaya.spi.PropertySource;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Optional;
+import java.util.function.UnaryOperator;
+
+/**
+ * PropertySource implementation that maps certain parts (defined by an {@code UnaryOperator<String>}) to alternate areas.
+ */
+class MappedPropertySource implements PropertySource {
+
+	private static final long serialVersionUID = 8690637705511432083L;
+
+	/** The mapping operator. */
+    private UnaryOperator<String> keyMapper;
+    /** The base configuration. */
+    private PropertySource propertySource;
+
+    /**
+     * Creates a new instance.
+     * @param config the base configuration, not null
+     * @param keyMapper The mapping operator, not null
+     */
+    public MappedPropertySource(PropertySource config, UnaryOperator<String> keyMapper) {
+        this.propertySource = Objects.requireNonNull(config);
+        this.keyMapper = Objects.requireNonNull(keyMapper);
+    }
+
+    @Override
+    public int getOrdinal(){
+        return this.propertySource.getOrdinal();
+    }
+
+    @Override
+    public String getName(){
+        return this.propertySource.getName()+"[mapped]";
+    }
+
+    @Override
+    public Map<String, String> getProperties() {
+        Map<String, String> result = new HashMap<>();
+        Map<String, String> map = this.propertySource.getProperties();
+        map.forEach((k,v) -> {
+            String targetKey = keyMapper.apply(k);
+            if(targetKey!=null){
+                result.put(targetKey, v);
+            }
+        });
+        return result;
+    }
+
+    @Override
+    public Optional<String> get(String key){
+        return Optional.of(getProperties().get(key));
+    }
+
+    @Override
+    public boolean isEmpty() {
+        return this.propertySource.isEmpty();
+    }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/sandbox/functions/src/main/java/org/apache/tamaya/functions/MetaEnrichedPropertySource.java
----------------------------------------------------------------------
diff --git a/sandbox/functions/src/main/java/org/apache/tamaya/functions/MetaEnrichedPropertySource.java b/sandbox/functions/src/main/java/org/apache/tamaya/functions/MetaEnrichedPropertySource.java
new file mode 100644
index 0000000..f43d65e
--- /dev/null
+++ b/sandbox/functions/src/main/java/org/apache/tamaya/functions/MetaEnrichedPropertySource.java
@@ -0,0 +1,62 @@
+package org.apache.tamaya.functions;
+
+import org.apache.tamaya.spi.PropertySource;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/**
+ * Configuration that filters part of the entries defined by a filter predicate.
+ */
+class MetaEnrichedPropertySource implements PropertySource {
+
+    private final PropertySource basePropertySource;
+    private final Map<String, String> metaInfo;
+
+    MetaEnrichedPropertySource(PropertySource basePropertySource, Map<String, String> metaInfo) {
+        this.basePropertySource = Objects.requireNonNull(basePropertySource);
+        this.metaInfo = Objects.requireNonNull(metaInfo);
+    }
+
+    // [meta:origin]a.b.c
+    @Override
+    public String get(String key) {
+        if(key.startsWith("[meta:")){
+            key = key.substring(6);
+            int index = key.indexOf(']');
+            String metaKey = key.substring(0,index);
+            String entryKey = key.substring(index+1);
+            String value =  basePropertySource.get(entryKey);
+            if(value!=null) {
+                return metaInfo.get(metaKey);
+            }
+        }
+        return basePropertySource.get(key);
+    }
+
+    @Override
+    public String getName() {
+        return basePropertySource.getName();
+    }
+
+    @Override
+    public Map<String, String> getProperties() {
+        Map<String, String> baseProperties = basePropertySource.getProperties();
+        Map<String, String> allProperties = new HashMap<>(baseProperties);
+        baseProperties.forEach((k,v) -> {
+            this.metaInfo.forEach(
+                (mk, mv) -> allProperties.put("[meta:"+mk+']'+k, mv));
+            });
+        return allProperties;
+    }
+
+    @Override
+    public String toString() {
+        return "MetaEnrichedPropertySource{" +
+                "basePropertySource=" + basePropertySource +
+                ", metaInfo=" + metaInfo +
+                '}';
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/sandbox/functions/src/main/java/org/apache/tamaya/functions/PropertySourceFunctions.java
----------------------------------------------------------------------
diff --git a/sandbox/functions/src/main/java/org/apache/tamaya/functions/PropertySourceFunctions.java b/sandbox/functions/src/main/java/org/apache/tamaya/functions/PropertySourceFunctions.java
new file mode 100644
index 0000000..52c306a
--- /dev/null
+++ b/sandbox/functions/src/main/java/org/apache/tamaya/functions/PropertySourceFunctions.java
@@ -0,0 +1,226 @@
+/*
+ * 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.functions;
+
+import org.apache.tamaya.spi.PropertySource;
+
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeSet;
+import java.util.function.Predicate;
+import java.util.stream.Collectors;
+
+/**
+ * Accessor that provides useful functions along with configuration.
+ */
+public final class PropertySourceFunctions {
+    /**
+     * Private singleton constructor.
+     */
+    private PropertySourceFunctions() {
+    }
+
+    /**
+     * Creates a ConfigOperator that creates a Configuration containing only keys
+     * that are contained in the given area (non recursive). Hereby
+     * the area key is stripped away fromMap the resulting key.
+     * <p>
+     * Metadata is added only for keys that are present on the original configuration.
+     * They are added in the following format:
+     * <pre>
+     *     Given are
+     *       1) a configuration with two entries: entry1, entry 2
+     *       2) metadata as metaKey1=metaValue1, metaKey2=metaValue2
+     *
+     * The final configuration will look like:
+     *
+     *     entry1=entry1Value;
+     *     entry2=entry2Value;
+     *     [meta:metaKey1]entry1=metaValue1
+     *     [meta:metaKey2]entry1=metaValue2
+     *     [meta:metaKey1]entry2=metaValue1
+     *     [meta:metaKey2]entry2=metaValue2
+     * </pre>
+     *
+     * This mechanism allows to add meta information such as origin, sensitivity, to all keys of a current
+     * PropertySource or Configuration. If done on multiple PropertySources that are combined the corresponding
+     * values are visible in synch with the values visible.
+     *
+     * @param propertySource the base propertySource, not null.
+     * @param metaData the metaData to be added, not null
+     * @return the metadata enriched configuration, not null.
+     */
+    public static PropertySource addMetaData(PropertySource propertySource, Map<String,String> metaData) {
+        return new MetaEnrichedPropertySource(propertySource, metaData);
+    }
+
+    /**
+     * Calculates the current area key and compares it with the given key.
+     *
+     * @param key     the fully qualified entry key, not null
+     * @param areaKey the area key, not null
+     * @return true, if the entry is exact in this area
+     */
+    public static boolean isKeyInArea(String key, String areaKey) {
+        int lastIndex = key.lastIndexOf('.');
+        String curAreaKey = lastIndex > 0 ? key.substring(0, lastIndex) : "";
+        return curAreaKey.equals(areaKey);
+    }
+
+    /**
+     * Calculates the current area key and compares it with the given area keys.
+     *
+     * @param key     the fully qualified entry key, not null
+     * @param areaKeys the area keys, not null
+     * @return true, if the entry is exact in this area
+     */
+    public static boolean isKeyInAreas(String key, String... areaKeys) {
+        for(String areaKey:areaKeys){
+            if(isKeyInArea(key, areaKey)){
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * Return a query to evaluate the set with all fully qualifies area names. This method should return the areas as accurate as possible,
+     * but may not provide a complete set of areas that are finally accessible, especially when the underlying storage
+     * does not support key iteration.
+     *
+     * @return s set with all areas, never {@code null}.
+     */
+    public static Set<String> areas(Map<String,String> map) {
+            final Set<String> areas = new HashSet<>();
+            map.keySet().forEach(s -> {
+                int index = s.lastIndexOf('.');
+                if (index > 0) {
+                    areas.add(s.substring(0, index));
+                } else {
+                    areas.add("<root>");
+                }
+            });
+            return areas;
+    }
+
+    /**
+     * Return a query to evaluate the set with all fully qualified area names, containing the transitive closure also including all
+     * subarea names, regardless if properties are accessible or not. This method should return the areas as accurate
+     * as possible, but may not provide a complete set of areas that are finally accessible, especially when the
+     * underlying storage does not support key iteration.
+     *
+     * @return s set with all transitive areas, never {@code null}.
+     */
+    public static Set<String> transitiveAreas(Map<String,String> map) {
+            final Set<String> transitiveAreas = new HashSet<>();
+            areas(map).forEach(s -> {
+                int index = s.lastIndexOf('.');
+                if (index < 0) {
+                    transitiveAreas.add("<root>");
+                } else {
+                    while (index > 0) {
+                        s = s.substring(0, index);
+                        transitiveAreas.add(s);
+                        index = s.lastIndexOf('.');
+                    }
+                }
+            });
+            return transitiveAreas;
+    }
+
+    /**
+     * Return a query to evaluate the set with all fully qualified area names, containing only the
+     * areas that match the predicate and have properties attached. This method should return the areas as accurate as possible,
+     * but may not provide a complete set of areas that are finally accessible, especially when the underlying storage
+     * does not support key iteration.
+     *
+     * @param predicate A predicate to deternine, which areas should be returned, not {@code null}.
+     * @return s set with all areas, never {@code null}.
+     */
+    public static Set<String> areas(Map<String,String> map, final Predicate<String> predicate) {
+        return
+            areas(map).stream().filter(predicate).collect(Collectors.toCollection(TreeSet::new));
+    }
+
+    /**
+     * Return a query to evaluate the set with all fully qualified area names, containing the transitive closure also including all
+     * subarea names, regardless if properties are accessible or not. This method should return the areas as accurate as possible,
+     * but may not provide a complete set of areas that are finally accessible, especially when the underlying storage
+     * does not support key iteration.
+     *
+     * @param predicate A predicate to deternine, which areas should be returned, not {@code null}.
+     * @return s set with all transitive areas, never {@code null}.
+     */
+    public static Set<String> transitiveAreas(Map<String,String> map, Predicate<String> predicate) {
+        return
+            transitiveAreas(map).stream().filter(predicate).collect(Collectors.toCollection(TreeSet::new));
+    }
+
+
+    /**
+     * Creates a ConfigOperator that creates a Configuration containing only keys
+     * that are contained in the given area (recursive). Hereby
+     * the area key is stripped away fromMap the resulting key.
+     *
+     * @param areaKeys the area keys, not null
+     * @return the area configuration, with the areaKey stripped away.
+     */
+    public static Map<String,String> areasRecursive(Map<String,String> map, String... areaKeys) {
+        return areaRecursive(map, true, areaKeys);
+    }
+
+    /**
+     * Creates a ConfigOperator that creates a Configuration containing only keys
+     * that are contained in the given area (recursive).
+     *
+     * @param areaKeys   the area keys, not null
+     * @param stripKeys if set to true, the area key is stripped away fromMap the resulting key.
+     * @return the area configuration, with the areaKey stripped away.
+     */
+    public static Map<String,String> areaRecursive(Map<String,String> map, boolean stripKeys, String... areaKeys) {
+        if(stripKeys) {
+            return map.entrySet().stream().filter(
+                    (e) -> isKeyInAreas(e.getKey(), areaKeys))
+                    .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
+        }
+        else {
+            return map.entrySet().stream().filter(
+                    (e) -> isKeyInAreas(e.getKey(), areaKeys))
+                    .collect(Collectors.toMap(en -> stripAreaKeys(en.getKey(), areaKeys), Map.Entry::getValue));
+        }
+    }
+
+    /**
+     * Strips the area key of the given absolute key, if it is one of the areaKeys passed.
+     * @param key the current key, not null.
+     * @param areaKeys the areaKeys, not null.
+     * @return the stripped key, or the original key (if no area was matching).
+     */
+    static String stripAreaKeys(String key, String... areaKeys) {
+        for(String areaKey:areaKeys) {
+            if(key.startsWith(areaKey+'.')) {
+                return key.substring(areaKey.length() + 1);
+            }
+        }
+        return key;
+    }
+
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/sandbox/functions/src/main/java/org/apache/tamaya/functions/ValueFilteredPropertySource.java
----------------------------------------------------------------------
diff --git a/sandbox/functions/src/main/java/org/apache/tamaya/functions/ValueFilteredPropertySource.java b/sandbox/functions/src/main/java/org/apache/tamaya/functions/ValueFilteredPropertySource.java
new file mode 100644
index 0000000..23a5434
--- /dev/null
+++ b/sandbox/functions/src/main/java/org/apache/tamaya/functions/ValueFilteredPropertySource.java
@@ -0,0 +1,55 @@
+package org.apache.tamaya.functions;
+
+import org.apache.tamaya.spi.PropertySource;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Optional;
+import java.util.function.BiFunction;
+
+/**
+ * Property source which filters any key/values dynamically.
+ */
+class ValueFilteredPropertySource implements PropertySource{
+
+    private String name;
+    private BiFunction<String, String, String> valueFilter;
+    private PropertySource source;
+
+    public ValueFilteredPropertySource(String name, BiFunction<String, String, String> valueFilter, PropertySource current) {
+        this.name = Optional.ofNullable(name).orElse("<valueFiltered> -> name="+current.getName()+", valueFilter="+valueFilter.toString());
+    }
+
+    @Override
+    public int getOrdinal() {
+        return source.getOrdinal();
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+
+    @Override
+    public Optional<String> get(String key) {
+        String value = this.source.get(key).orElse(null);
+        value = valueFilter.apply(key, value);
+        return Optional.ofNullable(value);
+    }
+
+    @Override
+    public Map<String, String> getProperties() {
+        Map<String, String> map = new HashMap<>(source.getProperties());
+        map.replaceAll(valueFilter);
+        return map;
+    }
+
+    @Override
+    public String toString() {
+        return "ValueFilteredPropertySource{" +
+                "source=" + source.getName() +
+                ", name='" + name + '\'' +
+                ", valueFilter=" + valueFilter +
+                '}';
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/sandbox/integration/cdi/pom.xml
----------------------------------------------------------------------
diff --git a/sandbox/integration/cdi/pom.xml b/sandbox/integration/cdi/pom.xml
index 1c9db54..fcecae3 100644
--- a/sandbox/integration/cdi/pom.xml
+++ b/sandbox/integration/cdi/pom.xml
@@ -21,7 +21,7 @@ under the License.
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <groupId>org.apache.tamaya.ext.integration</groupId>
+        <groupId>org.apache.tamaya.ext</groupId>
         <artifactId>tamaya-integrations</artifactId>
         <version>0.1-incubating-SNAPSHOT</version>
     </parent>

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/sandbox/integration/cdi/src/main/java/org/apache/tamaya/integration/cdi/ConfigurationExtension.java
----------------------------------------------------------------------
diff --git a/sandbox/integration/cdi/src/main/java/org/apache/tamaya/integration/cdi/ConfigurationExtension.java b/sandbox/integration/cdi/src/main/java/org/apache/tamaya/integration/cdi/ConfigurationExtension.java
new file mode 100644
index 0000000..2e1473a
--- /dev/null
+++ b/sandbox/integration/cdi/src/main/java/org/apache/tamaya/integration/cdi/ConfigurationExtension.java
@@ -0,0 +1,79 @@
+/*
+ * 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.integration.cdi;
+
+import org.apache.tamaya.core.internal.inject.ConfigurationInjector;
+import org.apache.tamaya.core.internal.inject.ConfiguredType;
+
+import javax.enterprise.context.spi.CreationalContext;
+import javax.enterprise.event.Observes;
+import javax.enterprise.inject.Vetoed;
+import javax.enterprise.inject.spi.*;
+import java.util.*;
+
+/**
+ * CDI portable extension that integrates {@link org.apache.tamaya.core.internal.inject.ConfigurationInjector}
+ * with CDI by adding configuration features to CDI (config enable CDI beans).
+ */
+@Vetoed
+public final class ConfigurationExtension implements Extension {
+
+    public <T> void initializeConfiguredFields(final @Observes ProcessInjectionTarget<T> pit) {
+        final AnnotatedType<T> at = pit.getAnnotatedType();
+        if (!ConfiguredType.isConfigured(at.getJavaClass())) {
+            return;
+        }
+        final InjectionTarget<T> it = pit.getInjectionTarget();
+        InjectionTarget<T> wrapped = new InjectionTarget<T>() {
+            @Override
+            public void inject(T instance, CreationalContext<T> ctx) {
+                it.inject(instance, ctx);
+                ConfigurationInjector.configure(instance);
+            }
+
+            @Override
+            public void postConstruct(T instance) {
+                it.postConstruct(instance);
+            }
+
+            @Override
+            public void preDestroy(T instance) {
+                it.dispose(instance);
+            }
+
+            @Override
+            public void dispose(T instance) {
+                it.dispose(instance);
+            }
+
+            @Override
+            public Set<InjectionPoint> getInjectionPoints() {
+                return it.getInjectionPoints();
+            }
+
+            @Override
+            public T produce(CreationalContext<T> ctx) {
+                return it.produce(ctx);
+            }
+        };
+        pit.setInjectionTarget(wrapped);
+    }
+
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/sandbox/integration/cdi/src/main/resources/META-INF/beans.xml
----------------------------------------------------------------------
diff --git a/sandbox/integration/cdi/src/main/resources/META-INF/beans.xml b/sandbox/integration/cdi/src/main/resources/META-INF/beans.xml
new file mode 100644
index 0000000..adee378
--- /dev/null
+++ b/sandbox/integration/cdi/src/main/resources/META-INF/beans.xml
@@ -0,0 +1,24 @@
+<?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.
+-->
+<beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://jboss.org/schema/cdi/beans_1_0.xsd">
+
+</beans>
+

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/sandbox/integration/cdi/src/main/resources/META-INF/services/javax.enterprise.inject.spi.Extension
----------------------------------------------------------------------
diff --git a/sandbox/integration/cdi/src/main/resources/META-INF/services/javax.enterprise.inject.spi.Extension b/sandbox/integration/cdi/src/main/resources/META-INF/services/javax.enterprise.inject.spi.Extension
new file mode 100644
index 0000000..2249aca
--- /dev/null
+++ b/sandbox/integration/cdi/src/main/resources/META-INF/services/javax.enterprise.inject.spi.Extension
@@ -0,0 +1,19 @@
+#
+# 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.
+#
+org.apache.tamaya.integration.cdi.ConfigurationExtension

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/sandbox/integration/cdi/src/test/java/org/apache/tamaya/integration/cdi/ConfiguredClass.java
----------------------------------------------------------------------
diff --git a/sandbox/integration/cdi/src/test/java/org/apache/tamaya/integration/cdi/ConfiguredClass.java b/sandbox/integration/cdi/src/test/java/org/apache/tamaya/integration/cdi/ConfiguredClass.java
new file mode 100644
index 0000000..ba92b3e
--- /dev/null
+++ b/sandbox/integration/cdi/src/test/java/org/apache/tamaya/integration/cdi/ConfiguredClass.java
@@ -0,0 +1,133 @@
+/*
+ *
+ * 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.
+ *
+ */
+package org.apache.tamaya.integration.cdi;
+
+import java.beans.PropertyChangeEvent;
+import java.math.BigDecimal;
+
+import javax.inject.Singleton;
+
+import org.apache.tamaya.annotation.ConfiguredProperty;
+import org.apache.tamaya.annotation.DefaultValue;
+import org.apache.tamaya.annotation.ObservesConfigChange;
+
+/**
+ * Created by Anatole on 08.09.2014.
+ */
+@Singleton
+public class ConfiguredClass{
+
+//    @WithConfig("testdata")
+    @ConfiguredProperty
+    private String testProperty;
+
+    @ConfiguredProperty(keys = "a.b.c.key1")
+    @ConfiguredProperty(keys = "a.b.c.key2")
+    @ConfiguredProperty(keys = "a.b.c.key3")
+    @DefaultValue("The current \\${JAVA_HOME} env property is ${env:JAVA_HOME}.")
+    String value1;
+
+//    @WithConfig("testdata")
+    @ConfiguredProperty(keys = "foo")
+    @ConfiguredProperty(keys = "a.b.c.key2")
+    private String value2;
+
+    @ConfiguredProperty
+    @DefaultValue("N/A")
+    private String runtimeVersion;
+
+    @ConfiguredProperty
+    @DefaultValue("${sys:java.version}")
+    private String javaVersion2;
+
+    @ConfiguredProperty
+    @DefaultValue("5")
+    private Integer int1;
+
+//    @WithConfig("testdata")
+    @ConfiguredProperty
+    private int int2;
+
+//    @WithConfig("testdata")
+    @ConfiguredProperty
+    private boolean booleanT;
+
+//    @WithConfig("testdata")
+    @ConfiguredProperty(keys = "BD")
+    private BigDecimal bigNumber;
+
+//    @WithConfig("testdata")
+    @ConfiguredProperty(keys = "double1")
+    private double doubleValue;
+
+    @ObservesConfigChange
+    public void changeListener1(PropertyChangeEvent configChange){
+        // will be called
+    }
+
+    public String getTestProperty() {
+        return testProperty;
+    }
+
+    public String getValue1() {
+        return value1;
+    }
+
+    public String getValue2() {
+        return value2;
+    }
+
+    public String getRuntimeVersion() {
+        return runtimeVersion;
+    }
+
+    public String getJavaVersion2() {
+        return javaVersion2;
+    }
+
+    public Integer getInt1() {
+        return int1;
+    }
+
+    public int getInt2() {
+        return int2;
+    }
+
+    public boolean isBooleanT() {
+        return booleanT;
+    }
+
+    public BigDecimal getBigNumber() {
+        return bigNumber;
+    }
+
+    public double getDoubleValue() {
+        return doubleValue;
+    }
+
+    @Override
+	public String toString(){
+        return super.toString() + ": testProperty="+testProperty+", value1="+value1+", value2="+value2
+                +", int1="+int1+", int2="+int2+", booleanT="+booleanT+", bigNumber="+bigNumber
+                +", runtimeVersion="+runtimeVersion+", javaVersion2="+javaVersion2;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/sandbox/integration/cdi/src/test/java/org/apache/tamaya/integration/cdi/ConfiguredTest.java
----------------------------------------------------------------------
diff --git a/sandbox/integration/cdi/src/test/java/org/apache/tamaya/integration/cdi/ConfiguredTest.java b/sandbox/integration/cdi/src/test/java/org/apache/tamaya/integration/cdi/ConfiguredTest.java
new file mode 100644
index 0000000..376df10
--- /dev/null
+++ b/sandbox/integration/cdi/src/test/java/org/apache/tamaya/integration/cdi/ConfiguredTest.java
@@ -0,0 +1,52 @@
+/*
+ * 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.
+ *
+ */
+
+package org.apache.tamaya.integration.cdi;
+
+import org.apache.deltaspike.testcontrol.api.junit.CdiTestRunner;
+import org.hamcrest.MatcherAssert;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import javax.enterprise.inject.spi.CDI;
+
+import static org.hamcrest.core.Is.is;
+
+/**
+ * Created by Anatole on 08.09.2014.
+ */
+@RunWith(CdiTestRunner.class)
+public class ConfiguredTest{
+
+    @Ignore
+    @Test
+    public void testInjection(){
+        ConfiguredClass item = CDI.current().select(ConfiguredClass.class).get();
+        System.out.println("********************************************");
+        System.out.println(item);
+        System.out.println("********************************************");
+
+        double actual = 1234.5678;
+
+        MatcherAssert.assertThat(item.getDoubleValue(), is(actual));
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/sandbox/integration/cdi/src/test/java/org/apache/tamaya/integration/cdi/TestConfigProvider.java
----------------------------------------------------------------------
diff --git a/sandbox/integration/cdi/src/test/java/org/apache/tamaya/integration/cdi/TestConfigProvider.java b/sandbox/integration/cdi/src/test/java/org/apache/tamaya/integration/cdi/TestConfigProvider.java
new file mode 100644
index 0000000..a10422c
--- /dev/null
+++ b/sandbox/integration/cdi/src/test/java/org/apache/tamaya/integration/cdi/TestConfigProvider.java
@@ -0,0 +1,69 @@
+/*
+ * 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.
+ */
+package org.apache.tamaya.integration.cdi;
+
+import org.apache.tamaya.Configuration;
+import org.apache.tamaya.core.properties.PropertySourceBuilder;
+import old.ConfigurationProviderSpi;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Created by Anatole on 29.09.2014.
+ */
+public class TestConfigProvider implements ConfigurationProviderSpi
+{
+
+    private Configuration testConfig;
+
+    public TestConfigProvider(){
+        final Map<String,String> config = new HashMap<>();
+        config.put("a.b.c.key1", "keys current a.b.c.key1");
+        config.put("a.b.c.key2", "keys current a.b.c.key2");
+        config.put("a.b.key3", "keys current a.b.key3");
+        config.put("a.b.key4", "keys current a.b.key4");
+        config.put("a.key5", "keys current a.key5");
+        config.put("a.key6", "keys current a.key6");
+        config.put("int1", "123456");
+        config.put("int2", "111222");
+        config.put("testProperty", "testPropertyValue!");
+        config.put("booleanT", "true");
+        config.put("double1", "1234.5678");
+        config.put("BD", "123456789123456789123456789123456789.123456789123456789123456789123456789");
+        config.put("testProperty", "keys current testProperty");
+        config.put("runtimeVersion", "${java.version}");
+        testConfig = PropertySourceBuilder.of("testdata").addMap(config).build().toConfiguration();
+    }
+
+    @Override
+    public String getConfigName(){
+        return "testdata";
+    }
+
+    @Override
+    public Configuration getConfiguration(){
+        return testConfig;
+    }
+
+    @Override
+    public void reload() {
+
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/sandbox/integration/cdi/src/test/resources/META-INF/beans.xml
----------------------------------------------------------------------
diff --git a/sandbox/integration/cdi/src/test/resources/META-INF/beans.xml b/sandbox/integration/cdi/src/test/resources/META-INF/beans.xml
new file mode 100644
index 0000000..adee378
--- /dev/null
+++ b/sandbox/integration/cdi/src/test/resources/META-INF/beans.xml
@@ -0,0 +1,24 @@
+<?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.
+-->
+<beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://jboss.org/schema/cdi/beans_1_0.xsd">
+
+</beans>
+

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/sandbox/integration/commons/pom.xml
----------------------------------------------------------------------
diff --git a/sandbox/integration/commons/pom.xml b/sandbox/integration/commons/pom.xml
index e11a8f6..c2be1fe 100644
--- a/sandbox/integration/commons/pom.xml
+++ b/sandbox/integration/commons/pom.xml
@@ -21,7 +21,7 @@ under the License.
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <groupId>org.apache.tamaya.ext.integration</groupId>
+        <groupId>org.apache.tamaya.ext</groupId>
         <artifactId>tamaya-integrations</artifactId>
         <version>0.1-incubating-SNAPSHOT</version>
         <relativePath>..</relativePath>

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/sandbox/integration/pom.xml
----------------------------------------------------------------------
diff --git a/sandbox/integration/pom.xml b/sandbox/integration/pom.xml
index c239396..476fffd 100644
--- a/sandbox/integration/pom.xml
+++ b/sandbox/integration/pom.xml
@@ -29,7 +29,7 @@ under the License.
 
     <packaging>pom</packaging>
     <modelVersion>4.0.0</modelVersion>
-    <groupId>org.apache.tamaya.ext.integration</groupId>
+    <groupId>org.apache.tamaya.ext</groupId>
     <artifactId>tamaya-integrations</artifactId>
 
     <modules>

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/sandbox/management/pom.xml
----------------------------------------------------------------------
diff --git a/sandbox/management/pom.xml b/sandbox/management/pom.xml
index bdab1d7..07812e1 100644
--- a/sandbox/management/pom.xml
+++ b/sandbox/management/pom.xml
@@ -28,13 +28,13 @@ under the License.
     </parent>
 
     <artifactId>tamaya-management</artifactId>
-    <name>Apache Tamaya Modules Integration - Java Management Extensions</name>
+    <name>Apache Tamaya Modules - Java Management Extensions</name>
     <packaging>jar</packaging>
 
     <dependencies>
         <dependency>
             <groupId>org.apache.tamaya</groupId>
-            <artifactId>tamaya-core</artifactId>
+            <artifactId>tamaya-api</artifactId>
             <version>${project.version}</version>
         </dependency>
     </dependencies>

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/sandbox/management/src/main/java/org/apache/tamaya/management/ManagedConfig.java
----------------------------------------------------------------------
diff --git a/sandbox/management/src/main/java/org/apache/tamaya/management/ManagedConfig.java b/sandbox/management/src/main/java/org/apache/tamaya/management/ManagedConfig.java
new file mode 100644
index 0000000..b991690
--- /dev/null
+++ b/sandbox/management/src/main/java/org/apache/tamaya/management/ManagedConfig.java
@@ -0,0 +1,95 @@
+/*
+ * 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.se;
+
+import org.apache.tamaya.ConfigException;
+import org.apache.tamaya.AggregationPolicy;
+
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * Created by Anatole on 24.11.2014.
+ */
+public class ManagedConfig implements ManagedConfigMBean{
+    @Override
+    public Set<String> getConfigurationNames() {
+        return null;
+    }
+
+    @Override
+    public String getConfigurationInfo(String configName) {
+        return null;
+    }
+
+    @Override
+    public boolean isConfigurationAvailable(String configName, String envType, String context) {
+        return false;
+    }
+
+    @Override
+    public boolean isConfigurationLoaded(String configName, String envType, String context) {
+        return false;
+    }
+
+    @Override
+    public Map<String, String> getConfiguration(String configName, String envType, String context) throws ConfigException {
+        return null;
+    }
+
+    @Override
+    public Map<String, String> getRecursiveConfigValues(String area, String configName, String envType, String context) throws ConfigException {
+        return null;
+    }
+
+    @Override
+    public Map<String, String> getConfigValues(String area, String configName, String envType, String context) throws ConfigException {
+        return null;
+    }
+
+    @Override
+    public Map<String, String> updateConfiguration(String configName, String envType, String context, Map<String, String> values, AggregationPolicy aggregationPolicy) throws ConfigException {
+        return null;
+    }
+
+    @Override
+    public String getConfigurationInfo(String configName, String envType, String context) {
+        return null;
+    }
+
+    @Override
+    public Set<String> getAreas(String configName, String envType, String context) {
+        return null;
+    }
+
+    @Override
+    public Set<String> getTransitiveAreas(String configName, String envType, String context) {
+        return null;
+    }
+
+    @Override
+    public boolean isAreaExisting(String area, String configName, String envType, String context) {
+        return false;
+    }
+
+    @Override
+    public boolean isAreaEmpty(String area, String configName, String envType, String context) {
+        return false;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/sandbox/management/src/main/java/org/apache/tamaya/management/ManagedConfigMBean.java
----------------------------------------------------------------------
diff --git a/sandbox/management/src/main/java/org/apache/tamaya/management/ManagedConfigMBean.java b/sandbox/management/src/main/java/org/apache/tamaya/management/ManagedConfigMBean.java
new file mode 100644
index 0000000..c2ade13
--- /dev/null
+++ b/sandbox/management/src/main/java/org/apache/tamaya/management/ManagedConfigMBean.java
@@ -0,0 +1,176 @@
+/*
+ * 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.se;
+
+
+import org.apache.tamaya.ConfigException;
+import org.apache.tamaya.AggregationPolicy;
+
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * Managed bean interface for accessing environment data.
+ */
+public interface ManagedConfigMBean {
+    /**
+     * Get the names current the configuration's defined.
+     *
+     * @return the names current the configuration's defined.
+     */
+    public Set<String> getConfigurationNames();
+
+    /**
+     * Get a general configuration info descriptor in JSON format for a configuration
+     * type in the following form:
+     * <pre>
+     *     tbd
+     * </pre>
+     *
+     * @param configName the configuration name, not null.
+     * @return a JSON formatted meta-information.
+     */
+    public String getConfigurationInfo(String configName);
+
+    /**
+     * Allows to determine if a configuration current a given type is available (accessible) in the
+     * given environment context.
+     *
+     * @param configName the configuration name, not null.
+     * @param envType        the environment context, not null.
+     * @param envContext        the environment context, not null.
+     * @return true, if such a configuration is accessible.
+     */
+    public boolean isConfigurationAvailable(String configName, String envType, String envContext);
+
+    /**
+     * Allows to determine if a configuration current a given type is loaded in the
+     * given environment context.
+     *
+     * @param configName the configuration name, not null.
+     * @param envType        the environment context, not null.
+     * @param envContext        the environment context, not null.
+     * @return true, if such a configuration is accessible.
+     */
+    public boolean isConfigurationLoaded(String configName, String envType, String envContext);
+
+    /**
+     * Accesses a configuration current a given type as Map.
+     *
+     * @param configName the configuration name, not null.
+     * @param envType        the environment context, not null.
+     * @param envContext        the environment context, not null.
+     * @return true, if such a configuration is accessible.
+     * @throws org.apache.tamaya.ConfigException If the configuration is not yet loaded.
+     */
+    public Map<String, String> getConfiguration(String configName, String envType, String envContext)
+            throws ConfigException;
+
+    /**
+     * Accesses a configuration values for current a given config area as Map.
+     * @param area the target area key, not null.
+     * @param configName the configuration name, not null.
+     * @param envType        the environment context, not null.
+     * @param envContext        the environment context, not null.
+     * @return the key/values found, including the recursive child values.
+     * @throws org.apache.tamaya.ConfigException If the configuration is not yet loaded.
+     */
+    public Map<String, String> getRecursiveConfigValues(String area, String configName, String envType, String envContext)
+            throws ConfigException;
+
+    /**
+     * Accesses a configuration values for current a given config area as Map.
+     * @param area the target area key, not null.
+     * @param configName the configuration name, not null.
+     * @param envType        the environment context, not null.
+     * @param envContext        the environment context, not null.
+     * @return the key/values found, not transitive.
+     * @throws org.apache.tamaya.ConfigException If the configuration is not yet loaded.
+     */
+    public Map<String, String> getConfigValues(String area, String configName, String envType, String envContext)
+            throws ConfigException;
+
+    /**
+     * Updates a configuration current a given type.
+     *
+     * @param configName        the configuration name, not null.
+     * @param envType        the environment context, not null.
+     * @param envContext        the environment context, not null.
+     * @param values            the values to be changed.
+     * @param aggregationPolicy the aggregation Policy to be used.
+     * @return the configuration after the changesd have been applied.
+     * @throws org.apache.tamaya.ConfigException If the configuration is not yet loaded, or not
+     *                                           mutable.
+     */
+    public Map<String, String> updateConfiguration(String configName, String envType, String envContext, Map<String, String> values, AggregationPolicy aggregationPolicy)
+            throws ConfigException;
+
+    /**
+     * Access a JSON formatted info on a configuration loaded in the form as
+     * <pre>
+     *     tbd
+     * </pre>
+     * @param configName        the configuration name, not null.
+     * @param envType        the environment context, not null.
+     * @param envContext        the environment context, not null.
+     * @return the JSON formatted info, never null.
+     * @throws org.apache.tamaya.ConfigException If the configuration is not yet loaded
+     */
+    public String getConfigurationInfo(String configName, String envType, String envContext);
+
+    /**
+     * Access the defined areas for a given configuration.
+     * @param configName        the configuration name, not null.
+     * @param envContext        the environment context, not null.
+     * @return the areas defined (only returning the areas that contain properties).
+     * @throws org.apache.tamaya.ConfigException If the configuration is not yet loaded
+     */
+    public Set<String> getAreas(String configName, String envType, String envContext);
+
+    /**
+     * Access the transitive areas for a given configuration.
+     * @param configName        the configuration name, not null.
+     * @param envType        the environment context, not null.
+     * @param envContext        the environment context, not null.
+     * @return the transitive areas defined.
+     * @throws org.apache.tamaya.ConfigException If the configuration is not yet loaded
+     */
+    public Set<String> getTransitiveAreas(String configName, String envType, String envContext);
+
+    /**
+     * Allows to determine if an area is existing.
+     * @param area the target area key, not null.
+     * @param configName        the configuration name, not null.
+     * @param envType        the environment context, not null.
+     * @param envContext        the environment context, not null.
+     * @return true, if such an area exists (the area may be empty).
+     */
+    public boolean isAreaExisting(String area, String configName, String envType, String envContext);
+
+    /**
+     * Allows to determine if an area is empty.
+     * @param area the target area key, not null.
+     * @param configName        the configuration name, not null.
+     * @param envType        the environment context, not null.
+     * @param envContext        the environment context, not null.
+     * @return true, if such an area exists and is not empty.
+     */
+    public boolean isAreaEmpty(String area, String configName, String envType, String envContext);
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/sandbox/management/src/main/java/org/apache/tamaya/management/ManagedEnvironment.java
----------------------------------------------------------------------
diff --git a/sandbox/management/src/main/java/org/apache/tamaya/management/ManagedEnvironment.java b/sandbox/management/src/main/java/org/apache/tamaya/management/ManagedEnvironment.java
new file mode 100644
index 0000000..e85b1c1
--- /dev/null
+++ b/sandbox/management/src/main/java/org/apache/tamaya/management/ManagedEnvironment.java
@@ -0,0 +1,69 @@
+/*
+ * 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.se;
+
+import org.apache.tamaya.Environment;
+
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+
+/**
+ * MBean implementation for accessing environment data.
+ * Created by Anatole on 24.11.2014.
+ */
+public class ManagedEnvironment implements ManagedEnvironmentMBean{
+
+    @Override
+    public List<String> getEnvironmentHierarchy() {
+        return Environment.getEnvironmentHierarchy();
+    }
+
+    @Override
+    public String getEnvironmentInfo(String environmentContext) {
+        try {
+            // TODO
+            return "EnvironmentInfo {}";
+        }
+        catch(Exception e){
+            // TODO logging
+            return "EnvironmentInfo{}";
+        }
+    }
+
+    @Override
+    public Map<String, String> getEnvironment(String environmentType, String context) {
+        try {
+            Optional<Environment> env = Environment.getInstance(environmentType, context);
+            if (env.isPresent()) {
+                return env.get().toMap();
+            }
+        } catch (Exception e) {
+            // TODO logging
+        }
+        return Collections.emptyMap();
+    }
+
+    @Override
+    public String getEnvironmentInfo() {
+        // TODO
+        return "EnvironmentInfo {}";
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/sandbox/management/src/main/java/org/apache/tamaya/management/ManagedEnvironmentMBean.java
----------------------------------------------------------------------
diff --git a/sandbox/management/src/main/java/org/apache/tamaya/management/ManagedEnvironmentMBean.java b/sandbox/management/src/main/java/org/apache/tamaya/management/ManagedEnvironmentMBean.java
new file mode 100644
index 0000000..b7cdfc3
--- /dev/null
+++ b/sandbox/management/src/main/java/org/apache/tamaya/management/ManagedEnvironmentMBean.java
@@ -0,0 +1,88 @@
+/*
+ * 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.se;
+
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Managed bean interface for accessing environment data.
+ */
+public interface ManagedEnvironmentMBean {
+
+    /**
+     * Returns the current environment hierarchy defined.
+     * @see org.apache.tamaya.Environment#getEnvironmentType()
+     * @see org.apache.tamaya.Environment#getEnvironmentHierarchy()
+     * @return the current environment type hierarchy defined, never null.
+     */
+    public List<String> getEnvironmentHierarchy();
+
+    /**
+     * Get the common environment information in JSON format, which has the following form:
+     * <pre>
+     * Environment {
+     *     id: "system:VM,domain:testdata",
+     *     metaInfo {
+     *         a: "aValue",
+     *         b: "bValue"
+     *     }
+     *     entries{
+     *         val1: "value1",
+     *         val2: "value2",
+     *     }
+     * }
+     * </pre>
+     * @see org.apache.tamaya.Environment
+     * @param environmentContext the identifier to access the environment instance
+     * @return the environment JSON info, or null, if no such environment is accessible.
+     */
+    public String getEnvironmentInfo(String environmentContext);
+
+    /**
+     * Access the given environment as Map. the {@code environmentContext} is added to the
+     * map using the key {@code __environmentId}.
+     * @param environmentContext the identifier to access the environment instance
+     * @param context the context, not null.
+     * @return a map with the currently defined environment keys and values.
+     */
+    public Map<String,String> getEnvironment(String environmentContext, String context);
+
+    /**
+     * Get a general JSON info on the currently available environments current the form:
+     * <pre>
+     *     EnvironmentInfo{
+     *         host: "hostName",
+     *         ipAddress: "111.112.123.123",
+     *         typeHierarchy: {"system", "domain", "ear", "war", "saas-scope", "tenant"}
+     *         environments {
+     *             Environment {
+     *                 id: "system:VM,domain:testdata",
+     *                 ...
+     *             },
+     *             ...
+     *         }
+     *     }
+     * </pre>
+     * @return
+     */
+    public String getEnvironmentInfo();
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/sandbox/management/src/main/resources/META-INF/beans.xml
----------------------------------------------------------------------
diff --git a/sandbox/management/src/main/resources/META-INF/beans.xml b/sandbox/management/src/main/resources/META-INF/beans.xml
new file mode 100644
index 0000000..adee378
--- /dev/null
+++ b/sandbox/management/src/main/resources/META-INF/beans.xml
@@ -0,0 +1,24 @@
+<?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.
+-->
+<beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://jboss.org/schema/cdi/beans_1_0.xsd">
+
+</beans>
+

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/sandbox/management/src/test/resources/META-INF/beans.xml
----------------------------------------------------------------------
diff --git a/sandbox/management/src/test/resources/META-INF/beans.xml b/sandbox/management/src/test/resources/META-INF/beans.xml
new file mode 100644
index 0000000..adee378
--- /dev/null
+++ b/sandbox/management/src/test/resources/META-INF/beans.xml
@@ -0,0 +1,24 @@
+<?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.
+-->
+<beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://jboss.org/schema/cdi/beans_1_0.xsd">
+
+</beans>
+

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/sandbox/pom.xml
----------------------------------------------------------------------
diff --git a/sandbox/pom.xml b/sandbox/pom.xml
index 4e0c2df..8efd9e4 100644
--- a/sandbox/pom.xml
+++ b/sandbox/pom.xml
@@ -39,6 +39,9 @@ under the License.
         <module>integration</module>
         <module>management</module>
         <module>jodatime</module>
+        <module>functions</module>
+        <module>sysprops</module>
+        <module>environment</module>
     </modules>
 
 </project>

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/sandbox/sysprops/pom.xml
----------------------------------------------------------------------
diff --git a/sandbox/sysprops/pom.xml b/sandbox/sysprops/pom.xml
new file mode 100644
index 0000000..6e62b39
--- /dev/null
+++ b/sandbox/sysprops/pom.xml
@@ -0,0 +1,71 @@
+<!--
+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-sandbox</artifactId>
+        <version>0.1-incubating-SNAPSHOT</version>
+        <relativePath>..</relativePath>
+    </parent>
+    <artifactId>tamaya-sysprops</artifactId>
+    <name>Apache Tamaya - Configured Java SE System Properties</name>
+    <packaging>jar</packaging>
+
+    <properties>
+    </properties>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.jacoco</groupId>
+                <artifactId>jacoco-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>prepare-agent</id>
+                        <goals>
+                            <goal>prepare-agent</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+
+    <dependencies>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>tamaya-api</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>tamaya-core</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+    </dependencies>
+
+</project>

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/sandbox/sysprops/src/main/java/org/apache/tamaya/integration/se/ConfiguredSystemProperties.java
----------------------------------------------------------------------
diff --git a/sandbox/sysprops/src/main/java/org/apache/tamaya/integration/se/ConfiguredSystemProperties.java b/sandbox/sysprops/src/main/java/org/apache/tamaya/integration/se/ConfiguredSystemProperties.java
new file mode 100644
index 0000000..cdef5be
--- /dev/null
+++ b/sandbox/sysprops/src/main/java/org/apache/tamaya/integration/se/ConfiguredSystemProperties.java
@@ -0,0 +1,353 @@
+/*
+ * 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.integration.se;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.PrintStream;
+import java.io.PrintWriter;
+import java.io.Reader;
+import java.io.Writer;
+import java.util.Collection;
+import java.util.Enumeration;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.function.BiConsumer;
+import java.util.function.BiFunction;
+import java.util.function.Function;
+import java.util.function.Supplier;
+import java.util.logging.Logger;
+
+import org.apache.tamaya.Configuration;
+import org.apache.tamaya.Environment;
+
+/**
+ * Properties implementation class that can be applied as current System properties by calling
+ * {@link ConfiguredSystemProperties#install()}. The system properties will
+ * then behave contextually depending on the current runtime configuration active.
+ */
+public class ConfiguredSystemProperties extends Properties {
+
+	private static final long serialVersionUID = 2152870929299226804L;
+
+	private static final Logger LOG = Logger.getLogger(ConfiguredSystemProperties.class.getName());
+    private Properties initialProperties;
+    private static volatile Map<String, Properties> contextualProperties = new ConcurrentHashMap<>();
+    private static volatile Supplier<String> contextProvider = () ->
+            Environment.current().get("context.id").orElse("<system>");
+
+
+    private final Object LOCK = new Object();
+
+
+    private ConfiguredSystemProperties(Properties initialProperties) {
+        super(initialProperties);
+        this.initialProperties = initialProperties;
+    }
+
+    public static void install() {
+        Properties props = System.getProperties();
+        if (props instanceof ConfiguredSystemProperties) {
+            return;
+        }
+        ConfiguredSystemProperties systemProps = new ConfiguredSystemProperties(props);
+        LOG.finest("Installing enhanced system properties...");
+        System.setProperties(systemProps);
+        LOG.info("Installed enhanced system properties successfully.");
+    }
+
+    public static void uninstall() {
+        Properties props = System.getProperties();
+        if (props instanceof ConfiguredSystemProperties) {
+            Properties initialProperties = ((ConfiguredSystemProperties) props).initialProperties;
+            LOG.finest("Uninstalling enhanced system properties...");
+            System.setProperties(initialProperties);
+            LOG.info("Uninstalled enhanced system properties successfully.");
+        }
+    }
+
+    @Override
+    public String getProperty(String key) {
+        return getContextualProperties().getProperty(key);
+    }
+
+    @Override
+    public String getProperty(String key, String defaultValue) {
+        return getContextualProperties().getProperty(key, defaultValue);
+    }
+
+    @Override
+    public Enumeration<?> propertyNames() {
+        return getContextualProperties().propertyNames();
+    }
+
+    @Override
+    public Set<String> stringPropertyNames() {
+        return getContextualProperties().stringPropertyNames();
+    }
+
+    @Override
+    public synchronized int size() {
+        return getContextualProperties().size();
+    }
+
+    @Override
+    public synchronized Enumeration<Object> keys() {
+        return getContextualProperties().keys();
+    }
+
+    @Override
+    public synchronized Enumeration<Object> elements() {
+        return getContextualProperties().elements();
+    }
+
+    @Override
+    public synchronized boolean contains(Object value) {
+        return getContextualProperties().contains(value);
+    }
+
+    @Override
+    public boolean containsValue(Object value) {
+        return getContextualProperties().containsValue(value);
+    }
+
+    @Override
+    public synchronized boolean containsKey(Object key) {
+        return getContextualProperties().containsKey(key);
+    }
+
+    @Override
+    public synchronized Object get(Object key) {
+        return getContextualProperties().get(key);
+    }
+
+    @Override
+    public synchronized Object clone() {
+        return getContextualProperties().clone();
+    }
+
+    @Override
+    public Set<Object> keySet() {
+        return getContextualProperties().keySet();
+    }
+
+    @Override
+    public Set<Map.Entry<Object, Object>> entrySet() {
+        return getContextualProperties().entrySet();
+    }
+
+    @Override
+    public Collection<Object> values() {
+        return getContextualProperties().values();
+    }
+
+
+    @Override
+    public Object getOrDefault(Object key, Object defaultValue) {
+        return getContextualProperties().getOrDefault(key, defaultValue);
+    }
+
+    @Override
+    public void forEach(BiConsumer<? super Object, ? super Object> action) {
+        getContextualProperties().forEach(action);
+    }
+
+
+    @Override
+    public Object computeIfAbsent(Object key, Function<? super Object, ?> mappingFunction) {
+        return getContextualProperties().computeIfAbsent(key, mappingFunction);
+    }
+
+    @Override
+    public synchronized Object computeIfPresent(Object key, BiFunction<? super Object, ? super Object, ?> remappingFunction) {
+        return getContextualProperties().computeIfPresent(key, remappingFunction);
+    }
+
+    @Override
+    public synchronized Object compute(Object key, BiFunction<? super Object, ? super Object, ?> remappingFunction) {
+        return getContextualProperties().compute(key, remappingFunction);
+    }
+
+    @Override
+    public String toString() {
+        return getContextualProperties().toString();
+    }
+
+    @Override
+    public synchronized Object setProperty(String key, String value) {
+        return getContextualProperties().setProperty(key, value);
+    }
+
+    @Override
+    public synchronized void load(Reader reader) throws IOException {
+        getContextualProperties().load(reader);
+    }
+
+    @Override
+    public synchronized void load(InputStream inStream) throws IOException {
+        getContextualProperties().load(inStream);
+    }
+
+    @SuppressWarnings("deprecation")
+	@Override
+    public void save(OutputStream out, String comments) {
+        super.save(out, comments);
+    }
+
+    @Override
+    public void store(Writer writer, String comments) throws IOException {
+        getContextualProperties().store(writer, comments);
+    }
+
+    @Override
+    public void store(OutputStream out, String comments) throws IOException {
+        getContextualProperties().store(out, comments);
+    }
+
+    @Override
+    public void loadFromXML(InputStream in) throws IOException {
+        getContextualProperties().loadFromXML(in);
+    }
+
+    @Override
+    public void storeToXML(OutputStream os, String comment) throws IOException {
+        getContextualProperties().storeToXML(os, comment);
+    }
+
+    @Override
+    public void storeToXML(OutputStream os, String comment, String encoding) throws IOException {
+        getContextualProperties().storeToXML(os, comment, encoding);
+    }
+
+    @Override
+    public void list(PrintStream out) {
+        getContextualProperties().list(out);
+    }
+
+    @Override
+    public void list(PrintWriter out) {
+        getContextualProperties().list(out);
+    }
+
+    @Override
+    public boolean isEmpty() {
+        return getContextualProperties().isEmpty();
+    }
+
+    @Override
+    public Object put(Object key, Object value) {
+        return getContextualProperties().put(key, value);
+    }
+
+    @Override
+    public Object remove(Object key) {
+        return getContextualProperties().remove(key);
+    }
+
+    @Override
+    public void putAll(Map<?, ?> t) {
+        getContextualProperties().putAll(t);
+    }
+
+    @Override
+    public void clear() {
+        getContextualProperties().clear();
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        return getContextualProperties().equals(o);
+    }
+
+    @Override
+    public int hashCode() {
+        return getContextualProperties().hashCode();
+    }
+
+    @Override
+    public void replaceAll(BiFunction<? super Object, ? super Object, ?> function) {
+        getContextualProperties().replaceAll(function);
+    }
+
+    @Override
+    public Object putIfAbsent(Object key, Object value) {
+        return getContextualProperties().putIfAbsent(key, value);
+    }
+
+    @Override
+    public boolean remove(Object key, Object value) {
+        return getContextualProperties().remove(key, value);
+    }
+
+    @Override
+    public boolean replace(Object key, Object oldValue, Object newValue) {
+        return getContextualProperties().replace(key, oldValue, newValue);
+    }
+
+    @Override
+    public Object replace(Object key, Object value) {
+        return getContextualProperties().replace(key, value);
+    }
+
+    @Override
+    public Object merge(Object key, Object value, BiFunction<? super Object, ? super Object, ?> remappingFunction) {
+        return getContextualProperties().merge(key, value, remappingFunction);
+    }
+
+    public Properties getInitialProperties() {
+        return initialProperties;
+    }
+
+    /**
+     * Uninstalls the contextual system properties for the current context, as determined by the current
+     * context provider active.
+     */
+    public static void resetProperties() {
+        String contextId = contextProvider == null ? "" : contextProvider.get();
+        contextualProperties.remove(contextId);
+    }
+
+    protected Properties getContextualProperties() {
+        String contextId = contextProvider == null ? "" : contextProvider.get();
+        Properties props = ConfiguredSystemProperties.contextualProperties.get(contextId);
+        if (props == null) {
+            synchronized (LOCK) {
+                props = ConfiguredSystemProperties.contextualProperties.get(contextId);
+                if (props == null) {
+                    props = createNewProperties();
+                    contextualProperties.put(contextId, props);
+                }
+            }
+        }
+        return props;
+    }
+
+    protected Properties createNewProperties() {
+        Properties props = new Properties(initialProperties);
+        Configuration config = Configuration.current();
+        Map<String, String> configMap = config.getProperties();
+        for (Map.Entry<String, String> en : configMap.entrySet()) {
+            props.put(en.getKey(), en.getValue());
+        }
+        return props;
+    }
+}


[04/10] incubator-tamaya git commit: Removed unused dormant parts. Moved usable dormant utils into new sandbox module. Fixed jqassistant issues in simple metamodel module.

Posted by an...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/modules/metamodels/environment/src/main/java/org/apache/tamaya/metamodel/environment/internal/InitialEnvironmentProvider.java
----------------------------------------------------------------------
diff --git a/dormant/modules/metamodels/environment/src/main/java/org/apache/tamaya/metamodel/environment/internal/InitialEnvironmentProvider.java b/dormant/modules/metamodels/environment/src/main/java/org/apache/tamaya/metamodel/environment/internal/InitialEnvironmentProvider.java
deleted file mode 100644
index 9321539..0000000
--- a/dormant/modules/metamodels/environment/src/main/java/org/apache/tamaya/metamodel/environment/internal/InitialEnvironmentProvider.java
+++ /dev/null
@@ -1,74 +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.metamodel.environment.internal;
-
-import java.net.InetAddress;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Properties;
-import java.util.TimeZone;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import org.apache.tamaya.core.env.ConfiguredSystemProperties;
-import org.apache.tamaya.metamodel.environment.EnvironmentBuilder;
-import org.apache.tamaya.metamodel.environment.spi.EnvironmentProvider;
-
-/**
- * Default {@link org.apache.tamaya.metamodel.environment.Environment}.
- */
-public final class InitialEnvironmentProvider implements EnvironmentProvider{
-
-	private Map<String,String> environmentData = new HashMap<>();
-
-	public InitialEnvironmentProvider() {
-        Properties props = System.getProperties();
-        if(props instanceof ConfiguredSystemProperties){
-            props = ((ConfiguredSystemProperties)props).getInitialProperties();
-        }
-        String stageValue =  props.getProperty(EnvironmentBuilder.STAGE_PROP);
-        environmentData.put(EnvironmentBuilder.STAGE_PROP, stageValue);
-        environmentData.put("timezone", TimeZone.getDefault().getID());
-        environmentData.put("locale", Locale.getDefault().toString());
-        try {
-            environmentData.put("host", InetAddress.getLocalHost().toString());
-        } catch (Exception e) {
-            Logger.getLogger(getClass().getName()).log(Level.WARNING, e, () -> "Failed to evaluate hostname.");
-        }
-        // Copy env properties....
-        for (Entry<String, String> en : System.getenv().entrySet()) {
-            environmentData.put(en.getKey(), en.getValue());
-        }
-        environmentData = Collections.unmodifiableMap(environmentData);
-	}
-
-    @Override
-    public boolean isActive(){
-        return true;
-    }
-
-    @Override
-	public Map<String,String> getEnvironmentData() {
-        return environmentData;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/modules/metamodels/environment/src/main/java/org/apache/tamaya/metamodel/environment/internal/SingleEnvironmentManager.java
----------------------------------------------------------------------
diff --git a/dormant/modules/metamodels/environment/src/main/java/org/apache/tamaya/metamodel/environment/internal/SingleEnvironmentManager.java b/dormant/modules/metamodels/environment/src/main/java/org/apache/tamaya/metamodel/environment/internal/SingleEnvironmentManager.java
deleted file mode 100644
index cbf177d..0000000
--- a/dormant/modules/metamodels/environment/src/main/java/org/apache/tamaya/metamodel/environment/internal/SingleEnvironmentManager.java
+++ /dev/null
@@ -1,70 +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.metamodel.environment.internal;
-
-
-import org.apache.tamaya.metamodel.environment.Environment;
-import org.apache.tamaya.metamodel.environment.EnvironmentBuilder;
-import org.apache.tamaya.metamodel.environment.spi.EnvironmentProvider;
-import org.apache.tamaya.metamodel.environment.spi.EnvironmentSpi;
-import org.apache.tamaya.spi.ServiceContext;
-
-import java.util.*;
-
-/**
- * Service for accessing {@link org.apache.tamaya.metamodel.environment.Environment}. Environments are used to
- * access/determine configurations.<br/>
- * <h3>Implementation PropertyMapSpec</h3> This class is
- * <ul>
- * <li>thread safe,
- * <li>and behaves contextual.
- * </ul>
- */
-public class SingleEnvironmentManager implements EnvironmentSpi {
-
-    private final List<EnvironmentProvider> environmentProviders = loadEnvironmentProviders();
-    private Environment rootEnvironment = getCurrentEnvironment();
-
-    private List<EnvironmentProvider> loadEnvironmentProviders() {
-        List<EnvironmentProvider> providerList = new ArrayList<>();
-        for(EnvironmentProvider prov: ServiceContext.getInstance().getServices(EnvironmentProvider.class)){
-            providerList.add(prov);
-        }
-        return providerList;
-    }
-
-    @Override
-    public Environment getCurrentEnvironment(){
-        EnvironmentBuilder b = EnvironmentBuilder.of();
-        for(EnvironmentProvider prov: environmentProviders){
-            if(prov.isActive()){
-                if(prov.isActive()){
-                    b.setAll(prov.getEnvironmentData());
-                }
-            }
-        }
-        return b.build();
-    }
-
-    @Override
-    public Environment getRootEnvironment(){
-        return rootEnvironment;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/modules/metamodels/environment/src/main/java/org/apache/tamaya/metamodel/environment/internal/SystemClassLoaderEnvironmentProvider.java
----------------------------------------------------------------------
diff --git a/dormant/modules/metamodels/environment/src/main/java/org/apache/tamaya/metamodel/environment/internal/SystemClassLoaderEnvironmentProvider.java b/dormant/modules/metamodels/environment/src/main/java/org/apache/tamaya/metamodel/environment/internal/SystemClassLoaderEnvironmentProvider.java
deleted file mode 100644
index e943971..0000000
--- a/dormant/modules/metamodels/environment/src/main/java/org/apache/tamaya/metamodel/environment/internal/SystemClassLoaderEnvironmentProvider.java
+++ /dev/null
@@ -1,74 +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.metamodel.environment.internal;
-
-import org.apache.tamaya.core.config.ConfigurationFormats;
-import org.apache.tamaya.core.resource.Resource;
-import org.apache.tamaya.metamodel.environment.spi.EnvironmentProvider;
-import org.apache.tamaya.spi.ServiceContext;
-import org.apache.tamaya.core.properties.ConfigurationFormat;
-import org.apache.tamaya.core.resource.ResourceLoader;
-
-
-import java.util.*;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-/**
- * System environment provider (loaded only once using the system class loader) that loads additional environment properties fromMap the classpath evaluating
- * {@code META-INF/env/system.properties, META-INF/env/system.xml and META-INF/env/system.ini}.
- */
-public class SystemClassLoaderEnvironmentProvider implements EnvironmentProvider {
-
-    private static  final Logger LOG = Logger.getLogger(SystemClassLoaderEnvironmentProvider.class.getName());
-
-    private Map<String,String> data = new HashMap<>();
-
-
-    public SystemClassLoaderEnvironmentProvider(){
-        List<Resource> propertyResources = ServiceContext.getInstance().getSingleton(ResourceLoader.class).getResources(ClassLoader.getSystemClassLoader(),
-                "classpath:META-INF/env/system.properties", "classpath:META-INF/env/system.xml", "classpath:META-INF/env/system.ini");
-        for(Resource resource:propertyResources){
-            try{
-                ConfigurationFormat format = ConfigurationFormats.getFormat(resource);
-                Map<String,String> data = format.readConfiguration(resource);
-                data.putAll(data);
-            }
-            catch(Exception e){
-                LOG.log(Level.INFO, e, () -> "Could not read environment data from " + resource);
-            }
-        }
-        data.put("classloader.type", ClassLoader.getSystemClassLoader().getClass().getName());
-        data.put("classloader.info", ClassLoader.getSystemClassLoader().toString());
-        Set<Resource> resourceSet = new HashSet<>();
-        resourceSet.addAll(propertyResources);
-        data.put("environment.system.sources", resourceSet.toString());
-        this.data = Collections.unmodifiableMap(data);
-    }
-    @Override
-    public boolean isActive() {
-        return true;
-    }
-
-    @Override
-    public Map<String,String> getEnvironmentData() {
-        return data;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/modules/metamodels/environment/src/main/java/org/apache/tamaya/metamodel/environment/spi/EnvironmentSpi.java
----------------------------------------------------------------------
diff --git a/dormant/modules/metamodels/environment/src/main/java/org/apache/tamaya/metamodel/environment/spi/EnvironmentSpi.java b/dormant/modules/metamodels/environment/src/main/java/org/apache/tamaya/metamodel/environment/spi/EnvironmentSpi.java
deleted file mode 100644
index dbf8f65..0000000
--- a/dormant/modules/metamodels/environment/src/main/java/org/apache/tamaya/metamodel/environment/spi/EnvironmentSpi.java
+++ /dev/null
@@ -1,49 +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.metamodel.environment.spi;
-
-
-import org.apache.tamaya.metamodel.environment.Environment;
-
-/**
- * Service for accessing {@link org.apache.tamaya.metamodel.environment.Environment}. Environments are used to
- * access/determine configurations.<br/>
- * <h3>Implementation PropertyMapSpec</h3> This class is
- * <ul>
- * <li>thread safe,
- * <li>and behaves contextual.
- * </ul>
- */
-public interface EnvironmentSpi {
-
-    /**
-     * Get the current environment current the given environment type.
-     * @return the corresponding environment, never null.
-     * @throws IllegalArgumentException if not such type is present or active.
-     */
-    Environment getCurrentEnvironment();
-
-    /**
-     * Get the current environment current the given environment type.
-     * @return the corresponding environment, never null.
-     * @throws IllegalArgumentException if not such type is present or active.
-     */
-    Environment getRootEnvironment();
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/modules/metamodels/environment/src/main/resources/META-INF/services/org.apache.tamaya.spi.EnvironmentSpi
----------------------------------------------------------------------
diff --git a/dormant/modules/metamodels/environment/src/main/resources/META-INF/services/org.apache.tamaya.spi.EnvironmentSpi b/dormant/modules/metamodels/environment/src/main/resources/META-INF/services/org.apache.tamaya.spi.EnvironmentSpi
deleted file mode 100644
index 4a5b828..0000000
--- a/dormant/modules/metamodels/environment/src/main/resources/META-INF/services/org.apache.tamaya.spi.EnvironmentSpi
+++ /dev/null
@@ -1,19 +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.
-#
-org.apache.tamaya.metamodel.environment.TestEnvironmentManagerSingleton

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/modules/metamodels/environment/src/test/java/org/apache/tamaya/metamodel/environment/EnvironmentManagerTest.java
----------------------------------------------------------------------
diff --git a/dormant/modules/metamodels/environment/src/test/java/org/apache/tamaya/metamodel/environment/EnvironmentManagerTest.java b/dormant/modules/metamodels/environment/src/test/java/org/apache/tamaya/metamodel/environment/EnvironmentManagerTest.java
deleted file mode 100644
index e9ff31b..0000000
--- a/dormant/modules/metamodels/environment/src/test/java/org/apache/tamaya/metamodel/environment/EnvironmentManagerTest.java
+++ /dev/null
@@ -1,66 +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.metamodel.environment;
-
-import org.apache.tamaya.Environment;
-import org.junit.Test;
-
-
-import static org.junit.Assert.*;
-
-/**
- * Tests for basic {@link org.apache.tamaya.EnvironmentManager} functionality.
- * Created by Anatole on 17.10.2014.
- */
-public class EnvironmentManagerTest {
-
-    @Test
-    public void testGetEnvironment(){
-        Environment env = Environment.current();
-        assertNotNull(env);
-        Environment env2 = Environment.current();
-        assertNotNull(env2);
-        assertFalse("Current Environments requested in same context are not the same!", env==env2);
-    }
-
-    @Test
-    public void testGetRootEnvironment(){
-        Environment env = Environment.root();
-        assertNotNull(env);
-        Environment env2 = Environment.root();
-        assertNotNull(env2);
-        assertTrue("Root Environments requested in same context are not the same!", env==env2);
-    }
-
-    @Test
-    public void testRootIsNotCurrentEnvironment(){
-        Environment env1 = Environment.root();
-        Environment env2 = Environment.current();
-        assertNotNull(env1);
-        assertNotNull(env2);
-        // within this testdata environment these are always the same
-        assertEquals(env1, env2);
-    }
-
-    @Test
-    public void testEnvironmentOverride(){
-        assertEquals(Environment.root().get("user.country").get(),System.getProperty("user.country"));
-        assertEquals(Environment.current().get("user.country").get(), System.getProperty("user.country"));
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/modules/metamodels/environment/src/test/java/org/apache/tamaya/metamodel/environment/TestEnvironmentManagerSingleton.java
----------------------------------------------------------------------
diff --git a/dormant/modules/metamodels/environment/src/test/java/org/apache/tamaya/metamodel/environment/TestEnvironmentManagerSingleton.java b/dormant/modules/metamodels/environment/src/test/java/org/apache/tamaya/metamodel/environment/TestEnvironmentManagerSingleton.java
deleted file mode 100644
index 83a6056..0000000
--- a/dormant/modules/metamodels/environment/src/test/java/org/apache/tamaya/metamodel/environment/TestEnvironmentManagerSingleton.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.metamodel.environment;
-
-import org.apache.tamaya.metamodel.environment.spi.EnvironmentSpi;
-
-/**
- * Created by Anatole on 12.09.2014.
- */
-public class TestEnvironmentManagerSingleton implements EnvironmentSpi {
-    @Override
-    public Environment getCurrentEnvironment(){
-        return null;
-    }
-
-    @Override
-    public Environment getRootEnvironment(){
-        return null;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/modules/metamodels/environment/src/test/java/org/apache/tamaya/metamodel/environment/TestEnvironmentProvider.java
----------------------------------------------------------------------
diff --git a/dormant/modules/metamodels/environment/src/test/java/org/apache/tamaya/metamodel/environment/TestEnvironmentProvider.java b/dormant/modules/metamodels/environment/src/test/java/org/apache/tamaya/metamodel/environment/TestEnvironmentProvider.java
deleted file mode 100644
index 7524a80..0000000
--- a/dormant/modules/metamodels/environment/src/test/java/org/apache/tamaya/metamodel/environment/TestEnvironmentProvider.java
+++ /dev/null
@@ -1,48 +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.metamodel.environment;
-
-import org.apache.tamaya.core.spi.EnvironmentProvider;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * Environment provider used by some tests.
- */
-public class TestEnvironmentProvider implements EnvironmentProvider {
-    private Map<String, String> data = new HashMap<>();
-
-    public TestEnvironmentProvider(){
-        data.put("user.country", System.getProperty("user.country"));
-        data.put("java.version", System.getProperty("java.version"));
-        data = Collections.unmodifiableMap(data);
-    }
-
-    @Override
-    public boolean isActive() {
-        return true;
-    }
-
-    @Override
-    public Map<String, String> getEnvironmentData() {
-        return data;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/modules/metamodels/simple/src/main/resources/META-INF/services/old.ConfigurationProviderSpi
----------------------------------------------------------------------
diff --git a/dormant/modules/metamodels/simple/src/main/resources/META-INF/services/old.ConfigurationProviderSpi b/dormant/modules/metamodels/simple/src/main/resources/META-INF/services/old.ConfigurationProviderSpi
deleted file mode 100644
index b3a2634..0000000
--- a/dormant/modules/metamodels/simple/src/main/resources/META-INF/services/old.ConfigurationProviderSpi
+++ /dev/null
@@ -1,19 +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.
-#
-org.apache.tamaya.metamodel.simple.SimpleConfigProvider
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/pom.xml
----------------------------------------------------------------------
diff --git a/dormant/pom.xml b/dormant/pom.xml
deleted file mode 100644
index 434563e..0000000
--- a/dormant/pom.xml
+++ /dev/null
@@ -1,35 +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 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.
--->
-<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-all</artifactId>
-        <version>0.1-SNAPSHOT</version>
-    </parent>
-
-    <artifactId>buildtools</artifactId>
-    <name>Apache Tamaya - Build Tools</name>
-
-    
-</project>

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/modules/metamodels/simple/src/main/resources/META-INF/services/org.apache.tamaya.spi.PropertySourceProvider
----------------------------------------------------------------------
diff --git a/modules/metamodels/simple/src/main/resources/META-INF/services/org.apache.tamaya.spi.PropertySourceProvider b/modules/metamodels/simple/src/main/resources/META-INF/services/org.apache.tamaya.spi.PropertySourceProvider
new file mode 100644
index 0000000..b3a2634
--- /dev/null
+++ b/modules/metamodels/simple/src/main/resources/META-INF/services/org.apache.tamaya.spi.PropertySourceProvider
@@ -0,0 +1,19 @@
+#
+# 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.
+#
+org.apache.tamaya.metamodel.simple.SimpleConfigProvider
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/sandbox/environment/pom.xml
----------------------------------------------------------------------
diff --git a/sandbox/environment/pom.xml b/sandbox/environment/pom.xml
new file mode 100644
index 0000000..7773c43
--- /dev/null
+++ b/sandbox/environment/pom.xml
@@ -0,0 +1,42 @@
+<!-- 
+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-sandbox</artifactId>
+        <version>0.1-incubating-SNAPSHOT</version>
+        <relativePath>..</relativePath>
+    </parent>
+
+    <artifactId>tamaya-environment</artifactId>
+    <name>Apache Tamaya Modules - Environment Manager</name>
+    <packaging>jar</packaging>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.tamaya</groupId>
+            <artifactId>tamaya-api</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+    </dependencies>
+
+</project>

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/sandbox/environment/src/main/java/org/apache/tamaya/environment/BuildableRuntimeContext.java
----------------------------------------------------------------------
diff --git a/sandbox/environment/src/main/java/org/apache/tamaya/environment/BuildableRuntimeContext.java b/sandbox/environment/src/main/java/org/apache/tamaya/environment/BuildableRuntimeContext.java
new file mode 100644
index 0000000..009b5e2
--- /dev/null
+++ b/sandbox/environment/src/main/java/org/apache/tamaya/environment/BuildableRuntimeContext.java
@@ -0,0 +1,113 @@
+/*
+ * 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.metamodel.environment;
+
+import java.util.Map;
+import java.util.Objects;
+import java.util.TreeMap;
+
+/**
+ * Environment class that is used by the {@link org.apache.tamaya.environment.RuntimeContextBuilder}.
+ */
+class BuildableRuntimeContext implements RuntimeContext {
+
+    /**
+     * The environment data.
+     */
+    private Map<String, String> context = new TreeMap<>();
+
+    /**
+     * Constructor.
+     *
+     * @param builder the builder, not null.
+     */
+    BuildableRuntimeContext(EnvironmentBuilder builder) {
+        Objects.requireNonNull(builder);
+        context.putAll(builder.contextData);
+    }
+
+    @Override
+    public Map<String, String> toMap() {
+        return context;
+    }
+
+    @Override
+    public String get(String key) {
+        return context.get(key);
+    }
+
+    @Override
+    public String get(String key, String defaultValue) {
+        return context.getOrDefault(key, defaultValue);
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+
+        BuildableEnvironment that = (BuildableEnvironment) o;
+        return context.equals(that.context);
+    }
+
+    @Override
+    public int hashCode() {
+        return context.hashCode();
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see java.lang.Object#toString()
+     */
+    @Override
+    public String toString() {
+        return "RuntimeContext: " + getContextId();
+    }
+
+    /**
+     * Get the delta.
+     *
+     * @return
+     */
+    private String getData() {
+        StringBuilder b = new StringBuilder();
+        for (Map.Entry<String, String> en : this.context.entrySet()) {
+            b.append("    ").append(en.getKey()).append('=').append(escape(en.getValue())).append('\n');
+        }
+        if (b.length() > 0) {
+            b.setLength(b.length() - 1);
+        }
+        return b.toString();
+    }
+
+    /**
+     * Escapes several characters.
+     *
+     * @param value
+     * @return
+     */
+    private String escape(String value) {
+        if (value == null) {
+            return null;
+        }
+        return value.replaceAll("\n", "\\\\n").replaceAll("\r", "\\\\r").replaceAll("\t", "\\\\t")
+                .replaceAll("=", "\\\\=");
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/sandbox/environment/src/main/java/org/apache/tamaya/environment/RuntimeContext.java
----------------------------------------------------------------------
diff --git a/sandbox/environment/src/main/java/org/apache/tamaya/environment/RuntimeContext.java b/sandbox/environment/src/main/java/org/apache/tamaya/environment/RuntimeContext.java
new file mode 100644
index 0000000..48b0691
--- /dev/null
+++ b/sandbox/environment/src/main/java/org/apache/tamaya/environment/RuntimeContext.java
@@ -0,0 +1,83 @@
+/*
+ * 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.metamodel.environment;
+
+import org.apache.tamaya.spi.ServiceContext;
+
+import java.util.Map;
+
+/**
+ * Models a runtime context. Instances current this class are used to
+ * evaluate the correct configuration artifacts or other
+ * context dependent functionality.<br/>
+ * <h3>Implementation Requirements</h3>
+ * <p>
+ * Implementations current this interface must be
+ * <ul>
+ * <li>Thread safe,
+ * <li>Immutable,
+ * <li>Serializable.
+ * </ul>
+ */
+public interface RuntimeContext {
+
+    /**
+     * Returns an id that identifies the current context. Depending on the environment isolation this
+     * can be always the same key (e.g. in a SE use case) or a varying key depending on the current classloader
+     * visible (OSGI, EE environment).
+     * @return the context id, never null.
+     */
+    String getContextId();
+
+    /**
+     * Returns a full (and unique) context id that identifies the current context. Depending on the environment isolation this
+     * can be always the same key (e.g. in a SE use case) or a varying key depending on the current classloader
+     * visible (OSGI, EE environment).
+     * @return the context id, never null.
+     */
+    String getQualifiedContextId();
+
+    /**
+     * Access the parent context.
+     * @return the parent context for this instance, or null, if this is a root context.
+     */
+    RuntimeContext getParentContext();
+
+    /**
+     * Access a runtime context variable.
+     * @param key the key
+     * @return the corresponding value.
+     */
+    String get(String key);
+
+    /**
+     * Access a runtime context variable.
+     * @param key the key
+     * @param defaultValue the default value, returned if no value is present.
+     * @return the corresponding value, or the defaultValue (including null).
+     */
+    String get(String key, String defaultValue);
+
+    /**
+     * Access the context as Map.
+     * @return the Map instance containing the context properties, never null.
+     */
+    Map<String,String> toMap();
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/sandbox/environment/src/main/java/org/apache/tamaya/environment/RuntimeContextBuilder.java
----------------------------------------------------------------------
diff --git a/sandbox/environment/src/main/java/org/apache/tamaya/environment/RuntimeContextBuilder.java b/sandbox/environment/src/main/java/org/apache/tamaya/environment/RuntimeContextBuilder.java
new file mode 100644
index 0000000..1aba76a
--- /dev/null
+++ b/sandbox/environment/src/main/java/org/apache/tamaya/environment/RuntimeContextBuilder.java
@@ -0,0 +1,75 @@
+/*
+ * 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.metamodel.environment;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/**
+* Builder to create new {@link RuntimeContext instances.}
+*/
+public final class RuntimeContextBuilder {
+
+    /** THe environment data. */
+    Map<String,String> contextData = new HashMap<>();
+
+    /**
+     * Constructor.
+     */
+    private RuntimeContextBuilder() {
+    }
+
+    /**
+     * Creates a new buildr instance.
+     * @return the new builder instance.
+     */
+    public static final RuntimeContextBuilder of() {
+        return new RuntimeContextBuilder();
+    }
+
+    /**
+     * Sets a new environment property.
+     * @param key the key, not null.
+     * @param value the keys, not null.
+     * @return the builder for chaining
+     */
+    public RuntimeContextBuilder set(String key, String value){
+        this.contextData.put(key, value);
+        return this;
+    }
+
+    /**
+     * Sets new environment properties.
+     * @param values the key/values, not null.
+     * @return the builder for chaining
+     */
+    public RuntimeContextBuilder setAll(Map<String,String> values){
+        this.contextData.putAll(values);
+        return this;
+    }
+
+    /**
+     * Builds a new Environment.
+     * @return a new Environment, never null.
+     */
+    public RuntimeContext build() {
+        return new BuildableRuntimeContext(this);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/sandbox/environment/src/main/java/org/apache/tamaya/environment/RuntimeContextProvider.java
----------------------------------------------------------------------
diff --git a/sandbox/environment/src/main/java/org/apache/tamaya/environment/RuntimeContextProvider.java b/sandbox/environment/src/main/java/org/apache/tamaya/environment/RuntimeContextProvider.java
new file mode 100644
index 0000000..dcd6cf2
--- /dev/null
+++ b/sandbox/environment/src/main/java/org/apache/tamaya/environment/RuntimeContextProvider.java
@@ -0,0 +1,59 @@
+/*
+ * 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.environment;
+
+import org.apache.tamaya.spi.ServiceContext;
+
+import java.util.Map;
+
+/**
+ * Singleton accessor to the current {@link org.apache.tamaya.metamodel.environment.RuntimeContext}.
+ */
+public final class RuntimeContextProvider {
+
+    private static final ContextSpi contextSpi = loadSpi();
+
+    private static ContextSpi loadSpi(){
+        return ServiceContext.getInstance().getSingleton(org.apache.tamaya.environment.spi.ContextSpi.class);
+    }
+
+    /**
+     * Singleton constructor.
+     */
+    private RuntimeContextProvider(){}
+
+    /**
+     * Get the current {@link org.apache.tamaya.environment.RuntimeContextProvider}. The environment is used to determine the current runtime state, which
+     * is important for returning the correct configuration.
+     * @return the current Environment, never null.
+     */
+    public static RuntimeContext current(){
+        return contextSpi.getCurrentContext();
+    }
+
+    /**
+     * Get the current {@link org.apache.tamaya.environment.RuntimeContextProvider}. The environment is used to determine the current runtime state, which
+     * is important for returning the correct configuration.
+     * @return the current Environment, never null.
+     */
+    public static RuntimeContext root(){
+        return contextSpi.getRootContext();
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/sandbox/environment/src/main/java/org/apache/tamaya/environment/internal/ClassLoaderDependentApplicationEnvironmentProvider.java
----------------------------------------------------------------------
diff --git a/sandbox/environment/src/main/java/org/apache/tamaya/environment/internal/ClassLoaderDependentApplicationEnvironmentProvider.java b/sandbox/environment/src/main/java/org/apache/tamaya/environment/internal/ClassLoaderDependentApplicationEnvironmentProvider.java
new file mode 100644
index 0000000..cc9034e
--- /dev/null
+++ b/sandbox/environment/src/main/java/org/apache/tamaya/environment/internal/ClassLoaderDependentApplicationEnvironmentProvider.java
@@ -0,0 +1,102 @@
+/*
+ * 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.metamodel.environment.internal;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.apache.tamaya.core.config.ConfigurationFormats;
+import org.apache.tamaya.core.resource.Resource;
+import org.apache.tamaya.core.resource.ResourceLoader;
+import org.apache.tamaya.core.properties.ConfigurationFormat;
+import org.apache.tamaya.environment.spi.ContextDataProvider;
+import org.apache.tamaya.metamodel.environment.spi.EnvironmentProvider;
+import org.apache.tamaya.spi.ServiceContext;
+
+/**
+ * Application environment provider that is dependent on the current context classloader and tries to
+ * evaluate {@code META-INF/env/application.properties, META-INF/env/application.xml and META-INF/env/application.ini}.
+ * Only if a property named {@code org.apache.tamaya.env.applicationId} is found, it will
+ * be used as the {@code environmentId} and a corresponding {@link org.apache.tamaya.metamodel.environment.RuntimeContext} instance
+ * is created and attached.
+ */
+public class ClassLoaderDependentApplicationEnvironmentProvider implements ContextDataProvider {
+
+    private static  final Logger LOG = Logger.getLogger(ClassLoaderDependentApplicationEnvironmentProvider.class.getName());
+
+    private Map<ClassLoader, Map<String,String>> contexts = new ConcurrentHashMap<>();
+    private Map<ClassLoader, Boolean> contextsAvailable = new ConcurrentHashMap<>();
+
+    @Override
+    public boolean isActive() {
+        ClassLoader cl = Thread.currentThread().getContextClassLoader();
+        if(cl==null){
+            return false;
+        }
+        Boolean available = this.contextsAvailable.get(cl);
+        if(available!=null && !available){
+            return false;
+        }
+        List<Resource> propertyUris = ServiceContext.getInstance().getSingleton(ResourceLoader.class).getResources(cl,
+                "classpath:META-INF/context/application.properties", "classpath:META-INF/context/application.xml", "classpath:META-INF/context/application.ini");
+        available = !propertyUris.isEmpty();
+        this.contextsAvailable.put(cl, available);
+        return available;
+    }
+
+    @Override
+    public Map<String,String> getEnvironmentData() {
+        ClassLoader cl = Thread.currentThread().getContextClassLoader();
+        if(cl==null){
+            return null;
+        }
+        Map<String,String> data = this.contexts.get(cl);
+        if(data!=null){
+            return data;
+        }
+        List<Resource> propertyUris = ServiceContext.getInstance().getSingleton(ResourceLoader.class).getResources(cl,
+                "classpath:META-INF/context/application.properties", "classpath:META-INF/context/application.xml", "classpath:META-INF/context/application.ini");
+        data = new HashMap<>();
+
+        for(Resource resource:propertyUris){
+            try{
+                ConfigurationFormat format = ConfigurationFormats.getFormat(resource);
+                data.putAll(format.readConfiguration(resource));
+            }
+            catch(Exception e){
+                LOG.log(Level.SEVERE, e, () -> "Error reading application context data fromMap " + resource);
+            }
+        }
+        data.put("classloader.type", cl.getClass().getName());
+        data.put("classloader.info", cl.toString());
+        Set<Resource> uris = new HashSet<>();
+        uris.addAll(propertyUris);
+        data.put("context.sources", uris.toString());
+        data = Collections.unmodifiableMap(data);
+        this.contexts.put(cl, data);
+        return data;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/sandbox/environment/src/main/java/org/apache/tamaya/environment/internal/ClassLoaderDependentEarEnvironmentProvider.java
----------------------------------------------------------------------
diff --git a/sandbox/environment/src/main/java/org/apache/tamaya/environment/internal/ClassLoaderDependentEarEnvironmentProvider.java b/sandbox/environment/src/main/java/org/apache/tamaya/environment/internal/ClassLoaderDependentEarEnvironmentProvider.java
new file mode 100644
index 0000000..6b999cc
--- /dev/null
+++ b/sandbox/environment/src/main/java/org/apache/tamaya/environment/internal/ClassLoaderDependentEarEnvironmentProvider.java
@@ -0,0 +1,108 @@
+/*
+ * 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.metamodel.environment.internal;
+
+import org.apache.tamaya.core.config.ConfigurationFormats;
+import org.apache.tamaya.core.resource.Resource;
+import org.apache.tamaya.metamodel.environment.RuntimeContextBuilder;
+import org.apache.tamaya.metamodel.environment.spi.EnvironmentProvider;
+import org.apache.tamaya.spi.ServiceContext;
+import org.apache.tamaya.core.properties.ConfigurationFormat;
+import org.apache.tamaya.core.resource.ResourceLoader;
+
+
+import java.util.*;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+/**
+ * This class implements a {@link EnvironmentProvider} that tries
+ * to read configuration for an ear deployment located under {@code META-INF/env/ear.properties,
+ * META-INF/env/ear.xml or META-INF/env/ear.ini}. The environment id hereby is defined by a
+ * configuration entry named {@code org.apache.tamaya.core.env.earId}.
+ *
+ * Only if such a configuration with such an {@code earId} is found an {@link org.apache.tamaya.metamodel.environment.RuntimeContext}
+ * is created and attached to the corresponding ear classloader.
+ */
+public class ClassLoaderDependentEarEnvironmentProvider implements EnvironmentProvider {
+
+    private static  final Logger LOG = Logger.getLogger(ClassLoaderDependentEarEnvironmentProvider.class.getName());
+
+//    private static final String EARID_PROP = "environment.earId";
+
+    private Map<ClassLoader, Map<String,String>> contexts = new ConcurrentHashMap<>();
+    private Map<ClassLoader, Boolean> contextsAvailable = new ConcurrentHashMap<>();
+
+    @Override
+    public boolean isActive() {
+        ClassLoader cl = Thread.currentThread().getContextClassLoader();
+        if(cl==null){
+            return false;
+        }
+        Boolean available = this.contextsAvailable.get(cl);
+        if(available!=null && !available){
+            return false;
+        }
+        List<Resource> propertyUris = ServiceContext.getInstance().getSingleton(ResourceLoader.class).getResources(cl,
+                "classpath:META-INF/context/ear.properties", "classpath:META-INF/context/ear.xml", "classpath:META-INF/context/ear.ini");
+        available = !propertyUris.isEmpty();
+        this.contextsAvailable.put(cl, available);
+        return available;
+    }
+
+    @Override
+    public Map<String,String> getEnvironmentData() {
+        ClassLoader cl = Thread.currentThread().getContextClassLoader();
+        if(cl==null){
+            return null;
+        }
+        Map<String,String> data = this.contexts.get(cl);
+        if(data!=null){
+            return data;
+        }
+        List<Resource> resources = ServiceContext.getInstance().getSingleton(ResourceLoader.class).getResources(cl,
+                "classpath:META-INF/context/ear.properties", "classpath:META-INF/context/ear.xml", "classpath:META-INF/context/ear.ini");
+        data = new HashMap<>();
+        for(Resource resource:resources){
+            try{
+                ConfigurationFormat format = ConfigurationFormats.getFormat(resource);
+                Map<String,String> read = format.readConfiguration(resource);
+                data.putAll(read);
+            }
+            catch(Exception e){
+                LOG.log(Level.SEVERE, e, () -> "Error reading ear context data fromMap " + resource);
+            }
+        }
+//        String earId = data.getOrDefault(EARID_PROP, cl.toString());
+        String stageValue =  data.get(RuntimeContextBuilder.STAGE_PROP);
+        if (stageValue != null) {
+            data.put(RuntimeContextBuilder.STAGE_PROP,stageValue);
+        }
+        data.put("classloader.type", cl.getClass().getName());
+        data.put("classloader.info", cl.toString());
+        Set<Resource> resourceSet = new HashSet<>();
+        resourceSet.addAll(resources);
+        data.put("context.sources", resourceSet.toString());
+        data = Collections.unmodifiableMap(data);
+        this.contexts.put(cl, data);
+        return data;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/sandbox/environment/src/main/java/org/apache/tamaya/environment/internal/InitialEnvironmentProvider.java
----------------------------------------------------------------------
diff --git a/sandbox/environment/src/main/java/org/apache/tamaya/environment/internal/InitialEnvironmentProvider.java b/sandbox/environment/src/main/java/org/apache/tamaya/environment/internal/InitialEnvironmentProvider.java
new file mode 100644
index 0000000..bf97d9c
--- /dev/null
+++ b/sandbox/environment/src/main/java/org/apache/tamaya/environment/internal/InitialEnvironmentProvider.java
@@ -0,0 +1,75 @@
+/*
+ * 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.metamodel.environment.internal;
+
+import java.net.InetAddress;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Properties;
+import java.util.TimeZone;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.apache.tamaya.core.env.ConfiguredSystemProperties;
+import org.apache.tamaya.environment.spi.ContextDataProvider;
+import org.apache.tamaya.metamodel.environment.RuntimeContextBuilder;
+import org.apache.tamaya.metamodel.environment.spi.EnvironmentProvider;
+
+/**
+ * Default {@link org.apache.tamaya.metamodel.environment.RuntimeContext}.
+ */
+public final class InitialEnvironmentProvider implements ContextDataProvider{
+
+	private Map<String,String> contextData = new HashMap<>();
+
+	public InitialEnvironmentProvider() {
+        Properties props = System.getProperties();
+        if(props instanceof ConfiguredSystemProperties){
+            props = ((ConfiguredSystemProperties)props).getInitialProperties();
+        }
+        String stageValue =  props.getProperty(RuntimeContextBuilder.STAGE_PROP);
+        contextData.put(RuntimeContextBuilder.STAGE_PROP, stageValue);
+        contextData.put("timezone", TimeZone.getDefault().getID());
+        contextData.put("locale", Locale.getDefault().toString());
+        try {
+            contextData.put("host", InetAddress.getLocalHost().toString());
+        } catch (Exception e) {
+            Logger.getLogger(getClass().getName()).log(Level.WARNING, e, () -> "Failed to evaluate hostname.");
+        }
+        // Copy env properties....
+        for (Entry<String, String> en : System.getenv().entrySet()) {
+            contextData.put(en.getKey(), en.getValue());
+        }
+        contextData = Collections.unmodifiableMap(contextData);
+	}
+
+    @Override
+    public boolean isActive(){
+        return true;
+    }
+
+    @Override
+	public Map<String,String> getContextData() {
+        return contextData;
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/sandbox/environment/src/main/java/org/apache/tamaya/environment/internal/SingleEnvironmentManager.java
----------------------------------------------------------------------
diff --git a/sandbox/environment/src/main/java/org/apache/tamaya/environment/internal/SingleEnvironmentManager.java b/sandbox/environment/src/main/java/org/apache/tamaya/environment/internal/SingleEnvironmentManager.java
new file mode 100644
index 0000000..fb636c7
--- /dev/null
+++ b/sandbox/environment/src/main/java/org/apache/tamaya/environment/internal/SingleEnvironmentManager.java
@@ -0,0 +1,69 @@
+/*
+ * 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.metamodel.environment.internal;
+
+
+import org.apache.tamaya.metamodel.environment.RuntimeContext;
+import org.apache.tamaya.metamodel.environment.RuntimeContextBuilder;
+import org.apache.tamaya.metamodel.environment.spi.EnvironmentProvider;
+import org.apache.tamaya.spi.ServiceContext;
+
+import java.util.*;
+
+/**
+ * Service for accessing {@link org.apache.tamaya.metamodel.environment.RuntimeContext}. Environments are used to
+ * access/determine configurations.<br/>
+ * <h3>Implementation PropertyMapSpec</h3> This class is
+ * <ul>
+ * <li>thread safe,
+ * <li>and behaves contextual.
+ * </ul>
+ */
+public class SingleEnvironmentManager implements org.apache.tamaya.metamodel.environment.spi.ContextSpi {
+
+    private final List<EnvironmentProvider> environmentProviders = loadEnvironmentProviders();
+    private RuntimeContext rootEnvironment = getCurrentEnvironment();
+
+    private List<EnvironmentProvider> loadEnvironmentProviders() {
+        List<EnvironmentProvider> providerList = new ArrayList<>();
+        for(EnvironmentProvider prov: ServiceContext.getInstance().getServices(EnvironmentProvider.class)){
+            providerList.add(prov);
+        }
+        return providerList;
+    }
+
+    @Override
+    public RuntimeContext getCurrentEnvironment(){
+        RuntimeContextBuilder b = RuntimeContextBuilder.of();
+        for(EnvironmentProvider prov: environmentProviders){
+            if(prov.isActive()){
+                if(prov.isActive()){
+                    b.setAll(prov.getEnvironmentData());
+                }
+            }
+        }
+        return b.build();
+    }
+
+    @Override
+    public RuntimeContext getRootEnvironment(){
+        return rootEnvironment;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/sandbox/environment/src/main/java/org/apache/tamaya/environment/internal/SystemClassLoaderEnvironmentProvider.java
----------------------------------------------------------------------
diff --git a/sandbox/environment/src/main/java/org/apache/tamaya/environment/internal/SystemClassLoaderEnvironmentProvider.java b/sandbox/environment/src/main/java/org/apache/tamaya/environment/internal/SystemClassLoaderEnvironmentProvider.java
new file mode 100644
index 0000000..12019a0
--- /dev/null
+++ b/sandbox/environment/src/main/java/org/apache/tamaya/environment/internal/SystemClassLoaderEnvironmentProvider.java
@@ -0,0 +1,75 @@
+/*
+ * 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.metamodel.environment.internal;
+
+import org.apache.tamaya.core.config.ConfigurationFormats;
+import org.apache.tamaya.core.resource.Resource;
+import org.apache.tamaya.environment.spi.ContextDataProvider;
+import org.apache.tamaya.metamodel.environment.spi.EnvironmentProvider;
+import org.apache.tamaya.spi.ServiceContext;
+import org.apache.tamaya.core.properties.ConfigurationFormat;
+import org.apache.tamaya.core.resource.ResourceLoader;
+
+
+import java.util.*;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+/**
+ * System environment provider (loaded only once using the system class loader) that loads additional environment properties fromMap the classpath evaluating
+ * {@code META-INF/env/system.properties, META-INF/env/system.xml and META-INF/env/system.ini}.
+ */
+public class SystemClassLoaderEnvironmentProvider implements ContextDataProvider {
+
+    private static  final Logger LOG = Logger.getLogger(SystemClassLoaderEnvironmentProvider.class.getName());
+
+    private Map<String,String> data = new HashMap<>();
+
+
+    public SystemClassLoaderEnvironmentProvider(){
+        List<Resource> propertyResources = ServiceContext.getInstance().getSingleton(ResourceLoader.class).getResources(ClassLoader.getSystemClassLoader(),
+                "classpath:META-INF/env/system.properties", "classpath:META-INF/env/system.xml", "classpath:META-INF/env/system.ini");
+        for(Resource resource:propertyResources){
+            try{
+                ConfigurationFormat format = ConfigurationFormats.getFormat(resource);
+                Map<String,String> data = format.readConfiguration(resource);
+                data.putAll(data);
+            }
+            catch(Exception e){
+                LOG.log(Level.INFO, e, () -> "Could not read environment data from " + resource);
+            }
+        }
+        data.put("classloader.type", ClassLoader.getSystemClassLoader().getClass().getName());
+        data.put("classloader.info", ClassLoader.getSystemClassLoader().toString());
+        Set<Resource> resourceSet = new HashSet<>();
+        resourceSet.addAll(propertyResources);
+        data.put("environment.system.sources", resourceSet.toString());
+        this.data = Collections.unmodifiableMap(data);
+    }
+    @Override
+    public boolean isActive() {
+        return true;
+    }
+
+    @Override
+    public Map<String,String> getContextData() {
+        return data;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/sandbox/environment/src/main/java/org/apache/tamaya/environment/spi/ContextDataProvider.java
----------------------------------------------------------------------
diff --git a/sandbox/environment/src/main/java/org/apache/tamaya/environment/spi/ContextDataProvider.java b/sandbox/environment/src/main/java/org/apache/tamaya/environment/spi/ContextDataProvider.java
new file mode 100644
index 0000000..0c6c138
--- /dev/null
+++ b/sandbox/environment/src/main/java/org/apache/tamaya/environment/spi/ContextDataProvider.java
@@ -0,0 +1,7 @@
+package org.apache.tamaya.environment.spi;
+
+/**
+ * Created by Anatole on 04.05.2015.
+ */
+public interface ContextDataProvider {
+}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/sandbox/environment/src/main/java/org/apache/tamaya/environment/spi/ContextSpi.java
----------------------------------------------------------------------
diff --git a/sandbox/environment/src/main/java/org/apache/tamaya/environment/spi/ContextSpi.java b/sandbox/environment/src/main/java/org/apache/tamaya/environment/spi/ContextSpi.java
new file mode 100644
index 0000000..ef4519a
--- /dev/null
+++ b/sandbox/environment/src/main/java/org/apache/tamaya/environment/spi/ContextSpi.java
@@ -0,0 +1,45 @@
+/*
+ * 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.metamodel.environment.spi;
+
+
+/**
+ * Service for accessing the current ids that identify a runtime environment. Environments are used to
+ * access/determine configurations.<br/>
+ * <h3>Implementation PropertyMapSpec</h3> This class is
+ * <ul>
+ * <li>thread safe,
+ * <li>and behaves contextual.
+ * </ul>
+ */
+public interface ContextSpi {
+
+    /**
+     * Get the current environment id.
+     * @return the corresponding environment id, never null.
+     */
+    RuntimeContext getCurrentContext();
+
+    /**
+     * Get the current root environment id.
+     * @return the corresponding root environment id, never null.
+     */
+    RuntimeContext getRootContext();
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/sandbox/environment/src/test/java/org/apache/tamaya/metamodel/environment/EnvironmentManagerTest.java
----------------------------------------------------------------------
diff --git a/sandbox/environment/src/test/java/org/apache/tamaya/metamodel/environment/EnvironmentManagerTest.java b/sandbox/environment/src/test/java/org/apache/tamaya/metamodel/environment/EnvironmentManagerTest.java
new file mode 100644
index 0000000..958ace6
--- /dev/null
+++ b/sandbox/environment/src/test/java/org/apache/tamaya/metamodel/environment/EnvironmentManagerTest.java
@@ -0,0 +1,66 @@
+/*
+ * 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.metamodel.environment;
+
+import org.apache.tamaya.Environment;
+import org.junit.Test;
+
+
+import static org.junit.Assert.*;
+
+/**
+ * Tests for basic {@link org.apache.tamaya.EnvironmentManager} functionality.
+ * Created by Anatole on 17.10.2014.
+ */
+public class EnvironmentManagerTest {
+
+    @Test
+    public void testGetEnvironment(){
+        RuntimeContext env = RuntimeContext.current();
+        assertNotNull(env);
+        RuntimeContext env2 = RuntimeContext.current();
+        assertNotNull(env2);
+        assertFalse("Current Environments requested in same context are not the same!", env==env2);
+    }
+
+    @Test
+    public void testGetRootEnvironment(){
+        RuntimeContext env = RuntimeContext.root();
+        assertNotNull(env);
+        RuntimeContext env2 = RuntimeContext.root();
+        assertNotNull(env2);
+        assertTrue("Root Environments requested in same context are not the same!", env==env2);
+    }
+
+    @Test
+    public void testRootIsNotCurrentEnvironment(){
+        RuntimeContext env1 = RuntimeContext.root();
+        RuntimeContext env2 = RuntimeContext.current();
+        assertNotNull(env1);
+        assertNotNull(env2);
+        // within this testdata environment these are always the same
+        assertEquals(env1, env2);
+    }
+
+    @Test
+    public void testEnvironmentOverride(){
+        assertEquals(RuntimeContext.root().get("user.country").get(),System.getProperty("user.country"));
+        assertEquals(RuntimeContext.current().get("user.country").get(), System.getProperty("user.country"));
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/sandbox/environment/src/test/java/org/apache/tamaya/metamodel/environment/TestEnvironmentManagerSingleton.java
----------------------------------------------------------------------
diff --git a/sandbox/environment/src/test/java/org/apache/tamaya/metamodel/environment/TestEnvironmentManagerSingleton.java b/sandbox/environment/src/test/java/org/apache/tamaya/metamodel/environment/TestEnvironmentManagerSingleton.java
new file mode 100644
index 0000000..52227c9
--- /dev/null
+++ b/sandbox/environment/src/test/java/org/apache/tamaya/metamodel/environment/TestEnvironmentManagerSingleton.java
@@ -0,0 +1,35 @@
+/*
+ * 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.metamodel.environment;
+
+/**
+ * Created by Anatole on 12.09.2014.
+ */
+public class TestEnvironmentManagerSingleton implements org.apache.tamaya.metamodel.environment.spi.ContextSpi {
+    @Override
+    public RuntimeContext getCurrentEnvironment(){
+        return null;
+    }
+
+    @Override
+    public RuntimeContext getRootEnvironment(){
+        return null;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/sandbox/environment/src/test/java/org/apache/tamaya/metamodel/environment/TestEnvironmentProvider.java
----------------------------------------------------------------------
diff --git a/sandbox/environment/src/test/java/org/apache/tamaya/metamodel/environment/TestEnvironmentProvider.java b/sandbox/environment/src/test/java/org/apache/tamaya/metamodel/environment/TestEnvironmentProvider.java
new file mode 100644
index 0000000..7524a80
--- /dev/null
+++ b/sandbox/environment/src/test/java/org/apache/tamaya/metamodel/environment/TestEnvironmentProvider.java
@@ -0,0 +1,48 @@
+/*
+ * 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.metamodel.environment;
+
+import org.apache.tamaya.core.spi.EnvironmentProvider;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Environment provider used by some tests.
+ */
+public class TestEnvironmentProvider implements EnvironmentProvider {
+    private Map<String, String> data = new HashMap<>();
+
+    public TestEnvironmentProvider(){
+        data.put("user.country", System.getProperty("user.country"));
+        data.put("java.version", System.getProperty("java.version"));
+        data = Collections.unmodifiableMap(data);
+    }
+
+    @Override
+    public boolean isActive() {
+        return true;
+    }
+
+    @Override
+    public Map<String, String> getEnvironmentData() {
+        return data;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/sandbox/environment/src/test/resources/META-INF/services/org.apache.tamaya.environment.spi.ContextSpi
----------------------------------------------------------------------
diff --git a/sandbox/environment/src/test/resources/META-INF/services/org.apache.tamaya.environment.spi.ContextSpi b/sandbox/environment/src/test/resources/META-INF/services/org.apache.tamaya.environment.spi.ContextSpi
new file mode 100644
index 0000000..8915399
--- /dev/null
+++ b/sandbox/environment/src/test/resources/META-INF/services/org.apache.tamaya.environment.spi.ContextSpi
@@ -0,0 +1,19 @@
+#
+# 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.
+#
+org.apache.tamaya.environment.SingleEnvironmentManager

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/sandbox/functions/pom.xml
----------------------------------------------------------------------
diff --git a/sandbox/functions/pom.xml b/sandbox/functions/pom.xml
new file mode 100644
index 0000000..06dd0ed
--- /dev/null
+++ b/sandbox/functions/pom.xml
@@ -0,0 +1,52 @@
+<!-- 
+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-sandbox</artifactId>
+        <version>0.1-incubating-SNAPSHOT</version>
+        <relativePath>..</relativePath>
+    </parent>
+    <artifactId>tamaya-functions</artifactId>
+    <name>Apache Tamaya Common Functional Extensions</name>
+    <packaging>jar</packaging>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.tamaya</groupId>
+            <artifactId>tamaya-api</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <!-- Test scope only, do not create a code dependency! -->
+        <dependency>
+            <groupId>org.apache.tamaya</groupId>
+            <artifactId>tamaya-core</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+        </dependency>
+    </dependencies>
+</project>

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/sandbox/functions/src/main/java/org/apache/tamaya/functions/ConfigurationFunctions.java
----------------------------------------------------------------------
diff --git a/sandbox/functions/src/main/java/org/apache/tamaya/functions/ConfigurationFunctions.java b/sandbox/functions/src/main/java/org/apache/tamaya/functions/ConfigurationFunctions.java
new file mode 100644
index 0000000..1f1c571
--- /dev/null
+++ b/sandbox/functions/src/main/java/org/apache/tamaya/functions/ConfigurationFunctions.java
@@ -0,0 +1,239 @@
+/*
+ * 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.functions;
+
+import org.apache.tamaya.ConfigOperator;
+import org.apache.tamaya.ConfigQuery;
+import org.apache.tamaya.Configuration;
+
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeSet;
+import java.util.function.BiPredicate;
+import java.util.function.Function;
+import java.util.function.Predicate;
+import java.util.stream.Collectors;
+
+/**
+ * Accessor that provides useful functions along with configuration.
+ */
+public final class ConfigurationFunctions {
+    /**
+     * Private singleton constructor.
+     */
+    private ConfigurationFunctions() {
+    }
+
+    /**
+     * Creates a ConfigOperator that creates a Configuration containing only keys
+     * that are contained in the given area (non recursive). Hereby
+     * the area key is stripped away fromMap the resulting key.
+     *
+     * @param filter the filter, not null
+     * @return the area configuration, with the areaKey stripped away.
+     */
+    public static ConfigOperator filter(BiPredicate<String, String> filter) {
+        return cfg -> new FilteredConfiguration(cfg, filter, null);
+    }
+
+    /**
+     * Creates a ConfigOperator that creates a Configuration with keys mapped as
+     * defined by the given keyMapper.
+     *
+     * @param keyMapper the keyMapper, not null
+     * @return the area configuration, with the areaKey stripped away.
+     */
+    public static ConfigOperator map(Function<String, String> keyMapper) {
+        return cfg -> new MappedConfiguration(cfg, keyMapper, null);
+    }
+
+
+    /**
+     * Creates a ConfigOperator that creates a Configuration containing only keys
+     * that are contained in the given area (non recursive). Hereby
+     * the area key is stripped away fromMap the resulting key.
+     *
+     * @param areaKey the area key, not null
+     * @return the area configuration, with the areaKey stripped away.
+     */
+    public static ConfigOperator area(String areaKey) {
+        return area(areaKey, true);
+    }
+
+    /**
+     * Creates a ConfigOperator that creates a Configuration containing only keys
+     * that are contained in the given area (non recursive).
+     *
+     * @param areaKey   the area key, not null
+     * @param stripKeys if set to true, the area key is stripped away fromMap the resulting key.
+     * @return the area configuration, with the areaKey stripped away.
+     */
+    public static ConfigOperator area(String areaKey, boolean stripKeys) {
+        return config -> {
+            Configuration filtered = new FilteredConfiguration(config,
+                    (k,v) -> isKeyInArea(k, areaKey), "area: " + areaKey);
+            if(stripKeys){
+                return new MappedConfiguration(filtered, k -> k.substring(areaKey.length() + 1), "stripped");
+            }
+            return filtered;
+        };
+    }
+
+    /**
+     * Calculates the current area key and compares it with the given key.
+     *
+     * @param key     the fully qualified entry key, not null
+     * @param areaKey the area key, not null
+     * @return true, if the entry is exact in this area
+     */
+    public static boolean isKeyInArea(String key, String areaKey) {
+        int lastIndex = key.lastIndexOf('.');
+        String curAreaKey = lastIndex > 0 ? key.substring(0, lastIndex) : "";
+        return curAreaKey.equals(areaKey);
+    }
+
+    /**
+     * Calculates the current area key and compares it with the given area keys.
+     *
+     * @param key     the fully qualified entry key, not null
+     * @param areaKeys the area keys, not null
+     * @return true, if the entry is exact in this area
+     */
+    public static boolean isKeyInAreas(String key, String... areaKeys) {
+        for(String areaKey:areaKeys){
+            if(isKeyInArea(key, areaKey)){
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * Return a query to evaluate the set with all fully qualifies area names. This method should return the areas as accurate as possible,
+     * but may not provide a complete set of areas that are finally accessible, especially when the underlying storage
+     * does not support key iteration.
+     *
+     * @return s set with all areas, never {@code null}.
+     */
+    public static ConfigQuery<Set<String>> areas() {
+        return config -> {
+            final Set<String> areas = new HashSet<>();
+            config.getProperties().keySet().forEach(s -> {
+                int index = s.lastIndexOf('.');
+                if (index > 0) {
+                    areas.add(s.substring(0, index));
+                } else {
+                    areas.add("<root>");
+                }
+            });
+            return areas;
+        };
+    }
+
+    /**
+     * Return a query to evaluate the set with all fully qualified area names, containing the transitive closure also including all
+     * subarea names, regardless if properties are accessible or not. This method should return the areas as accurate
+     * as possible, but may not provide a complete set of areas that are finally accessible, especially when the
+     * underlying storage does not support key iteration.
+     *
+     * @return s set with all transitive areas, never {@code null}.
+     */
+    public static ConfigQuery<Set<String>> transitiveAreas() {
+        return config -> {
+            final Set<String> transitiveAreas = new HashSet<>();
+            config.query(areas()).forEach(s -> {
+                int index = s.lastIndexOf('.');
+                if (index < 0) {
+                    transitiveAreas.add("<root>");
+                } else {
+                    while (index > 0) {
+                        s = s.substring(0, index);
+                        transitiveAreas.add(s);
+                        index = s.lastIndexOf('.');
+                    }
+                }
+            });
+            return transitiveAreas;
+        };
+    }
+
+    /**
+     * Return a query to evaluate the set with all fully qualified area names, containing only the
+     * areas that match the predicate and have properties attached. This method should return the areas as accurate as possible,
+     * but may not provide a complete set of areas that are finally accessible, especially when the underlying storage
+     * does not support key iteration.
+     *
+     * @param predicate A predicate to deternine, which areas should be returned, not {@code null}.
+     * @return s set with all areas, never {@code null}.
+     */
+    public static ConfigQuery<Set<String>> areas(final Predicate<String> predicate) {
+        return config ->
+            config.query(areas()).stream().filter(predicate).collect(Collectors.toCollection(TreeSet::new));
+    }
+
+    /**
+     * Return a query to evaluate the set with all fully qualified area names, containing the transitive closure also including all
+     * subarea names, regardless if properties are accessible or not. This method should return the areas as accurate as possible,
+     * but may not provide a complete set of areas that are finally accessible, especially when the underlying storage
+     * does not support key iteration.
+     *
+     * @param predicate A predicate to deternine, which areas should be returned, not {@code null}.
+     * @return s set with all transitive areas, never {@code null}.
+     */
+    public static ConfigQuery<Set<String>> transitiveAreas(Predicate<String> predicate) {
+        return config ->
+            config.query(transitiveAreas()).stream().filter(predicate).collect(Collectors.toCollection(TreeSet::new));
+    }
+
+
+    /**
+     * Creates a ConfigOperator that creates a Configuration containing only keys
+     * that are contained in the given area (recursive). Hereby
+     * the area key is stripped away fromMap the resulting key.
+     *
+     * @param areaKeys the area keys, not null
+     * @return the area configuration, with the areaKey stripped away.
+     */
+    public static ConfigOperator areasRecursive(String... areaKeys) {
+        return areaRecursive(true, areaKeys);
+    }
+
+    /**
+     * Creates a ConfigOperator that creates a Configuration containing only keys
+     * that are contained in the given area (recursive).
+     *
+     * @param areaKeys   the area keys, not null
+     * @param stripKeys if set to true, the area key is stripped away fromMap the resulting key.
+     * @return the area configuration, with the areaKey stripped away.
+     */
+    public static ConfigOperator areaRecursive(boolean stripKeys, String... areaKeys) {
+        return config -> {
+            Configuration filtered = new FilteredConfiguration(config,
+                    (k,v) -> isKeyInAreas(k, areaKeys), "areas: " + Arrays.toString(areaKeys));
+            if(stripKeys){
+                return new MappedConfiguration(filtered, PropertySourceFunctions::stripAreaKeys, "stripped");
+            }
+            return filtered;
+        };
+    }
+
+
+}


[07/10] incubator-tamaya git commit: Removed unused dormant parts. Moved usable dormant utils into new sandbox module. Fixed jqassistant issues in simple metamodel module.

Posted by an...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/main/java/org/apache/tamaya/core/properties/factories/PropertySourceFactory.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/main/java/org/apache/tamaya/core/properties/factories/PropertySourceFactory.java b/dormant/core/src/main/java/org/apache/tamaya/core/properties/factories/PropertySourceFactory.java
deleted file mode 100644
index 802e470..0000000
--- a/dormant/core/src/main/java/org/apache/tamaya/core/properties/factories/PropertySourceFactory.java
+++ /dev/null
@@ -1,279 +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.core.properties;
-
-import java.net.URL;
-import java.time.Instant;
-import java.util.*;
-import java.util.function.BiFunction;
-import java.util.function.Predicate;
-import java.util.function.Supplier;
-
-import org.apache.tamaya.spi.PropertySource;
-
-/**
- * Default implementation current the singleton backing bean for the {@link org.apache.tamaya.core.properties.PropertySourceBuilder}.
- */
-public final class PropertySourceFactory {
-
-    private static final PropertySource ENV_PROPERTYSOURCE = new EnvironmentPropertySource();
-
-
-    /**
-     * Singleton constructor.
-     */
-    private PropertySourceFactory(){}
-
-    public static PropertySource fromArgs(int ordinal, String name, String... args) {
-        if(name==null){
-            name ="<CLI> " + Arrays.toString(args);
-        }
-        //X TODO read the CLI with some better library, e.g. move parsing service to ext. service SPI
-        Map<String, String> properties = new HashMap<>();
-        for (int base = 0; base < args.length; base++) {
-            if (args[base].startsWith("--")) {
-                String argKey = args[base].substring(2);
-                String value = "true"; // flag only
-                if (base != args.length - 1) {
-                    if (args[base + 1].startsWith("-")) {
-                        base++;
-                        int eqIndex = argKey.indexOf('=');
-                        if (eqIndex > 0) {
-                            value = argKey.substring(eqIndex + 1);
-                            argKey = argKey.substring(0, eqIndex);
-                        }
-                    } else {
-                        value = args[base + 1];
-                        base += 2;
-                    }
-                }
-                properties.put(argKey, value);
-            } else if (args[base].startsWith("-")) {
-                String argKey = args[base].substring(1);
-                String value = "true"; // flag only
-                if (base != args.length - 1) {
-                    if (args[base + 1].startsWith("-")) {
-                        base++;
-                        int eqIndex = argKey.indexOf('=');
-                        if (eqIndex > 0) {
-                            value = argKey.substring(eqIndex + 1);
-                            argKey = argKey.substring(0, eqIndex);
-                        }
-                    } else {
-                        value = args[base + 1];
-                        base += 2;
-                    }
-                }
-                properties.put(argKey, value);
-            }
-        }
-        return fromMap(ordinal, name, properties);
-    }
-
-    public static Collection<PropertySource> fromPaths(int ordinal, String name, List<String> paths) {
-        if(name==null){
-            name ="<Paths> " + paths.toString();
-        }
-        return new PathBasedPropertySource(ordinal, name, paths);
-    }
-
-    public static Collection<PropertySource> fromURLs(int ordinal, String name, List<URL> urls) {
-        if(name==null){
-            name ="<URLs> " + urls.toString();
-        }
-        return new URLBasedPropertySource(ordinal, name, urls);
-    }
-
-    public static PropertySource fromMap(int ordinal, String name, Map<String, String> map) {
-        if(name==null){
-            name ="<Map> " + map.toString();
-        }
-        return new MapBasedPropertySource(name, map);
-    }
-
-    /**
-     * Returns a read-only {@link org.apache.tamaya.spi.PropertySource} reflecting the current runtime environment properties.
-     *
-     * @return a new read-only {@link org.apache.tamaya.spi.PropertySource} instance based on the current runtime environment properties.
-     */
-    public static PropertySource fromEnvironmentProperties() {
-        return ENV_PROPERTYSOURCE;
-    }
-
-    /**
-     * Creates a new read-only {@link org.apache.tamaya.spi.PropertySource} reflecting the current system properties.
-     *
-     * @return a new read-only {@link org.apache.tamaya.spi.PropertySource} instance based on the current system properties.
-     */
-    public static PropertySource fromSystemProperties() {
-        return new SystemPropertiesPropertySource();
-    }
-
-    public static PropertySource freezed(String name, PropertySource source) {
-        if(name==null){
-            name ="<Freezed> source=" + source.toString()+", at="+Instant.now().toString();
-        }
-        return FreezedPropertySource.of(name, source);
-    }
-
-    /**
-     * Creates a new {@link org.apache.tamaya.spi.PropertySource} containing all property maps given, hereby using the given AggregationPolicy.
-     *
-     * @param policy       the AggregationPolicy to be used, not null.
-     * @param providers the maps to be included, not null.
-     * @return the aggregated instance containing all given maps.
-     */
-    public static PropertySource aggregate(String name, AggregationPolicy policy, List<PropertySource> providers) {
-        if(name==null){
-            name ="<Aggregate> policy=" + policy.toString()+", providers="+providers.toString();
-        }
-        return new AggregatedPropertySource(name, null, policy, providers);
-    }
-
-    /**
-     * Creates a new {@link org.apache.tamaya.spi.PropertySource} that is mutable by adding a map based instance that overrides
-     * values fromMap the original map.
-     * @param provider the provider to be made mutable, not null.
-     * @return the mutable instance.
-     */
-    public static PropertySource mutable(String name, PropertySource provider) {
-        if(name==null){
-            name ="<Mutable> provider="+provider.getName();
-        }
-        PropertySource mutableProvider = fromMap(name,new HashMap<>());
-        List<PropertySource> providers = new ArrayList<>(2);
-        providers.add(provider);
-        providers.add(mutableProvider);
-        return new AggregatedPropertySource(name, mutableProvider, AggregationPolicy.OVERRIDE, providers);
-    }
-
-    /**
-     * Creates a new {@link org.apache.tamaya.spi.PropertySource} containing only properties that are shared by all given maps,
-     * hereby later maps in the array override  properties fromMap previous instances.
-     * @param aggregationPolicy the policy to resolve aggregation conflicts.
-     * @param providers the maps to be included, not null.
-     * @return the intersecting instance containing all given maps.
-     */
-    public static PropertySource intersected(String name, AggregationPolicy aggregationPolicy, List<PropertySource> providers) {
-        return new IntersectingPropertySource(name, aggregationPolicy, providers);
-    }
-
-    /**
-     * Creates a new {@link org.apache.tamaya.spi.PropertySource} containing only properties fromMap the target instance, that are not contained
-     * in one current the other maps passed.
-     *
-     * @param target         the base map, not null.
-     * @param subtrahendSets the maps to be subtracted, not null.
-     * @return the intersecting instance containing all given maps.
-     */
-    public static PropertySource subtracted(String name, PropertySource target, List<PropertySource> subtrahendSets) {
-        return new SubtractingPropertySource(name, target,subtrahendSets);
-    }
-
-
-    /**
-     * Creates a filtered {@link org.apache.tamaya.spi.PropertySource} (a view) current a given base {@link }PropertyMap}. The filter hereby is
-     * applied dynamically on access, so also runtime changes current the base map are reflected appropriately.
-     *
-     * @param name the base map instance, not null.
-     * @param filter      the filtger to be applied, not null.
-     * @return the new filtering instance.
-     */
-    public static PropertySource filtered(String name, Predicate<String> filter, PropertySource source) {
-        if(name==null){
-            name ="<Filtered> filter="+filter+", source="+source.getName();
-        }
-        return new FilteredPropertySource(name, source, filter);
-    }
-
-    /**
-     * Creates a new contextual {@link org.apache.tamaya.spi.PropertySource}. Contextual maps delegate to different instances current PropertyMap depending
-     * on the keys returned fromMap the isolationP
-     *
-     * @param name the base name instance, not null.
-     * @param mapSupplier          the supplier creating new provider instances
-     * @param isolationKeySupplier the supplier providing contextual keys based on the current environment.
-     */
-    public static PropertySource contextual(String name, Supplier<PropertySource> mapSupplier,
-                                              Supplier<String> isolationKeySupplier) {
-        if(name==null){
-            name ="<Contextual> mapSupplier="+mapSupplier+", isolationKeyProvider="+isolationKeySupplier;
-        }
-        return new ContextualPropertySource(name, mapSupplier, isolationKeySupplier);
-    }
-
-
-    /**
-     * Creates a filtered {@link org.apache.tamaya.spi.PropertySource} (a view) current a given base {@link }PropertyMap}. The filter hereby is
-     * applied dynamically on access, so also runtime changes current the base map are reflected appropriately.
-     *
-     * @param name the base name instance, not null.
-     * @param source   the main map instance, not null.
-     * @param parentMap the delegated parent map instance, not null.
-     * @return the new delegating instance.
-     */
-    public static PropertySource delegating(String name, PropertySource source, Map<String, String> parentMap) {
-        if(name==null){
-            name ="<Delegating> source="+source+", delegates="+parentMap;
-        }
-        return new DelegatingPropertySource(name, source, parentMap);
-    }
-
-    /**
-     * Creates a {@link org.apache.tamaya.spi.PropertySource} where all keys current a current map,
-     * existing in another map are replaced
-     * with the ones fromMap the other {@link org.apache.tamaya.spi.PropertySource}. The filter hereby is
-     * applied dynamically on access, so also runtime changes current the base map are reflected appropriately.
-     * Keys not existing in the {@code mainMap}, but present in {@code replacementMao} will be hidden.
-     *
-     * @param name the base name instance, not null.
-     * @param source the main source instance, which keys, present in {@code replacementMap} will be replaced
-     *                       with the ones
-     *                       in {@code replacementMap}, not null.
-     * @param replacementMap the map instance, that will replace all corresponding entries in {@code mainMap}, not null.
-     * @return the new delegating instance.
-     */
-    public static PropertySource replacing(String name, PropertySource source, Map<String, String> replacementMap) {
-        if(name==null){
-            name ="<Replacement> source="+source+", replacements="+replacementMap;
-        }
-        return new ReplacingPropertySource(name, source, replacementMap);
-    }
-
-    /**
-     * Creates a new {@link org.apache.tamaya.spi.PropertySource} given an existing one, and an alternate
-     * meta-info.
-     * @param name the new meta-information, not null.
-     * @param baseProvider the property source, not null.
-     * @return the new property source.never null.
-     */
-    public static PropertySource build(String name, PropertySource baseProvider) {
-        return new BuildablePropertySource(name, baseProvider);
-    }
-
-    /**
-     * Creates a new filtered {@link org.apache.tamaya.spi.PropertySource} using the given filter.
-     * @param name the base name instance, not null.
-     * @param valueFilter the value filter function, null result will remove the given entries.
-     * @param current the source to be filtered
-     */
-    public static PropertySource filterValues(String name, BiFunction<String, String, String> valueFilter, PropertySource current) {
-        return new ValueFilteredPropertySource(name, valueFilter, current);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/main/java/org/apache/tamaya/core/properties/factories/PropertySourcesBuilder.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/main/java/org/apache/tamaya/core/properties/factories/PropertySourcesBuilder.java b/dormant/core/src/main/java/org/apache/tamaya/core/properties/factories/PropertySourcesBuilder.java
deleted file mode 100644
index 0da4ff1..0000000
--- a/dormant/core/src/main/java/org/apache/tamaya/core/properties/factories/PropertySourcesBuilder.java
+++ /dev/null
@@ -1,367 +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.core.properties.factories;
-
-import java.lang.IllegalArgumentException;
-import java.net.URL;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-
-import org.apache.tamaya.core.properties.AggregationPolicy;
-import org.apache.tamaya.core.properties.PropertySourceFactory;
-import org.apache.tamaya.spi.PropertySource;
-
-/**
- * Builder for assembling non trivial property providers.
- */
-public final class PropertySourcesBuilder {
-
-    /**
-     * Name used for the final result.
-     */
-    private Map<String, PropertySource> propertySources = new HashMap<>();
-
-    /**
-     * The current aggregation policy used, when aggregating providers.
-     */
-    private AggregationPolicy aggregationPolicy = AggregationPolicy.OVERRIDE;
-
-    /**
-     * The current ordinal used for creating property source instances.
-     */
-    private int currentOrdinal;
-    /** The increment added to {@code currentOrdinal}, when new property sources are added and no
-     * explcit ordinal is used. */
-    private int ordinalIncrement;
-
-    /** The name to be used for the next PropertySource constructed, or null, for creating a defau,t name. */
-    private String currentName;
-
-    /**
-     * Private singleton constructor.
-     */
-    private PropertySourcesBuilder(int ordinal, int ordinalIncrement) {
-        this.ordinalIncrement = ordinalIncrement;
-        this.currentOrdinal = ordinal;
-    }
-
-    /**
-     * Creates a new builder instance.
-     *
-     * @param ordinal The initial starting ordinal to be used when new property sources are created and added.
-     * @param ordinalIncrement the ordinal increment to be added when no new property sources are created and added.
-     * @return a new builder instance, never null.
-     */
-    public static PropertySourcesBuilder of(int ordinal, int ordinalIncrement) {
-        return new PropertySourcesBuilder(ordinal, ordinalIncrement);
-    }
-
-    /**
-     * Creates a new builder instance.
-     *
-     * @param ordinal The initial starting ordinal to be used when new property sources are created and added.
-     *                The default ordinal increment used is 10.
-     * @return a new builder instance, never null.
-     */
-    public static PropertySourcesBuilder of(int ordinal) {
-        return new PropertySourceBuilder(ordinal, 10);
-    }
-
-
-    /**
-     * Creates a new builder instance, starting with ordinal of 1 and an ordinal increment of 10.
-     *
-     * @param name the provider name, not null.
-     * @return a new builder instance, never null.
-     */
-    public static PropertySourcesBuilder of() {
-        return new PropertySourceBuilder(1, 10);
-    }
-
-    /**
-     * Sets the current ordinal used, when additional property sets are added. The ordinal will normally implicitly
-     * incresed for each property set by {@code ordinalIncrement}. If the ordinal is passed explcitly to a method
-     * all created sources will have the same ordinal.
-     *
-     * @param ordinal the ordinal to be used.
-     * @return the builder for chaining.
-     */
-    public PropertySourcesBuilder withOrdinal(int ordinal) {
-        this.currentOrdinal = ordinal;
-        return this;
-    }
-
-    /**
-     * Sets the current name used, when the next property sets is added. If set to null a default name will be
-     * constructed.
-     *
-     * @param name the name to be used for the next property set created, or null.
-     * @return the builder for chaining.
-     */
-    public PropertySourcesBuilder withName(String name) {
-        this.currentName = name;
-        return this;
-    }
-
-    /**
-     * Aggregates the given {@code sources} (at least 2) into a new
-     * {@link PropertySource} and adds it with the given current ordinal and name.
-     *
-     * @param aggregationPolicy the aggregation policy, not null.
-     * @param sources the property sources to be aggregated.
-     * @return the builder for chaining.
-     */
-    public PropertySourcesBuilder addAggregation(AggregationPolicy aggregationPolicy, PropertySource... sources) {
-        this.aggregationPolicy = Objects.requireNonNull(aggregationPolicy);
-        String name = this.currentName;
-        if(name==null){
-            name = "Aggregate["+ Arrays.stream(sources).map(s -> s.getName()).collect(
-                    () -> "",
-                    (s,o) -> s + ',' + o,
-                    (s1, s2) -> s1 + ',' + s2) +"]"
-        }
-        ProperttySource source = new new AggregatedPropertySource(currentOrdinal, name, aggregationPolicy, sources);
-        this.propertySources.put(source.getName(), source);
-        this.currentOrdinal +=  ordinalIncrement;
-        return this;
-    }
-
-    /**
-     * Adds the given providers with the current active {@link AggregationPolicy}. By
-     * default {@link AggregationPolicy#OVERRIDE} is used.
-     *
-     * @param propertySources the property sources to be added, not null.
-     * @return the builder for chaining.
-     * @see #withAggregationPolicy(AggregationPolicy)
-     */
-    public PropertySourcesBuilder addPropertySources(PropertySource... propertySources) {
-        if (propertySources.length == 0) {
-            return this;
-        }
-        return addPropertySources(Arrays.asList(propertySources));
-    }
-
-    /**
-     * Adds the given providers with the current active {@link AggregationPolicy}. By
-     * default {@link AggregationPolicy#OVERRIDE} is used.
-     *
-     * @param providers providers to be added, not null.
-     * @return the builder for chaining.
-     * @see #withAggregationPolicy(AggregationPolicy)
-     */
-    public PropertySourcesBuilder addPropertySources(List<PropertySource> providers) {
-        if (providers.isEmpty()) {
-            return this;
-        }
-        for (PropertySource src : providers) {
-            PropertySource current = this.propertySources.get(src.getName());
-            if (src != null) {
-                throw new IllegalArgumentException("PropertySource with that name is already existing: " + src.getName())
-            }
-        }
-        for (PropertySource src : providers) {
-            this.propertySources.put(sec.getName(), src);
-        }
-        return this;
-    }
-
-    /**
-     * Creates a new {@link PropertySource} using the given command line arguments and adds it
-     * using the current aggregation policy in place.
-     *
-     * @param args the command line arguments, not null.
-     * @return the builder for chaining.
-     */
-    public PropertySourcesBuilder addArgs(String... args) {
-        if (args.length == 0) {
-            return this;
-        }
-        String name = this.currentName;
-        if (currentName == null) {
-            name = "CLI-Args";
-        }
-        PropertySource argProvider = PropertySourceFactory.fromArgs(currentOrdinal, name, args);
-        currentOrdinal+=ordinalIncrement;
-        return addPropertySources(argProvider);
-    }
-
-    /**
-     * Creates a new read-only {@link PropertySource} by reading the according path format. The effective format read
-     * hereby are determined by the {@code PathResolverService} configured into the {@code Bootstrap} SPI.
-     * Properties read are aggregated using the current aggregation policy active.
-     *
-     * @param paths the paths to be resolved by the {@code PathResolverService} , not null.
-     * @return the builder for chaining.
-     */
-    public PropertySourcesBuilder addPaths(String... paths) {
-        if (paths.length == 0) {
-            return this;
-        }
-        return addPaths(Arrays.asList(paths));
-    }
-
-
-    /**
-     * Creates a new read-only {@link PropertySource} by reading the according path format. The effective format read
-     * hereby are determined by the {@code PathResolverService} configured into the {@code Bootstrap} SPI.
-     * Properties read are aggregated using the current aggregation policy active.
-     *
-     * @param paths the paths to be resolved by the {@code PathResolverService} , not null.
-     * @return the builder for chaining.
-     */
-    public PropertySourcesBuilder addPaths(List<String> paths) {
-        if (paths.isEmpty()) {
-            return this;
-        }
-        String name = this.currentName;
-        if (currentName == null) {
-            name = "paths=" + paths.toString();
-        }
-        addPropertySources(PropertySourceFactory.fromPaths(currentOrdinal, name, paths));
-    }
-
-    /**
-     * Creates a new read-only {@link PropertySource} by reading the according URL format.
-     * Properties read are aggregated using the current aggregation policy active.
-     *
-     * @param urls the urls to be read, not null.
-     * @return the builder for chaining.
-     */
-    public PropertySourcesBuilder addURLs(URL... urls) {
-        if (urls.length == 0) {
-            return this;
-        }
-        return addURLs(Arrays.asList(urls));
-    }
-
-    /**
-     * Creates a new read-only {@link PropertySource} by reading the according URL format.
-     * Properties read are aggregated using the current aggregation policy active.
-     *
-     * @param urls the urls to be read, not null.
-     * @return the builder for chaining.
-     */
-    public PropertySourcesBuilder addURLs(List<URL> urls) {
-        if (urls.isEmpty()) {
-            return this;
-        }
-        String name = this.currentName;
-        if (currentName == null) {
-            name = "URL: =" + urls;
-        }
-        return addPropertySources(PropertySourceFactory.fromURLs(name, this.aggregationPolicy, urls));
-    }
-
-
-    /**
-     * Creates a new read-only {@link PropertySource} based on the given map.
-     * Properties read are aggregated using the current aggregation policy active.
-     *
-     * @param map the map to be added, not null.
-     * @return the builder for chaining.
-     */
-    public PropertySourcesBuilder addMap(Map<String, String> map) {
-        if (map.isEmpty()) {
-            return this;
-        }
-        String name = this.currentName;
-        if (currentName == null) {
-            name = "Map;
-        }
-        return addPropertySources(PropertySourceFactory.fromMap(currentOrdinal, name, map));
-    }
-
-
-    /**
-     * Add the current environment properties. Aggregation is based on the current {@link AggregationPolicy} acvtive.
-     *
-     * @return the builder for chaining.
-     */
-    public PropertySourcesBuilder addEnvironmentProperties() {
-        String name = this.currentName;
-        if (currentName == null) {
-            name = "Environment-Properties";
-        }
-        return addPropertySources(PropertySourceFactory.fromEnvironmentProperties());
-    }
-
-    /**
-     * Add the current system properties. Aggregation is based on the current {@link AggregationPolicy} acvtive.
-     *
-     * @return the builder for chaining.
-     */
-    public PropertySourcesBuilder addSystemProperties() {
-        String name = this.currentName;
-        if (currentName == null) {
-            name = "System-Properties";
-        }
-        return addPropertySources(PropertySourceFactory.fromSystemProperties());
-    }
-
-
-//
-//    /**
-//     * Filters the current {@link org.apache.tamaya.spi.PropertySource} with the given valueFilter.
-//     *
-//     * @param valueFilter the value filter, not null.
-//     * @return the (dynamically) filtered source instance, never null.
-//     */
-//    public PropertySourceBuilder filterValues(BiFunction<String, String, String> valueFilter) {
-//        String name = this.currentName;
-//        if (currentName == null) {
-//            name = "<filteredValues> -> " + valueFilter;
-//        }
-//        this.current = PropertySourceFactory.filterValues(name, valueFilter, this.current);
-//        return this;
-//    }
-
-
-    /**
-     * Subtracts with the given {@link org.apache.tamaya.spi.PropertySource} instance from the current properties.
-     *
-     * @param providers the maps to be subtracted, not null.
-     * @return the builder for chaining.
-     */
-    public PropertySourcesBuilder subtract(PropertySource... providers) {
-        if (providers.length == 0) {
-            return this;
-        }
-        String name = this.currentName;
-        if (currentName == null) {
-            name = "<subtraction> -> " + Arrays.toString(providers);
-        }
-        current = PropertySourceFactory.subtracted(name, current, Arrays.asList(providers));
-        return this;
-    }
-
-
-    /**
-     * Build a new property provider based on the input.
-     *
-     * @return a new property provider, or null.
-     */
-    public Collection<PropertySource> build() {
-        return this.propertySources.values();
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/main/java/org/apache/tamaya/core/properties/factories/ResourcePropertySourceProvider.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/main/java/org/apache/tamaya/core/properties/factories/ResourcePropertySourceProvider.java b/dormant/core/src/main/java/org/apache/tamaya/core/properties/factories/ResourcePropertySourceProvider.java
deleted file mode 100644
index 6dae705..0000000
--- a/dormant/core/src/main/java/org/apache/tamaya/core/properties/factories/ResourcePropertySourceProvider.java
+++ /dev/null
@@ -1,70 +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.core.properties;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.lang.Override;
-import java.lang.String;
-import java.net.URL;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Properties;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-public class ResourcePropertySourceProvider implements PropertySourceProvider {
-
-	private static final Logger LOG = Logger.getLogger(ResourcePropertySourceProvider.class.getName());
-
-    private int baseOrdinal;
-
-	private Collection<PropertySource> propertySources;
-
-    private Resource resource;
-
-	public ResourcePropertySourceProvider(int baseOrdinal, String baseName, Resource resource) {
-        this.resource = Objects.requireNonNull(resource);
-        this.baseOrdinal = baseOrdinal;
-        List<ConfigFormat> formats = ConfigFormat.getFormats(resource);
-        for(ConfigFormat format: formats){
-            try{
-                propertySources = format.readConfiguration(baseOrdinal, baseName, resource);
-            }
-            catch(Exception e){
-                LOG.info(() -> "Format was not matching: " + format.getFormatName() + " for resource: " + resource.getName());
-            }
-        }
-	}
-
-	public Resource getResource(){
-        return this.resource;
-    }
-
-
-    @Override
-    public String toString() {
-        return "ResourcePropertySourceProvider{" +
-                "resource=" + resource +
-                ", propertySources=" + propertySources +
-                '}';
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/main/java/org/apache/tamaya/core/properties/filtered/AggregatedPropertySource.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/main/java/org/apache/tamaya/core/properties/filtered/AggregatedPropertySource.java b/dormant/core/src/main/java/org/apache/tamaya/core/properties/filtered/AggregatedPropertySource.java
deleted file mode 100644
index e62a9a6..0000000
--- a/dormant/core/src/main/java/org/apache/tamaya/core/properties/filtered/AggregatedPropertySource.java
+++ /dev/null
@@ -1,97 +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.core.properties.filtered;
-
-import org.apache.tamaya.core.properties.AggregationPolicy;
-import org.apache.tamaya.spi.PropertySource;
-
-import java.util.*;
-
-/**
- * Implementation for a {@link org.apache.tamaya.spi.PropertySource} that is an aggregate current
- * multiple child instances.
- */
-public class AggregatedPropertySource implements PropertySource {
-
-    private PropertySource baseSource;
-    private PropertySource aggregatedSource;
-    private String name;
-    private int ordinal;
-    private AggregationPolicy aggregationPolicy;
-
-    /**
-     * Creates a mew instance, with aggregation polilcy
-     * {@code AggregationPolicy.OVERRIDE}.
-     *
-     * @param ordinal           the ordinal
-     * @param name              The name to be used, not null.
-     * @param aggregationPolicy the {@link org.apache.tamaya.core.properties.AggregationPolicy} to be applied
-     * @param baseSource        the base property source, not null
-     * @param aggregatedSource  the aggregatesd property source, not null
-     */
-    public AggregatedPropertySource(int ordinal, String name, AggregationPolicy aggregationPolicy,
-                                    PropertySource baseSource, PropertySource aggregatedSource) {
-        this.aggregationPolicy = Objects.requireNonNull(aggregationPolicy);
-        this.name = Objects.requireNonNull(name);
-        this.ordinal = ordinal;
-        this.baseSource = Objects.requireNonNull(baseSource);
-        this.aggregatedSource = Objects.requireNonNull(aggregatedSource);
-    }
-
-    @Override
-    public int getOrdinal() {
-        return this.ordinal;
-    }
-
-    @Override
-    public String getName() {
-        return this.name;
-    }
-
-    @Override
-    public Map<String, String> getProperties() {
-        Map<String, String> result = new HashMap<>();
-        Set<String> keySet = new HashSet<>(this.baseSource.getProperties().keySet());
-        keySet.addAll(this.aggregatedSource.getProperties().keySet());
-        for (String key : keySet) {
-            String value = this.aggregationPolicy.aggregate(
-                    key,
-                    baseSource.get(key).orElse(null),
-                    aggregatedSource.get(key).orElse(null));
-            if (value != null) {
-                result.put(key, value);
-            }
-        }
-        return result;
-    }
-
-    @Override
-    public Optional<String> get(String key) {
-        String value1 = this.baseSource.get(key).orElse(null);
-        String value2 = this.aggregatedSource.get(key).orElse(null);
-        return Optional.ofNullable(aggregationPolicy.aggregate(key, value1, value2));
-    }
-
-    @Override
-    public String toString() {
-        return "Aggregate(baseSource=" + baseSource +
-                ", aggregatedSource=" + aggregatedSource.getName() +
-                ", aggregationPolicy=" + aggregationPolicy + ")";
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/main/java/org/apache/tamaya/core/properties/filtered/FilteredPropertySource.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/main/java/org/apache/tamaya/core/properties/filtered/FilteredPropertySource.java b/dormant/core/src/main/java/org/apache/tamaya/core/properties/filtered/FilteredPropertySource.java
deleted file mode 100644
index ca7a18b..0000000
--- a/dormant/core/src/main/java/org/apache/tamaya/core/properties/filtered/FilteredPropertySource.java
+++ /dev/null
@@ -1,68 +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.core.properties;
-
-import org.apache.tamaya.spi.PropertySource;
-
-import java.lang.Override;
-import java.lang.String;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Objects;
-import java.util.function.Predicate;
-
-class FilteredPropertySource implements PropertySource {
-
-    private PropertySource baseSource;
-    private Predicate<String> filter;
-
-    public FilteredPropertySource(PropertySource baseSource, Predicate<String> filter){
-        this.baseSource = Objects.requireNonNull(baseSource);
-        this.filter = Objects.requireNonNull(filter);
-    }
-
-    @Override
-    public int ordinal(){
-        return baseSource.ordinal();
-    }
-
-    @Override
-    public String getName(){
-        return baseSource + "(filtered)";
-    }
-
-    @Override
-    public Map<String,String> getProperties(){
-        final Map<String,String> result = new HashMap<>();
-        this.unit.getProperties().entrySet().forEach(e -> {
-            if(filter.test(e.getKey())){
-                result.put(e.getKey(), e.getValue());
-            }
-        });
-        return result;
-    }
-
-    @Override
-    public String toString() {
-        return "FilteredPropertySource{" +
-                "baseSource=" + baseSource +
-                ", filter=" + filter +
-                '}';
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/main/java/org/apache/tamaya/core/properties/filtered/IntersectingPropertySource.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/main/java/org/apache/tamaya/core/properties/filtered/IntersectingPropertySource.java b/dormant/core/src/main/java/org/apache/tamaya/core/properties/filtered/IntersectingPropertySource.java
deleted file mode 100644
index df73148..0000000
--- a/dormant/core/src/main/java/org/apache/tamaya/core/properties/filtered/IntersectingPropertySource.java
+++ /dev/null
@@ -1,50 +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.core.properties.filtered;
-
-import org.apache.tamaya.spi.PropertySource;
-
-/**
- * Provider implementation that combines multiple other config by intersecting
- * the key/values common to one source.
- */
-class IntersectingPropertySource extends AggregatedPropertySource {
-
-
-    /**
-     * Creates a mew instance, with aggregation polilcy
-     * {@code AggregationPolicy.OVERRIDE}.
-     *
-     * @param ordinal           the ordinal
-     * @param name              The name to be used, not null.
-     * @param baseSource        the base property source, not null
-     * @param aggregatedSource  the aggregatesd property source, not null
-     */
-    public IntersectingPropertySource(int ordinal, String name,
-                                    PropertySource baseSource, PropertySource aggregatedSource) {
-        super(ordinal, name, (k,v1,v2) -> {
-            if(v1!=null && v2!=null && v1.equals(v2)){
-                return v1;
-            }
-            return null;
-        }, baseSource, aggregatedSource);
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/main/java/org/apache/tamaya/core/properties/filtered/MappedPropertySource.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/main/java/org/apache/tamaya/core/properties/filtered/MappedPropertySource.java b/dormant/core/src/main/java/org/apache/tamaya/core/properties/filtered/MappedPropertySource.java
deleted file mode 100644
index 60533f3..0000000
--- a/dormant/core/src/main/java/org/apache/tamaya/core/properties/filtered/MappedPropertySource.java
+++ /dev/null
@@ -1,66 +0,0 @@
-package org.apache.tamaya.core.properties.filtered;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Optional;
-import java.util.function.UnaryOperator;
-
-import org.apache.tamaya.spi.PropertySource;
-
-/**
- * PropertySource implementation that maps certain parts (defined by an {@code UnaryOperator<String>}) to alternate areas.
- */
-class MappedPropertySource implements PropertySource {
-
-	private static final long serialVersionUID = 8690637705511432083L;
-
-	/** The mapping operator. */
-    private UnaryOperator<String> keyMapper;
-    /** The base configuration. */
-    private PropertySource propertySource;
-
-    /**
-     * Creates a new instance.
-     * @param config the base configuration, not null
-     * @param keyMapper The mapping operator, not null
-     */
-    public MappedPropertySource(PropertySource config, UnaryOperator<String> keyMapper) {
-        this.propertySource = Objects.requireNonNull(config);
-        this.keyMapper = Objects.requireNonNull(keyMapper);
-    }
-
-    @Override
-    public int getOrdinal(){
-        return this.propertySource.getOrdinal();
-    }
-
-    @Override
-    public String getName(){
-        return this.propertySource.getName()+"[mapped]";
-    }
-
-    @Override
-    public Map<String, String> getProperties() {
-        Map<String, String> result = new HashMap<>();
-        Map<String, String> map = this.propertySource.getProperties();
-        map.forEach((k,v) -> {
-            String targetKey = keyMapper.apply(k);
-            if(targetKey!=null){
-                result.put(targetKey, v);
-            }
-        });
-        return result;
-    }
-
-    @Override
-    public Optional<String> get(String key){
-        return Optional.of(getProperties().get(key));
-    }
-
-    @Override
-    public boolean isEmpty() {
-        return this.propertySource.isEmpty();
-    }
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/main/java/org/apache/tamaya/core/properties/filtered/ValueFilteredPropertySource.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/main/java/org/apache/tamaya/core/properties/filtered/ValueFilteredPropertySource.java b/dormant/core/src/main/java/org/apache/tamaya/core/properties/filtered/ValueFilteredPropertySource.java
deleted file mode 100644
index 8eb0f60..0000000
--- a/dormant/core/src/main/java/org/apache/tamaya/core/properties/filtered/ValueFilteredPropertySource.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package org.apache.tamaya.core.properties.filtered;
-
-import org.apache.tamaya.spi.PropertySource;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Optional;
-import java.util.function.BiFunction;
-
-/**
- * Property source which filters any key/values dynamically.
- */
-class ValueFilteredPropertySource implements PropertySource{
-
-    private String name;
-    private BiFunction<String, String, String> valueFilter;
-    private PropertySource source;
-
-    public ValueFilteredPropertySource(String name, BiFunction<String, String, String> valueFilter, PropertySource current) {
-        this.name = Optional.ofNullable(name).orElse("<valueFiltered> -> name="+current.getName()+", valueFilter="+valueFilter.toString());
-    }
-
-    @Override
-    public int getOrdinal() {
-        return source.getOrdinal();
-    }
-
-    @Override
-    public String getName() {
-        return name;
-    }
-
-    @Override
-    public Optional<String> get(String key) {
-        String value = this.source.get(key).orElse(null);
-        value = valueFilter.apply(key, value);
-        return Optional.ofNullable(value);
-    }
-
-    @Override
-    public Map<String, String> getProperties() {
-        Map<String, String> map = new HashMap<>(source.getProperties());
-        map.replaceAll(valueFilter);
-        return map;
-    }
-
-    @Override
-    public String toString() {
-        return "ValueFilteredPropertySource{" +
-                "source=" + source.getName() +
-                ", name='" + name + '\'' +
-                ", valueFilter=" + valueFilter +
-                '}';
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/main/java/org/apache/tamaya/core/spi/ObjectConfiguratorSpi.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/main/java/org/apache/tamaya/core/spi/ObjectConfiguratorSpi.java b/dormant/core/src/main/java/org/apache/tamaya/core/spi/ObjectConfiguratorSpi.java
deleted file mode 100644
index 9f38792..0000000
--- a/dormant/core/src/main/java/org/apache/tamaya/core/spi/ObjectConfiguratorSpi.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.core.spi;
-
-
-import org.apache.tamaya.Configuration;
-
-/**
- * Service used for resolving configuration annotations.
- */
-public interface ObjectConfiguratorSpi {
-
-	/**
-	 * Inject fields annotated for configuration.
-	 * 
-	 * @param instance
-	 *            The instance to be configured.
-	 */
-	void configure(Object instance, Configuration configuration);
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/main/resources/META-INF/services/old.ConfigurationProviderSpi
----------------------------------------------------------------------
diff --git a/dormant/core/src/main/resources/META-INF/services/old.ConfigurationProviderSpi b/dormant/core/src/main/resources/META-INF/services/old.ConfigurationProviderSpi
deleted file mode 100644
index 4c964b9..0000000
--- a/dormant/core/src/main/resources/META-INF/services/old.ConfigurationProviderSpi
+++ /dev/null
@@ -1,20 +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.
-#
-old.SystemPropertiesConfigProvider
-old.EnvPropertiesConfigProvider
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/main/resources/META-INF/services/org.apache.tamaya.core.ConfigurationFormat
----------------------------------------------------------------------
diff --git a/dormant/core/src/main/resources/META-INF/services/org.apache.tamaya.core.ConfigurationFormat b/dormant/core/src/main/resources/META-INF/services/org.apache.tamaya.core.ConfigurationFormat
deleted file mode 100644
index 7aa2407..0000000
--- a/dormant/core/src/main/resources/META-INF/services/org.apache.tamaya.core.ConfigurationFormat
+++ /dev/null
@@ -1,21 +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.
-#
-org.apache.tamaya.core.internal.format.PropertiesFormat
-org.apache.tamaya.core.internal.format.PropertiesXmlFormat
-org.apache.tamaya.core.internal.format.IniFormat
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/main/resources/META-INF/services/org.apache.tamaya.core.config.ConfigurationFormat
----------------------------------------------------------------------
diff --git a/dormant/core/src/main/resources/META-INF/services/org.apache.tamaya.core.config.ConfigurationFormat b/dormant/core/src/main/resources/META-INF/services/org.apache.tamaya.core.config.ConfigurationFormat
deleted file mode 100644
index 7aa2407..0000000
--- a/dormant/core/src/main/resources/META-INF/services/org.apache.tamaya.core.config.ConfigurationFormat
+++ /dev/null
@@ -1,21 +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.
-#
-org.apache.tamaya.core.internal.format.PropertiesFormat
-org.apache.tamaya.core.internal.format.PropertiesXmlFormat
-org.apache.tamaya.core.internal.format.IniFormat
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/main/resources/META-INF/services/org.apache.tamaya.core.resources.ResourceLoader
----------------------------------------------------------------------
diff --git a/dormant/core/src/main/resources/META-INF/services/org.apache.tamaya.core.resources.ResourceLoader b/dormant/core/src/main/resources/META-INF/services/org.apache.tamaya.core.resources.ResourceLoader
deleted file mode 100644
index c245d54..0000000
--- a/dormant/core/src/main/resources/META-INF/services/org.apache.tamaya.core.resources.ResourceLoader
+++ /dev/null
@@ -1,20 +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.
-#
-org.apache.tamaya.core.internal.resources.DefaultResourceLoader
-

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/main/resources/META-INF/services/org.apache.tamaya.core.spi.ConfigurationFormatSpi
----------------------------------------------------------------------
diff --git a/dormant/core/src/main/resources/META-INF/services/org.apache.tamaya.core.spi.ConfigurationFormatSpi b/dormant/core/src/main/resources/META-INF/services/org.apache.tamaya.core.spi.ConfigurationFormatSpi
deleted file mode 100644
index e81bd2b..0000000
--- a/dormant/core/src/main/resources/META-INF/services/org.apache.tamaya.core.spi.ConfigurationFormatSpi
+++ /dev/null
@@ -1,19 +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.
-#
-org.apache.tamaya.core.internal.format.DefaultConfigurationFormatSpi
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/main/resources/META-INF/services/org.apache.tamaya.core.spi.ExpressionResolver
----------------------------------------------------------------------
diff --git a/dormant/core/src/main/resources/META-INF/services/org.apache.tamaya.core.spi.ExpressionResolver b/dormant/core/src/main/resources/META-INF/services/org.apache.tamaya.core.spi.ExpressionResolver
deleted file mode 100644
index b4499f6..0000000
--- a/dormant/core/src/main/resources/META-INF/services/org.apache.tamaya.core.spi.ExpressionResolver
+++ /dev/null
@@ -1,20 +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.
-#
-org.apache.tamaya.core.internal.el.SystemPropertyResolver
-org.apache.tamaya.core.internal.el.EnvironmentPropertyResolver
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/main/resources/META-INF/services/org.apache.tamaya.core.spi.PathResolver
----------------------------------------------------------------------
diff --git a/dormant/core/src/main/resources/META-INF/services/org.apache.tamaya.core.spi.PathResolver b/dormant/core/src/main/resources/META-INF/services/org.apache.tamaya.core.spi.PathResolver
deleted file mode 100644
index e13b388..0000000
--- a/dormant/core/src/main/resources/META-INF/services/org.apache.tamaya.core.spi.PathResolver
+++ /dev/null
@@ -1,20 +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.
-#
-org.apache.tamaya.core.internal.resources.AntPathClasspathResolver
-org.apache.tamaya.core.internal.resources.AntPathFileResolver
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/main/resources/META-INF/services/org.apache.tamaya.core.spi.PropertyProviderBuilderSpi
----------------------------------------------------------------------
diff --git a/dormant/core/src/main/resources/META-INF/services/org.apache.tamaya.core.spi.PropertyProviderBuilderSpi b/dormant/core/src/main/resources/META-INF/services/org.apache.tamaya.core.spi.PropertyProviderBuilderSpi
deleted file mode 100644
index bcab3ea..0000000
--- a/dormant/core/src/main/resources/META-INF/services/org.apache.tamaya.core.spi.PropertyProviderBuilderSpi
+++ /dev/null
@@ -1,19 +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.
-#
-org.apache.tamaya.core.properties.PropertySourceFactory

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/main/resources/META-INF/services/org.apache.tamaya.spi.ConfigurationSpi
----------------------------------------------------------------------
diff --git a/dormant/core/src/main/resources/META-INF/services/org.apache.tamaya.spi.ConfigurationSpi b/dormant/core/src/main/resources/META-INF/services/org.apache.tamaya.spi.ConfigurationSpi
deleted file mode 100644
index 1c7d005..0000000
--- a/dormant/core/src/main/resources/META-INF/services/org.apache.tamaya.spi.ConfigurationSpi
+++ /dev/null
@@ -1,19 +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.
-#
-old.DefaultConfigurationSpi
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/main/resources/META-INF/services/org.apache.tamaya.spi.PropertyAdapterSpi
----------------------------------------------------------------------
diff --git a/dormant/core/src/main/resources/META-INF/services/org.apache.tamaya.spi.PropertyAdapterSpi b/dormant/core/src/main/resources/META-INF/services/org.apache.tamaya.spi.PropertyAdapterSpi
deleted file mode 100644
index 0f48c84..0000000
--- a/dormant/core/src/main/resources/META-INF/services/org.apache.tamaya.spi.PropertyAdapterSpi
+++ /dev/null
@@ -1,19 +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.
-#
-org.apache.tamaya.core.internal.DefaultPropertyAdapterSpi

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/main/resources/log4j2.xml
----------------------------------------------------------------------
diff --git a/dormant/core/src/main/resources/log4j2.xml b/dormant/core/src/main/resources/log4j2.xml
deleted file mode 100644
index 22e9c16..0000000
--- a/dormant/core/src/main/resources/log4j2.xml
+++ /dev/null
@@ -1,31 +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.
--->
-<Configuration status="WARN">
-    <Appenders>
-        <Console name="Console" target="SYSTEM_OUT">
-            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
-        </Console>
-    </Appenders>
-    <Loggers>
-        <Root level="warn">
-            <AppenderRef ref="Console"/>
-        </Root>
-    </Loggers>
-</Configuration>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/test/java/org/apache/tamaya/DefaultConfigurationManagerSingletonSpiSingletonSpiTest.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/test/java/org/apache/tamaya/DefaultConfigurationManagerSingletonSpiSingletonSpiTest.java b/dormant/core/src/test/java/org/apache/tamaya/DefaultConfigurationManagerSingletonSpiSingletonSpiTest.java
deleted file mode 100644
index 514cda6..0000000
--- a/dormant/core/src/test/java/org/apache/tamaya/DefaultConfigurationManagerSingletonSpiSingletonSpiTest.java
+++ /dev/null
@@ -1,96 +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 static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import org.apache.tamaya.annotation.ConfiguredProperty;
-import org.apache.tamaya.annotation.DefaultValue;
-import old.DefaultConfigurationSpi;
-import org.junit.Test;
-
-/**
- * Test class for {@link old.DefaultConfigurationSpi}.
- */
-public class DefaultConfigurationManagerSingletonSpiSingletonSpiTest {
-
-
-    @Test
-    public void testSEConfigurationService() {
-        new DefaultConfigurationSpi();
-    }
-
-    @Test
-    public void testGetConfigurationString() {
-        Configuration config = Configuration.current("default");
-        assertNotNull(config);
-        assertTrue(config.toString().contains("default"));
-        assertNotNull(config.getName());
-        assertTrue(config.getName().contains("default"));
-        System.out.println("CONFIG: " + config);
-        assertEquals(System.getProperty("java.version"),
-                config.get("java.version").get());
-
-        config = Configuration.current("system.properties");
-        assertNotNull(config);
-        assertNotNull(config.getName());
-        assertTrue(config.getName().contains("system.properties"));
-        assertEquals(System.getProperty("java.version"),
-                config.get("java.version").get());
-    }
-
-    @Test
-    public void testIsConfigurationDefined() {
-        assertTrue(Configuration.isAvailable("testdata"));
-        assertFalse(Configuration.isAvailable("sdksajdsajdlkasj dlkjaslkd"));
-    }
-
-    @Test
-    public void testAddRemoveGlobalConfigChangeListener() {
-//        Configuration.addConfigChangeListener(LISTENER);
-//        Configuration.removeConfigChangeListener(LISTENER);
-//        Configuration.addConfigChangeListener(LISTENER);
-//        Configuration.addConfigChangeListener(LISTENER);
-//        Configuration.removeConfigChangeListener(LISTENER);
-//        Configuration.removeConfigChangeListener(LISTENER);
-//        Configuration.removeConfigChangeListener(LISTENER);
-    }
-
-    @Test
-    public void testConfigure() {
-        ConfigureTest test = new ConfigureTest();
-        Configuration.configure(test);
-        assertEquals(test.mustBeTrue, true);
-        assertEquals(test.val1, "YES, it works!");
-    }
-
-    private static class ConfigureTest {
-        @ConfiguredProperty
-        @DefaultValue("YES, it works!")
-        String val1;
-
-        @ConfiguredProperty
-        @DefaultValue("true")
-        boolean mustBeTrue;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/test/java/org/apache/tamaya/JavaOneDemo.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/test/java/org/apache/tamaya/JavaOneDemo.java b/dormant/core/src/test/java/org/apache/tamaya/JavaOneDemo.java
deleted file mode 100644
index b5cdf93..0000000
--- a/dormant/core/src/test/java/org/apache/tamaya/JavaOneDemo.java
+++ /dev/null
@@ -1,75 +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 static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.tamaya.core.ConfigurationFunctions;
-import org.apache.tamaya.core.properties.PropertySourceBuilder;
-import org.apache.tamaya.spi.PropertySource;
-import org.junit.Test;
-
-/**
- * Created by Anatole on 30.09.2014.
- */
-public class JavaOneDemo {
-
-    @Test
-    public void testFromSystemProperties() {
-        PropertySource prov = PropertySourceBuilder.of("Sys-conf").addSystemProperties().build();
-        assertNotNull(prov);
-        for (Map.Entry<Object, Object> en : System.getProperties().entrySet()) {
-            assertEquals(en.getValue(), prov.get(en.getKey().toString()).get());
-        }
-    }
-
-    @Test
-    public void testProgrammatixPropertySet() {
-        System.out.println(PropertySourceBuilder.of("testdata").addPaths("testdata", "classpath:testdata.properties"));
-    }
-
-    @Test
-    public void testProgrammaticConfig() {
-//        ConfigurationFormat format = ConfigurationFormats.getPropertiesFormat();
-        Map<String, String> cfgMap = new HashMap<>();
-        cfgMap.put("param1", "value1");
-        cfgMap.put("a", "Adrian"); // overrides Anatole
-        Configuration config = Configuration.from(PropertySourceBuilder.of("myTestConfig").addPaths(
-                "classpath:testdata.properties").addPaths("classpath:cfg/testdata.xml")
-                .addArgs(new String[]{"-arg1", "--fullarg", "fullValue", "-myflag"})
-                .addMap(cfgMap).build());
-        System.out.println(config.query(ConfigurationFunctions.getAreas()));
-        System.out.println("---");
-        System.out.println(config.query(ConfigurationFunctions.getAreas(s -> s.startsWith("another"))));
-        System.out.println("---");
-        System.out.println(config.query(ConfigurationFunctions.getTransitiveAreas()));
-        System.out.println("---");
-        System.out.println(config.query(ConfigurationFunctions.getTransitiveAreas(s -> s.startsWith("another"))));
-        System.out.println("---");
-        System.out.println(config);
-        System.out.print("--- b=");
-        System.out.println(config.get("b"));
-//        System.out.println("--- only a,b,c)");
-//        System.out.println(PropertySourceBuilder.of(config).filter((f) -> f.equals("a") || f.equals("b") || f.equals("c")).build());
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/test/java/org/apache/tamaya/core/config/ConfiguredSystemPropertiesTest.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/test/java/org/apache/tamaya/core/config/ConfiguredSystemPropertiesTest.java b/dormant/core/src/test/java/org/apache/tamaya/core/config/ConfiguredSystemPropertiesTest.java
deleted file mode 100644
index 7790d8b..0000000
--- a/dormant/core/src/test/java/org/apache/tamaya/core/config/ConfiguredSystemPropertiesTest.java
+++ /dev/null
@@ -1,94 +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.core.config;
-//
-//import static org.junit.Assert.assertTrue;
-//
-//import java.util.Properties;
-//
-//import org.apache.tamaya.core.env.ConfiguredSystemProperties;
-//import org.junit.Test;
-//
-///**
-// * Created by Anatole on 02.10.2014.
-// */
-//public class ConfiguredSystemPropertiesTest {
-//
-//    @Test
-//    public void testInstall(){
-////        Configuration config = Configuration.current();
-//        Properties props = System.getProperties();
-//        assertTrue(props.getClass().getName().equals(Properties.class.getName()));
-//        System.out.println("Props("+props.getClass().getName()+"): " + props);
-//        ConfiguredSystemProperties.install();
-//        props = System.getProperties();
-//        System.out.println("Props("+props.getClass().getName()+"): " + props);
-//        assertTrue(props.getClass().getName().equals(ConfiguredSystemProperties.class.getName()));
-//        ConfiguredSystemProperties.uninstall();
-//        props = System.getProperties();
-//        assertTrue(props.getClass().getName().equals(Properties.class.getName()));
-//    }
-//}
-///*
-// * 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.core.config;
-//
-//import static org.junit.Assert.assertTrue;
-//
-//import java.util.Properties;
-//
-//import org.apache.tamaya.core.env.ConfiguredSystemProperties;
-//import org.junit.Test;
-//
-///**
-// * Created by Anatole on 02.10.2014.
-// */
-//public class ConfiguredSystemPropertiesTest {
-//
-//    @Test
-//    public void testInstall(){
-////        Configuration config = Configuration.current();
-//        Properties props = System.getProperties();
-//        assertTrue(props.getClass().getName().equals(Properties.class.getName()));
-//        System.out.println("Props("+props.getClass().getName()+"): " + props);
-//        ConfiguredSystemProperties.install();
-//        props = System.getProperties();
-//        System.out.println("Props("+props.getClass().getName()+"): " + props);
-//        assertTrue(props.getClass().getName().equals(ConfiguredSystemProperties.class.getName()));
-//        ConfiguredSystemProperties.uninstall();
-//        props = System.getProperties();
-//        assertTrue(props.getClass().getName().equals(Properties.class.getName()));
-//    }
-//}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/test/java/org/apache/tamaya/core/config/MutableConfigTest.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/test/java/org/apache/tamaya/core/config/MutableConfigTest.java b/dormant/core/src/test/java/org/apache/tamaya/core/config/MutableConfigTest.java
deleted file mode 100644
index 644ef0a..0000000
--- a/dormant/core/src/test/java/org/apache/tamaya/core/config/MutableConfigTest.java
+++ /dev/null
@@ -1,50 +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.core.config;
-//
-//import org.apache.tamaya.Configuration;
-//import org.junit.Test;
-//
-//import java.beans.PropertyChangeEvent;
-//import java.util.ArrayList;
-//import java.util.List;
-//
-//import static org.junit.Assert.assertFalse;
-//
-///**
-// * Simple testdata for a mutable Configuration instance.
-// */
-//public class MutableConfigTest {
-//
-//    @Test
-//    public void accessMutableConfig() {
-//        Configuration config = Configuration.current("mutableTestConfig");
-//        ConfigChangeSet changeSet = ConfigChangeSetBuilder.of(config).put("testCase", "accessMutableConfig")
-//                .put("execTime", System.currentTimeMillis()).put("execution", "once").build();
-//        List<PropertyChangeEvent> changes = new ArrayList<>();
-//        Configuration.addChangeListener(change -> {
-//            if (change.getPropertySource() == config) {
-//                changes.addAll(change.getEvents());
-//            }
-//        });
-//        config.applyChanges(changeSet);
-//        assertFalse(changes.isEmpty());
-//        System.out.println(changes);
-//    }
-//}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/test/java/org/apache/tamaya/core/internal/DefaultServiceContextTest.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/test/java/org/apache/tamaya/core/internal/DefaultServiceContextTest.java b/dormant/core/src/test/java/org/apache/tamaya/core/internal/DefaultServiceContextTest.java
deleted file mode 100644
index d14c24a..0000000
--- a/dormant/core/src/test/java/org/apache/tamaya/core/internal/DefaultServiceContextTest.java
+++ /dev/null
@@ -1,131 +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.core.internal;
-
-import org.apache.tamaya.ConfigException;
-import org.apache.tamaya.spi.ConfigurationContext;
-import org.junit.Assert;
-import org.junit.Test;
-
-import javax.annotation.Priority;
-import java.util.List;
-import java.util.Optional;
-
-public class DefaultServiceContextTest {
-
-    /**
-     * context to test
-     */
-    private DefaultServiceContext context = new DefaultServiceContext();
-
-
-//    @Test
-//    public void testGetService() {
-//        Optional<ConfigurationContext> configurationContext = context.getService(ConfigurationContext.class);
-//
-//        Assert.assertNotNull(configurationContext);
-//        Assert.assertTrue(configurationContext.isPresent());
-//        Assert.assertTrue(configurationContext.get() instanceof DefaultConfigurationContext);
-//    }
-//
-//    @Test(expected = ConfigException.class)
-//    public void testGetService_multipleServicesWithoutPriority_shouldThrowConfigException() {
-//        context.getService(InvalidPriorityInterface.class);
-//    }
-//
-//    @Test
-//    public void testGetService_multipleService_shouldReturnServiceWithHighestPriority() {
-//        Optional<MultiImplsInterface> service = context.getService(MultiImplsInterface.class);
-//
-//        Assert.assertTrue(service.isPresent());
-//        Assert.assertTrue(service.get() instanceof MultiImpl2);
-//    }
-//
-//    @Test
-//    public void testGetService_noImpl_shouldReturnEmptyOpional() {
-//        Optional<NoImplInterface> service = context.getService(NoImplInterface.class);
-//        Assert.assertFalse(service.isPresent());
-//    }
-
-
-    @Test
-    public void testGetServices_shouldReturnServices() {
-        {
-            List<InvalidPriorityInterface> services = context.getServices(InvalidPriorityInterface.class);
-            Assert.assertNotNull(services);
-            Assert.assertEquals(2, services.size());
-
-            for (InvalidPriorityInterface service : services) {
-                Assert.assertTrue(service instanceof InvalidPriorityImpl1 || service instanceof InvalidPriorityImpl2);
-            }
-        }
-
-        {
-            List<MultiImplsInterface> services = context.getServices(MultiImplsInterface.class);
-            Assert.assertNotNull(services);
-            Assert.assertEquals(3, services.size());
-
-            for (MultiImplsInterface service : services) {
-                Assert.assertTrue(service instanceof MultiImpl1 ||
-                                          service instanceof MultiImpl2 ||
-                                          service instanceof MultiImpl3);
-            }
-        }
-    }
-
-    @Test
-    public void testGetServices_noImpl_shouldReturnEmptyList() {
-        List<NoImplInterface> services = context.getServices(NoImplInterface.class);
-        Assert.assertNotNull(services);
-        Assert.assertTrue(services.isEmpty());
-    }
-
-
-    // some test interfaces and classes
-
-    public static interface InvalidPriorityInterface {
-    }
-
-    @Priority(value = 50)
-    public static class InvalidPriorityImpl1 implements InvalidPriorityInterface {
-    }
-
-    @Priority(value = 50)
-    public static class InvalidPriorityImpl2 implements InvalidPriorityInterface {
-    }
-
-
-    public static interface MultiImplsInterface {
-    }
-
-    public static class MultiImpl1 implements MultiImplsInterface {
-    }
-
-    @Priority(value = 500)
-    public static class MultiImpl2 implements MultiImplsInterface {
-    }
-
-    @Priority(value = -10)
-    public static class MultiImpl3 implements MultiImplsInterface {
-    }
-
-
-    private static interface NoImplInterface {
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/test/java/org/apache/tamaya/core/internal/PropetiesFileLoaderTest.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/test/java/org/apache/tamaya/core/internal/PropetiesFileLoaderTest.java b/dormant/core/src/test/java/org/apache/tamaya/core/internal/PropetiesFileLoaderTest.java
deleted file mode 100644
index c125641..0000000
--- a/dormant/core/src/test/java/org/apache/tamaya/core/internal/PropetiesFileLoaderTest.java
+++ /dev/null
@@ -1,75 +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.core.internal;
-
-import org.junit.Assert;
-import org.junit.Test;
-
-import java.net.URL;
-import java.util.Properties;
-import java.util.Set;
-
-public class PropetiesFileLoaderTest {
-
-
-    @Test
-    public void testResolvePropertiesFiles() throws Exception {
-        Properties expectedProperties = PropertiesFileLoader.load(Thread.currentThread().getContextClassLoader().getResource("testfile.properties"));
-
-        {
-            // with .properties
-            Set<URL> urls = PropertiesFileLoader.resolvePropertiesFiles("testfile.properties");
-            Assert.assertNotNull(urls);
-            Assert.assertFalse(urls.isEmpty());
-
-            Properties properties = PropertiesFileLoader.load(urls.iterator().next());
-            Assert.assertEquals(expectedProperties.size(), properties.size());
-        }
-
-        {
-            // without .properties
-            Set<URL> urls = PropertiesFileLoader.resolvePropertiesFiles("testfile");
-            Assert.assertNotNull(urls);
-            Assert.assertFalse(urls.isEmpty());
-
-            Properties properties = PropertiesFileLoader.load(urls.iterator().next());
-            Assert.assertEquals(expectedProperties.size(), properties.size());
-        }
-
-        {
-            // with a while which doesn't exist
-            Set<URL> urls = PropertiesFileLoader.resolvePropertiesFiles("nonexistingfile.properties");
-            Assert.assertNotNull(urls);
-            Assert.assertTrue(urls.isEmpty());
-        }
-
-    }
-
-    @Test
-    public void testLoad() {
-        Properties properties = PropertiesFileLoader.load(Thread.currentThread().getContextClassLoader().getResource("testfile.properties"));
-
-        Assert.assertNotNull(properties);
-        Assert.assertEquals(5, properties.size());
-
-        for (int i = 1; i < 6; i++) {
-            Assert.assertEquals(properties.getProperty("key" + i), "val" + i);
-        }
-    }
-}


[06/10] incubator-tamaya git commit: Removed unused dormant parts. Moved usable dormant utils into new sandbox module. Fixed jqassistant issues in simple metamodel module.

Posted by an...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/test/java/org/apache/tamaya/core/internal/config/FilesPropertiesConfigProviderTest.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/test/java/org/apache/tamaya/core/internal/config/FilesPropertiesConfigProviderTest.java b/dormant/core/src/test/java/org/apache/tamaya/core/internal/config/FilesPropertiesConfigProviderTest.java
deleted file mode 100644
index 276d16e..0000000
--- a/dormant/core/src/test/java/org/apache/tamaya/core/internal/config/FilesPropertiesConfigProviderTest.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package org.apache.tamaya.core.internal.config;
-
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-
-import org.apache.tamaya.Configuration;
-import old.ConfigurationProviderSpi;
-import org.junit.Before;
-import org.junit.Test;
-
-public class FilesPropertiesConfigProviderTest {
-
-
-	private ConfigurationProviderSpi configurationProvider;
-
-	@Before
-	public void init() throws InterruptedException {
-		configurationProvider = new FilesPropertiesConfigProvider();
-	}
-
-	@Test
-	public void getTest() throws InterruptedException{
-	    Configuration configuration = configurationProvider.getConfiguration();
-	    assertEquals(configuration.get("team").get(), "Bahia");
-	    assertFalse(configuration.get("ignore").isPresent());
-	}
-
-	@Test
-	public void shouldUpdateAsync() throws Exception {
-	    createPropertiesFile("newFile.properties", "language=java");
-	    Configuration configuration = configurationProvider.getConfiguration();
-
-	    Thread.sleep(100L);
-	    assertEquals(configuration.get("language").get(), "java");
-
-	}
-
-	   @Test
-	    public void shoulIgnoreAsync() throws Exception {
-	        createPropertiesFile("newFile.ini", "name=otavio");
-	        Configuration configuration = configurationProvider.getConfiguration();
-
-	        Thread.sleep(100L);
-	        assertFalse(configuration.get("otavio").isPresent());
-
-	    }
-
-    private void createPropertiesFile(String fileName, String context) throws URISyntaxException,
-            FileNotFoundException, IOException {
-        URL resource = FilesPropertiesConfigProviderTest.class.getResource("/META-INF/configuration/");
-	    Path directory = Paths.get(resource.toURI());
-	    File file = new File(directory.toFile(), fileName);
-        try (OutputStream stream = new FileOutputStream(file)) {
-            stream.write(context.getBytes());
-            file.deleteOnExit();
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/test/java/org/apache/tamaya/core/properties/PropertySourceBuilderTest.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/test/java/org/apache/tamaya/core/properties/PropertySourceBuilderTest.java b/dormant/core/src/test/java/org/apache/tamaya/core/properties/PropertySourceBuilderTest.java
deleted file mode 100644
index 66b822e..0000000
--- a/dormant/core/src/test/java/org/apache/tamaya/core/properties/PropertySourceBuilderTest.java
+++ /dev/null
@@ -1,52 +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.core.properties;
-
-import org.apache.tamaya.spi.PropertySource;
-import org.junit.Test;
-
-import java.util.Map;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-/**
- * Created by Anatole on 30.09.2014.
- */
-public class PropertySourceBuilderTest {
-
-    @Test
-    public void testFromEnvironmentProperties(){
-        PropertySource prov = PropertySourceBuilder.of("testdata").addEnvironmentProperties().build();
-        assertNotNull(prov);
-        for(Map.Entry<String,String> en:System.getenv().entrySet()){
-            assertEquals(en.getValue(), prov.get(en.getKey()).get());
-        }
-    }
-
-    @Test
-    public void testFromSystemProperties(){
-        PropertySource prov = PropertySourceBuilder.of("testdata").addSystemProperties().build();
-        assertNotNull(prov);
-        for(Map.Entry<Object,Object> en:System.getProperties().entrySet()){
-            assertEquals(en.getValue(), prov.get(en.getKey().toString()).get());
-        }
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/test/java/org/apache/tamaya/internal/MutableTestConfigProvider.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/test/java/org/apache/tamaya/internal/MutableTestConfigProvider.java b/dormant/core/src/test/java/org/apache/tamaya/internal/MutableTestConfigProvider.java
deleted file mode 100644
index 41140ab..0000000
--- a/dormant/core/src/test/java/org/apache/tamaya/internal/MutableTestConfigProvider.java
+++ /dev/null
@@ -1,90 +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.internal;
-//
-//import java.util.Collections;
-//import java.util.HashMap;
-//import java.util.Map;
-//import java.util.concurrent.ConcurrentHashMap;
-//
-//import org.apache.tamaya.Configuration;
-//import old.ConfigurationProviderSpi;
-//
-///**
-// * Simple testdata provider that creates a mutable instance of a configuration, just using a simple map instance.
-// */
-//public class MutableTestConfigProvider implements ConfigurationProviderSpi{
-//    /** The config name. */
-//    private static final String CONFIG_NAME = "mutableTestConfig";
-//    /** The config provided. */
-//    private MutableConfiguration testConfig;
-//
-//    /**
-//     * COnsatructor.
-//     */
-//    public MutableTestConfigProvider(){
-//        Map<String, String> dataMap = new HashMap<>();
-//        dataMap.put("dad", "Anatole");
-//        dataMap.put("mom", "Sabine");
-//        dataMap.put("sons.1", "Robin");
-//        dataMap.put("sons.2", "Luke");
-//        dataMap.put("sons.3", "Benjamin");
-////        PropertySource provider = PropertySourceBuilder.of(CONFIG_NAME).addMap(dataMap).build();
-//        testConfig = new MutableConfiguration(dataMap, CONFIG_NAME);
-//    }
-//
-//    @Override
-//    public String getConfigName(){
-//        return CONFIG_NAME;
-//    }
-//
-//    @Override
-//    public Configuration getConfiguration(){
-//        return testConfig;
-//    }
-//
-//    @Override
-//    public void reload() {
-//
-//    }
-//
-//    /**
-//     * Implements a simple mutable config based on a Mao instance.
-//     */
-//    private final class MutableConfiguration extends AbstractConfiguration{
-//
-//		private static final long serialVersionUID = 8811989470609598218L;
-//		private final Map<String,String> data = new ConcurrentHashMap<>();
-//
-//        MutableConfiguration(Map<String,String> data, String name){
-//            super(name);
-//            this.data.putAll(data);
-//        }
-//
-//        @Override
-//        public Map<String, String> getProperties() {
-//            return Collections.unmodifiableMap(data);
-//        }
-//
-//        @Override
-//        public Configuration toConfiguration(){
-//            return this;
-//        }
-//    }
-//}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/test/java/org/apache/tamaya/internal/TestConfigProvider.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/test/java/org/apache/tamaya/internal/TestConfigProvider.java b/dormant/core/src/test/java/org/apache/tamaya/internal/TestConfigProvider.java
deleted file mode 100644
index 4224d02..0000000
--- a/dormant/core/src/test/java/org/apache/tamaya/internal/TestConfigProvider.java
+++ /dev/null
@@ -1,68 +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.internal;
-
-import org.apache.tamaya.core.properties.PropertySourceBuilder;
-import old.ConfigurationProviderSpi;
-
-import org.apache.tamaya.Configuration;
-
-import java.util.*;
-
-/**
- * Created by Anatole on 29.09.2014.
- */
-public class TestConfigProvider implements ConfigurationProviderSpi{
-
-    private Configuration testConfig;
-
-    public TestConfigProvider(){
-        final Map<String,String> config = new HashMap<>();
-        config.put("a.b.c.key1", "keys current a.b.c.key1");
-        config.put("a.b.c.key2", "keys current a.b.c.key2");
-        config.put("a.b.key3", "keys current a.b.key3");
-        config.put("a.b.key4", "keys current a.b.key4");
-        config.put("a.key5", "keys current a.key5");
-        config.put("a.key6", "keys current a.key6");
-        config.put("int1", "123456");
-        config.put("int2", "111222");
-        config.put("booleanT", "true");
-        config.put("double1", "1234.5678");
-        config.put("BD", "123456789123456789123456789123456789.123456789123456789123456789123456789");
-        config.put("testProperty", "keys current testProperty");
-        config.put("runtimeVersion", "${java.version}");
-        testConfig = Configuration.from(PropertySourceBuilder.of("testdata").addMap(
-                config).build());
-    }
-
-    @Override
-    public String getConfigName(){
-        return "testdata";
-    }
-
-    @Override
-    public Configuration getConfiguration(){
-        return testConfig;
-    }
-
-    @Override
-    public void reload() {
-        // nothing todo here
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/test/java/org/apache/tamaya/package-info.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/test/java/org/apache/tamaya/package-info.java b/dormant/core/src/test/java/org/apache/tamaya/package-info.java
deleted file mode 100644
index cbf5a3d..0000000
--- a/dormant/core/src/test/java/org/apache/tamaya/package-info.java
+++ /dev/null
@@ -1,22 +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.
- */
-
-/**
- * Created by Anatole on 02.12.2014.
- */
-package org.apache.tamaya;

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/test/java/org/apache/tamaya/samples/annotations/AutoConfiguredClass.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/test/java/org/apache/tamaya/samples/annotations/AutoConfiguredClass.java b/dormant/core/src/test/java/org/apache/tamaya/samples/annotations/AutoConfiguredClass.java
deleted file mode 100644
index f18271a..0000000
--- a/dormant/core/src/test/java/org/apache/tamaya/samples/annotations/AutoConfiguredClass.java
+++ /dev/null
@@ -1,91 +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.samples.annotations;
-
-import org.apache.tamaya.annotation.DefaultValue;
-import org.apache.tamaya.annotation.NoConfig;
-import org.apache.tamaya.annotation.ObservesConfigChange;
-
-import java.beans.PropertyChangeEvent;
-import java.math.BigDecimal;
-
-/**
- * Test example of a configured tyü that is using default config key resolution.
- */
-public class AutoConfiguredClass {
-
-    private String testProperty;
-
-    @DefaultValue("The current \\${JAVA_HOME} env property is ${env:JAVA_HOME}.")
-    String value1;
-
-    @NoConfig
-    private String value2;
-
-    @DefaultValue("N/A")
-    private String runtimeVersion;
-
-    @DefaultValue("${java.version}")
-    private String javaVersion2;
-
-    @DefaultValue("5")
-    private Integer int1;
-
-    private int int2;
-
-    @ObservesConfigChange
-    public void changeListener1(PropertyChangeEvent configChange){
-        // will be called
-    }
-
-    public String getTestProperty() {
-        return testProperty;
-    }
-
-    public String getValue1() {
-        return value1;
-    }
-
-    public String getValue2() {
-        return value2;
-    }
-
-    public String getRuntimeVersion() {
-        return runtimeVersion;
-    }
-
-    public String getJavaVersion2() {
-        return javaVersion2;
-    }
-
-    public Integer getInt1() {
-        return int1;
-    }
-
-    public int getInt2() {
-        return int2;
-    }
-
-    public String toString(){
-        return super.toString() + ": testProperty="+testProperty+", value1="+value1+", value2="+value2
-                +", int1="+int1+", int2="+int2
-                +", runtimeVersion="+runtimeVersion+", javaVersion2="+javaVersion2;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/test/java/org/apache/tamaya/samples/annotations/AutoConfiguredTest.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/test/java/org/apache/tamaya/samples/annotations/AutoConfiguredTest.java b/dormant/core/src/test/java/org/apache/tamaya/samples/annotations/AutoConfiguredTest.java
deleted file mode 100644
index 8b1c7dd..0000000
--- a/dormant/core/src/test/java/org/apache/tamaya/samples/annotations/AutoConfiguredTest.java
+++ /dev/null
@@ -1,43 +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.samples.annotations;
-
-import jdk.nashorn.internal.runtime.regexp.joni.Config;
-import org.apache.tamaya.Configuration;
-import org.apache.tamaya.core.properties.PropertySourceBuilder;
-import org.junit.Test;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assume.assumeTrue;
-
-/**
- * Created by Anatole on 08.09.2014.
- */
-public class AutoConfiguredTest {
-
-
-    @Test
-    public void testTemplateWithEnvironmentVariableOnUnixoidSystem(){
-        AutoConfiguredClass config = new AutoConfiguredClass();
-        Configuration.configure(config, Configuration.from(PropertySourceBuilder.of("default").addPaths("classpath:cfg/autoloaded.xml").build()));
-        System.out.println(config);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/test/java/org/apache/tamaya/samples/annotations/ConfigTemplate.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/test/java/org/apache/tamaya/samples/annotations/ConfigTemplate.java b/dormant/core/src/test/java/org/apache/tamaya/samples/annotations/ConfigTemplate.java
deleted file mode 100644
index 9dfa5d0..0000000
--- a/dormant/core/src/test/java/org/apache/tamaya/samples/annotations/ConfigTemplate.java
+++ /dev/null
@@ -1,67 +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.samples.annotations;
-
-import org.apache.tamaya.annotation.ConfiguredProperty;
-import org.apache.tamaya.annotation.DefaultValue;
-
-import java.math.BigDecimal;
-
-/**
- * Created by Anatole on 08.09.2014.
- */
-public interface ConfigTemplate {
-
-    @ConfiguredProperty
-    String testProperty();
-
-    @ConfiguredProperty(keys = "Foo")
-    @DefaultValue("The current \\${JAVA_HOME} env property is ${env:JAVA_HOME}.")
-    String value1();
-
-    // COMPUTERNAME is only under Windows available
-    @ConfiguredProperty
-    @DefaultValue("${env:COMPUTERNAME}")
-    String computerName();
-
-    @ConfiguredProperty(keys = "HOME")
-    String homeDir();
-
-    @ConfiguredProperty
-    @DefaultValue("N/A")
-    String runtimeVersion();
-
-    @ConfiguredProperty
-    @DefaultValue("${sys:java.version}")
-    String javaVersion2();
-
-    @ConfiguredProperty
-    @DefaultValue("5")
-    Integer int1();
-
-    @ConfiguredProperty
-    @DefaultValue("2233")
-    int int2();
-
-    @ConfiguredProperty
-    boolean booleanT();
-
-    @ConfiguredProperty(keys = "BD")
-    BigDecimal bigNumber();
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/test/java/org/apache/tamaya/samples/annotations/ConfiguredClass.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/test/java/org/apache/tamaya/samples/annotations/ConfiguredClass.java b/dormant/core/src/test/java/org/apache/tamaya/samples/annotations/ConfiguredClass.java
deleted file mode 100644
index 70e18cf..0000000
--- a/dormant/core/src/test/java/org/apache/tamaya/samples/annotations/ConfiguredClass.java
+++ /dev/null
@@ -1,114 +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.samples.annotations;
-
-import org.apache.tamaya.annotation.ObservesConfigChange;
-import org.apache.tamaya.annotation.ConfiguredProperty;
-import org.apache.tamaya.annotation.DefaultValue;
-
-import java.beans.PropertyChangeEvent;
-import java.math.BigDecimal;
-
-/**
- * Created by Anatole on 08.09.2014.
- */
-public class ConfiguredClass{
-
-    @ConfiguredProperty
-    private String testProperty;
-
-    @ConfiguredProperty(keys = "a.b.c.key1")
-    @ConfiguredProperty(keys = "a.b.c.key2")
-    @ConfiguredProperty(keys = "a.b.c.key3")
-    @DefaultValue("The current \\${JAVA_HOME} env property is ${env:JAVA_HOME}.")
-    String value1;
-
-    @ConfiguredProperty(config="testdata", keys = "foo")
-    @ConfiguredProperty(keys = "a.b.c.key2")
-    private String value2;
-
-    @ConfiguredProperty
-    @DefaultValue("N/A")
-    private String runtimeVersion;
-
-    @ConfiguredProperty
-    @DefaultValue("${sys:java.version}")
-    private String javaVersion2;
-
-    @ConfiguredProperty
-    @DefaultValue("5")
-    private Integer int1;
-
-    @ConfiguredProperty(config = "testdata")
-    private int int2;
-
-    @ConfiguredProperty(config = "testdata")
-    private boolean booleanT;
-
-    @ConfiguredProperty(config="testdata", keys ="BD")
-    private BigDecimal bigNumber;
-
-    @ObservesConfigChange
-    public void changeListener1(PropertyChangeEvent configChange){
-        // will be called
-    }
-
-    public String getTestProperty() {
-        return testProperty;
-    }
-
-    public String getValue1() {
-        return value1;
-    }
-
-    public String getValue2() {
-        return value2;
-    }
-
-    public String getRuntimeVersion() {
-        return runtimeVersion;
-    }
-
-    public String getJavaVersion2() {
-        return javaVersion2;
-    }
-
-    public Integer getInt1() {
-        return int1;
-    }
-
-    public int getInt2() {
-        return int2;
-    }
-
-    public boolean isBooleanT() {
-        return booleanT;
-    }
-
-    public BigDecimal getBigNumber() {
-        return bigNumber;
-    }
-
-    public String toString(){
-        return super.toString() + ": testProperty="+testProperty+", value1="+value1+", value2="+value2
-                +", int1="+int1+", int2="+int2+", booleanT="+booleanT+", bigNumber="+bigNumber
-                +", runtimeVersion="+runtimeVersion+", javaVersion2="+javaVersion2;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/test/java/org/apache/tamaya/samples/annotations/ConfiguredTest.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/test/java/org/apache/tamaya/samples/annotations/ConfiguredTest.java b/dormant/core/src/test/java/org/apache/tamaya/samples/annotations/ConfiguredTest.java
deleted file mode 100644
index 112f479..0000000
--- a/dormant/core/src/test/java/org/apache/tamaya/samples/annotations/ConfiguredTest.java
+++ /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 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.samples.annotations;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assume.assumeTrue;
-
-import org.apache.tamaya.Configuration;
-import org.junit.Test;
-
-/**
- * Created by Anatole on 08.09.2014.
- */
-public class ConfiguredTest {
-    private static final String OS = System.getProperty("os.name").toLowerCase();
-
-    @Test
-    public void testTemplateOnAllSystems(){
-        ConfigTemplate template = Configuration.createTemplate(ConfigTemplate.class);
-        assertNotNull(template);
-        assertEquals(2233, template.int2());
-        assertEquals(Integer.valueOf(5), template.int1());
-        assertNotNull(System.getProperty("java.version"), template.javaVersion2());
-    }
-
-    @Test
-    public void testTemplateWithEnvironmentVariableOnWindows(){
-        assumeTrue(OS.contains("win"));
-        ConfigTemplate template = Configuration.createTemplate(ConfigTemplate.class);
-        assertNotNull(template.computerName());
-    }
-
-    @Test
-    public void testTemplateWithEnvironmentVariableOnMac(){
-        assumeTrue(OS.contains("mac"));
-        ConfigTemplate template = Configuration.createTemplate(ConfigTemplate.class);
-        assertNotNull(template.homeDir());
-    }
-
-    @Test
-    public void testTemplateWithEnvironmentVariableOnUnixoidSystem(){
-        assumeTrue(OS.contains("nix") || OS.contains("nux") || OS.indexOf("aix") > 0);
-
-        ConfigTemplate template = Configuration.createTemplate(ConfigTemplate.class);
-        assertNotNull(template.homeDir());
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/test/java/org/apache/tamaya/samples/devops/DeploymentProvider.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/test/java/org/apache/tamaya/samples/devops/DeploymentProvider.java b/dormant/core/src/test/java/org/apache/tamaya/samples/devops/DeploymentProvider.java
deleted file mode 100644
index 97371e3..0000000
--- a/dormant/core/src/test/java/org/apache/tamaya/samples/devops/DeploymentProvider.java
+++ /dev/null
@@ -1,43 +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.samples.devops;
-
-
-public class DeploymentProvider {
-
-	public static void main(String[] args) {
-		// ConfigurationServiceSpi service = JavaConfig.getConfigService();
-		// // Main configuration done by ServiceLoader based services and
-		// // custom implemented system or environment properties, mechanisms
-		// System.out.println(service.getCurrentContext());
-		// // Access default configuration for current environment
-		// DefaultEnvironment myTarget = new DefaultEnvironment();
-		// myTarget.setAttribute("domain", "com.testdata.mydom:domain1:1.0.1");
-		// myTarget.setAttribute("application", "com.testdata.mydom:app1:1.0.1");
-		// myTarget.setAttribute("env", "localTest");
-		// myTarget.setStage(Stage.UnitTest);
-		// Configuration deploymentConfig =
-		// service.getConfiguration("deployment", myTarget);
-		// String startupName = deploymentConfig
-		// .getProperty("deploy.startupName", "N/A");
-		// int intProp = deploymentConfig.getInteger(
-		// "deploy.mainContainer.size");
-		// // ...
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/test/java/org/apache/tamaya/simple/SimplePropertiesAndCLISample.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/test/java/org/apache/tamaya/simple/SimplePropertiesAndCLISample.java b/dormant/core/src/test/java/org/apache/tamaya/simple/SimplePropertiesAndCLISample.java
deleted file mode 100644
index 711ce5f..0000000
--- a/dormant/core/src/test/java/org/apache/tamaya/simple/SimplePropertiesAndCLISample.java
+++ /dev/null
@@ -1,69 +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.simple;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.tamaya.Configuration;
-import org.apache.tamaya.core.ConfigurationFunctions;
-import org.apache.tamaya.core.properties.PropertySourceBuilder;
-import org.junit.Test;
-
-/**
- * Created by Anatole on 24.02.14.
- */
-public class SimplePropertiesAndCLISample {
-
-    @Test
-    public void testSystemPropertyResolution() {
-        System.out.println(Configuration.evaluateValue("${sys:java.version}"));
-    }
-
-    @Test
-    public void testProgrammatixPropertySet() {
-        System.out.println(PropertySourceBuilder.of("testdata").addPaths("testdata", "classpath:testdata.properties").build());
-    }
-
-    @Test
-    public void testProgrammaticConfig() {
-//        ConfigurationFormat format = ConfigurationFormats.getPropertiesFormat();
-        Map<String, String> cfgMap = new HashMap<>();
-        cfgMap.put("param1", "value1");
-        cfgMap.put("a", "Adrian"); // overrides Anatole
-        Configuration config = Configuration.from(PropertySourceBuilder.of("myTestConfig").addPaths(
-                "classpath:testdata.properties").addPaths("classpath:cfg/testdata.xml")
-                .addArgs(new String[]{"-arg1", "--fullarg", "fullValue", "-myflag"}).addMap(cfgMap)
-                .build());
-        System.out.println(config.query(ConfigurationFunctions.getAreas()));
-        System.out.println("---");
-        System.out.println(config.query(ConfigurationFunctions.getAreas(s -> s.startsWith("another"))));
-        System.out.println("---");
-        System.out.println(config.query(ConfigurationFunctions.getTransitiveAreas()));
-        System.out.println("---");
-        System.out.println(config.query(ConfigurationFunctions.getTransitiveAreas(s -> s.startsWith("another"))));
-        System.out.println("---");
-        System.out.println(config);
-        System.out.print("--- b=");
-        System.out.println(config.get("b"));
-//        System.out.println("--- only a,b,c)");
-//        System.out.println(PropertySourceBuilder.of(config).filter((f) -> f.equals("a") || f.equals("b") || f.equals("c")).build());
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/test/java/org/apache/tamaya/ucs/UC1ReadProperties.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/test/java/org/apache/tamaya/ucs/UC1ReadProperties.java b/dormant/core/src/test/java/org/apache/tamaya/ucs/UC1ReadProperties.java
deleted file mode 100644
index 3ef1613..0000000
--- a/dormant/core/src/test/java/org/apache/tamaya/ucs/UC1ReadProperties.java
+++ /dev/null
@@ -1,220 +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.
- */
-package org.apache.tamaya.ucs;
-
-import static junit.framework.TestCase.assertTrue;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-
-import java.util.Map;
-import java.util.stream.Collectors;
-
-import org.apache.tamaya.Configuration;
-import org.apache.tamaya.spi.PropertySource;
-import org.apache.tamaya.core.ConfigurationFunctions;
-import org.apache.tamaya.core.properties.AggregationPolicy;
-import org.apache.tamaya.core.properties.PropertySourceBuilder;
-import org.junit.Test;
-
-/**
- * Configuration is organized as key/keys pairs. This basically can be modeled as {@code Map<String,String>}
- * Configuration should be as simple as possible. A {@code Map<String,String>} instance has methods that may not
- * be used in many use cases and/or are not easy to implement. Currently the following functionality
- * must be supported:
- * <ul>
- * <li>access a keys by key (+get+)</li>
- * <li>check if a keys is present (+containsKey+)</li>
- * <li>get a set current all defined keys (+keySet+)</li>
- * <li>a property provider must be convertible to a +Map+, by calling +getProperties()+</li>
- * <li>a property provider must get access to its meta information.</li>
- * </ul>
- * Additionally there are other requirement important for ease current use:
- * <ul>
- * <li>The API must never return null.</li>
- * <li>The API should support undefined values.</li>
- * <li>The API must support passing default values, to be returned if a keys is undefined.</li>
- * <li>The API must allow to throw exceptions, when a keys is undefined.
- * Customized exceptions hereby should be supported.</li>
- * <li>Properties can be stored in the classpath, on a file.</li>
- * <li>Properties can be stored as properties, xml-properties or as ini-files.</li>
- * <li>Properties can also be provided as properties, or as a Map<String,String></li>
- * </ul>
- */
-public class UC1ReadProperties {
-
-    @Test
-    public void example() {
-        Configuration config = Configuration.from(PropertySourceBuilder.of("testdata")
-                .addPaths("classpath:ucs/UC1ReadProperties/UC1ReadPropertiesTest.properties").build());
-//        String name = config.get("name").orElse("Anatole");
-//        BigDecimal bigNum = config.get("num.BD", BigDecimal.class).orElseThrow(() -> new IllegalStateException("Sorry"));
-//        double anotherNum = config.getDouble("num.Double").getAsDouble();
-//        long longNum = config.getLong("num.Long").orElse(288900L);
-
-        // or more simpler use area function
-        Configuration areaConfig2 = config.with(ConfigurationFunctions.selectArea("num"));
-        System.out.println(areaConfig2);
-
-        // iterator over an area, using streams only
-        Map<String, String> areaMap = config.getProperties().entrySet().stream()
-                .filter((e) -> e.getKey().startsWith("num."))
-                .collect(Collectors.toMap((e) -> e.getKey().substring("num.".length()), Map.Entry::getValue));
-        Configuration areaConfig = Configuration.from(PropertySourceBuilder.of("Test").addMap(areaMap).build());
-        System.out.println(areaConfig);
-    }
-
-    @Test
-    public void getConfigurationTest() {
-        PropertySource provider = PropertySourceBuilder.of("Test").addPaths("classpath:barFoo.properties").build();
-        Configuration config = Configuration.from(provider);
-        assertNotNull(config);
-        assertTrue(config.isEmpty());
-        assertTrue(config.getProperties().isEmpty());
-    }
-
-    @Test
-    public void readBadPropertiesTest() {
-        PropertySource provider = PropertySourceBuilder.of("Test").addPaths("classpath:barFoo.properties").build();
-        assertNotNull(provider);
-        assertTrue(provider.isEmpty());
-        assertTrue(provider.getProperties().isEmpty());
-    }
-
-    @Test
-    public void readPropertiesTest() {
-        PropertySource provider = PropertySourceBuilder.of("Test").addPaths("classpath:ucs/UC1ReadProperties/UC1ReadPropertiesTest.properties").build();
-        assertNotNull(provider);
-        assertEquals(provider.get("a").get(), "aValue");
-        assertEquals(provider.get("b").get(), "bValue");
-        assertEquals(provider.get("c").get(), "cValue");
-        assertEquals(provider.get("a.b.c").get(), "abcValue");
-        assertEquals(provider.get("a.b.a").get(), "abaValue");
-        assertEquals(provider.get("a.b.b").get(), "abbValue");
-        assertEquals(provider.get("a.b").get(), "abValue");
-        assertEquals(provider.get("a.a.a").get(), "aaaValue");
-        assertEquals(provider.get("b.b.b").get(), "bbbValue");
-        assertEquals(provider.get("c.c.c").get(), "cccValue");
-        assertEquals(provider.get("numInt").get(), "9999");
-        assertEquals(provider.get("num.Int").get(), "123");
-        assertEquals(provider.get("num.Byte").get(), "100");
-        assertEquals(provider.get("boolean").get(), "true");
-        assertEquals(provider.get("num.BD").get(), "2376523725372653.287362836283628362863");
-        assertEquals(provider.get("num.Double").get(), "21334.43254");
-        assertTrue(!provider.get("blabla").isPresent());
-        assertTrue(provider.get("num.BD").isPresent());
-    }
-
-    @Test
-    public void readXmlPropertiesTest() {
-        PropertySource provider = PropertySourceBuilder.of("Test").addPaths("classpath:ucs/UC1ReadProperties/UC1ReadPropertiesTest.xml").build();
-        assertNotNull(provider);
-        assertEquals(provider.get("a-xml").get(), "aFromXml");
-        assertEquals(provider.get("b-xml").get(), "bFromXml");
-        assertEquals(provider.get("a.b.c-xml").get(), "abcFromXml");
-    }
-
-    @Test
-    public void readIniPropertiesTest() {
-        PropertySource provider = PropertySourceBuilder.of("Test").addPaths("classpath:ucs/UC1ReadProperties/UC1ReadPropertiesTest.ini").build();
-        assertNotNull(provider);
-        assertEquals(provider.get("a.b.c").get(), "abcValue-fromIni");
-        assertEquals(provider.get("a.b.b").get(), "abbValue-fromIni");
-        assertEquals(provider.get("a.b.a").get(), "abaValue-fromIni");
-        assertEquals(provider.get("mixed.a.b").get(), "abValue");
-        assertFalse(provider.get("mixed.foo").isPresent());
-        assertTrue(provider.get("num.BD").isPresent());
-    }
-
-    @Test
-    public void readAllPropertiesTest() {
-        PropertySource provider = PropertySourceBuilder.of("Test").withAggregationPolicy(AggregationPolicy.IGNORE_DUPLICATES)
-                .addPaths("classpath:ucs/UC1ReadProperties/UC1ReadPropertiesTest.*").build();
-        assertNotNull(provider);
-        // fromMap ini file
-        assertEquals(provider.get("a.b.c").get(), "abcValue-fromIni");
-        assertEquals(provider.get("a.b.b").get(), "abbValue-fromIni");
-        assertEquals(provider.get("a.b.a").get(), "abaValue-fromIni");
-        // fromMap properties
-        assertTrue(provider.get("num.BD").isPresent());
-        // fromMap xml properties
-        assertEquals(provider.get("a-xml").get(), "aFromXml");
-        assertEquals(provider.get("b-xml").get(), "bFromXml");
-    }
-
-    @Test
-    public void checkForAValue() {
-        PropertySource provider = PropertySourceBuilder.of("Test").addPaths("classpath:ucs/UC1ReadProperties/UC1ReadPropertiesTest.properties").build();
-        assertFalse(provider.get("blabla").isPresent());
-        assertTrue(provider.get("num.BD").isPresent());
-        assertFalse(provider.get("blabla").isPresent());
-        assertTrue(provider.get("num.BD").isPresent());
-    }
-
-    @Test
-    public void checkKeys() {
-        PropertySource provider = PropertySourceBuilder.of("Test").addPaths("classpath:ucs/UC1ReadProperties/UC1ReadPropertiesTest.properties").build();
-        assertEquals(provider.getProperties().size(), 16);
-        assertTrue(provider.getProperties().keySet().contains("boolean"));
-        assertFalse(provider.getProperties().keySet().contains("blabla"));
-    }
-
-    @Test
-    public void checkToMap() {
-        PropertySource provider = PropertySourceBuilder.of("Test").addPaths("classpath:ucs/UC1ReadProperties/UC1ReadPropertiesTest.properties").build();
-        Map<String, String> map = provider.getProperties();
-        assertNotNull(map);
-        assertEquals(map.size(), 16);
-        assertEquals(provider.getProperties().keySet(), map.keySet());
-        assertTrue(map.keySet().contains("boolean"));
-        assertFalse(map.keySet().contains("blabla"));
-    }
-
-    @Test
-    public void checkMetaInfo() {
-        PropertySource provider = PropertySourceBuilder.of("Test").addPaths("classpath:ucs/UC1ReadProperties/UC1ReadPropertiesTest.properties").build();
-        assertNotNull(provider.getName());
-    }
-
-    @Test
-    public void checkNeverNull() {
-        PropertySource provider = PropertySourceBuilder.of("Test").addPaths("classpath:ucs/UC1ReadProperties/UC1ReadPropertiesTest.properties").build();
-        assertNotNull(provider.get("blabla"));
-        assertNotNull(provider.get("a.b.c"));
-    }
-
-    @Test
-    public void checkUndefined() {
-        PropertySource provider = PropertySourceBuilder.of("Test").addPaths("classpath:ucs/UC1ReadProperties/UC1ReadPropertiesTest.properties").build();
-        assertFalse(provider.get("blabla").isPresent());
-        assertTrue(provider.get("a.b.c").isPresent());
-    }
-
-    @Test
-    public void checkPassDefaultValues() {
-        PropertySource provider = PropertySourceBuilder.of("Test").addPaths("classpath:ucs/UC1ReadProperties/UC1ReadPropertiesTest.properties").build();
-        assertEquals("myDefaultValue", provider.get("blabla").orElse("myDefaultValue"));
-    }
-
-    @Test(expected = IllegalStateException.class)
-    public void checkThrowCustomException() {
-        PropertySource provider = PropertySourceBuilder.of("Test").addPaths("classpath:ucs/UC1ReadProperties/UC1ReadPropertiesTest.properties").build();
-        provider.get("blabla").orElseThrow(() -> new IllegalStateException("checkThrowCustomException"));
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/test/java/org/apache/tamaya/ucs/UC2CombineProperties.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/test/java/org/apache/tamaya/ucs/UC2CombineProperties.java b/dormant/core/src/test/java/org/apache/tamaya/ucs/UC2CombineProperties.java
deleted file mode 100644
index e563f7b..0000000
--- a/dormant/core/src/test/java/org/apache/tamaya/ucs/UC2CombineProperties.java
+++ /dev/null
@@ -1,70 +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.
- */
-package org.apache.tamaya.ucs;
-
-import org.apache.tamaya.ConfigException;
-import org.apache.tamaya.spi.PropertySource;
-import org.apache.tamaya.core.properties.AggregationPolicy;
-import org.apache.tamaya.core.properties.PropertySourceBuilder;
-import org.junit.Test;
-
-/**
- * Configuration is organized as key/keys pairs. This basically can be modeled as {@code Map<String,String>}
- * Configuration should be as simple as possible. Advanced use cases can often easily implemented by combining
- * multiple property maps and applying hereby some combination policy. This testdata class demonstrates the different
- * options Tamaya is providing and the according mechanisms.
- */
-public class UC2CombineProperties {
-
-    /**
-     * The most common use cases is aggregating two property config to new provider, hereby {@link org.apache.tamaya.core.properties.AggregationPolicy}
-     * defines the current variants supported.
-     */
-    @Test
-    public void simpleAggregationTests() {
-        PropertySource props1 = PropertySourceBuilder.of().addPaths("classpath:ucs/UC2CombineProperties/props1.properties").build();
-        PropertySource props2 = PropertySourceBuilder.of().addPaths("classpath:ucs/UC2CombineProperties/props2.properties").build();
-        PropertySource unionOverriding = PropertySourceBuilder.of(props1).withAggregationPolicy(AggregationPolicy.OVERRIDE).addProviders(props2).build();
-        System.out.println("unionOverriding: " + unionOverriding);
-        PropertySource unionIgnoringDuplicates = PropertySourceBuilder.of(props1).withAggregationPolicy(AggregationPolicy.IGNORE_DUPLICATES).addProviders(props2).build();
-        System.out.println("unionIgnoringDuplicates: " + unionIgnoringDuplicates);
-        PropertySource unionCombined = PropertySourceBuilder.of(props1).withAggregationPolicy(AggregationPolicy.COMBINE).addProviders(props2).build();
-        System.out.println("unionCombined: " + unionCombined);
-        try{
-            PropertySourceBuilder.of(props1).withAggregationPolicy(AggregationPolicy.EXCEPTION).addProviders(props2).build();
-        }
-        catch(ConfigException e){
-            // expected!
-        }
-    }
-
-    /**
-     * For advanced use cases aggregation .
-     */
-    @Test
-    public void dynamicAggregationTests() {
-        PropertySource props1 = PropertySourceBuilder.of().addPaths("classpath:ucs/UC2CombineProperties/props1.properties").build();
-        PropertySource props2 = PropertySourceBuilder.of().addPaths("classpath:ucs/UC2CombineProperties/props2.properties").build();
-        PropertySource props = PropertySourceBuilder.of().withAggregationPolicy((k, v1, v2) -> (v1 != null ? v1 : "") + '[' + v2 + "]").withName("dynamicAggregationTests")
-                .aggregate(props1, props2).build();
-        System.out.println(props);
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/test/java/org/apache/tamaya/ucs/deltaspike/ConfigFiltering.java
----------------------------------------------------------------------
diff --git a/dormant/core/src/test/java/org/apache/tamaya/ucs/deltaspike/ConfigFiltering.java b/dormant/core/src/test/java/org/apache/tamaya/ucs/deltaspike/ConfigFiltering.java
deleted file mode 100644
index 3269b3c..0000000
--- a/dormant/core/src/test/java/org/apache/tamaya/ucs/deltaspike/ConfigFiltering.java
+++ /dev/null
@@ -1,60 +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.
- */
-package org.apache.tamaya.ucs.deltaspike;
-
-import org.apache.tamaya.Configuration;
-import org.apache.tamaya.core.properties.PropertySourceBuilder;
-
-import java.net.URL;
-
-/**
- * This is one of possible multiple comparisons of Tamaya functionality with Deltapike.
- * <pre>
- * A company uses REST endpoints and need to talk to those.
- * So we need to configure a few things:
- * 1.) the endpoint URL
- * 2.) the username which should be used to connect (e.g. over https, BASIC auth, whatever)
- * 3.) the passphrase which should be used to connect.
- *
- * The security credentials (passphrase) should not get stored in plaintext but encrypted using PKI. It should of course also not get logged out in clear text but shall get masked if logging out the configured values is enabled.
- *
- * In DeltaSpike I'd just register a ConfigFilter to do the password decoding on the fly.
- * </pre>
- */
-public class ConfigFiltering {
-
-    public void scenario1UseAdapter(){
-        URL endPoint = Configuration.current().get("endPointURL", URL.class).get();
-        String uid = Configuration.current().get("endPointURL.user").get();
-//        String pwd = Configuration.current().getAdapted("endPointURL.password", v -> MyPKI.decrypt(v));
-    }
-
-    public void scenario1AddFilterOnSPI(){
-        URL endPoint = Configuration.current().get("endPointURL", URL.class).get();
-        String uid = Configuration.current().get("endPointURL.user").get();
-        String pwd = Configuration.current().get("endPointURL.password").get();
-
-        // In the SPI
-        PropertySourceBuilder.of().addPaths("...").filterValues((k,v) -> k.equals("endPointURL.password")?MyPKI.decrypt(v):v).build();
-    }
-
-    private static class MyPKI{
-        public static String decrypt(String val){return val;};
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/test/resources/META-INF/beans.xml
----------------------------------------------------------------------
diff --git a/dormant/core/src/test/resources/META-INF/beans.xml b/dormant/core/src/test/resources/META-INF/beans.xml
deleted file mode 100644
index 1d5c20b..0000000
--- a/dormant/core/src/test/resources/META-INF/beans.xml
+++ /dev/null
@@ -1,25 +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.
--->
-
-<beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-       xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://jboss.org/schema/cdi/beans_1_0.xsd">
-
-</beans>
-

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/test/resources/META-INF/config.properties
----------------------------------------------------------------------
diff --git a/dormant/core/src/test/resources/META-INF/config.properties b/dormant/core/src/test/resources/META-INF/config.properties
deleted file mode 100644
index d7b8927..0000000
--- a/dormant/core/src/test/resources/META-INF/config.properties
+++ /dev/null
@@ -1,19 +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.
-#
-org.apache.tamaya.environmentOrder=root,system,ear,application
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/test/resources/META-INF/config/example.ini
----------------------------------------------------------------------
diff --git a/dormant/core/src/test/resources/META-INF/config/example.ini b/dormant/core/src/test/resources/META-INF/config/example.ini
deleted file mode 100644
index 95a2b7c..0000000
--- a/dormant/core/src/test/resources/META-INF/config/example.ini
+++ /dev/null
@@ -1,31 +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.
-#
-[persons.anatole]
-prename=Anatole
-name=Tresch
-address=Technoparkstrasse 10
-zip=8070
-location=Zürich
-
-[persons.peter]
-prename=Peter
-name=Fischbach
-address=Hand Platz
-zip=4556
-location=Unterland

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/test/resources/META-INF/config/example.properties
----------------------------------------------------------------------
diff --git a/dormant/core/src/test/resources/META-INF/config/example.properties b/dormant/core/src/test/resources/META-INF/config/example.properties
deleted file mode 100644
index 93d70f9..0000000
--- a/dormant/core/src/test/resources/META-INF/config/example.properties
+++ /dev/null
@@ -1,31 +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.
-#
-persons=joe,anne
-
-persons.joe.prename=Joe
-persons.joe.name=Foo
-persons.joe.address=15, MyBar Street
-persons.joe.zip=80000
-persons.joe.location=Nowhere
-
-persons.anne.prename=Annemarie
-persons.anne.name=Bar
-persons.anne.address=James Strasse 16a
-persons.anne.zip=1234
-persons.anne.location=Nowhere
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/test/resources/META-INF/config/example.xml
----------------------------------------------------------------------
diff --git a/dormant/core/src/test/resources/META-INF/config/example.xml b/dormant/core/src/test/resources/META-INF/config/example.xml
deleted file mode 100644
index e3c050a..0000000
--- a/dormant/core/src/test/resources/META-INF/config/example.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-#
-# Copyright 2014 Anatole Tresch and other (see authors).
-#
-# 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.
-#
--->
-<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
-<properties version="1.0">
-    <entry key="persons.gorilla.prename">Bubu</entry>
-    <entry key="persons.gorilla.name">-</entry>
-    <entry key="persons.gorilla.address">Zurich Zoo</entry>
-    <entry key="persons.gorilla.zip">8111</entry>
-    <entry key="persons.gorilla.location">Zurich</entry>
-</properties>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/test/resources/META-INF/configuration/example.ini
----------------------------------------------------------------------
diff --git a/dormant/core/src/test/resources/META-INF/configuration/example.ini b/dormant/core/src/test/resources/META-INF/configuration/example.ini
deleted file mode 100644
index e2cc979..0000000
--- a/dormant/core/src/test/resources/META-INF/configuration/example.ini
+++ /dev/null
@@ -1,18 +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.
-ignore=value

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/test/resources/META-INF/configuration/example.properties
----------------------------------------------------------------------
diff --git a/dormant/core/src/test/resources/META-INF/configuration/example.properties b/dormant/core/src/test/resources/META-INF/configuration/example.properties
deleted file mode 100644
index ed6148f..0000000
--- a/dormant/core/src/test/resources/META-INF/configuration/example.properties
+++ /dev/null
@@ -1,20 +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.
-country=Brazil
-nacionality=Brazilian
-love=poliana
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/test/resources/META-INF/configuration/example.xml
----------------------------------------------------------------------
diff --git a/dormant/core/src/test/resources/META-INF/configuration/example.xml b/dormant/core/src/test/resources/META-INF/configuration/example.xml
deleted file mode 100644
index 6a3694a..0000000
--- a/dormant/core/src/test/resources/META-INF/configuration/example.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-#
-# Copyright 2014 Anatole Tresch and other (see authors).
-#
-# 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.
-#
--->
-<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
-<properties version="1.0">
-    <entry key="twitter.otavio">otaviojava</entry>
-    <entry key="team">Bahia</entry>
-    <entry key="sport">Soccer</entry>
-</properties>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/test/resources/META-INF/env/application.properties
----------------------------------------------------------------------
diff --git a/dormant/core/src/test/resources/META-INF/env/application.properties b/dormant/core/src/test/resources/META-INF/env/application.properties
deleted file mode 100644
index fa9c3a7..0000000
--- a/dormant/core/src/test/resources/META-INF/env/application.properties
+++ /dev/null
@@ -1,19 +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.
-#
-environment.applicationId=MyApp1
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/test/resources/META-INF/env/ear.ini
----------------------------------------------------------------------
diff --git a/dormant/core/src/test/resources/META-INF/env/ear.ini b/dormant/core/src/test/resources/META-INF/env/ear.ini
deleted file mode 100644
index eb72fd4..0000000
--- a/dormant/core/src/test/resources/META-INF/env/ear.ini
+++ /dev/null
@@ -1,20 +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.
-#
-[environment]
-earId=myEar1
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/test/resources/META-INF/env/system.properties
----------------------------------------------------------------------
diff --git a/dormant/core/src/test/resources/META-INF/env/system.properties b/dormant/core/src/test/resources/META-INF/env/system.properties
deleted file mode 100644
index c471a3c..0000000
--- a/dormant/core/src/test/resources/META-INF/env/system.properties
+++ /dev/null
@@ -1,19 +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.
-#
-systemId=test
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/test/resources/META-INF/meta-model.properties
----------------------------------------------------------------------
diff --git a/dormant/core/src/test/resources/META-INF/meta-model.properties b/dormant/core/src/test/resources/META-INF/meta-model.properties
deleted file mode 100644
index f3199f2..0000000
--- a/dormant/core/src/test/resources/META-INF/meta-model.properties
+++ /dev/null
@@ -1,18 +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.
-#

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/test/resources/META-INF/services/old.ConfigurationProviderSpi
----------------------------------------------------------------------
diff --git a/dormant/core/src/test/resources/META-INF/services/old.ConfigurationProviderSpi b/dormant/core/src/test/resources/META-INF/services/old.ConfigurationProviderSpi
deleted file mode 100644
index c4ba801..0000000
--- a/dormant/core/src/test/resources/META-INF/services/old.ConfigurationProviderSpi
+++ /dev/null
@@ -1,19 +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.
-#
-org.apache.tamaya.internal.TestConfigProvider
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/test/resources/META-INF/services/org.apache.tamaya.core.internal.DefaultServiceContextTest$InvalidPriorityInterface
----------------------------------------------------------------------
diff --git a/dormant/core/src/test/resources/META-INF/services/org.apache.tamaya.core.internal.DefaultServiceContextTest$InvalidPriorityInterface b/dormant/core/src/test/resources/META-INF/services/org.apache.tamaya.core.internal.DefaultServiceContextTest$InvalidPriorityInterface
deleted file mode 100644
index 9d96b65..0000000
--- a/dormant/core/src/test/resources/META-INF/services/org.apache.tamaya.core.internal.DefaultServiceContextTest$InvalidPriorityInterface
+++ /dev/null
@@ -1,19 +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.
-
-org.apache.tamaya.core.internal.DefaultServiceContextTest$InvalidPriorityImpl1
-org.apache.tamaya.core.internal.DefaultServiceContextTest$InvalidPriorityImpl2

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/test/resources/META-INF/services/org.apache.tamaya.core.internal.DefaultServiceContextTest$MultiImplsInterface
----------------------------------------------------------------------
diff --git a/dormant/core/src/test/resources/META-INF/services/org.apache.tamaya.core.internal.DefaultServiceContextTest$MultiImplsInterface b/dormant/core/src/test/resources/META-INF/services/org.apache.tamaya.core.internal.DefaultServiceContextTest$MultiImplsInterface
deleted file mode 100644
index 2e24ed0..0000000
--- a/dormant/core/src/test/resources/META-INF/services/org.apache.tamaya.core.internal.DefaultServiceContextTest$MultiImplsInterface
+++ /dev/null
@@ -1,20 +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.
-
-org.apache.tamaya.core.internal.DefaultServiceContextTest$MultiImpl1
-org.apache.tamaya.core.internal.DefaultServiceContextTest$MultiImpl2
-org.apache.tamaya.core.internal.DefaultServiceContextTest$MultiImpl3

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/test/resources/META-INF/services/org.apache.tamaya.core.spi.EnvironmentProvider
----------------------------------------------------------------------
diff --git a/dormant/core/src/test/resources/META-INF/services/org.apache.tamaya.core.spi.EnvironmentProvider b/dormant/core/src/test/resources/META-INF/services/org.apache.tamaya.core.spi.EnvironmentProvider
deleted file mode 100644
index 74382e7..0000000
--- a/dormant/core/src/test/resources/META-INF/services/org.apache.tamaya.core.spi.EnvironmentProvider
+++ /dev/null
@@ -1,19 +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.
-#
-org.apache.tamaya.metamodel.environment.TestEnvironmentProvider
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/test/resources/META-INF/services/org.apache.tamaya.spi.PropertyFilter
----------------------------------------------------------------------
diff --git a/dormant/core/src/test/resources/META-INF/services/org.apache.tamaya.spi.PropertyFilter b/dormant/core/src/test/resources/META-INF/services/org.apache.tamaya.spi.PropertyFilter
deleted file mode 100644
index 59bbab3..0000000
--- a/dormant/core/src/test/resources/META-INF/services/org.apache.tamaya.spi.PropertyFilter
+++ /dev/null
@@ -1,20 +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.
-#
-org.apache.tamaya.core.testdata.TestPropertyFilter
-org.apache.tamaya.core.testdata.TestPropertyFilterRemoving

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/test/resources/META-INF/services/org.apache.tamaya.spi.PropertySource
----------------------------------------------------------------------
diff --git a/dormant/core/src/test/resources/META-INF/services/org.apache.tamaya.spi.PropertySource b/dormant/core/src/test/resources/META-INF/services/org.apache.tamaya.spi.PropertySource
deleted file mode 100644
index 409c9cb..0000000
--- a/dormant/core/src/test/resources/META-INF/services/org.apache.tamaya.spi.PropertySource
+++ /dev/null
@@ -1,22 +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.
-#
-org.apache.tamaya.core.testdata.TestPropertyDefaultSource
-org.apache.tamaya.core.propertysource.SystemPropertySource
-org.apache.tamaya.core.propertysource.EnvironmentPropertySource
-org.apache.tamaya.core.internal.converters.ConverterTestsPropertySource

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/test/resources/META-INF/services/org.apache.tamaya.spi.PropertySourceProvider
----------------------------------------------------------------------
diff --git a/dormant/core/src/test/resources/META-INF/services/org.apache.tamaya.spi.PropertySourceProvider b/dormant/core/src/test/resources/META-INF/services/org.apache.tamaya.spi.PropertySourceProvider
deleted file mode 100644
index 9c352f4..0000000
--- a/dormant/core/src/test/resources/META-INF/services/org.apache.tamaya.spi.PropertySourceProvider
+++ /dev/null
@@ -1,20 +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.
-#
-org.apache.tamaya.core.testdata.TestPropertySourceProvider
-org.apache.tamaya.core.provider.JavaConfigurationProvider

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/test/resources/cfg/autoloaded.xml
----------------------------------------------------------------------
diff --git a/dormant/core/src/test/resources/cfg/autoloaded.xml b/dormant/core/src/test/resources/cfg/autoloaded.xml
deleted file mode 100644
index 07f6c13..0000000
--- a/dormant/core/src/test/resources/cfg/autoloaded.xml
+++ /dev/null
@@ -1,33 +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.
--->
-<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
-<properties version="1.0">
-	<entry key="testFromXml">testValue</entry>
-    <entry key="b">Bill</entry>
-    <entry key="a.compound.area.entry">myCompundAreaVlaueFromXml</entry>
-    <entry key="an.area.entry">myCompundAreaVlaueFromXml2</entry>
-    <!-- DirectMapping testdata -->
-    <entry key="org.apache.tamaya.samples.annotations.AutoConfiguredClass.value1">This \${JAVA_HOME} is cool!</entry>
-    <entry key="org.apache.tamaya.samples.annotations.AutoConfiguredClass.value2">Should not be set because @NoConfig !</entry>
-    <entry key="org.apache.tamaya.samples.annotations.AutoConfiguredClass.testProperty">a test property value</entry>
-    <entry key="org.apache.tamaya.samples.annotations.AutoConfiguredClass.runtimeVersion">my RT 1-0-0--build-1234</entry>
-    <entry key="org.apache.tamaya.samples.annotations.AutoConfiguredClass.int1">1</entry>
-    <entry key="org.apache.tamaya.samples.annotations.AutoConfiguredClass.int2">22</entry>
-</properties>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/test/resources/cfg/test.xml
----------------------------------------------------------------------
diff --git a/dormant/core/src/test/resources/cfg/test.xml b/dormant/core/src/test/resources/cfg/test.xml
deleted file mode 100644
index 07f6c13..0000000
--- a/dormant/core/src/test/resources/cfg/test.xml
+++ /dev/null
@@ -1,33 +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.
--->
-<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
-<properties version="1.0">
-	<entry key="testFromXml">testValue</entry>
-    <entry key="b">Bill</entry>
-    <entry key="a.compound.area.entry">myCompundAreaVlaueFromXml</entry>
-    <entry key="an.area.entry">myCompundAreaVlaueFromXml2</entry>
-    <!-- DirectMapping testdata -->
-    <entry key="org.apache.tamaya.samples.annotations.AutoConfiguredClass.value1">This \${JAVA_HOME} is cool!</entry>
-    <entry key="org.apache.tamaya.samples.annotations.AutoConfiguredClass.value2">Should not be set because @NoConfig !</entry>
-    <entry key="org.apache.tamaya.samples.annotations.AutoConfiguredClass.testProperty">a test property value</entry>
-    <entry key="org.apache.tamaya.samples.annotations.AutoConfiguredClass.runtimeVersion">my RT 1-0-0--build-1234</entry>
-    <entry key="org.apache.tamaya.samples.annotations.AutoConfiguredClass.int1">1</entry>
-    <entry key="org.apache.tamaya.samples.annotations.AutoConfiguredClass.int2">22</entry>
-</properties>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/test/resources/javaconfiguration.properties
----------------------------------------------------------------------
diff --git a/dormant/core/src/test/resources/javaconfiguration.properties b/dormant/core/src/test/resources/javaconfiguration.properties
deleted file mode 100644
index 33beabb..0000000
--- a/dormant/core/src/test/resources/javaconfiguration.properties
+++ /dev/null
@@ -1,22 +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.
-
-confkey1=javaconf-value1
-confkey2=javaconf-value2
-confkey3=javaconf-value3
-confkey4=javaconf-value4
-confkey5=javaconf-value5

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/46ede97c/dormant/core/src/test/resources/overrideOrdinal.properties
----------------------------------------------------------------------
diff --git a/dormant/core/src/test/resources/overrideOrdinal.properties b/dormant/core/src/test/resources/overrideOrdinal.properties
deleted file mode 100644
index 5384d91..0000000
--- a/dormant/core/src/test/resources/overrideOrdinal.properties
+++ /dev/null
@@ -1,25 +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.
-
-#override ordinal
-tamaya.ordinal=16784
-
-mykey1=myval1
-mykey2=myval2
-mykey3=myval3
-mykey4=myval4
-mykey5=myval5