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 2018/11/18 21:20:28 UTC
[10/20] incubator-tamaya-extensions git commit: TAMAYA-274 Reduced
API footprint by using Java 8 features. Added some lambdas. TAMAYA-355 Enable
mapping of lists and arrays into internal datastructures. TAMAYA-353 Adding
support for different classloa
TAMAYA-274 Reduced API footprint by using Java 8 features. Added some lambdas.
TAMAYA-355 Enable mapping of lists and arrays into internal datastructures.
TAMAYA-353 Adding support for different classloaders.
Project: http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/commit/36c32fcf
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/tree/36c32fcf
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/diff/36c32fcf
Branch: refs/heads/master
Commit: 36c32fcf347ffffef5498ea177159be0387392e3
Parents: ade6eb8
Author: Anatole Tresch <at...@gmail.com>
Authored: Sat Nov 3 01:46:12 2018 +0100
Committer: Anatole Tresch <at...@gmail.com>
Committed: Sat Nov 3 01:46:15 2018 +0100
----------------------------------------------------------------------
.../tamay/ext/examples/resolver/Main.java | 3 +-
.../ext/examples/resolver/package-info.java | 2 +-
.../events/FilePropertySourceProvider.java | 2 +-
.../apache/tamaya/ext/examples/events/Main.java | 7 +-
.../tamaya/events/ConfigEventManager.java | 95 +++++++++-----
.../tamaya/events/ConfigurationChange.java | 2 +-
.../events/ConfigurationChangeBuilder.java | 10 +-
.../tamaya/events/FrozenConfiguration.java | 12 +-
.../tamaya/events/FrozenPropertySource.java | 2 +-
.../tamaya/events/PropertySourceChange.java | 2 +-
.../events/PropertySourceChangeBuilder.java | 6 +-
.../internal/DefaultConfigChangeObserver.java | 12 +-
.../internal/DefaultConfigEventManagerSpi.java | 18 ++-
.../events/ChangeableGlobalPropertySource.java | 4 +-
.../tamaya/events/ConfigEventManagerTest.java | 16 +--
.../tamaya/events/ConfigurationChangeTest.java | 2 +-
.../tamaya/events/FrozenConfigurationTest.java | 2 +-
.../tamaya/events/ObservedConfigTest.java | 4 +-
.../tamaya/events/PropertySourceChangeTest.java | 2 +-
.../apache/tamaya/events/TestConfigView.java | 10 +-
.../folderobserver/TestObservingProvider.java | 2 +-
.../DefaultConfigChangeObserverTest.java | 13 +-
.../org/apache/tamaya/features/Features.java | 2 +-
.../apache/tamaya/filter/CompositeFilter.java | 119 -----------------
.../tamaya/filter/ConfigurationFilter.java | 127 -------------------
.../filter/ThreadBasedConfigurationFilter.java | 127 +++++++++++++++++++
.../tamaya/filter/ThreadFilterContext.java | 119 +++++++++++++++++
.../filter/internal/DefaultMetadataFilter.java | 4 +-
.../org.apache.tamaya.spi.PropertyFilter | 2 +-
.../tamaya/filter/ConfigurationFilterTest.java | 41 +++---
.../tamaya/filter/ProgrammableFilterTest.java | 14 +-
modules/formats/base/pom.xml | 4 +-
.../BaseFormatPropertySourceProvider.java | 4 +-
.../tamaya/format/ConfigurationFormat.java | 7 +-
.../tamaya/format/ConfigurationFormats.java | 73 ++++++-----
.../MappedConfigurationDataPropertySource.java | 8 +-
.../format/formats/IniConfigurationFormat.java | 19 +--
.../tamaya/format/ConfigurationFormatsTest.java | 38 +++---
.../FormatPropertySourceProviderTest.java | 2 +-
...ppedConfigurationDataPropertySourceTest.java | 38 +++---
.../org/apache/tamaya/json/JSONDataBuilder.java | 54 ++++----
.../apache/tamaya/json/JSONPropertySource.java | 3 +-
.../org/apache/tamaya/json/JSONVisitorTest.java | 18 +--
.../java/org/apache/tamaya/yaml/YAMLFormat.java | 40 +++---
.../apache/tamaya/yaml/YAMLPropertySource.java | 6 +-
.../org/apache/tamaya/yaml/YAMLFormatTest.java | 2 +-
modules/functions/pom.xml | 2 +-
.../tamaya/functions/CombinedConfiguration.java | 20 +--
.../tamaya/functions/EnrichedConfiguration.java | 6 +-
.../tamaya/functions/FilteredConfiguration.java | 12 --
.../tamaya/functions/MappedConfiguration.java | 12 --
.../tamaya/functions/MappedPropertySource.java | 6 +-
.../apache/tamaya/functions/PropertyMapper.java | 6 +-
.../tamaya/functions/PropertyMatcher.java | 2 +-
.../functions/PropertySourceFunctions.java | 63 +++++++--
.../functions/CombinedConfigurationTest.java | 4 +-
.../functions/EnrichedConfigurationTest.java | 10 +-
.../tamaya/functions/InMemoryConfiguration.java | 4 +-
.../tamaya/cdi/CDIAwareServiceContext.java | 49 +++++--
.../tamaya/cdi/ConfigurationProducer.java | 6 +-
.../apache/tamaya/cdi/DefaultDynamicValue.java | 30 ++---
.../tamaya/cdi/ServiceLoaderServiceContext.java | 57 +++++++--
.../tamaya/cdi/TamayaCDIInjectionExtension.java | 6 +-
.../tamaya/cdi/ConfigurationProducerTest.java | 8 +-
.../org/apache/tamaya/inject/api/Config.java | 26 ++--
.../apache/tamaya/inject/api/DynamicValue.java | 74 +++++------
.../apache/tamaya/inject/api/LoadPolicy.java | 2 +-
.../apache/tamaya/inject/api/UpdatePolicy.java | 4 +-
.../tamaya/inject/spi/BaseDynamicValue.java | 88 +++++++------
.../tamaya/inject/spi/ConfiguredField.java | 6 +-
.../tamaya/inject/spi/InjectionUtils.java | 8 +-
.../tamaya/inject/spi/BaseDynamicValueTest.java | 21 ++-
.../tamaya/inject/ConfigurationInjection.java | 16 ++-
.../tamaya/inject/ConfigurationInjector.java | 7 +-
.../ConfigTemplateInvocationHandler.java | 2 +-
.../inject/internal/ConfiguredFieldImpl.java | 5 +-
.../inject/internal/ConfiguredSetterMethod.java | 3 +-
.../inject/internal/ConfiguredTypeImpl.java | 4 +-
.../internal/DefaultConfigurationInjector.java | 34 ++++-
.../inject/internal/DefaultDynamicValue.java | 47 +++----
.../tamaya/inject/internal/InjectionHelper.java | 20 +--
.../apache/tamaya/inject/internal/Utils.java | 6 +-
.../tamaya/inject/TamayaInjectionTest.java | 4 +-
.../apache/tamaya/jndi/JNDIPropertySource.java | 4 +-
.../microprofile/MicroprofileAdapter.java | 10 +-
.../microprofile/MicroprofileConfigBuilder.java | 18 ++-
.../MicroprofileConfigProviderResolver.java | 1 +
.../microprofile/TamayaPropertySource.java | 4 +-
.../cdi/MicroprofileConfigurationProducer.java | 4 +-
.../converter/ProviderConverter.java | 2 +-
.../microprofile/BuildableConfigSource.java | 2 +-
.../microprofile/MicroprofileAdapterTest.java | 2 +-
.../mutableconfig/ChangePropagationPolicy.java | 6 +-
.../mutableconfig/ConfigChangeRequest.java | 10 +-
.../mutableconfig/MutableConfiguration.java | 91 ++++++++++++-
.../MutableConfigurationProvider.java | 63 ++++++---
.../MutablePropertiesPropertySource.java | 4 +-
.../MutableXmlPropertiesPropertySource.java | 4 +-
.../spi/MutableConfigurationProviderSpi.java | 2 +-
.../MutableConfigurationProviderTest.java | 8 +-
.../mutableconfig/MutableConfigurationTest.java | 58 +++++++--
modules/optional/pom.xml | 2 +-
.../tamaya/optional/EvaluationPolicy.java | 4 +-
.../tamaya/optional/OptionalConfiguration.java | 36 +++---
.../apache/tamaya/optional/ValueProvider.java | 6 +-
.../org/apache/tamaya/osgi/ConfigHistory.java | 10 +-
.../apache/tamaya/osgi/TamayaConfigPlugin.java | 6 +-
.../tamaya/gogo/shell/ConfigCommands.java | 2 +-
.../osgi/injection/TamayaOSGIInjector.java | 2 +-
.../karaf/shell/DefaultEnableCommand.java | 2 +-
.../tamaya/karaf/shell/PropertyGetCommand.java | 2 +-
.../karaf/shell/PropertySourcesCommand.java | 2 +-
.../apache/tamaya/osgi/updater/Activator.java | 8 +-
.../tamaya/osgi/updater/ActivatorTest.java | 6 +-
modules/resolver/pom.xml | 2 +-
.../org/apache/tamaya/resolver/Resolver.java | 98 +++++++-------
.../resolver/internal/ConfigResolver.java | 2 +-
.../internal/DefaultExpressionEvaluator.java | 8 +-
.../internal/ExpressionResolutionFilter.java | 4 +-
.../resolver/internal/ResourceResolver.java | 7 +-
.../resolver/spi/ExpressionEvaluator.java | 6 +-
.../tamaya/resolver/ConfigResolutionTest.java | 1 -
.../tamaya/resolver/MyTestPropertySource.java | 6 +-
.../apache/tamaya/resolver/ResolverTest.java | 15 +--
modules/resources/pom.xml | 2 +-
.../AbstractPathPropertySourceProvider.java | 6 +-
.../tamaya/resource/BaseResourceResolver.java | 20 ++-
.../apache/tamaya/resource/ConfigResources.java | 9 +-
.../apache/tamaya/resource/ResourceLocator.java | 2 +-
.../tamaya/resource/ResourceResolver.java | 62 +++++----
.../resource/internal/ClasspathCollector.java | 6 +-
.../internal/DefaultResourceResolver.java | 22 +++-
.../tamaya/resource/internal/FileCollector.java | 8 +-
.../tamaya/resource/internal/VfsSupport.java | 16 +--
.../AbstractPathPropertySourceProviderTest.java | 6 +-
.../spring/TamayaSpringPropertySource.java | 1 -
136 files changed, 1406 insertions(+), 1063 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/36c32fcf/examples/02-resolver-example/src/main/java/org/apache/tamay/ext/examples/resolver/Main.java
----------------------------------------------------------------------
diff --git a/examples/02-resolver-example/src/main/java/org/apache/tamay/ext/examples/resolver/Main.java b/examples/02-resolver-example/src/main/java/org/apache/tamay/ext/examples/resolver/Main.java
index b9bba45..1cd9094 100644
--- a/examples/02-resolver-example/src/main/java/org/apache/tamay/ext/examples/resolver/Main.java
+++ b/examples/02-resolver-example/src/main/java/org/apache/tamay/ext/examples/resolver/Main.java
@@ -19,7 +19,6 @@
package org.apache.tamay.ext.examples.resolver;
import org.apache.tamaya.Configuration;
-import org.apache.tamaya.ConfigurationProvider;
import java.io.PrintStream;
import java.util.Map;
@@ -30,7 +29,7 @@ import java.util.logging.Logger;
import static java.lang.String.format;
/**
- * Example illustrating the usage of value resolver expressions (placeholders).
+ * Example illustrating the usage of createValue resolver expressions (placeholders).
*/
public class Main {
/*
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/36c32fcf/examples/02-resolver-example/src/main/java/org/apache/tamay/ext/examples/resolver/package-info.java
----------------------------------------------------------------------
diff --git a/examples/02-resolver-example/src/main/java/org/apache/tamay/ext/examples/resolver/package-info.java b/examples/02-resolver-example/src/main/java/org/apache/tamay/ext/examples/resolver/package-info.java
index 9479876..2f0cc42 100644
--- a/examples/02-resolver-example/src/main/java/org/apache/tamay/ext/examples/resolver/package-info.java
+++ b/examples/02-resolver-example/src/main/java/org/apache/tamay/ext/examples/resolver/package-info.java
@@ -18,6 +18,6 @@
*/
/**
- * Example illustrating the usage of value resolver expressions (placeholders).
+ * Example illustrating the usage of createValue resolver expressions (placeholders).
*/
package org.apache.tamay.ext.examples.resolver;
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/36c32fcf/examples/04-events-example/src/main/java/org/apache/tamaya/ext/examples/events/FilePropertySourceProvider.java
----------------------------------------------------------------------
diff --git a/examples/04-events-example/src/main/java/org/apache/tamaya/ext/examples/events/FilePropertySourceProvider.java b/examples/04-events-example/src/main/java/org/apache/tamaya/ext/examples/events/FilePropertySourceProvider.java
index a15ad6e..670e916 100644
--- a/examples/04-events-example/src/main/java/org/apache/tamaya/ext/examples/events/FilePropertySourceProvider.java
+++ b/examples/04-events-example/src/main/java/org/apache/tamaya/ext/examples/events/FilePropertySourceProvider.java
@@ -60,7 +60,7 @@ public class FilePropertySourceProvider extends AbstractPathPropertySourceProvid
}
for (String key : props.stringPropertyNames()) {
- properties.put(key, PropertyValue.of(key, props.getProperty(key), getName()));
+ properties.put(key, PropertyValue.createValue(key, props.getProperty(key)).setMeta("source", getName()));
}
} catch (IOException e) {
throw new ConfigException("Error loading properties from " + propertiesFile, e);
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/36c32fcf/examples/04-events-example/src/main/java/org/apache/tamaya/ext/examples/events/Main.java
----------------------------------------------------------------------
diff --git a/examples/04-events-example/src/main/java/org/apache/tamaya/ext/examples/events/Main.java b/examples/04-events-example/src/main/java/org/apache/tamaya/ext/examples/events/Main.java
index 2cf3fa0..f6019f9 100644
--- a/examples/04-events-example/src/main/java/org/apache/tamaya/ext/examples/events/Main.java
+++ b/examples/04-events-example/src/main/java/org/apache/tamaya/ext/examples/events/Main.java
@@ -19,7 +19,6 @@
package org.apache.tamaya.ext.examples.events;
import org.apache.tamaya.Configuration;
-import org.apache.tamaya.ConfigurationProvider;
import org.apache.tamaya.events.ConfigEvent;
import org.apache.tamaya.events.ConfigEventListener;
import org.apache.tamaya.events.ConfigEventManager;
@@ -61,9 +60,9 @@ public class Main {
installCleanupHook(getPropertiesFilePath());
- ConfigEventManager.addListener(new ConfigurationChangeListener());
- ConfigEventManager.setChangeMonitoringPeriod(1_000L);
- ConfigEventManager.enableChangeMonitoring(true);
+ ConfigEventManager.getInstance().addListener(new ConfigurationChangeListener());
+ ConfigEventManager.getInstance().setChangeMonitoringPeriod(1_000L);
+ ConfigEventManager.getInstance().enableChangeMonitoring(true);
Configuration configuration = Configuration.current();
for (Map.Entry<String, String> e : configuration.getProperties().entrySet()) {
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/36c32fcf/modules/events/src/main/java/org/apache/tamaya/events/ConfigEventManager.java
----------------------------------------------------------------------
diff --git a/modules/events/src/main/java/org/apache/tamaya/events/ConfigEventManager.java b/modules/events/src/main/java/org/apache/tamaya/events/ConfigEventManager.java
index 1830dfb..636fbb8 100644
--- a/modules/events/src/main/java/org/apache/tamaya/events/ConfigEventManager.java
+++ b/modules/events/src/main/java/org/apache/tamaya/events/ConfigEventManager.java
@@ -23,6 +23,7 @@ import org.apache.tamaya.events.spi.ConfigEventManagerSpi;
import org.apache.tamaya.spi.ServiceContextManager;
import java.util.Collection;
+import java.util.Objects;
/**
* Singleton accessor for accessing the event support component that distributes change events of
@@ -30,32 +31,53 @@ import java.util.Collection;
*/
@SuppressWarnings("rawtypes")
public final class ConfigEventManager {
+
+ private ClassLoader classLoader;
+
+ private ConfigEventManager(ClassLoader classLoader){
+ this.classLoader = Objects.requireNonNull(classLoader);
+ }
+
/**
* The backing SPI.
*/
- private static final ConfigEventManagerSpi spi(){
- ConfigEventManagerSpi spi = ServiceContextManager.getServiceContext(
- Thread.currentThread().getContextClassLoader())
+ private static final ConfigEventManagerSpi spi(ClassLoader classLoader){
+ ConfigEventManagerSpi spi = ServiceContextManager.getServiceContext(classLoader)
.getService(ConfigEventManagerSpi.class);
if(spi==null){
- throw new ConfigException("No SPI registered for " +
- ConfigEventManager.class.getName());
+ throw new ConfigException("No SPI registered: " +
+ ConfigEventManagerSpi.class.getName());
}
return spi;
}
/**
- * Private singleton constructor.
+ * Access the event manager using the current classloader.
+ *
+ * @see ServiceContextManager#getDefaultClassLoader()
+ * @return the event manager, not null.
+ */
+ public static ConfigEventManager getInstance(){
+ return getInstance(ServiceContextManager.getDefaultClassLoader());
+ }
+
+ /**
+ * Access the event manager using the given classloader.
+ * @param classLoader the target classloader, not null.
+ * @return the event manager, not null.
*/
- private ConfigEventManager() {
+ public static ConfigEventManager getInstance(ClassLoader classLoader){
+ return ServiceContextManager.getServiceContext(
+ Thread.currentThread().getContextClassLoader()).getService(
+ ConfigEventManager.class, () -> new ConfigEventManager(classLoader));
}
/**
* Adds a Config listener that listens to all kind of {@link ConfigEvent}.
* @param l the listener not null.
*/
- public static void addListener(ConfigEventListener l) {
- spi().addListener(l);
+ public void addListener(ConfigEventListener l) {
+ spi(classLoader).addListener(l);
}
/**
@@ -64,8 +86,8 @@ public final class ConfigEventManager {
* @param l the listener not null.
* @param eventType the event type to which this listener listens to.
*/
- public static <T extends ConfigEvent> void addListener(ConfigEventListener l, Class<T> eventType) {
- spi().addListener(l);
+ public <T extends ConfigEvent> void addListener(ConfigEventListener l, Class<T> eventType) {
+ spi(classLoader).addListener(l);
}
/**
@@ -73,8 +95,8 @@ public final class ConfigEventManager {
*
* @param l the listener not null.
*/
- public static void removeListener(ConfigEventListener l) {
- spi().removeListener(l);
+ public void removeListener(ConfigEventListener l) {
+ spi(classLoader).removeListener(l);
}
/**
@@ -84,30 +106,30 @@ public final class ConfigEventManager {
* @param l the listener, not null.
* @param eventType the event type to which this listener listens to.
*/
- public static <T extends ConfigEvent> void removeListener(ConfigEventListener l, Class<T> eventType) {
- spi().removeListener(l);
+ public <T extends ConfigEvent> void removeListener(ConfigEventListener l, Class<T> eventType) {
+ spi(classLoader).removeListener(l);
}
/**
* Access all registered ConfigEventListeners listening to a given event type.
* @param type the event type
* @param <T> type param
- * @return a list with the listeners found, never null.
+ * @return a createList with the listeners found, never null.
*/
- public static <T extends ConfigEvent>
+ public <T extends ConfigEvent>
Collection<? extends ConfigEventListener> getListeners(Class<T> type) {
- return spi().getListeners(type);
+ return spi(classLoader).getListeners(type);
}
/**
* Access all registered ConfigEventListeners listening to a all kind of event types globally.
*
* @param <T> the type of the event.
- * @return a list with the listeners found, never null.
+ * @return a createList with the listeners found, never null.
*/
- public static <T extends ConfigEvent>
+ public <T extends ConfigEvent>
Collection<? extends ConfigEventListener> getListeners() {
- return spi().getListeners();
+ return spi(classLoader).getListeners();
}
/**
@@ -116,8 +138,8 @@ public final class ConfigEventManager {
* @param <T> the type of the event.
* @param event the event, not null.
*/
- public static <T> void fireEvent(ConfigEvent<?> event) {
- spi().fireEvent(event);
+ public <T> void fireEvent(ConfigEvent<?> event) {
+ spi(classLoader).fireEvent(event);
}
/**
@@ -126,8 +148,8 @@ public final class ConfigEventManager {
* @param <T> the type of the event.
* @param event the event, not null.
*/
- public static <T> void fireEventAsynch(ConfigEvent<?> event) {
- spi().fireEventAsynch(event);
+ public <T> void fireEventAsynch(ConfigEvent<?> event) {
+ spi(classLoader).fireEventAsynch(event);
}
/**
@@ -142,8 +164,8 @@ public final class ConfigEventManager {
* @see #isChangeMonitoring()
* @see #getChangeMonitoringPeriod()
*/
- public static void enableChangeMonitoring(boolean enable) {
- spi().enableChangeMonitor(enable);
+ public void enableChangeMonitoring(boolean enable) {
+ spi(classLoader).enableChangeMonitor(enable);
}
/**
@@ -152,8 +174,8 @@ public final class ConfigEventManager {
* @return true, if the change monitoring service is currently running.
* @see #enableChangeMonitoring(boolean)
*/
- public static boolean isChangeMonitoring() {
- return spi().isChangeMonitorActive();
+ public boolean isChangeMonitoring() {
+ return spi(classLoader).isChangeMonitorActive();
}
/**
@@ -161,8 +183,8 @@ public final class ConfigEventManager {
*
* @return the check period in ms.
*/
- public static long getChangeMonitoringPeriod(){
- return spi().getChangeMonitoringPeriod();
+ public long getChangeMonitoringPeriod(){
+ return spi(classLoader).getChangeMonitoringPeriod();
}
/**
@@ -172,8 +194,15 @@ public final class ConfigEventManager {
* @see #enableChangeMonitoring(boolean)
* @see #isChangeMonitoring()
*/
- public static void setChangeMonitoringPeriod(long millis){
- spi().setChangeMonitoringPeriod(millis);
+ public void setChangeMonitoringPeriod(long millis){
+ spi(classLoader).setChangeMonitoringPeriod(millis);
}
+ /**
+ * Get the underlying target classloader.
+ * @return the classloader, not null.
+ */
+ public ClassLoader getClassLoader() {
+ return this.classLoader;
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/36c32fcf/modules/events/src/main/java/org/apache/tamaya/events/ConfigurationChange.java
----------------------------------------------------------------------
diff --git a/modules/events/src/main/java/org/apache/tamaya/events/ConfigurationChange.java b/modules/events/src/main/java/org/apache/tamaya/events/ConfigurationChange.java
index 5b75b61..0ec7e1e 100644
--- a/modules/events/src/main/java/org/apache/tamaya/events/ConfigurationChange.java
+++ b/modules/events/src/main/java/org/apache/tamaya/events/ConfigurationChange.java
@@ -30,7 +30,7 @@ import java.util.UUID;
/**
* Event that contains a setCurrent current changes that were applied or could be applied.
- * This class is immutable and thread-safe. To create instances use
+ * This class is immutable and thread-safe. To createObject instances use
* {@link PropertySourceChangeBuilder}.
*
* Created by Anatole on 22.10.2014.
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/36c32fcf/modules/events/src/main/java/org/apache/tamaya/events/ConfigurationChangeBuilder.java
----------------------------------------------------------------------
diff --git a/modules/events/src/main/java/org/apache/tamaya/events/ConfigurationChangeBuilder.java b/modules/events/src/main/java/org/apache/tamaya/events/ConfigurationChangeBuilder.java
index 79061ba..6546338 100644
--- a/modules/events/src/main/java/org/apache/tamaya/events/ConfigurationChangeBuilder.java
+++ b/modules/events/src/main/java/org/apache/tamaya/events/ConfigurationChangeBuilder.java
@@ -36,7 +36,7 @@ import java.util.TreeMap;
* contains the changed {@link org.apache.tamaya.spi.PropertySource} (Note: the reference to a property source is never affected by a
* change, its only the data of the property source).</li>
* <li>If so corresponding actions might be taken, such as reevaluating the configuration values (depending on
- * the update policy) or reevaluating the complete {@link org.apache.tamaya.Configuration} to create a change
+ * the update policy) or reevaluating the complete {@link org.apache.tamaya.Configuration} to createObject a change
* event on configuration level.
* </ol>
*/
@@ -161,10 +161,10 @@ public final class ConfigurationChangeBuilder {
}
/**
- * Applies a single key/value change.
+ * Applies a single key/createValue change.
*
* @param key the changed key
- * @param value the new value.
+ * @param value the new createValue.
* @return this instance for chaining.
*/
public ConfigurationChangeBuilder addChange(String key, String value) {
@@ -215,7 +215,7 @@ public final class ConfigurationChangeBuilder {
* <ul>
* <li>the registered codecs provider provides codecs for the corresponding keys, or </li>
* <li>default codecs are present for the given type, or</li>
- * <li>the value is an instanceof String</li>
+ * <li>the createValue is an instanceof String</li>
* </ul>
*
* @param changes the changes to be applied, not null.
@@ -229,7 +229,7 @@ public final class ConfigurationChangeBuilder {
}
/**
- * This method will create a change setCurrent that clears all entries fromMap the given base configuration/properties.
+ * This method will createObject a change setCurrent that clears all entries fromMap the given base configuration/properties.
*
* @return the builder for chaining.
*/
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/36c32fcf/modules/events/src/main/java/org/apache/tamaya/events/FrozenConfiguration.java
----------------------------------------------------------------------
diff --git a/modules/events/src/main/java/org/apache/tamaya/events/FrozenConfiguration.java b/modules/events/src/main/java/org/apache/tamaya/events/FrozenConfiguration.java
index 2707200..45375ec 100644
--- a/modules/events/src/main/java/org/apache/tamaya/events/FrozenConfiguration.java
+++ b/modules/events/src/main/java/org/apache/tamaya/events/FrozenConfiguration.java
@@ -36,7 +36,7 @@ import java.util.logging.Logger;
/**
* /**
* Configuration implementation that stores all current values of a given (possibly dynamic, contextual and non server
- * capable instance) and is fully serializable. Note that hereby only the scannable key/value pairs are considered.
+ * capable instance) and is fully serializable. Note that hereby only the scannable key/createValue pairs are considered.
*/
public final class FrozenConfiguration implements Configuration, Serializable {
private static final long serialVersionUID = -6373137316556444171L;
@@ -101,15 +101,15 @@ public final class FrozenConfiguration implements Configuration, Serializable {
}
/**
- * Accesses the current String value for the given key and tries to convert it
+ * Accesses the current String createValue for the given key and tries to convert it
* using the {@link org.apache.tamaya.spi.PropertyConverter} instances provided by the current
* {@link org.apache.tamaya.spi.ConfigurationContext}.
*
* @param key the property's absolute, or relative path, e.g. @code
* a/b/c/d.myProperty}.
* @param type The target type required, not null.
- * @param <T> the value type
- * @return the converted value, never null.
+ * @param <T> the createValue type
+ * @return the converted createValue, never null.
*/
@Override
public <T> T get(String key, TypeLiteral<T> type) {
@@ -128,11 +128,11 @@ public final class FrozenConfiguration implements Configuration, Serializable {
}
} catch (Exception e) {
Logger.getLogger(getClass().getName())
- .log(Level.FINEST, "PropertyConverter: " + converter + " failed to convert value: " + value,
+ .log(Level.FINEST, "PropertyConverter: " + converter + " failed to convert createValue: " + value,
e);
}
}
- throw new ConfigException("Unparseable config value for type: " + type.getRawType().getName() + ": " + key
+ throw new ConfigException("Unparseable config createValue for type: " + type.getRawType().getName() + ": " + key
+ ", supported formats: " + context.getSupportedFormats());
}finally{
ConversionContext.reset();
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/36c32fcf/modules/events/src/main/java/org/apache/tamaya/events/FrozenPropertySource.java
----------------------------------------------------------------------
diff --git a/modules/events/src/main/java/org/apache/tamaya/events/FrozenPropertySource.java b/modules/events/src/main/java/org/apache/tamaya/events/FrozenPropertySource.java
index 0bc71ce..65da582 100644
--- a/modules/events/src/main/java/org/apache/tamaya/events/FrozenPropertySource.java
+++ b/modules/events/src/main/java/org/apache/tamaya/events/FrozenPropertySource.java
@@ -29,7 +29,7 @@ import java.util.Map;
/**
* PropertySource implementation that stores all current values of a given (possibly dynamic, contextual and non server
- * capable instance) and is fully serializable. Note that hereby only the scannable key/value pairs are considered.
+ * capable instance) and is fully serializable. Note that hereby only the scannable key/createValue pairs are considered.
*/
public final class FrozenPropertySource implements PropertySource, Serializable {
private static final long serialVersionUID = -6373137316556444171L;
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/36c32fcf/modules/events/src/main/java/org/apache/tamaya/events/PropertySourceChange.java
----------------------------------------------------------------------
diff --git a/modules/events/src/main/java/org/apache/tamaya/events/PropertySourceChange.java b/modules/events/src/main/java/org/apache/tamaya/events/PropertySourceChange.java
index d7e73b8..d256713 100644
--- a/modules/events/src/main/java/org/apache/tamaya/events/PropertySourceChange.java
+++ b/modules/events/src/main/java/org/apache/tamaya/events/PropertySourceChange.java
@@ -30,7 +30,7 @@ import java.util.UUID;
/**
* Event that contains a setCurrent current changes that were applied or could be applied.
- * This class is immutable and thread-safe. To create instances use
+ * This class is immutable and thread-safe. To createObject instances use
* {@link PropertySourceChangeBuilder}.
*
* Created by Anatole on 22.10.2014.
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/36c32fcf/modules/events/src/main/java/org/apache/tamaya/events/PropertySourceChangeBuilder.java
----------------------------------------------------------------------
diff --git a/modules/events/src/main/java/org/apache/tamaya/events/PropertySourceChangeBuilder.java b/modules/events/src/main/java/org/apache/tamaya/events/PropertySourceChangeBuilder.java
index 51da86d..cd77515 100644
--- a/modules/events/src/main/java/org/apache/tamaya/events/PropertySourceChangeBuilder.java
+++ b/modules/events/src/main/java/org/apache/tamaya/events/PropertySourceChangeBuilder.java
@@ -38,7 +38,7 @@ import java.util.TreeMap;
* contains the changed {@link org.apache.tamaya.spi.PropertySource} (Note: the reference tova property source is never affected by a
* change, its only the data of the property source).</li>
* <li>If so corresponding action may be taken, such as reevaluating the configuration values (depending on
- * the update policy) or reevaluating the complete {@link org.apache.tamaya.Configuration} to create a change
+ * the update policy) or reevaluating the complete {@link org.apache.tamaya.Configuration} to createObject a change
* event on configuration level.
* </ol>
*/
@@ -186,7 +186,7 @@ public final class PropertySourceChangeBuilder {
* <ul>
* <li>the registered codecs provider provides codecs for the corresponding keys, or </li>
* <li>default codecs are present for the given type, or</li>
- * <li>the value is an instanceof String</li>
+ * <li>the createValue is an instanceof String</li>
* </ul>
*
* @param changes the changes to be applied, not null.
@@ -200,7 +200,7 @@ public final class PropertySourceChangeBuilder {
}
/**
- * This method will create a change setCurrent that clears all entries fromMap the given base configuration/properties.
+ * This method will createObject a change setCurrent that clears all entries fromMap the given base configuration/properties.
*
* @return the builder for chaining.
*/
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/36c32fcf/modules/events/src/main/java/org/apache/tamaya/events/internal/DefaultConfigChangeObserver.java
----------------------------------------------------------------------
diff --git a/modules/events/src/main/java/org/apache/tamaya/events/internal/DefaultConfigChangeObserver.java b/modules/events/src/main/java/org/apache/tamaya/events/internal/DefaultConfigChangeObserver.java
index c806446..ebfa356 100644
--- a/modules/events/src/main/java/org/apache/tamaya/events/internal/DefaultConfigChangeObserver.java
+++ b/modules/events/src/main/java/org/apache/tamaya/events/internal/DefaultConfigChangeObserver.java
@@ -19,7 +19,6 @@
package org.apache.tamaya.events.internal;
import org.apache.tamaya.Configuration;
-import org.apache.tamaya.ConfigurationProvider;
import org.apache.tamaya.events.ConfigEventManager;
import org.apache.tamaya.events.ConfigurationChange;
import org.apache.tamaya.events.ConfigurationChangeBuilder;
@@ -45,10 +44,13 @@ public class DefaultConfigChangeObserver {
private volatile boolean running;
+ private ClassLoader classLoader;
+
/**
* Constructor. Also loads all registered listeners.
*/
- public DefaultConfigChangeObserver() {
+ public DefaultConfigChangeObserver(ClassLoader classLoader) {
+ this.classLoader = Objects.requireNonNull(classLoader);
LOG.info("Registering config change observer, rechecking config changes every " + checkPeriod + " ms.");
timer.scheduleAtFixedRate(new TimerTask() {
@Override
@@ -62,7 +64,7 @@ public class DefaultConfigChangeObserver {
public void checkConfigurationUpdate() {
LOG.finest("Checking configuration for changes...");
- FrozenConfiguration frozenConfig = FrozenConfiguration.of(Configuration.current());
+ FrozenConfiguration frozenConfig = FrozenConfiguration.of(Configuration.current(classLoader));
ConfigurationChange changes;
if (getLastConfig() != null) {
@@ -70,12 +72,10 @@ public class DefaultConfigChangeObserver {
.build();
if(!changes.isEmpty()) {
LOG.info("Identified configuration changes, publishing changes:\n" + changes);
- ConfigEventManager.fireEvent(changes);
+ ConfigEventManager.getInstance(classLoader).fireEvent(changes);
}
}
setLastConfig(frozenConfig);
-
-
}
protected FrozenConfiguration getLastConfig() {
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/36c32fcf/modules/events/src/main/java/org/apache/tamaya/events/internal/DefaultConfigEventManagerSpi.java
----------------------------------------------------------------------
diff --git a/modules/events/src/main/java/org/apache/tamaya/events/internal/DefaultConfigEventManagerSpi.java b/modules/events/src/main/java/org/apache/tamaya/events/internal/DefaultConfigEventManagerSpi.java
index a0d58bd..cbe8937 100644
--- a/modules/events/src/main/java/org/apache/tamaya/events/internal/DefaultConfigEventManagerSpi.java
+++ b/modules/events/src/main/java/org/apache/tamaya/events/internal/DefaultConfigEventManagerSpi.java
@@ -21,6 +21,7 @@ package org.apache.tamaya.events.internal;
import org.apache.tamaya.events.ConfigEvent;
import org.apache.tamaya.events.ConfigEventListener;
import org.apache.tamaya.events.spi.ConfigEventManagerSpi;
+import org.apache.tamaya.spi.ClassloaderAware;
import org.apache.tamaya.spi.ServiceContextManager;
import org.osgi.service.component.annotations.Component;
@@ -37,7 +38,7 @@ import java.util.logging.Logger;
*/
@SuppressWarnings("rawtypes")
@Component
-public class DefaultConfigEventManagerSpi implements ConfigEventManagerSpi {
+public class DefaultConfigEventManagerSpi implements ConfigEventManagerSpi, ClassloaderAware {
private static final Logger LOG = Logger.getLogger(DefaultConfigEventManagerSpi.class.getName());
@@ -45,7 +46,9 @@ public class DefaultConfigEventManagerSpi implements ConfigEventManagerSpi {
private final ExecutorService publisher = Executors.newCachedThreadPool();
- private final DefaultConfigChangeObserver changeObserver = new DefaultConfigChangeObserver();
+ private ClassLoader classLoader;
+
+ private DefaultConfigChangeObserver changeObserver;
/**
* Constructor. Also loads all registered listeners.
@@ -185,6 +188,17 @@ public class DefaultConfigEventManagerSpi implements ConfigEventManagerSpi {
changeObserver.enableMonitoring(enable);
}
+ @Override
+ public void init(ClassLoader classLoader) {
+ this.classLoader = Objects.requireNonNull(classLoader);
+ changeObserver = new DefaultConfigChangeObserver(classLoader);
+ }
+
+ @Override
+ public ClassLoader getClassLoader() {
+ return classLoader;
+ }
+
/**
* Tasks to inform observers on detected configuration changes.
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/36c32fcf/modules/events/src/test/java/org/apache/tamaya/events/ChangeableGlobalPropertySource.java
----------------------------------------------------------------------
diff --git a/modules/events/src/test/java/org/apache/tamaya/events/ChangeableGlobalPropertySource.java b/modules/events/src/test/java/org/apache/tamaya/events/ChangeableGlobalPropertySource.java
index 94a0a9d..1f7dd7c 100644
--- a/modules/events/src/test/java/org/apache/tamaya/events/ChangeableGlobalPropertySource.java
+++ b/modules/events/src/test/java/org/apache/tamaya/events/ChangeableGlobalPropertySource.java
@@ -42,9 +42,9 @@ public class ChangeableGlobalPropertySource extends BasePropertySource{
}
/**
- * Put a value (globally) into this property source.
+ * Put a createValue (globally) into this property source.
* @param key the key, not null
- * @param value the value, not null
+ * @param value the createValue, not null
* @return the entry replaced, or null.
*/
public static String put(String key, String value){
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/36c32fcf/modules/events/src/test/java/org/apache/tamaya/events/ConfigEventManagerTest.java
----------------------------------------------------------------------
diff --git a/modules/events/src/test/java/org/apache/tamaya/events/ConfigEventManagerTest.java b/modules/events/src/test/java/org/apache/tamaya/events/ConfigEventManagerTest.java
index 1e658af..8435df8 100644
--- a/modules/events/src/test/java/org/apache/tamaya/events/ConfigEventManagerTest.java
+++ b/modules/events/src/test/java/org/apache/tamaya/events/ConfigEventManagerTest.java
@@ -37,11 +37,11 @@ public class ConfigEventManagerTest {
testAddListenerValue = event.getResource();
}
};
- ConfigEventManager.addListener(testListener);
- ConfigEventManager.fireEvent(new SimpleEvent("Event1"));
+ ConfigEventManager.getInstance().addListener(testListener);
+ ConfigEventManager.getInstance().fireEvent(new SimpleEvent("Event1"));
assertEquals(testAddListenerValue, "Event1");
- ConfigEventManager.removeListener(testListener);
- ConfigEventManager.fireEvent(new SimpleEvent("Event2"));
+ ConfigEventManager.getInstance().removeListener(testListener);
+ ConfigEventManager.getInstance().fireEvent(new SimpleEvent("Event2"));
assertEquals(testAddListenerValue, "Event1");
}
@@ -53,11 +53,11 @@ public class ConfigEventManagerTest {
testAddListenerValue = event.getResource();
}
};
- ConfigEventManager.addListener(testListener);
- ConfigEventManager.fireEvent(new SimpleEvent("Event1"));
+ ConfigEventManager.getInstance().addListener(testListener);
+ ConfigEventManager.getInstance().fireEvent(new SimpleEvent("Event1"));
assertEquals(testAddListenerValue, "Event1");
- ConfigEventManager.removeListener(testListener);
- ConfigEventManager.fireEvent(new SimpleEvent("Event2"));
+ ConfigEventManager.getInstance().removeListener(testListener);
+ ConfigEventManager.getInstance().fireEvent(new SimpleEvent("Event2"));
assertEquals(testAddListenerValue, "Event1");
}
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/36c32fcf/modules/events/src/test/java/org/apache/tamaya/events/ConfigurationChangeTest.java
----------------------------------------------------------------------
diff --git a/modules/events/src/test/java/org/apache/tamaya/events/ConfigurationChangeTest.java b/modules/events/src/test/java/org/apache/tamaya/events/ConfigurationChangeTest.java
index b90b0a9..fd7fb0b 100644
--- a/modules/events/src/test/java/org/apache/tamaya/events/ConfigurationChangeTest.java
+++ b/modules/events/src/test/java/org/apache/tamaya/events/ConfigurationChangeTest.java
@@ -49,7 +49,7 @@ public class ConfigurationChangeTest {
assertTrue(change.getChanges().size()==0);
for (Map.Entry<String, String> en : config.getProperties().entrySet()) {
if (!"[getMeta]frozenAt".equals(en.getKey())) {
- if(en.getKey().contains("random.new")){ // dynamic generated value!
+ if(en.getKey().contains("random.new")){ // dynamic generated createValue!
continue;
}
assertEquals("Error for " + en.getKey(), en.getValue(), change.getResource().get(en.getKey()));
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/36c32fcf/modules/events/src/test/java/org/apache/tamaya/events/FrozenConfigurationTest.java
----------------------------------------------------------------------
diff --git a/modules/events/src/test/java/org/apache/tamaya/events/FrozenConfigurationTest.java b/modules/events/src/test/java/org/apache/tamaya/events/FrozenConfigurationTest.java
index 264d99a..3ad8f12 100644
--- a/modules/events/src/test/java/org/apache/tamaya/events/FrozenConfigurationTest.java
+++ b/modules/events/src/test/java/org/apache/tamaya/events/FrozenConfigurationTest.java
@@ -60,7 +60,7 @@ public class FrozenConfigurationTest {
@Test
public void twoFrozenAreDifferentIfTheyHaveADifferentIdAndFrozenAtTimestamp() {
Map<String, String> properties = new HashMap<>();
- properties.put("key", "value");
+ properties.put("key", "createValue");
Configuration configuration = Mockito.mock(Configuration.class);
doReturn(properties).when(configuration).getProperties();
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/36c32fcf/modules/events/src/test/java/org/apache/tamaya/events/ObservedConfigTest.java
----------------------------------------------------------------------
diff --git a/modules/events/src/test/java/org/apache/tamaya/events/ObservedConfigTest.java b/modules/events/src/test/java/org/apache/tamaya/events/ObservedConfigTest.java
index da749c3..1661ab5 100644
--- a/modules/events/src/test/java/org/apache/tamaya/events/ObservedConfigTest.java
+++ b/modules/events/src/test/java/org/apache/tamaya/events/ObservedConfigTest.java
@@ -30,8 +30,8 @@ public class ObservedConfigTest {
@Test
public void testChangingConfig() throws IOException {
- ConfigEventManager.setChangeMonitoringPeriod(100L);
- ConfigEventManager.enableChangeMonitoring(true);
+ ConfigEventManager.getInstance().setChangeMonitoringPeriod(100L);
+ ConfigEventManager.getInstance().enableChangeMonitoring(true);
while(MyConfigObserver.event==null) {
try {
Thread.sleep(100);
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/36c32fcf/modules/events/src/test/java/org/apache/tamaya/events/PropertySourceChangeTest.java
----------------------------------------------------------------------
diff --git a/modules/events/src/test/java/org/apache/tamaya/events/PropertySourceChangeTest.java b/modules/events/src/test/java/org/apache/tamaya/events/PropertySourceChangeTest.java
index 2fd51c5..f04f510 100644
--- a/modules/events/src/test/java/org/apache/tamaya/events/PropertySourceChangeTest.java
+++ b/modules/events/src/test/java/org/apache/tamaya/events/PropertySourceChangeTest.java
@@ -106,7 +106,7 @@ public class PropertySourceChangeTest {
@Test
public void testGetUpdatedSizeWithUpdates() throws Exception {
Map<String, String> addableMap = new HashMap<>();
- addableMap.put("java.home", "/new/java/home/value");
+ addableMap.put("java.home", "/new/java/home/createValue");
PropertySourceChange change = PropertySourceChangeBuilder.of(myPS)
.addChanges(
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/36c32fcf/modules/events/src/test/java/org/apache/tamaya/events/TestConfigView.java
----------------------------------------------------------------------
diff --git a/modules/events/src/test/java/org/apache/tamaya/events/TestConfigView.java b/modules/events/src/test/java/org/apache/tamaya/events/TestConfigView.java
index 2ec7c1b..d12c5d6 100644
--- a/modules/events/src/test/java/org/apache/tamaya/events/TestConfigView.java
+++ b/modules/events/src/test/java/org/apache/tamaya/events/TestConfigView.java
@@ -107,15 +107,15 @@ public class TestConfigView implements ConfigOperator{
}
/**
- * Accesses the current String value for the given key and tries to convert it
+ * Accesses the current String createValue for the given key and tries to convert it
* using the {@link org.apache.tamaya.spi.PropertyConverter} instances provided by the current
* {@link org.apache.tamaya.spi.ConfigurationContext}.
*
* @param key the property's absolute, or relative path, e.g. @code
* a/b/c/d.myProperty}.
* @param type The target type required, not null.
- * @param <T> the value type
- * @return the converted value, never null.
+ * @param <T> the createValue type
+ * @return the converted createValue, never null.
*/
@Override
public <T> T get(String key, TypeLiteral<T> type) {
@@ -135,11 +135,11 @@ public class TestConfigView implements ConfigOperator{
}
} catch (Exception e) {
Logger.getLogger(getClass().getName())
- .log(Level.FINEST, "PropertyConverter: " + converter + " failed to convert value: "
+ .log(Level.FINEST, "PropertyConverter: " + converter + " failed to convert createValue: "
+ value, e);
}
}
- throw new ConfigException("Unparseable config value for type: " + type.getRawType().getName() + ": "
+ throw new ConfigException("Unparseable config createValue for type: " + type.getRawType().getName() + ": "
+ key + ", supportedFormats: " + context.getSupportedFormats());
}finally{
ConversionContext.reset();
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/36c32fcf/modules/events/src/test/java/org/apache/tamaya/events/folderobserver/TestObservingProvider.java
----------------------------------------------------------------------
diff --git a/modules/events/src/test/java/org/apache/tamaya/events/folderobserver/TestObservingProvider.java b/modules/events/src/test/java/org/apache/tamaya/events/folderobserver/TestObservingProvider.java
index b1e3962..93345a9 100644
--- a/modules/events/src/test/java/org/apache/tamaya/events/folderobserver/TestObservingProvider.java
+++ b/modules/events/src/test/java/org/apache/tamaya/events/folderobserver/TestObservingProvider.java
@@ -36,7 +36,7 @@ public class TestObservingProvider extends ObservingPropertySourceProvider{
static{
try {
- // create some temporary config
+ // createObject some temporary config
Path tempDir = Files.createTempDirectory("observedFolder");
TestObservingProvider.propertyLocation = tempDir;
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/36c32fcf/modules/events/src/test/java/org/apache/tamaya/events/internal/DefaultConfigChangeObserverTest.java
----------------------------------------------------------------------
diff --git a/modules/events/src/test/java/org/apache/tamaya/events/internal/DefaultConfigChangeObserverTest.java b/modules/events/src/test/java/org/apache/tamaya/events/internal/DefaultConfigChangeObserverTest.java
index 4bceacc..4aab1b8 100644
--- a/modules/events/src/test/java/org/apache/tamaya/events/internal/DefaultConfigChangeObserverTest.java
+++ b/modules/events/src/test/java/org/apache/tamaya/events/internal/DefaultConfigChangeObserverTest.java
@@ -19,12 +19,15 @@
package org.apache.tamaya.events.internal;
import org.apache.tamaya.events.FrozenConfiguration;
+import org.apache.tamaya.spi.ServiceContextManager;
import org.junit.Test;
import static org.assertj.core.api.Assertions.assertThat;
public class DefaultConfigChangeObserverTest {
- private DefaultConfigChangeObserver sut = new DefaultConfigChangeObserver();
+ private DefaultConfigChangeObserver sut = new DefaultConfigChangeObserver(
+ ServiceContextManager.getDefaultClassLoader()
+ );
@Test
public void enableMonitoringCalledWithTrueEnablesMonitoring() {
@@ -50,7 +53,9 @@ public class DefaultConfigChangeObserverTest {
@Test
public void lastConfigIsSetByTheFirstCheckForChangesInTheConfiguration() {
- DefaultConfigChangeObserver observer = new DefaultConfigChangeObserver();
+ DefaultConfigChangeObserver observer = new DefaultConfigChangeObserver(
+ ServiceContextManager.getDefaultClassLoader()
+ );
assertThat(observer.getLastConfig()).describedAs("There must be no last configuration after creation.")
.isNull();
@@ -63,7 +68,9 @@ public class DefaultConfigChangeObserverTest {
@Test
public void lastConfigIsUpdatedByASubSequentCheckForChangesInTheConfigration() {
- DefaultConfigChangeObserver observer = new DefaultConfigChangeObserver();
+ DefaultConfigChangeObserver observer = new DefaultConfigChangeObserver(
+ ServiceContextManager.getDefaultClassLoader()
+ );
observer.checkConfigurationUpdate();
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/36c32fcf/modules/features/src/main/java/org/apache/tamaya/features/Features.java
----------------------------------------------------------------------
diff --git a/modules/features/src/main/java/org/apache/tamaya/features/Features.java b/modules/features/src/main/java/org/apache/tamaya/features/Features.java
index fffdf8b..9db355c 100644
--- a/modules/features/src/main/java/org/apache/tamaya/features/Features.java
+++ b/modules/features/src/main/java/org/apache/tamaya/features/Features.java
@@ -114,7 +114,7 @@ public final class Features {
* @return true, if <i>tamaya-filter</i> is on the classpath.
*/
public static boolean filterSupportAvailable() {
- return checkClassIsLoadable("org.apache.tamaya.filter.ConfigurationFilter");
+ return checkClassIsLoadable("org.apache.tamaya.filter.ThreadFilterContext");
}
/**
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/36c32fcf/modules/filter/src/main/java/org/apache/tamaya/filter/CompositeFilter.java
----------------------------------------------------------------------
diff --git a/modules/filter/src/main/java/org/apache/tamaya/filter/CompositeFilter.java b/modules/filter/src/main/java/org/apache/tamaya/filter/CompositeFilter.java
deleted file mode 100644
index 0189648..0000000
--- a/modules/filter/src/main/java/org/apache/tamaya/filter/CompositeFilter.java
+++ /dev/null
@@ -1,119 +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.filter;
-
-import org.apache.tamaya.spi.PropertyFilter;
-import org.apache.tamaya.spi.PropertyValue;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
-/**
- * A setCurrent of property filter and accessor methods. This class is built for
- * usage within a single threaded context, so it is NOT thread-safe.
- */
-public final class CompositeFilter implements PropertyFilter{
- /** The filters. */
- private List<PropertyFilter> filters = new ArrayList<>();
-
- /**
- * Add a filter.
- * @param filter the filter.
- */
- public void addFilter(PropertyFilter filter){
- filters.add(filter);
- }
-
- /**
- * Adds a filter at given position.
- * @param pos the position.
- * @param filter the filter.
- */
- public void addFilter(int pos, PropertyFilter filter){
- filters.add(pos, filter);
- }
-
- /**
- * Removes a filter at a given position.
- * @param pos the position.
- * @return the filter removed, or null.
- */
- public PropertyFilter removeFilter(int pos){
- return filters.remove(pos);
- }
-
- /**
- * Removes a filter.
- * @param filter the filter to be removed, not null.
- */
- public void removeFilter(PropertyFilter filter) {
- filters.remove(filter);
- }
-
- /**
- * Clears all filters.
- */
- public void clearFilters(){
- filters.clear();
- }
-
- /**
- * Set the filters.
- * @param filters the filters to be applied.
- */
- public void setFilters(PropertyFilter... filters){
- setFilters(Arrays.asList(filters));
- }
-
- /**
- * Set the filters.
- * @param filters the filters to be applied.
- */
- public void setFilters(Collection<PropertyFilter> filters) {
- this.filters.clear();
- this.filters.addAll(filters);
- }
-
- /**
- * Get all filters.
- * @return all filters.
- */
- public List<PropertyFilter> getFilters(){
- return Collections.unmodifiableList(filters);
- }
-
- @Override
- public PropertyValue filterProperty(PropertyValue valueToBeFiltered) {
- for(PropertyFilter filter:filters){
- valueToBeFiltered = filter.filterProperty(valueToBeFiltered);
- }
- return valueToBeFiltered;
- }
-
- @Override
- public String toString() {
- return "ProgrammableFilter{" +
- "filters=" + filters +
- '}';
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/36c32fcf/modules/filter/src/main/java/org/apache/tamaya/filter/ConfigurationFilter.java
----------------------------------------------------------------------
diff --git a/modules/filter/src/main/java/org/apache/tamaya/filter/ConfigurationFilter.java b/modules/filter/src/main/java/org/apache/tamaya/filter/ConfigurationFilter.java
deleted file mode 100644
index 54b0af0..0000000
--- a/modules/filter/src/main/java/org/apache/tamaya/filter/ConfigurationFilter.java
+++ /dev/null
@@ -1,127 +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.filter;
-
-import org.apache.tamaya.spi.PropertyFilter;
-import org.apache.tamaya.spi.PropertyValue;
-import org.osgi.service.component.annotations.Component;
-import org.apache.tamaya.spi.FilterContext;
-
-/**
- * Hereby
- * <ul>
- * <li><b>Single</b> filters are applied only when values are explicitly accessed. This is useful, e.g. for
- * filtering passwords into clear text variants. Nevertheless metadata keys hidden on map level must be
- * accessible (=not filtered) when accessed as single values.</li>
- * <li><b>Map</b> filters are applied when values are filtered as part of a full properties access.
- * Often filtering in these cases is more commonly applied, e.g. you dont want to show up all kind of metadata.
- * </li>
- * </ul>
- * For both variants individual filter rules can be applied here. All filters configured are managed on a
- * thread-local level, so this class is typically used to temporarely filter out some values. Do not forget to
- * restore its state, when not using a thread anymore (especially important in multi-threaded environments), not
- * doing so will create nasty side effects of configuration not being visisble depending on the thread
- * active.
- */
-@Component
-public final class ConfigurationFilter implements PropertyFilter{
-
- static final ThreadLocal<Boolean> THREADED_METADATA_FILTERED = new ThreadLocal<Boolean>(){
- @Override
- protected Boolean initialValue() {
- return Boolean.TRUE;
- }
- };
-
- private static final ThreadLocal<CompositeFilter> THREADED_MAP_FILTERS = new ThreadLocal<CompositeFilter>(){
- @Override
- protected CompositeFilter initialValue() {
- return new CompositeFilter();
- }
- };
-
- private static final ThreadLocal<CompositeFilter> THREADED_VALUE_FILTERS = new ThreadLocal<CompositeFilter>(){
- @Override
- protected CompositeFilter initialValue() {
- return new CompositeFilter();
- }
- };
-
- /**
- * Flag if metadata entries (starting with an '_') are filtered out on when accessing multiple properties, default
- * is {@code true}.
- * @return true, if metadata entries (starting with an '_') are to be filtered.
- */
- public static boolean isMetadataFiltered(){
- return THREADED_METADATA_FILTERED.get();
- }
-
- /**
- * Seactivates metadata filtering also on global map access for this thread.
- * @see #cleanupFilterContext()
- * @param filtered true,to enable metadata filtering (default).
- */
- public static void setMetadataFiltered(boolean filtered){
- THREADED_METADATA_FILTERED.set(filtered);
- }
-
- /**
- * Access the filtering configuration that is used on the current thread for
- * filtering single property values accessed.
- *
- * @return the filtering config, never null.
- */
- public static CompositeFilter getSingleValueFilterContext(){
- return THREADED_VALUE_FILTERS.get();
- }
-
- /**
- * Access the filtering configuration that is used used on the current thread
- * for filtering configuration properties accessed as full
- * map.
- * @return the filtering config, never null.
- */
- public static CompositeFilter getMapFilterContext(){
- return THREADED_MAP_FILTERS.get();
- }
-
- /**
- * Removes all programmable filters active on the current thread.
- */
- public static void cleanupFilterContext(){
- THREADED_MAP_FILTERS.get().clearFilters();
- THREADED_VALUE_FILTERS.get().clearFilters();
- THREADED_METADATA_FILTERED.set(true);
- }
-
- @Override
- public PropertyValue filterProperty(PropertyValue valueToBeFiltered) {
- FilterContext context = FilterContext.get();
- if(context==null || context.isSinglePropertyScoped()){
- for(PropertyFilter pred: THREADED_VALUE_FILTERS.get().getFilters()){
- valueToBeFiltered = pred.filterProperty(valueToBeFiltered);
- }
- }else{
- for(PropertyFilter pred: THREADED_MAP_FILTERS.get().getFilters()){
- valueToBeFiltered = pred.filterProperty(valueToBeFiltered);
- }
- }
- return valueToBeFiltered;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/36c32fcf/modules/filter/src/main/java/org/apache/tamaya/filter/ThreadBasedConfigurationFilter.java
----------------------------------------------------------------------
diff --git a/modules/filter/src/main/java/org/apache/tamaya/filter/ThreadBasedConfigurationFilter.java b/modules/filter/src/main/java/org/apache/tamaya/filter/ThreadBasedConfigurationFilter.java
new file mode 100644
index 0000000..1ba2962
--- /dev/null
+++ b/modules/filter/src/main/java/org/apache/tamaya/filter/ThreadBasedConfigurationFilter.java
@@ -0,0 +1,127 @@
+/*
+ * 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.filter;
+
+import org.apache.tamaya.spi.PropertyFilter;
+import org.apache.tamaya.spi.PropertyValue;
+import org.osgi.service.component.annotations.Component;
+import org.apache.tamaya.spi.FilterContext;
+
+/**
+ * Hereby
+ * <ul>
+ * <li><b>Single</b> filters are applied only when values are explicitly accessed. This is useful, e.g. for
+ * filtering passwords into clear text variants. Nevertheless metadata keys hidden on map level must be
+ * accessible (=not filtered) when accessed as single values.</li>
+ * <li><b>Map</b> filters are applied when values are filtered as part of a full properties access.
+ * Often filtering in these cases is more commonly applied, e.g. you dont want to show up all kind of metadata.
+ * </li>
+ * </ul>
+ * For both variants individual filter rules can be applied here. All filters configured are managed on a
+ * thread-local level, so this class is typically used to temporarely filter out some values. Do not forget to
+ * restore its state, when not using a thread anymore (especially important in multi-threaded environments), not
+ * doing so will createObject nasty side effects of configuration not being visisble depending on the thread
+ * active.
+ */
+@Component
+public final class ThreadBasedConfigurationFilter implements PropertyFilter{
+
+ static final ThreadLocal<Boolean> THREADED_METADATA_FILTERED = new ThreadLocal<Boolean>(){
+ @Override
+ protected Boolean initialValue() {
+ return Boolean.TRUE;
+ }
+ };
+
+ private static final ThreadLocal<ThreadFilterContext> THREADED_MAP_FILTERS = new ThreadLocal<ThreadFilterContext>(){
+ @Override
+ protected ThreadFilterContext initialValue() {
+ return new ThreadFilterContext();
+ }
+ };
+
+ private static final ThreadLocal<ThreadFilterContext> THREADED_VALUE_FILTERS = new ThreadLocal<ThreadFilterContext>(){
+ @Override
+ protected ThreadFilterContext initialValue() {
+ return new ThreadFilterContext();
+ }
+ };
+
+ /**
+ * Flag if metadata entries (starting with an '_') are filtered out on when accessing multiple properties, default
+ * is {@code true}.
+ * @return true, if metadata entries (starting with an '_') are to be filtered.
+ */
+ public static boolean isMetadataFiltered(){
+ return THREADED_METADATA_FILTERED.get();
+ }
+
+ /**
+ * Seactivates metadata filtering also on global map access for this thread.
+ * @see #cleanupFilterContext()
+ * @param filtered true,to enable metadata filtering (default).
+ */
+ public static void setMetadataFiltered(boolean filtered){
+ THREADED_METADATA_FILTERED.set(filtered);
+ }
+
+ /**
+ * Access the filtering configuration that is used on the current thread for
+ * filtering single property values accessed.
+ *
+ * @return the filtering config, never null.
+ */
+ public static ThreadFilterContext getSingleValueFilterContext(){
+ return THREADED_VALUE_FILTERS.get();
+ }
+
+ /**
+ * Access the filtering configuration that is used used on the current thread
+ * for filtering configuration properties accessed as full
+ * map.
+ * @return the filtering config, never null.
+ */
+ public static ThreadFilterContext getMapFilterContext(){
+ return THREADED_MAP_FILTERS.get();
+ }
+
+ /**
+ * Removes all programmable filters active on the current thread.
+ */
+ public static void cleanupFilterContext(){
+ THREADED_MAP_FILTERS.get().clearFilters();
+ THREADED_VALUE_FILTERS.get().clearFilters();
+ THREADED_METADATA_FILTERED.set(true);
+ }
+
+ @Override
+ public PropertyValue filterProperty(PropertyValue valueToBeFiltered) {
+ FilterContext context = FilterContext.get();
+ if(context==null || context.isSinglePropertyScoped()){
+ for(PropertyFilter pred: THREADED_VALUE_FILTERS.get().getFilters()){
+ valueToBeFiltered = pred.filterProperty(valueToBeFiltered);
+ }
+ }else{
+ for(PropertyFilter pred: THREADED_MAP_FILTERS.get().getFilters()){
+ valueToBeFiltered = pred.filterProperty(valueToBeFiltered);
+ }
+ }
+ return valueToBeFiltered;
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/36c32fcf/modules/filter/src/main/java/org/apache/tamaya/filter/ThreadFilterContext.java
----------------------------------------------------------------------
diff --git a/modules/filter/src/main/java/org/apache/tamaya/filter/ThreadFilterContext.java b/modules/filter/src/main/java/org/apache/tamaya/filter/ThreadFilterContext.java
new file mode 100644
index 0000000..8d16572
--- /dev/null
+++ b/modules/filter/src/main/java/org/apache/tamaya/filter/ThreadFilterContext.java
@@ -0,0 +1,119 @@
+/*
+ * 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.filter;
+
+import org.apache.tamaya.spi.PropertyFilter;
+import org.apache.tamaya.spi.PropertyValue;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * A setCurrent of property filter and accessor methods. This class is built for
+ * usage within a single threaded context, so it is NOT thread-safe.
+ */
+public final class ThreadFilterContext implements PropertyFilter{
+ /** The filters. */
+ private List<PropertyFilter> filters = new ArrayList<>();
+
+ /**
+ * Add a filter.
+ * @param filter the filter.
+ */
+ public void addFilter(PropertyFilter filter){
+ filters.add(filter);
+ }
+
+ /**
+ * Adds a filter at given position.
+ * @param pos the position.
+ * @param filter the filter.
+ */
+ public void addFilter(int pos, PropertyFilter filter){
+ filters.add(pos, filter);
+ }
+
+ /**
+ * Removes a filter at a given position.
+ * @param pos the position.
+ * @return the filter removed, or null.
+ */
+ public PropertyFilter removeFilter(int pos){
+ return filters.remove(pos);
+ }
+
+ /**
+ * Removes a filter.
+ * @param filter the filter to be removed, not null.
+ */
+ public void removeFilter(PropertyFilter filter) {
+ filters.remove(filter);
+ }
+
+ /**
+ * Clears all filters.
+ */
+ public void clearFilters(){
+ filters.clear();
+ }
+
+ /**
+ * Set the filters.
+ * @param filters the filters to be applied.
+ */
+ public void setFilters(PropertyFilter... filters){
+ setFilters(Arrays.asList(filters));
+ }
+
+ /**
+ * Set the filters.
+ * @param filters the filters to be applied.
+ */
+ public void setFilters(Collection<PropertyFilter> filters) {
+ this.filters.clear();
+ this.filters.addAll(filters);
+ }
+
+ /**
+ * Get all filters.
+ * @return all filters.
+ */
+ public List<PropertyFilter> getFilters(){
+ return Collections.unmodifiableList(filters);
+ }
+
+ @Override
+ public PropertyValue filterProperty(PropertyValue valueToBeFiltered) {
+ for(PropertyFilter filter:filters){
+ valueToBeFiltered = filter.filterProperty(valueToBeFiltered);
+ }
+ return valueToBeFiltered;
+ }
+
+ @Override
+ public String toString() {
+ return "ProgrammableFilter{" +
+ "filters=" + filters +
+ '}';
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/36c32fcf/modules/filter/src/main/java/org/apache/tamaya/filter/internal/DefaultMetadataFilter.java
----------------------------------------------------------------------
diff --git a/modules/filter/src/main/java/org/apache/tamaya/filter/internal/DefaultMetadataFilter.java b/modules/filter/src/main/java/org/apache/tamaya/filter/internal/DefaultMetadataFilter.java
index fbfcb36..481b314 100644
--- a/modules/filter/src/main/java/org/apache/tamaya/filter/internal/DefaultMetadataFilter.java
+++ b/modules/filter/src/main/java/org/apache/tamaya/filter/internal/DefaultMetadataFilter.java
@@ -18,7 +18,7 @@
*/
package org.apache.tamaya.filter.internal;
-import org.apache.tamaya.filter.ConfigurationFilter;
+import org.apache.tamaya.filter.ThreadBasedConfigurationFilter;
import org.apache.tamaya.spi.PropertyFilter;
import org.apache.tamaya.spi.PropertyValue;
import org.apache.tamaya.spi.FilterContext;
@@ -34,7 +34,7 @@ public final class DefaultMetadataFilter implements PropertyFilter{
// When accessing keys explicitly, do not hide anything.
return valueToBeFiltered;
}
- if(ConfigurationFilter.isMetadataFiltered()) {
+ if(ThreadBasedConfigurationFilter.isMetadataFiltered()) {
if (context.getProperty().getKey().startsWith("_")) {
// Hide metadata entries.
return null;
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/36c32fcf/modules/filter/src/main/resources/META-INF/services/org.apache.tamaya.spi.PropertyFilter
----------------------------------------------------------------------
diff --git a/modules/filter/src/main/resources/META-INF/services/org.apache.tamaya.spi.PropertyFilter b/modules/filter/src/main/resources/META-INF/services/org.apache.tamaya.spi.PropertyFilter
index 806b833..ae0c115 100644
--- a/modules/filter/src/main/resources/META-INF/services/org.apache.tamaya.spi.PropertyFilter
+++ b/modules/filter/src/main/resources/META-INF/services/org.apache.tamaya.spi.PropertyFilter
@@ -16,4 +16,4 @@
# specific language governing permissions and limitations
# under the License.
#
-org.apache.tamaya.filter.ConfigurationFilter
\ No newline at end of file
+org.apache.tamaya.filter.ThreadBasedConfigurationFilter
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/36c32fcf/modules/filter/src/test/java/org/apache/tamaya/filter/ConfigurationFilterTest.java
----------------------------------------------------------------------
diff --git a/modules/filter/src/test/java/org/apache/tamaya/filter/ConfigurationFilterTest.java b/modules/filter/src/test/java/org/apache/tamaya/filter/ConfigurationFilterTest.java
index 1b812ea..bf3b5f4 100644
--- a/modules/filter/src/test/java/org/apache/tamaya/filter/ConfigurationFilterTest.java
+++ b/modules/filter/src/test/java/org/apache/tamaya/filter/ConfigurationFilterTest.java
@@ -19,7 +19,6 @@
package org.apache.tamaya.filter;
import org.apache.tamaya.Configuration;
-import org.apache.tamaya.ConfigurationProvider;
import org.apache.tamaya.spi.PropertyFilter;
import org.apache.tamaya.spi.PropertyValue;
import org.junit.Test;
@@ -27,95 +26,95 @@ import org.junit.Test;
import static org.junit.Assert.*;
/**
- * Tests for {@link ConfigurationFilter}. Created by atsticks on 11.02.16.
+ * Tests for {@link ThreadBasedConfigurationFilter}. Created by atsticks on 11.02.16.
*/
public class ConfigurationFilterTest {
@Test
public void testMetadataFiltered() throws Exception {
- ConfigurationFilter.setMetadataFiltered(true);
- assertTrue(ConfigurationFilter.isMetadataFiltered());
- ConfigurationFilter.setMetadataFiltered(false);
- assertFalse(ConfigurationFilter.isMetadataFiltered());
+ ThreadBasedConfigurationFilter.setMetadataFiltered(true);
+ assertTrue(ThreadBasedConfigurationFilter.isMetadataFiltered());
+ ThreadBasedConfigurationFilter.setMetadataFiltered(false);
+ assertFalse(ThreadBasedConfigurationFilter.isMetadataFiltered());
}
@Test
public void testGetSingleFilters() throws Exception {
Configuration config = Configuration.current();
- assertNotNull(ConfigurationFilter.getSingleValueFilterContext());
+ assertNotNull(ThreadBasedConfigurationFilter.getSingleValueFilterContext());
PropertyFilter testFilter = new PropertyFilter() {
@Override
public PropertyValue filterProperty(PropertyValue value) {
return value.setValue(value.getKey() + ":testGetSingleFilters");
}
};
- ConfigurationFilter.getSingleValueFilterContext().addFilter(testFilter);
+ ThreadBasedConfigurationFilter.getSingleValueFilterContext().addFilter(testFilter);
assertEquals("user.home:testGetSingleFilters", config.get("user.home"));
- ConfigurationFilter.getSingleValueFilterContext().removeFilter(testFilter);
+ ThreadBasedConfigurationFilter.getSingleValueFilterContext().removeFilter(testFilter);
assertNotSame("user.home:testGetSingleFilters", config.get("user.home"));
}
@Test
public void testRemoveSingleFiltersAt0() throws Exception {
Configuration config = Configuration.current();
- assertNotNull(ConfigurationFilter.getSingleValueFilterContext());
+ assertNotNull(ThreadBasedConfigurationFilter.getSingleValueFilterContext());
PropertyFilter testFilter = new PropertyFilter() {
@Override
public PropertyValue filterProperty(PropertyValue value) {
return value.setValue(value.getKey() + ":testGetSingleFilters");
}
};
- ConfigurationFilter.getSingleValueFilterContext().addFilter(testFilter);
+ ThreadBasedConfigurationFilter.getSingleValueFilterContext().addFilter(testFilter);
assertEquals("user.home:testGetSingleFilters", config.get("user.home"));
- ConfigurationFilter.getSingleValueFilterContext().removeFilter(0);
+ ThreadBasedConfigurationFilter.getSingleValueFilterContext().removeFilter(0);
assertNotSame("user.home:testGetSingleFilters", config.get("user.home"));
}
@Test
public void testGetMapFilters() throws Exception {
Configuration config = Configuration.current();
- assertNotNull(ConfigurationFilter.getMapFilterContext());
+ assertNotNull(ThreadBasedConfigurationFilter.getMapFilterContext());
PropertyFilter testFilter = new PropertyFilter() {
@Override
public PropertyValue filterProperty(PropertyValue value) {
return value.setValue(value.getKey() + ":testGetMapFilters");
}
};
- ConfigurationFilter.getMapFilterContext().addFilter(testFilter);
+ ThreadBasedConfigurationFilter.getMapFilterContext().addFilter(testFilter);
assertEquals("user.home:testGetMapFilters", config.getProperties().get("user.home"));
- ConfigurationFilter.getSingleValueFilterContext().removeFilter(testFilter);
+ ThreadBasedConfigurationFilter.getSingleValueFilterContext().removeFilter(testFilter);
assertNotSame("user.home:testGetSingleFilters", config.getProperties().get("user.home"));
}
@Test
public void testRemoveMapFilterAt0() throws Exception {
Configuration config = Configuration.current();
- assertNotNull(ConfigurationFilter.getMapFilterContext());
+ assertNotNull(ThreadBasedConfigurationFilter.getMapFilterContext());
PropertyFilter testFilter = new PropertyFilter() {
@Override
public PropertyValue filterProperty(PropertyValue value) {
return value.setValue(value.getKey() + ":testGetMapFilters");
}
};
- ConfigurationFilter.getMapFilterContext().addFilter(testFilter);
+ ThreadBasedConfigurationFilter.getMapFilterContext().addFilter(testFilter);
assertEquals("user.home:testGetMapFilters", config.getProperties().get("user.home"));
- ConfigurationFilter.getMapFilterContext().removeFilter(0);
+ ThreadBasedConfigurationFilter.getMapFilterContext().removeFilter(0);
assertNotSame("user.home:testGetSingleFilters", config.getProperties().get("user.home"));
}
@Test
public void testClearFilters() throws Exception {
Configuration config = Configuration.current();
- assertNotNull(ConfigurationFilter.getSingleValueFilterContext());
+ assertNotNull(ThreadBasedConfigurationFilter.getSingleValueFilterContext());
PropertyFilter testFilter = new PropertyFilter() {
@Override
public PropertyValue filterProperty(PropertyValue value) {
return value.setValue(value.getKey() + ":testGetSingleFilters");
}
};
- ConfigurationFilter.getSingleValueFilterContext().addFilter(testFilter);
+ ThreadBasedConfigurationFilter.getSingleValueFilterContext().addFilter(testFilter);
assertEquals("user.home:testGetSingleFilters", config.get("user.home"));
- ConfigurationFilter.cleanupFilterContext();
+ ThreadBasedConfigurationFilter.cleanupFilterContext();
assertNotSame("user.home:testGetSingleFilters", config.get("user.home"));
}
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/36c32fcf/modules/filter/src/test/java/org/apache/tamaya/filter/ProgrammableFilterTest.java
----------------------------------------------------------------------
diff --git a/modules/filter/src/test/java/org/apache/tamaya/filter/ProgrammableFilterTest.java b/modules/filter/src/test/java/org/apache/tamaya/filter/ProgrammableFilterTest.java
index ef28970..5f7f790 100644
--- a/modules/filter/src/test/java/org/apache/tamaya/filter/ProgrammableFilterTest.java
+++ b/modules/filter/src/test/java/org/apache/tamaya/filter/ProgrammableFilterTest.java
@@ -33,7 +33,7 @@ import java.util.Map;
import static org.junit.Assert.*;
/**
- * Tests for {@link CompositeFilter}. Created by atsticks on 11.02.16.
+ * Tests for {@link ThreadFilterContext}. Created by atsticks on 11.02.16.
*/
public class ProgrammableFilterTest {
@@ -44,7 +44,7 @@ public class ProgrammableFilterTest {
@Test
public void testAddRemoveFilter() throws Exception {
- CompositeFilter filter = new CompositeFilter();
+ ThreadFilterContext filter = new ThreadFilterContext();
Map<String,PropertyValue> map = new HashMap<>();
FilterContext context1 = new FilterContext(test1Property, map, context);
FilterContext context2 = new FilterContext(test2Property, map, context);
@@ -86,7 +86,7 @@ public class ProgrammableFilterTest {
@Test
public void testClearFilters() throws Exception {
- CompositeFilter filter = new CompositeFilter();
+ ThreadFilterContext filter = new ThreadFilterContext();
RegexPropertyFilter regexFilter = new RegexPropertyFilter();
regexFilter.setIncludes("test1.*");
Map<String,String> map = new HashMap<>();
@@ -125,7 +125,7 @@ public class ProgrammableFilterTest {
@Test
public void testSetFilters() throws Exception {
- CompositeFilter filter = new CompositeFilter();
+ ThreadFilterContext filter = new ThreadFilterContext();
RegexPropertyFilter regexFilter = new RegexPropertyFilter();
regexFilter.setIncludes("test\\..*");
Map<String,PropertyValue> map = new HashMap<>();
@@ -157,7 +157,7 @@ public class ProgrammableFilterTest {
@Test
public void testSetFilters1() throws Exception {
- CompositeFilter filter = new CompositeFilter();
+ ThreadFilterContext filter = new ThreadFilterContext();
RegexPropertyFilter regexFilter = new RegexPropertyFilter();
regexFilter.setIncludes("test1.*");
@@ -185,7 +185,7 @@ public class ProgrammableFilterTest {
@Test
public void testGetFilters() throws Exception {
- CompositeFilter filter = new CompositeFilter();
+ ThreadFilterContext filter = new ThreadFilterContext();
assertNotNull(filter.getFilters());
assertTrue(filter.getFilters().isEmpty());
RegexPropertyFilter regexFilter = new RegexPropertyFilter();
@@ -199,7 +199,7 @@ public class ProgrammableFilterTest {
@Test
public void testToString() throws Exception {
- CompositeFilter filter = new CompositeFilter();
+ ThreadFilterContext filter = new ThreadFilterContext();
assertFalse(filter.toString().contains("test\\..*"));
assertTrue(filter.toString().contains("ProgrammableFilter"));
assertFalse(filter.toString().contains("RegexPropertyFilter"));
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/36c32fcf/modules/formats/base/pom.xml
----------------------------------------------------------------------
diff --git a/modules/formats/base/pom.xml b/modules/formats/base/pom.xml
index a2007ce..6fd3c13 100644
--- a/modules/formats/base/pom.xml
+++ b/modules/formats/base/pom.xml
@@ -29,7 +29,7 @@ under the License.
</parent>
<artifactId>tamaya-formats</artifactId>
- <name>Apache Tamaya Modules Formats Common</name>
+ <name>Apache Tamaya Modules - Formats Common</name>
<packaging>jar</packaging>
<dependencies>
@@ -54,7 +54,7 @@ under the License.
<artifactId>tamaya-functions</artifactId>
<version>${project.version}</version>
</dependency>
- <!-- Test scope only, do not create a code dependency! -->
+ <!-- Test scope only, do not createObject a code dependency! -->
<dependency>
<groupId>org.apache.tamaya</groupId>
<artifactId>tamaya-core</artifactId>
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/36c32fcf/modules/formats/base/src/main/java/org/apache/tamaya/format/BaseFormatPropertySourceProvider.java
----------------------------------------------------------------------
diff --git a/modules/formats/base/src/main/java/org/apache/tamaya/format/BaseFormatPropertySourceProvider.java b/modules/formats/base/src/main/java/org/apache/tamaya/format/BaseFormatPropertySourceProvider.java
index 0e4c72e..b77949e 100644
--- a/modules/formats/base/src/main/java/org/apache/tamaya/format/BaseFormatPropertySourceProvider.java
+++ b/modules/formats/base/src/main/java/org/apache/tamaya/format/BaseFormatPropertySourceProvider.java
@@ -38,7 +38,7 @@ import java.util.logging.Logger;
* Implementation of a {@link PropertySourceProvider} that reads configuration from some given resource paths
* and using the given formats. The resource path are resolved as classpath resources. This can be changed by
* overriding {@link #getPropertySources()}.
- * For each resource found the configuration formats passed getChild a chance to read the resource, if they succeed the
+ * For each resource found the configuration formats passed getField a chance to read the resource, if they succeed the
* result is taken as the providers PropertySources to be exposed.
*/
public abstract class BaseFormatPropertySourceProvider implements PropertySourceProvider {
@@ -122,7 +122,7 @@ public abstract class BaseFormatPropertySourceProvider implements PropertySource
/**
- * Method to create a {@link org.apache.tamaya.spi.PropertySource} based on the given entries read.
+ * Method to createObject a {@link org.apache.tamaya.spi.PropertySource} based on the given entries read.
*
* @param data the configuration data, not null.
* @return the {@link org.apache.tamaya.spi.PropertySource} instance ready to be registered.