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 2017/08/08 22:23:35 UTC

[1/4] incubator-tamaya git commit: TAMAYA-274: Moved to Java 8, set version to 0.4-incubating-SNAPSHOT

Repository: incubator-tamaya
Updated Branches:
  refs/heads/java8 0402fd349 -> c4285641a


TAMAYA-274: Moved to Java 8, set version to 0.4-incubating-SNAPSHOT


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

Branch: refs/heads/java8
Commit: d659c1ae3d03893f989cea41274364243e9837de
Parents: 0402fd3
Author: anatole <an...@apache.org>
Authored: Tue Aug 8 21:44:51 2017 +0200
Committer: anatole <an...@apache.org>
Committed: Tue Aug 8 21:44:51 2017 +0200

----------------------------------------------------------------------
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/d659c1ae/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index c9cba10..337cb3b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -39,7 +39,7 @@
     <properties>
         <commons-io.version>2.5</commons-io.version>
         <findbugs.skip>false</findbugs.skip>
-        <jdkVersion>1.7</jdkVersion>
+        <jdkVersion>1.8</jdkVersion>
         <osgi.version>5.0.0</osgi.version>
         <osgi.compendium.version>${osgi.version}</osgi.compendium.version>
         <maven.compile.targetLevel>${jdkVersion}</maven.compile.targetLevel>


[4/4] incubator-tamaya git commit: TAMAYA-274: Moved to Java 8, added missing converters.

Posted by an...@apache.org.
TAMAYA-274: Moved to Java 8, added missing converters.


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

Branch: refs/heads/java8
Commit: c4285641af328fe7c3a0ee4522eca73c27f4fbdb
Parents: c32b45f
Author: anatole <an...@apache.org>
Authored: Wed Aug 9 00:22:59 2017 +0200
Committer: anatole <an...@apache.org>
Committed: Wed Aug 9 00:22:59 2017 +0200

----------------------------------------------------------------------
 .../internal/converters/BooleanConverter.java   |  4 +-
 .../internal/converters/InstantConverter.java   | 49 ++++++++++++++++
 .../internal/converters/OptionalConverter.java  | 61 ++++++++++++++++++++
 .../org.apache.tamaya.spi.PropertyConverter     |  2 +
 4 files changed, 115 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c4285641/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BooleanConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BooleanConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BooleanConverter.java
index d926b14..61c182b 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BooleanConverter.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BooleanConverter.java
@@ -34,11 +34,12 @@ public class BooleanConverter implements PropertyConverter<Boolean> {
 
     @Override
     public Boolean convert(String value, ConversionContext context) {
-        context.addSupportedFormats(getClass(), "yes (ignore case)", "y (ignore case)", "true (ignore case)", "t (ignore case)", "no (ignore case)", "n (ignore case)", "false (ignore case)", "f (ignore case)");
+        context.addSupportedFormats(getClass(), "yes (ignore case)", "y (ignore case)", "true (ignore case)", "t (ignore case)", "1", "no (ignore case)", "n (ignore case)", "false (ignore case)", "f (ignore case)", "0");
         String ignoreCaseValue = Objects.requireNonNull(value)
                                         .trim()
                                         .toLowerCase(Locale.ENGLISH);
         switch(ignoreCaseValue) {
+            case "1":
             case "yes":
             case "y":
             case "true":
@@ -48,6 +49,7 @@ public class BooleanConverter implements PropertyConverter<Boolean> {
             case "n":
             case "false":
             case "f":
+            case "0":
                 return Boolean.FALSE;
             default:
                 LOG.finest("Unknown boolean value encountered: " + value);

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c4285641/code/core/src/main/java/org/apache/tamaya/core/internal/converters/InstantConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/InstantConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/InstantConverter.java
new file mode 100644
index 0000000..c0f2bf0
--- /dev/null
+++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/InstantConverter.java
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tamaya.core.internal.converters;
+
+import org.apache.tamaya.spi.ConversionContext;
+import org.apache.tamaya.spi.PropertyConverter;
+
+import java.time.Instant;
+import java.util.logging.Logger;
+
+/**
+ * Converter, converting from String to Boolean.
+ */
+public class InstantConverter implements PropertyConverter<Instant> {
+
+    private final Logger LOG = Logger.getLogger(getClass().getName());
+
+    @Override
+    public Instant convert(String value, ConversionContext context) {
+        context.addSupportedFormats(getClass(), Instant.now().toString());
+        return Instant.parse(value);
+    }
+
+    @Override
+    public boolean equals(Object o){
+        return getClass().equals(o.getClass());
+    }
+
+    @Override
+    public int hashCode(){
+        return getClass().hashCode();
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c4285641/code/core/src/main/java/org/apache/tamaya/core/internal/converters/OptionalConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/OptionalConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/OptionalConverter.java
new file mode 100644
index 0000000..69595ac
--- /dev/null
+++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/OptionalConverter.java
@@ -0,0 +1,61 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tamaya.core.internal.converters;
+
+import org.apache.tamaya.TypeLiteral;
+import org.apache.tamaya.core.internal.PropertyConverterManager;
+import org.apache.tamaya.spi.ConversionContext;
+import org.apache.tamaya.spi.PropertyConverter;
+
+import java.util.Locale;
+import java.util.Objects;
+import java.util.Optional;
+import java.util.logging.Logger;
+
+/**
+ * Converter, converting from String to Boolean.
+ */
+public class OptionalConverter implements PropertyConverter<Optional> {
+
+    private final Logger LOG = Logger.getLogger(getClass().getName());
+
+    @Override
+    public Optional<?> convert(String value, ConversionContext context) {
+        TypeLiteral<Optional> target = (TypeLiteral<Optional>)context.getTargetType();
+        Object result = null;
+        for(PropertyConverter pv:context.getConfigurationContext().getPropertyConverters(
+                TypeLiteral.of(target.getType()))){
+            result = pv.convert(value, context);
+            if(result!=null){
+                return Optional.of(result);
+            }
+        }
+        return Optional.ofNullable(result);
+    }
+
+    @Override
+    public boolean equals(Object o){
+        return getClass().equals(o.getClass());
+    }
+
+    @Override
+    public int hashCode(){
+        return getClass().hashCode();
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c4285641/code/core/src/main/resources/META-INF/services/org.apache.tamaya.spi.PropertyConverter
----------------------------------------------------------------------
diff --git a/code/core/src/main/resources/META-INF/services/org.apache.tamaya.spi.PropertyConverter b/code/core/src/main/resources/META-INF/services/org.apache.tamaya.spi.PropertyConverter
index a53d80d..f934197 100644
--- a/code/core/src/main/resources/META-INF/services/org.apache.tamaya.spi.PropertyConverter
+++ b/code/core/src/main/resources/META-INF/services/org.apache.tamaya.spi.PropertyConverter
@@ -39,3 +39,5 @@ org.apache.tamaya.core.internal.converters.LocalDateTimeConverter
 org.apache.tamaya.core.internal.converters.LocalTimeConverter
 org.apache.tamaya.core.internal.converters.OffsetDateTimeConverter
 org.apache.tamaya.core.internal.converters.OffsetTimeConverter
+org.apache.tamaya.core.internal.converters.InstantConverter
+org.apache.tamaya.core.internal.converters.OptionalConverter


[3/4] incubator-tamaya git commit: TAMAYA-274: Simplified compiler settings, set version to 0.4-incubating-SNAPSHOT

Posted by an...@apache.org.
TAMAYA-274: Simplified compiler settings, set version to 0.4-incubating-SNAPSHOT


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

Branch: refs/heads/java8
Commit: c32b45f41e13ff15edaa87d3e87c954522b3de7b
Parents: fd6184b
Author: anatole <an...@apache.org>
Authored: Wed Aug 9 00:22:29 2017 +0200
Committer: anatole <an...@apache.org>
Committed: Wed Aug 9 00:22:29 2017 +0200

----------------------------------------------------------------------
 examples/11-distributed/pom.xml |  5 ++---
 pom.xml                         | 11 +++++------
 2 files changed, 7 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c32b45f4/examples/11-distributed/pom.xml
----------------------------------------------------------------------
diff --git a/examples/11-distributed/pom.xml b/examples/11-distributed/pom.xml
index 72e5ac1..0f0bfe9 100644
--- a/examples/11-distributed/pom.xml
+++ b/examples/11-distributed/pom.xml
@@ -31,9 +31,8 @@
     <packaging>jar</packaging>
 
     <properties>
-        <jdkVersion>1.8</jdkVersion>
-        <maven.compile.targetLevel>${jdkVersion}</maven.compile.targetLevel>
-        <maven.compile.sourceLevel>${jdkVersion}</maven.compile.sourceLevel>
+        <maven.compile.targetLevel>1.8</maven.compile.targetLevel>
+        <maven.compile.sourceLevel>1.8</maven.compile.sourceLevel>
         <maven.compile.optimize>false</maven.compile.optimize>
         <maven.compile.deprecation>true</maven.compile.deprecation>
         <tamaya.version>0.3-incubating-SNAPSHOT</tamaya.version>

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c32b45f4/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 337cb3b..8f79347 100644
--- a/pom.xml
+++ b/pom.xml
@@ -39,11 +39,10 @@
     <properties>
         <commons-io.version>2.5</commons-io.version>
         <findbugs.skip>false</findbugs.skip>
-        <jdkVersion>1.8</jdkVersion>
         <osgi.version>5.0.0</osgi.version>
         <osgi.compendium.version>${osgi.version}</osgi.compendium.version>
-        <maven.compile.targetLevel>${jdkVersion}</maven.compile.targetLevel>
-        <maven.compile.sourceLevel>${jdkVersion}</maven.compile.sourceLevel>
+        <maven.compile.targetLevel>1.8</maven.compile.targetLevel>
+        <maven.compile.sourceLevel>1.8</maven.compile.sourceLevel>
         <maven.compile.optimize>false</maven.compile.optimize>
         <maven.compile.deprecation>true</maven.compile.deprecation>
         <maven.javadoc.skip>false</maven.javadoc.skip>
@@ -417,9 +416,9 @@
                     <version>3.6.0</version>
                     <configuration>
                         <debug>true</debug>
-                        <optimize>${maven.compile.optimize}</optimize>
                         <source>${maven.compile.sourceLevel}</source>
                         <target>${maven.compile.targetLevel}</target>
+                        <optimize>${maven.compile.optimize}</optimize>
                         <encoding>${project.build.sourceEncoding}</encoding>
                         <showDeprecation>${maven.compile.deprecation}</showDeprecation>
                     </configuration>
@@ -716,8 +715,8 @@
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-compiler-plugin</artifactId>
                 <configuration>
-                    <source>1.7</source>
-                    <target>1.7</target>
+                    <source>${maven.compile.sourceLevel}</source>
+                    <target>${maven.compile.targetLevel}</target>
                 </configuration>
             </plugin>
             <plugin>


[2/4] incubator-tamaya git commit: TAMAYA-274: Moved to Java 8, added @FunctionalInterface annotations and java.time converters.

Posted by an...@apache.org.
TAMAYA-274: Moved to Java 8, added @FunctionalInterface annotations and java.time converters.


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

Branch: refs/heads/java8
Commit: fd6184b8f7bb665596b04033b7635432a247f22b
Parents: d659c1a
Author: anatole <an...@apache.org>
Authored: Tue Aug 8 21:45:49 2017 +0200
Committer: anatole <an...@apache.org>
Committed: Tue Aug 8 21:45:49 2017 +0200

----------------------------------------------------------------------
 .../java/org/apache/tamaya/ConfigOperator.java  |  1 +
 .../java/org/apache/tamaya/ConfigQuery.java     |  1 +
 .../apache/tamaya/spi/PropertyConverter.java    |  3 ++
 .../org/apache/tamaya/spi/PropertyFilter.java   |  1 +
 .../tamaya/spi/PropertySourceProvider.java      |  1 +
 .../org/apache/tamaya/spi/PropertyValue.java    |  3 +-
 .../org/apache/tamaya/spi/ServiceContext.java   |  3 +-
 .../DefaultConfigurationContextBuilder.java     |  1 +
 .../core/internal/PropertySourceComparator.java |  2 +-
 .../internal/converters/DurationConverter.java  | 51 ++++++++++++++++++++
 .../internal/converters/LocalDateConverter.java | 49 +++++++++++++++++++
 .../converters/LocalDateTimeConverter.java      | 49 +++++++++++++++++++
 .../internal/converters/LocalTimeConverter.java | 49 +++++++++++++++++++
 .../converters/OffsetDateTimeConverter.java     | 50 +++++++++++++++++++
 .../converters/OffsetTimeConverter.java         | 50 +++++++++++++++++++
 .../org.apache.tamaya.spi.PropertyConverter     |  6 +++
 16 files changed, 316 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/fd6184b8/code/api/src/main/java/org/apache/tamaya/ConfigOperator.java
----------------------------------------------------------------------
diff --git a/code/api/src/main/java/org/apache/tamaya/ConfigOperator.java b/code/api/src/main/java/org/apache/tamaya/ConfigOperator.java
index 2144218..b14c155 100644
--- a/code/api/src/main/java/org/apache/tamaya/ConfigOperator.java
+++ b/code/api/src/main/java/org/apache/tamaya/ConfigOperator.java
@@ -23,6 +23,7 @@ package org.apache.tamaya;
  * to modell additional functionality and applying it to a given {@link org.apache.tamaya.Configuration} instance by calling
  * the {@link org.apache.tamaya.Configuration#with(org.apache.tamaya.ConfigOperator)} method.
  */
+@FunctionalInterface
 public interface ConfigOperator {
 
     /**

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/fd6184b8/code/api/src/main/java/org/apache/tamaya/ConfigQuery.java
----------------------------------------------------------------------
diff --git a/code/api/src/main/java/org/apache/tamaya/ConfigQuery.java b/code/api/src/main/java/org/apache/tamaya/ConfigQuery.java
index 60e87bb..28b8b93 100644
--- a/code/api/src/main/java/org/apache/tamaya/ConfigQuery.java
+++ b/code/api/src/main/java/org/apache/tamaya/ConfigQuery.java
@@ -23,6 +23,7 @@ package org.apache.tamaya;
  * to model additional functionality and applying it to a given {@link Configuration} instance by
  * calling the {@link Configuration#query(ConfigQuery)} method.
  */
+@FunctionalInterface
 public interface ConfigQuery<T> {
 
     /**

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/fd6184b8/code/api/src/main/java/org/apache/tamaya/spi/PropertyConverter.java
----------------------------------------------------------------------
diff --git a/code/api/src/main/java/org/apache/tamaya/spi/PropertyConverter.java b/code/api/src/main/java/org/apache/tamaya/spi/PropertyConverter.java
index ef6e2ac..56ac5e6 100644
--- a/code/api/src/main/java/org/apache/tamaya/spi/PropertyConverter.java
+++ b/code/api/src/main/java/org/apache/tamaya/spi/PropertyConverter.java
@@ -19,6 +19,8 @@
 package org.apache.tamaya.spi;
 
 
+import jdk.nashorn.internal.objects.annotations.Function;
+
 /**
  * Interface for an property that converts a configured String into something else.
  * This is used for implementing type conversion from a property (String) to a certain target
@@ -26,6 +28,7 @@ package org.apache.tamaya.spi;
  * 
  * @param <T> the type of the type literal
  */
+@FunctionalInterface
 public interface PropertyConverter<T>{
 
     /**

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/fd6184b8/code/api/src/main/java/org/apache/tamaya/spi/PropertyFilter.java
----------------------------------------------------------------------
diff --git a/code/api/src/main/java/org/apache/tamaya/spi/PropertyFilter.java b/code/api/src/main/java/org/apache/tamaya/spi/PropertyFilter.java
index 350bd73..3054496 100644
--- a/code/api/src/main/java/org/apache/tamaya/spi/PropertyFilter.java
+++ b/code/api/src/main/java/org/apache/tamaya/spi/PropertyFilter.java
@@ -25,6 +25,7 @@ package org.apache.tamaya.spi;
  * hereby is defined by the corresponding {@code @Priority} annotation.</p>
  * <p>Filters </p>
  */
+@FunctionalInterface
 public interface PropertyFilter {
 
     /**

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/fd6184b8/code/api/src/main/java/org/apache/tamaya/spi/PropertySourceProvider.java
----------------------------------------------------------------------
diff --git a/code/api/src/main/java/org/apache/tamaya/spi/PropertySourceProvider.java b/code/api/src/main/java/org/apache/tamaya/spi/PropertySourceProvider.java
index 79a8d98..3f7beea 100644
--- a/code/api/src/main/java/org/apache/tamaya/spi/PropertySourceProvider.java
+++ b/code/api/src/main/java/org/apache/tamaya/spi/PropertySourceProvider.java
@@ -34,6 +34,7 @@ import java.util.Collections;
  * {@link java.util.ServiceLoader} mechanism and must get registered via
  * META-INF/services/org.apache.tamaya.spi.PropertySourceProvider</p>
  */
+@FunctionalInterface
 public interface PropertySourceProvider {
 
     /**

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/fd6184b8/code/api/src/main/java/org/apache/tamaya/spi/PropertyValue.java
----------------------------------------------------------------------
diff --git a/code/api/src/main/java/org/apache/tamaya/spi/PropertyValue.java b/code/api/src/main/java/org/apache/tamaya/spi/PropertyValue.java
index d1a8b9c..c538de7 100644
--- a/code/api/src/main/java/org/apache/tamaya/spi/PropertyValue.java
+++ b/code/api/src/main/java/org/apache/tamaya/spi/PropertyValue.java
@@ -74,7 +74,7 @@ public final class PropertyValue implements Serializable{
     /**
      * The source.
      * @return the source, which provided the value, not {@code null}.
-     * @see PropertySource#getName().
+     * @see PropertySource#getName() .
      */
     public String getSource() {
         return this.source;
@@ -116,6 +116,7 @@ public final class PropertyValue implements Serializable{
     /**
      * Creates a new builder instance.
      * @param key the key, not {@code null}.
+     * @param value the property value, not {@code null}.
      * @param source the source, typically the name of the {@link PropertySource}
      *               providing the value, not {@code null}.
      * @return a new builder instance.

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/fd6184b8/code/api/src/main/java/org/apache/tamaya/spi/ServiceContext.java
----------------------------------------------------------------------
diff --git a/code/api/src/main/java/org/apache/tamaya/spi/ServiceContext.java b/code/api/src/main/java/org/apache/tamaya/spi/ServiceContext.java
index ef6c0b9..9eb18e8 100644
--- a/code/api/src/main/java/org/apache/tamaya/spi/ServiceContext.java
+++ b/code/api/src/main/java/org/apache/tamaya/spi/ServiceContext.java
@@ -78,7 +78,7 @@ public interface ServiceContext {
      * @param resource the resource, not {@code null}.
      * @param cl the desired classloader context, if null, the current thread context classloader is used.
      * @return the resources found
-     * @throws IOException
+     * @throws IOException if load fails.
      */
     Enumeration<URL> getResources(String resource, ClassLoader cl) throws IOException;
 
@@ -88,7 +88,6 @@ public interface ServiceContext {
      * @param resource the resource, not {@code null}.
      * @param cl the desired classloader context, if null, the current thread context classloader is used.
      * @return the resource found, or {@code null}.
-     * @throws IOException
      */
     URL getResource(String resource, ClassLoader cl);
 }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/fd6184b8/code/core/src/main/java/org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.java b/code/core/src/main/java/org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.java
index f825614..f63e5bb 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.java
@@ -73,6 +73,7 @@ public class DefaultConfigurationContextBuilder implements ConfigurationContextB
 
     /**
      * Creates a new builder instance.
+     * @param context the context to be used, not null.
      */
     public DefaultConfigurationContextBuilder(ConfigurationContext context) {
         this.propertyConverters.putAll(context.getPropertyConverters());

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/fd6184b8/code/core/src/main/java/org/apache/tamaya/core/internal/PropertySourceComparator.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/PropertySourceComparator.java b/code/core/src/main/java/org/apache/tamaya/core/internal/PropertySourceComparator.java
index 1f2e412..64e245d 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/internal/PropertySourceComparator.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/internal/PropertySourceComparator.java
@@ -76,7 +76,7 @@ public class PropertySourceComparator implements Comparator<PropertySource>, Ser
      * <ol>
      *     <li>It evaluates the {@code String} value for {@link PropertySource#TAMAYA_ORDINAL} and tries
      *     to convert it to an {@code int} value, using {@link Integer#parseInt(String)}.</li>
-     *     <li>It tries to find and evaluate a method {@code int getOrdinal()}</li>.
+     *     <li>It tries to find and evaluate a method {@code int getOrdinal()}.</li>
      *     <li>It tries to find and evaluate a static field {@code int ORDINAL}.</li>
      *     <li>It tries to find an d evaluate a class level {@link Priority} annotation.</li>
      *     <li>It uses the default priority ({@code 0}.</li>

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/fd6184b8/code/core/src/main/java/org/apache/tamaya/core/internal/converters/DurationConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/DurationConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/DurationConverter.java
new file mode 100644
index 0000000..65086d8
--- /dev/null
+++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/DurationConverter.java
@@ -0,0 +1,51 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tamaya.core.internal.converters;
+
+import org.apache.tamaya.spi.ConversionContext;
+import org.apache.tamaya.spi.PropertyConverter;
+
+import java.time.Duration;
+import java.time.temporal.ChronoUnit;
+import java.util.logging.Logger;
+
+/**
+ * Converter, converting from String to Boolean.
+ */
+public class DurationConverter implements PropertyConverter<Duration> {
+
+    private final Logger LOG = Logger.getLogger(getClass().getName());
+
+    @Override
+    public Duration convert(String value, ConversionContext context) {
+        context.addSupportedFormats(getClass(),
+                Duration.of(1234, ChronoUnit.SECONDS).toString());
+        return Duration.parse(value);
+    }
+
+    @Override
+    public boolean equals(Object o){
+        return getClass().equals(o.getClass());
+    }
+
+    @Override
+    public int hashCode(){
+        return getClass().hashCode();
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/fd6184b8/code/core/src/main/java/org/apache/tamaya/core/internal/converters/LocalDateConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/LocalDateConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/LocalDateConverter.java
new file mode 100644
index 0000000..2ae8bef
--- /dev/null
+++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/LocalDateConverter.java
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tamaya.core.internal.converters;
+
+import org.apache.tamaya.spi.ConversionContext;
+import org.apache.tamaya.spi.PropertyConverter;
+
+import java.time.LocalDate;
+import java.util.logging.Logger;
+
+/**
+ * Converter, converting from String to Boolean.
+ */
+public class LocalDateConverter implements PropertyConverter<LocalDate> {
+
+    private final Logger LOG = Logger.getLogger(getClass().getName());
+
+    @Override
+    public LocalDate convert(String value, ConversionContext context) {
+        context.addSupportedFormats(getClass(), LocalDate.now().toString());
+        return LocalDate.parse(value);
+    }
+
+    @Override
+    public boolean equals(Object o){
+        return getClass().equals(o.getClass());
+    }
+
+    @Override
+    public int hashCode(){
+        return getClass().hashCode();
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/fd6184b8/code/core/src/main/java/org/apache/tamaya/core/internal/converters/LocalDateTimeConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/LocalDateTimeConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/LocalDateTimeConverter.java
new file mode 100644
index 0000000..cdf6042
--- /dev/null
+++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/LocalDateTimeConverter.java
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tamaya.core.internal.converters;
+
+import org.apache.tamaya.spi.ConversionContext;
+import org.apache.tamaya.spi.PropertyConverter;
+
+import java.time.LocalDateTime;
+import java.util.logging.Logger;
+
+/**
+ * Converter, converting from String to Boolean.
+ */
+public class LocalDateTimeConverter implements PropertyConverter<LocalDateTime> {
+
+    private final Logger LOG = Logger.getLogger(getClass().getName());
+
+    @Override
+    public LocalDateTime convert(String value, ConversionContext context) {
+        context.addSupportedFormats(getClass(), LocalDateTime.now().toString());
+        return LocalDateTime.parse(value);
+    }
+
+    @Override
+    public boolean equals(Object o){
+        return getClass().equals(o.getClass());
+    }
+
+    @Override
+    public int hashCode(){
+        return getClass().hashCode();
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/fd6184b8/code/core/src/main/java/org/apache/tamaya/core/internal/converters/LocalTimeConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/LocalTimeConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/LocalTimeConverter.java
new file mode 100644
index 0000000..e6e62a5
--- /dev/null
+++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/LocalTimeConverter.java
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tamaya.core.internal.converters;
+
+import org.apache.tamaya.spi.ConversionContext;
+import org.apache.tamaya.spi.PropertyConverter;
+
+import java.time.LocalTime;
+import java.util.logging.Logger;
+
+/**
+ * Converter, converting from String to Boolean.
+ */
+public class LocalTimeConverter implements PropertyConverter<LocalTime> {
+
+    private final Logger LOG = Logger.getLogger(getClass().getName());
+
+    @Override
+    public LocalTime convert(String value, ConversionContext context) {
+        context.addSupportedFormats(getClass(), LocalTime.now().toString());
+        return LocalTime.parse(value);
+    }
+
+    @Override
+    public boolean equals(Object o){
+        return getClass().equals(o.getClass());
+    }
+
+    @Override
+    public int hashCode(){
+        return getClass().hashCode();
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/fd6184b8/code/core/src/main/java/org/apache/tamaya/core/internal/converters/OffsetDateTimeConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/OffsetDateTimeConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/OffsetDateTimeConverter.java
new file mode 100644
index 0000000..4bcf1ef
--- /dev/null
+++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/OffsetDateTimeConverter.java
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tamaya.core.internal.converters;
+
+import org.apache.tamaya.spi.ConversionContext;
+import org.apache.tamaya.spi.PropertyConverter;
+
+import java.time.LocalDate;
+import java.time.OffsetDateTime;
+import java.util.logging.Logger;
+
+/**
+ * Converter, converting from String to Boolean.
+ */
+public class OffsetDateTimeConverter implements PropertyConverter<OffsetDateTime> {
+
+    private final Logger LOG = Logger.getLogger(getClass().getName());
+
+    @Override
+    public OffsetDateTime convert(String value, ConversionContext context) {
+        context.addSupportedFormats(getClass(), OffsetDateTime.now().toString());
+        return OffsetDateTime.parse(value);
+    }
+
+    @Override
+    public boolean equals(Object o){
+        return getClass().equals(o.getClass());
+    }
+
+    @Override
+    public int hashCode(){
+        return getClass().hashCode();
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/fd6184b8/code/core/src/main/java/org/apache/tamaya/core/internal/converters/OffsetTimeConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/OffsetTimeConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/OffsetTimeConverter.java
new file mode 100644
index 0000000..eaaafc6
--- /dev/null
+++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/OffsetTimeConverter.java
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tamaya.core.internal.converters;
+
+import org.apache.tamaya.spi.ConversionContext;
+import org.apache.tamaya.spi.PropertyConverter;
+
+import java.time.OffsetDateTime;
+import java.time.OffsetTime;
+import java.util.logging.Logger;
+
+/**
+ * Converter, converting from String to Boolean.
+ */
+public class OffsetTimeConverter implements PropertyConverter<OffsetTime> {
+
+    private final Logger LOG = Logger.getLogger(getClass().getName());
+
+    @Override
+    public OffsetTime convert(String value, ConversionContext context) {
+        context.addSupportedFormats(getClass(), OffsetTime.now().toString());
+        return OffsetTime.parse(value);
+    }
+
+    @Override
+    public boolean equals(Object o){
+        return getClass().equals(o.getClass());
+    }
+
+    @Override
+    public int hashCode(){
+        return getClass().hashCode();
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/fd6184b8/code/core/src/main/resources/META-INF/services/org.apache.tamaya.spi.PropertyConverter
----------------------------------------------------------------------
diff --git a/code/core/src/main/resources/META-INF/services/org.apache.tamaya.spi.PropertyConverter b/code/core/src/main/resources/META-INF/services/org.apache.tamaya.spi.PropertyConverter
index 878e8a7..a53d80d 100644
--- a/code/core/src/main/resources/META-INF/services/org.apache.tamaya.spi.PropertyConverter
+++ b/code/core/src/main/resources/META-INF/services/org.apache.tamaya.spi.PropertyConverter
@@ -33,3 +33,9 @@ org.apache.tamaya.core.internal.converters.URIConverter
 org.apache.tamaya.core.internal.converters.URLConverter
 org.apache.tamaya.core.internal.converters.FileConverter
 org.apache.tamaya.core.internal.converters.PathConverter
+org.apache.tamaya.core.internal.converters.DurationConverter
+org.apache.tamaya.core.internal.converters.LocalDateConverter
+org.apache.tamaya.core.internal.converters.LocalDateTimeConverter
+org.apache.tamaya.core.internal.converters.LocalTimeConverter
+org.apache.tamaya.core.internal.converters.OffsetDateTimeConverter
+org.apache.tamaya.core.internal.converters.OffsetTimeConverter