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