You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tamaya.apache.org by an...@apache.org on 2015/04/28 08:49:01 UTC
incubator-tamaya git commit: Moved PropertyConverter into SPI.
Repository: incubator-tamaya
Updated Branches:
refs/heads/master eb522bef8 -> 6162768e0
Moved PropertyConverter into SPI.
Project: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/commit/6162768e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/tree/6162768e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/diff/6162768e
Branch: refs/heads/master
Commit: 6162768e05cc8b6f06bb1cdff8e26ab7f7e0fd59
Parents: eb522be
Author: anatole <an...@apache.org>
Authored: Tue Apr 28 08:48:29 2015 +0200
Committer: anatole <an...@apache.org>
Committed: Tue Apr 28 08:48:52 2015 +0200
----------------------------------------------------------------------
.../src/data/test.properties | 4 +-
.../examples/fileobserver/TestConfigView.java | 40 ++++++++++++++++++++
.../fileobserver/TestObservingProvider.java | 5 +--
jqassistant/default.xml | 2 +-
.../services/org.apache.tamaya.events.Listener | 1 +
5 files changed, 46 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/6162768e/examples/6-fileobserver-example/src/data/test.properties
----------------------------------------------------------------------
diff --git a/examples/6-fileobserver-example/src/data/test.properties b/examples/6-fileobserver-example/src/data/test.properties
index 04fc751..af06631 100644
--- a/examples/6-fileobserver-example/src/data/test.properties
+++ b/examples/6-fileobserver-example/src/data/test.properties
@@ -16,6 +16,6 @@
# specific language governing permissions and limitations
# under the License.
#
-testValue1=value1
-test=test
+testValue1=value
+test=test2
a=b
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/6162768e/examples/6-fileobserver-example/src/main/java/org/apache/tamaya/examples/fileobserver/TestConfigView.java
----------------------------------------------------------------------
diff --git a/examples/6-fileobserver-example/src/main/java/org/apache/tamaya/examples/fileobserver/TestConfigView.java b/examples/6-fileobserver-example/src/main/java/org/apache/tamaya/examples/fileobserver/TestConfigView.java
index a888464..386ca8d 100644
--- a/examples/6-fileobserver-example/src/main/java/org/apache/tamaya/examples/fileobserver/TestConfigView.java
+++ b/examples/6-fileobserver-example/src/main/java/org/apache/tamaya/examples/fileobserver/TestConfigView.java
@@ -18,10 +18,17 @@
*/
package org.apache.tamaya.examples.fileobserver;
+import org.apache.tamaya.ConfigException;
import org.apache.tamaya.ConfigOperator;
import org.apache.tamaya.Configuration;
+import org.apache.tamaya.ConfigurationProvider;
+import org.apache.tamaya.TypeLiteral;
+import org.apache.tamaya.spi.PropertyConverter;
+import java.util.List;
import java.util.Map;
+import java.util.logging.Level;
+import java.util.logging.Logger;
import java.util.stream.Collectors;
/**
@@ -45,6 +52,39 @@ public class TestConfigView implements ConfigOperator{
return config.getProperties().entrySet().stream().filter(e -> e.getKey().startsWith("test")).collect(
Collectors.toMap(en -> en.getKey(), en -> en.getValue()));
}
+ /**
+ * Accesses the current String value 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.
+ */
+ @Override
+ public <T> T get(String key, TypeLiteral<T> type) {
+ String value = get(key);
+ if (value != null) {
+ List<PropertyConverter<T>> converters = ConfigurationProvider.getConfigurationContext()
+ .getPropertyConverters(type);
+ for (PropertyConverter<T> converter : converters) {
+ try {
+ T t = converter.convert(value);
+ if (t != null) {
+ return t;
+ }
+ } catch (Exception e) {
+ Logger.getLogger(getClass().getName())
+ .log(Level.FINEST, "PropertyConverter: " + converter + " failed to convert value: "
+ + value, e);
+ }
+ }
+ throw new ConfigException("Unparseable config value for type: " + type.getRawType().getName() + ": " + key);
+ }
+ return null;
+ }
};
}
}
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/6162768e/examples/6-fileobserver-example/src/main/java/org/apache/tamaya/examples/fileobserver/TestObservingProvider.java
----------------------------------------------------------------------
diff --git a/examples/6-fileobserver-example/src/main/java/org/apache/tamaya/examples/fileobserver/TestObservingProvider.java b/examples/6-fileobserver-example/src/main/java/org/apache/tamaya/examples/fileobserver/TestObservingProvider.java
index 28e8a8f..b1f5dcf 100644
--- a/examples/6-fileobserver-example/src/main/java/org/apache/tamaya/examples/fileobserver/TestObservingProvider.java
+++ b/examples/6-fileobserver-example/src/main/java/org/apache/tamaya/examples/fileobserver/TestObservingProvider.java
@@ -29,8 +29,7 @@ import java.nio.file.Paths;
public class TestObservingProvider extends ObservingPropertySourceProvider{
public TestObservingProvider(){
- super(Paths.get("C:\\Users\\Anatole\\IdeaProjects\\incubator-tamaya\\examples\\6-fileobserver-example\\src\\data"), new PropertiesFormat());
- System.out.println("C:\\Users\\Anatole\\IdeaProjects\\incubator-tamaya\\examples\\6-fileobserver-example\\src\\data");
-
+ super(Paths.get("C:\\Users\\Anatole\\IdeaProjects\\incubator-tamaya\\examples\\6-fileobserver-example\\src\\data"),
+ new PropertiesFormat());
}
}
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/6162768e/jqassistant/default.xml
----------------------------------------------------------------------
diff --git a/jqassistant/default.xml b/jqassistant/default.xml
index 83caeed..e2e0afa 100644
--- a/jqassistant/default.xml
+++ b/jqassistant/default.xml
@@ -26,7 +26,7 @@ under the License.
(t:Type)-[:IMPLEMENTS*]->(i:Type)
WHERE
- i.fqn='org.apache.tamaya.PropertyConverter'
+ i.fqn='org.apache.tamaya.spi.PropertyConverter'
AND NOT t:Anonymous:Inner
AND NOT t.name =~ '.*Converter'
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/6162768e/modules/events/src/main/resources/META-INF/services/org.apache.tamaya.events.Listener
----------------------------------------------------------------------
diff --git a/modules/events/src/main/resources/META-INF/services/org.apache.tamaya.events.Listener b/modules/events/src/main/resources/META-INF/services/org.apache.tamaya.events.Listener
new file mode 100644
index 0000000..834438e
--- /dev/null
+++ b/modules/events/src/main/resources/META-INF/services/org.apache.tamaya.events.Listener
@@ -0,0 +1 @@
+org.apache.tamaya.events.internal.DefaultConfigurationContextChangeListener
\ No newline at end of file