http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/9f71f2d8/metamodel/src/main/java/org/apache/tamaya/metamodel/dsl/WrappedPropertySource.java ---------------------------------------------------------------------- diff --git a/metamodel/src/main/java/org/apache/tamaya/metamodel/dsl/WrappedPropertySource.java b/metamodel/src/main/java/org/apache/tamaya/metamodel/dsl/WrappedPropertySource.java index 7aed843..000406b 100644 --- a/metamodel/src/main/java/org/apache/tamaya/metamodel/dsl/WrappedPropertySource.java +++ b/metamodel/src/main/java/org/apache/tamaya/metamodel/dsl/WrappedPropertySource.java @@ -18,9 +18,12 @@ */ package org.apache.tamaya.metamodel.dsl; +import org.apache.tamaya.spi.FilterContext; +import org.apache.tamaya.spi.PropertyFilter; import org.apache.tamaya.spi.PropertySource; import org.apache.tamaya.spi.PropertyValue; +import java.util.List; import java.util.Map; import java.util.Objects; @@ -33,6 +36,7 @@ final class WrappedPropertySource implements PropertySource { private Integer ordinalAssigned; private PropertySource wrapped; + private List<PropertyFilter> filters; private WrappedPropertySource(PropertySource wrapped){ this.wrapped = Objects.requireNonNull(wrapped); @@ -77,12 +81,35 @@ final class WrappedPropertySource implements PropertySource { @Override public PropertyValue get(String key) { - return wrapped.get(key); + PropertyValue value = wrapped.get(key); + if(value != null && value.getValue()!=null){ + if(filters!=null){ + String filteredValue = value.getValue(); + for(PropertyFilter pf:filters){ + filteredValue = pf.filterProperty(filteredValue, new FilterContext(key, value.getConfigEntries(), true)); + } + if(filteredValue!=null){ + return PropertyValue.builder(key, filteredValue, getName()) + .setContextData(value.getConfigEntries()).build(); + } + } + } + return value; } @Override public Map<String, String> getProperties() { - return wrapped.getProperties(); + Map<String, String> props = wrapped.getProperties(); + if(filters!=null){ + String filteredValue = value.getValue(); + for(PropertyFilter pf:filters){ + filteredValue = pf.filterProperty(filteredValue, new FilterContext(key, value.getConfigEntries(), true)); + } + if(filteredValue!=null){ + return PropertyValue.builder(key, filteredValue, getName()) + .setContextData(value.getConfigEntries()).build(); + } + } } @Override
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/9f71f2d8/metamodel/src/main/java/org/apache/tamaya/metamodel/internal/FactoryManager.java ---------------------------------------------------------------------- diff --git a/metamodel/src/main/java/org/apache/tamaya/metamodel/internal/FactoryManager.java b/metamodel/src/main/java/org/apache/tamaya/metamodel/internal/FactoryManager.java index dbf8d1f..a8129f6 100644 --- a/metamodel/src/main/java/org/apache/tamaya/metamodel/internal/FactoryManager.java +++ b/metamodel/src/main/java/org/apache/tamaya/metamodel/internal/FactoryManager.java @@ -101,7 +101,7 @@ final class FactoryManager { } @Override - public PropertySource create(String config, Map<String, String> extendedConfig) { + public PropertySource create(Map<String, String> config) { try { return this.type.newInstance(); } catch (Exception e) { @@ -124,7 +124,7 @@ final class FactoryManager { } @Override - public PropertySourceProvider create(String config, Map<String, String> extendedConfig) { + public PropertySourceProvider create(Map<String, String> config) { try { return this.type.newInstance(); } catch (Exception e) { http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/9f71f2d8/metamodel/src/main/java/org/apache/tamaya/metamodel/spi/BaseStagedPropertySourceProvider.java ---------------------------------------------------------------------- diff --git a/metamodel/src/main/java/org/apache/tamaya/metamodel/spi/BaseStagedPropertySourceProvider.java b/metamodel/src/main/java/org/apache/tamaya/metamodel/spi/BaseStagedPropertySourceProvider.java deleted file mode 100644 index bba2ec4..0000000 --- a/metamodel/src/main/java/org/apache/tamaya/metamodel/spi/BaseStagedPropertySourceProvider.java +++ /dev/null @@ -1,121 +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.spi; -// -// -//import org.apache.tamaya.ConfigException; -//import org.apache.tamaya.spi.PropertySource; -//import org.apache.tamaya.spi.PropertySourceProvider; -// -//import java.util.ArrayList; -//import java.util.Arrays; -//import java.util.Collection; -//import java.util.List; -//import java.util.logging.Logger; -// -///** -// * Implements a base property source provider that defines a multilayered -// * stage setup. -// */ -//public abstract class BaseStagedPropertySourceProvider implements PropertySourceProvider { -// -// /** The logger used. */ -// private static final Logger LOGGER = Logger.getLogger(BaseStagedPropertySourceProvider.class.getName()); -// -// /** the current environment stages in order of precedence (weakest first). */ -// private List<String> contextIds = new ArrayList<>(); -// -// /** Optional root context of the environment in the config tree. All entries loaded will be mapped into -// * this root conztext. -// */ -// private String rootContext; -// -// /** List of PropertySources evaluated and returned to the current ConfigurationContext on load. */ -// private List<PropertySource> propertySources = new ArrayList<>(); -// -// -// /** -// * Creates a new Environment provider, hereby using 10 for basePriority and priorityIncrease. -// * @param rootContext the environment target root context, e.g. ENV. or null -// * for not remapping the environment properties. -// * @param contextIds the context ids, that build up the environment. -// */ -// public BaseStagedPropertySourceProvider(String rootContext, -// String... contextIds) { -// this(rootContext, 10,10, contextIds); -// } -// /** -// * Creates a new Environment provider. -// * @param rootContext the environment target root context, e.g. ENV. or null -// * for not remapping the environment properties. -// * @param basePriority the base priority used for the weakest environment properties set. -// * @param priorityIncrease the value the property source's priority should be increased with each -// * environment context level added. -// * @param contextIds the context ids, that build up the environment. -// */ -// public BaseStagedPropertySourceProvider(String rootContext, int basePriority, int priorityIncrease, -// String... contextIds) { -// if (contextIds.length == 0) { -// throw new ConfigException("At least one environment context id must be defined."); -// } -// if (rootContext == null) { -// LOGGER.finest("No environment mapping is applied."); -// } -// this.rootContext = rootContext; -// this.contextIds.addAll(Arrays.asList(contextIds)); -// int priority = basePriority; -// for (String contextId : contextIds) { -// propertySources.addAll(loadStageProperties(rootContext, contextId, priority)); -// priority += priorityIncrease; -// } -// } -// -// /** -// * Method that loads the environment properties for the given contextId. -// * @param rootContext the root context, where entries read should be mapped to. -// * @param contextId the contextId. -// * @param priority the target priority the created PropertySource should have. This priority is -// * important, since it reflects the order as defined -// * when configuring this class. Therefore it should not be overridden normally. -// * @return the corresponding PrioritySources to be added, never null. -// */ -// protected abstract Collection<PropertySource> loadStageProperties( -// String rootContext, String contextId, int priority); -// -// /** -// * Get the environment context ids that define how this environment configuration -// * is setup, in order of their increasing priority. -// * @return the ordered list of context ids. -// */ -// public List<String> getContextIds() { -// return contextIds; -// } -// -// @Override -// public String toString() { -// return "EnvironmentPropertySourceProvider{" + -// "contextIds=" + contextIds + -// ", rootContext='" + rootContext + '\'' + -// '}'; -// } -// -// @Override -// public Collection<PropertySource> getPropertySources() { -// return propertySources; -// } -// -//} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/9f71f2d8/metamodel/src/main/java/org/apache/tamaya/metamodel/spi/DSLPropertySourceProvider.java ---------------------------------------------------------------------- diff --git a/metamodel/src/main/java/org/apache/tamaya/metamodel/spi/DSLPropertySourceProvider.java b/metamodel/src/main/java/org/apache/tamaya/metamodel/spi/DSLPropertySourceProvider.java deleted file mode 100644 index ea4e653..0000000 --- a/metamodel/src/main/java/org/apache/tamaya/metamodel/spi/DSLPropertySourceProvider.java +++ /dev/null @@ -1,51 +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.spi; - -import org.apache.tamaya.spi.PropertySource; - -import java.util.List; -import java.util.Map; - -/** - * Resolver to resolve/map DSL related source expressions into PropertySources - * loadable by a ConfigurationContext. Hereby the ordering of loaded property sources must be - * honored if possible by implicitly adapting/Overriding the default ordinal for the sources - * added. - */ -public interface DSLPropertySourceProvider { - - /** - * Resolve the given expression (without the key part). - * @param sourceExpression the source expression, not null. - * @param defaultPropertySources the default property sources that can be used as defined by the functionality by - * a resolver. - * @return the list of loaded Property sources, never null. - */ - List<PropertySource> resolve(String sourceExpression, - Map<String, PropertySource> defaultPropertySources); - - /** - * Get the resolver key, which identifiesan expression to be resolved by a resolver instance. - * As an example {@code "named:"} is the key for an expression {@code "named:sys-properties"}. - * The method {@link #resolve(String, Map)} will onyl receive the secoind part of the expression. - * @return identifying key. - */ - String getKey(); -} http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/9f71f2d8/metamodel/src/main/java/org/apache/tamaya/metamodel/spi/MetaConfigurationReader.java ---------------------------------------------------------------------- diff --git a/metamodel/src/main/java/org/apache/tamaya/metamodel/spi/MetaConfigurationReader.java b/metamodel/src/main/java/org/apache/tamaya/metamodel/spi/MetaConfigurationReader.java new file mode 100644 index 0000000..c9718a9 --- /dev/null +++ b/metamodel/src/main/java/org/apache/tamaya/metamodel/spi/MetaConfigurationReader.java @@ -0,0 +1,41 @@ +/* + * 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.spi; + +import org.apache.tamaya.metamodel.Context; +import org.apache.tamaya.spi.ConfigurationContextBuilder; +import org.w3c.dom.Document; + +import java.net.URL; + +/** + * Created by atsticks on 03.11.16. + */ +public interface MetaConfigurationReader { + + /** + * Reads meta-configuration from the given document and configures the current + * context builder. The priority of readers is determined by the priorization policy + * implemented by the {@link org.apache.tamaya.spi.ServiceContext}, + * @param document the meta-configuration document + * @param contextBuilder the context builder to use. + */ + void read(Document document, Context context, ConfigurationContextBuilder contextBuilder); + +} http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/9f71f2d8/metamodel/src/main/java/org/apache/tamaya/metamodel/spi/PropertySourceFactory.java ---------------------------------------------------------------------- diff --git a/metamodel/src/main/java/org/apache/tamaya/metamodel/spi/PropertySourceFactory.java b/metamodel/src/main/java/org/apache/tamaya/metamodel/spi/PropertySourceFactory.java index 49f72f2..7da2e58 100644 --- a/metamodel/src/main/java/org/apache/tamaya/metamodel/spi/PropertySourceFactory.java +++ b/metamodel/src/main/java/org/apache/tamaya/metamodel/spi/PropertySourceFactory.java @@ -33,12 +33,11 @@ public interface PropertySourceFactory { /** * Resolve the given expression (without the key part). - * @param config the source configuration text, or null. - * @param extendedConfig any further extended configuration, not null, but may be + * @param config any further extended configuration, not null, but may be * empty. * @return the property source, or null. */ - PropertySource create(String config, Map<String, String> extendedConfig); + PropertySource create(Map<String, String> config); /** * Get the property source type. The type is used to identify the correct factory instance http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/9f71f2d8/metamodel/src/main/java/org/apache/tamaya/metamodel/spi/PropertySourceProviderFactory.java ---------------------------------------------------------------------- diff --git a/metamodel/src/main/java/org/apache/tamaya/metamodel/spi/PropertySourceProviderFactory.java b/metamodel/src/main/java/org/apache/tamaya/metamodel/spi/PropertySourceProviderFactory.java index 717f075..41ea3a5 100644 --- a/metamodel/src/main/java/org/apache/tamaya/metamodel/spi/PropertySourceProviderFactory.java +++ b/metamodel/src/main/java/org/apache/tamaya/metamodel/spi/PropertySourceProviderFactory.java @@ -34,12 +34,11 @@ public interface PropertySourceProviderFactory { /** * Resolve the given expression (without the key part). - * @param config the source configuration text, or null. - * @param extendedConfig any further extended configuration, not null, but may be + * @param config any further extended configuration, not null, but may be * empty. * @return the property source, or null. */ - PropertySourceProvider create(String config, Map<String, String> extendedConfig); + PropertySourceProvider create(Map<String, String> config); /** * Get the property source type. The type is used to identify the correct factory instance http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/9f71f2d8/metamodel/src/main/java/org/apache/tamaya/metamodel/spi/StagedConfigPropertiesProvider.java ---------------------------------------------------------------------- diff --git a/metamodel/src/main/java/org/apache/tamaya/metamodel/spi/StagedConfigPropertiesProvider.java b/metamodel/src/main/java/org/apache/tamaya/metamodel/spi/StagedConfigPropertiesProvider.java deleted file mode 100644 index 39c27d3..0000000 --- a/metamodel/src/main/java/org/apache/tamaya/metamodel/spi/StagedConfigPropertiesProvider.java +++ /dev/null @@ -1,137 +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.spi; -// -// -//import org.apache.tamaya.spisupport.MapPropertySource; -//import org.apache.tamaya.spisupport.PropertiesResourcePropertySource; -//import org.apache.tamaya.resource.ConfigResources; -//import org.apache.tamaya.spi.PropertySource; -// -//import java.net.URL; -//import java.util.ArrayList; -//import java.util.Collection; -//import java.util.List; -//import java.util.logging.Logger; -// -///** -// * Configuration provider that resolves to a location in the classpath. -// * Hereby the following system properties can be set to configure the provider -// * (all entries are optional): -// * <pre> -// * env.STAGE : ordered list of configs to be loaded, e.g. sys-env,GLOBAL,TEST,DEV -// * </pre> -// * Adding {@code sys-env} as stage maps the current environment properties using -// * the priority to be aliged with the context ordering, defined by {@code env.STAGE}. -// * Similarly the same thing can be done by passing {@code sys-props} as context id for -// * adding the current System properties to the configuration tree. -// * -// * The rootContext can be used to remap the whole property space to an alternate subtree in -// * the configuration tree overall. This is very handy, if multiple instances of this class -// * are registered into the same configuration, but with different location setups. Remapping -// * configuration allows to separate these entries clearly.<br/> -// * Finally the resource location can be adapted by overriding {@link #getBaseResourcePath()}. -// * Different formats and loading mechanisms can be implemented by overriding -// * {@link #loadProperties(String, String, int, List)}. -// */ -//public class StagedConfigPropertiesProvider extends BaseStagedPropertySourceProvider { -// -// /** The system property to define the stages used. */ -// private static final String STAGE_PROP = "env.STAGE"; -// /** The logger used. */ -// -// private static final Logger LOGGER = Logger.getLogger(StagedConfigPropertiesProvider.class.getName()); -// -// /** The context id for adding the system's environment properties. */ -// private static final String DEFAULT_ENV = "sys-env"; -// -// /** The context id for adding the system's properties. */ -// private static final String DEFAULT_SYSPROPS = "sys-props"; -// -// /** -// * Creates a new instance. -// * @param rootContext the (optional) root context, can be null. -// * @param stages the comma separated list of stages. -// */ -// public StagedConfigPropertiesProvider(String rootContext, String... stages){ -// super(rootContext, evaluateStages(stages)); -// } -// -// /** -// * Creates a default instance. the stages are read from the {@code env.STAGE} system¨propertx -// * or a default is applied. -// */ -// public StagedConfigPropertiesProvider(){ -// super(null, evaluateStages(null)); -// } -// -// /** -// * Evaluates the stages or returns the default STAGE entry. -// * @return the stages to be used, never null. -// */ -// private static String[] evaluateStages(String[] stages) { -// if(stages!=null && stages.length>0){ -// return stages.clone(); -// } -// String value = System.getProperty(STAGE_PROP); -// if(value==null) { -// value = System.getenv(STAGE_PROP); -// } -// if(value==null){ -// value = "sys-env,GLOBAL,DEVELOPMENT,sys-props"; -// } -// return value.split(","); -// } -// -// @Override -// protected Collection<PropertySource> loadStageProperties( -// String rootContext, String contextId, int priority) { -// List<PropertySource> result = new ArrayList<>(); -// if (DEFAULT_ENV.equals(contextId)){ -// result.add(new MapPropertySource(DEFAULT_ENV, System.getenv(), -// rootContext, priority)); -// }else if (DEFAULT_SYSPROPS.equals(contextId)){ -// result.add(new MapPropertySource(DEFAULT_SYSPROPS, System.getProperties(), -// rootContext, priority)); -// } -// else{ -// loadProperties(rootContext, contextId, priority, result); -// } -// return result; -// } -// -// private void loadProperties(String rootContext, String contextId, int priority, -// List<PropertySource> result) { -// String cpExp = getBaseResourcePath()+'/' +contextId+".properties"; -// if(cpExp.startsWith("/")){ -// cpExp = cpExp.substring(1); -// } -// for(URL url: ConfigResources.getResourceResolver().getResources(cpExp)){ -// result.add(new PropertiesResourcePropertySource(rootContext, url, priority)); -// } -// } -// -// /** -// * Get the basic resource path used for lookup of properties files. -// * @return the basic resource path, never null. -// */ -// protected String getBaseResourcePath() { -// return ""; -// } -// -// -//} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/9f71f2d8/metamodel/src/test/resources/tamaya-TEST.yaml ---------------------------------------------------------------------- diff --git a/metamodel/src/test/resources/tamaya-TEST.yaml b/metamodel/src/test/resources/tamaya-TEST.yaml deleted file mode 100644 index 3e56656..0000000 --- a/metamodel/src/test/resources/tamaya-TEST.yaml +++ /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. -# -tamaya-configuration: - includes: - tamaya-DEFAULT.yaml - - property-sources: - - class: org.apache.tamaya.resources.ResourceProvider - resource: classpath:META-INF/config/test/**/*.*" - - class: org.apache.tamaya.resources.ResourceProvider - resource: classpath://META-INF/config/test/**/*.*" \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/9f71f2d8/metamodel/src/test/resources/tamaya-config.json ---------------------------------------------------------------------- diff --git a/metamodel/src/test/resources/tamaya-config.json b/metamodel/src/test/resources/tamaya-config.json deleted file mode 100644 index b926c25..0000000 --- a/metamodel/src/test/resources/tamaya-config.json +++ /dev/null @@ -1,39 +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. -// -{ - "context": { - "stage": "DEV" - }, - "config-sources":{ - "env-properties": { - "enabled": "${stage=TEST || stage=PTA || stage=PROD}", - "ordinal": 200 - }, - "sys-properties": {}, - "file": "./config.json", - "resource": { - "path": "/META-INF/application-config.yml", - "multiple": true - }, - "include":{ - "path": "TEST.properties", - "enabled": "${context.cstage==TEST}" - } - } -} - http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/9f71f2d8/metamodel/src/test/resources/tamaya-config.xml ---------------------------------------------------------------------- diff --git a/metamodel/src/test/resources/tamaya-config.xml b/metamodel/src/test/resources/tamaya-config.xml index ee36e0e..1d25beb 100644 --- a/metamodel/src/test/resources/tamaya-config.xml +++ b/metamodel/src/test/resources/tamaya-config.xml @@ -17,46 +17,59 @@ // under the License. // --> <configuration> - <formats> - <format name="yaml"/> - <format name="json"/> - </formats> - <!--<converters>--> - <!--<converter type="AllInOneConverter"/>--> - <!--</converters>--> - <filters> - <filter type="UsageTrackerFilter"/> - </filters> - + <!-- Context is evaluated first. --> <context> <context-entry name="stage">${properties:system:STAGE?default=DEV}</context-entry> <context-entry name="app">${properties:system.APP?default=NONE}</context-entry> <context-entry name="context">${java:org.apache.tamaya.context.Context#id()}</context-entry> <context-entry name="company">Trivadis</context-entry> + <context-entry name="default-formats">yaml,json</context-entry> </context> - <sources> + <!-- Configuration definition. --> + + <config-sources> <source enabled="${stage=TEST || stage=PTA || stage=PROD}" uri="properties:environment"> - <decorator name="maped-to">ENV.</decorator> - <decorator name="secured"> + <filter type="mapping">ENV.</filter> + <filter type="access-control"> <param name="roles">admin,power-user</param> <param name="policy">mask</param> - </decorator> + </filter> </source> <source uri="properties:system"/> - <source name="FILE:config.json" observe="true" observe-period="20000" - uri="file:/./config.json" /> - <source name="CP:config.yml" uri="classpath*://META-INF/application-config.yml"/> - <source name="MINE" uri="propertysource:ch.mypack.MyClassSource"> + <source name="FILE:config.json" refresh-period="5000" + uri="file:/./config.json" > + <param name="observe-period">20000</param> + <param name="formats">json</param> + </source> + <source-provider name="classpath:application-config.yml" uri="classpath*://META-INF/application-config.yml"> + <param name="formats">yaml</param> + </source-provider> + <source name="MINE" uri="class:ch.mypack.MyClassSource"> <param name="locale">de</param> </source> - <include enabled="${context.cstage==TEST}">TEST-config.xml</include> - <source name="CONFIG-DIR" uri="dir:/${CONFIG-DIR}/**/*.json"/> - <source name="SERVER" uri="https://www.confdrive.com/cfg/customerId=${}"> - <param name="locale">de</param> - </source> - </sources> + <include enabled="${stage==TEST}">TEST-config.xml</include> + <source-provider name="CONFIG-DIR" uri="resource:/${CONFIG-DIR}/**/*.json"/> + <source name="SERVER" uri="https://www.confdrive.com/cfg/customerId=${}"> + <param name="locale">de</param> + </source> + </config-sources> + <config-filters> + <filter type="UsageTrackerFilter"/> + <filter type="access-control"> + <param name="roles">admin,power-user</param> + <param name="policy">hide</param> + <param name="expression">*.secret</param> + </filter> + <filter type="Cache"> + <param name="ttl">30000</param> + <param name="expression">cached.*</param> + </filter> + </config-filters> + <!--<converters>--> + <!--<converter type="AllInOneConverter"/>--> + <!--</converters>--> </configuration> http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/9f71f2d8/metamodel/src/test/resources/tamaya-config.yaml ---------------------------------------------------------------------- diff --git a/metamodel/src/test/resources/tamaya-config.yaml b/metamodel/src/test/resources/tamaya-config.yaml deleted file mode 100644 index 4851c97..0000000 --- a/metamodel/src/test/resources/tamaya-config.yaml +++ /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 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. -# -<!-- -// 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: - formats: - - format: yaml - - format: json - converters: - - converter: AllInOneConverter - filters: - - filter: UsageTrackerFilter - - context: - - stage: ${properties:system:STAGE?default=DEV} - - app: ${properties:system.APP?default=NONE} - - context: ${java:org.apache.tamaya.context.Context#id()} - - company: Trivadis - - sources: - - ENVIRONMENT: - uri: properties:environment - enabled: ${stage=TEST || stage=PTA || stage=PROD} - decorator: - - maped-to: ENV. - - secured: - roles: admin,power-user - policy: mask - - SYSPROPS: - uri: properties:system - - FILE:config.json: - uri: file:/./config.json - name: FILE:config.json - observe: true - observe-period: 20000 - - CP:config.yml: - uri: classpath*://META-INF/application-config.yml - - MINE: - uri: propertysource:ch.mypack.MyClassSource - locale=de - - <include>: - resource: TEST-config.xml - enabled: ${context.cstage==TEST} - - CONFIG-DIR: - uri: dir:/${CONFIG-DIR}/**/*.json - - SERVER: - uri: https://www.confdrive.com/cfg/customerId=${} - params: - - locale: de - - - - -
