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/01/01 23:20:56 UTC

[1/2] incubator-tamaya git commit: Fixed compile issue on jsr branch.

Repository: incubator-tamaya
Updated Branches:
  refs/heads/configjsr 063f8adad -> c509a8f15


Fixed compile issue on jsr  branch.

Signed-off-by: Anatole Tresch <an...@apache.org>


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

Branch: refs/heads/configjsr
Commit: 00233a7799694d811e87f1a79a38ccb3f985042b
Parents: 063f8ad
Author: Anatole Tresch <an...@apache.org>
Authored: Mon Dec 25 11:40:11 2017 +0100
Committer: Anatole Tresch <an...@apache.org>
Committed: Mon Dec 25 11:40:11 2017 +0100

----------------------------------------------------------------------
 .../java/org/apache/tamaya/base/convert/ConverterManager.java   | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/00233a77/code/base/src/main/java/org/apache/tamaya/base/convert/ConverterManager.java
----------------------------------------------------------------------
diff --git a/code/base/src/main/java/org/apache/tamaya/base/convert/ConverterManager.java b/code/base/src/main/java/org/apache/tamaya/base/convert/ConverterManager.java
index b7a0888..a4855b7 100644
--- a/code/base/src/main/java/org/apache/tamaya/base/convert/ConverterManager.java
+++ b/code/base/src/main/java/org/apache/tamaya/base/convert/ConverterManager.java
@@ -20,7 +20,6 @@ package org.apache.tamaya.base.convert;
 
 import org.apache.tamaya.base.FormatUtils;
 import org.apache.tamaya.base.PriorityServiceComparator;
-import org.apache.tamaya.spi.PropertyConverter;
 import org.apache.tamaya.spi.ServiceContext;
 import org.apache.tamaya.spi.ServiceContextManager;
 
@@ -110,7 +109,7 @@ public class ConverterManager {
     }
 
     /**
-     * This method can be used for adding {@link PropertyConverter}s.
+     * This method can be used for adding {@link Converter}s.
      * Converters are added at the end after any existing converters.
      * For converters already registered for the current target type the
      * method has no effect.
@@ -124,7 +123,7 @@ public class ConverterManager {
     }
 
     /**
-     * This method can be used for adding {@link PropertyConverter}s.
+     * This method can be used for adding {@link Converter}s.
      * Converters are added at the end after any existing converters.
      * For converters already registered for the current target type the
      * method has no effect.


[2/2] incubator-tamaya git commit: Fixed NPE relying on existing ConversionContext.

Posted by an...@apache.org.
Fixed NPE relying on existing ConversionContext.

Signed-off-by: Anatole Tresch <an...@apache.org>


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

Branch: refs/heads/configjsr
Commit: c509a8f1591b0e17001ca3ef76c7ce0d471323f9
Parents: 00233a7
Author: Anatole Tresch <an...@apache.org>
Authored: Mon Jan 1 23:55:45 2018 +0100
Committer: Anatole Tresch <an...@apache.org>
Committed: Mon Jan 1 23:55:45 2018 +0100

----------------------------------------------------------------------
 .../org/apache/tamaya/base/DefaultConfig.java   |  2 +-
 .../base/configsource/SimpleConfigSource.java   |  8 +--
 .../tamaya/base/convert/ConversionContext.java  |  4 +-
 .../tamaya/base/convert/ConverterManager.java   | 76 +++++++++++++-------
 .../tamaya/base/convert/EnumConverter.java      |  5 +-
 .../core/converters/BigIntegerConverter.java    |  4 +-
 .../core/converters/BooleanConverter.java       |  4 +-
 .../tamaya/core/converters/ByteConverter.java   |  4 +-
 .../tamaya/core/converters/CharConverter.java   |  4 +-
 .../tamaya/core/converters/ClassConverter.java  |  4 +-
 .../core/converters/CurrencyConverter.java      |  4 +-
 .../tamaya/core/converters/DoubleConverter.java |  4 +-
 .../core/converters/DurationConverter.java      |  6 +-
 .../tamaya/core/converters/FileConverter.java   |  4 +-
 .../tamaya/core/converters/FloatConverter.java  |  4 +-
 .../core/converters/InstantConverter.java       |  4 +-
 .../core/converters/IntegerConverter.java       |  4 +-
 .../core/converters/LocalDateConverter.java     |  4 +-
 .../core/converters/LocalDateTimeConverter.java |  4 +-
 .../core/converters/LocalTimeConverter.java     |  4 +-
 .../tamaya/core/converters/LongConverter.java   |  4 +-
 .../tamaya/core/converters/NumberConverter.java |  6 +-
 .../converters/OffsetDateTimeConverter.java     |  4 +-
 .../core/converters/OffsetTimeConverter.java    |  4 +-
 .../tamaya/core/converters/PathConverter.java   |  4 +-
 .../tamaya/core/converters/ShortConverter.java  |  4 +-
 .../tamaya/core/converters/URIConverter.java    |  4 +-
 .../tamaya/core/converters/URLConverter.java    |  4 +-
 28 files changed, 131 insertions(+), 60 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/base/src/main/java/org/apache/tamaya/base/DefaultConfig.java
----------------------------------------------------------------------
diff --git a/code/base/src/main/java/org/apache/tamaya/base/DefaultConfig.java b/code/base/src/main/java/org/apache/tamaya/base/DefaultConfig.java
index a3762f1..7607199 100644
--- a/code/base/src/main/java/org/apache/tamaya/base/DefaultConfig.java
+++ b/code/base/src/main/java/org/apache/tamaya/base/DefaultConfig.java
@@ -91,7 +91,7 @@ public class DefaultConfig implements Config, ConfigContextSupplier {
         }
         value = filterManager.filterValue(value, this);
         if(value!=null){
-            return (T)converterManager.convertValue(key, value.getValue(), targetType, this);
+            return (T)converterManager.convertValue(value.getValue(), targetType);
         }
         return null;
     }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/base/src/main/java/org/apache/tamaya/base/configsource/SimpleConfigSource.java
----------------------------------------------------------------------
diff --git a/code/base/src/main/java/org/apache/tamaya/base/configsource/SimpleConfigSource.java b/code/base/src/main/java/org/apache/tamaya/base/configsource/SimpleConfigSource.java
index 8d59c4c..a95bb73 100644
--- a/code/base/src/main/java/org/apache/tamaya/base/configsource/SimpleConfigSource.java
+++ b/code/base/src/main/java/org/apache/tamaya/base/configsource/SimpleConfigSource.java
@@ -114,8 +114,8 @@ public class SimpleConfigSource extends BaseConfigSource {
         setName(builder.name);
     }
 
-    public static Builder newBuilder() {
-        return new Builder();
+    public static Builder builder(String name) {
+        return new Builder().withName(name);
     }
 
     @Override
@@ -186,10 +186,10 @@ public class SimpleConfigSource extends BaseConfigSource {
          * Sets the {@code name} and returns a reference to this Builder so that the methods
          * can be chained together.
          *
-         * @param val the {@code name} to set, not null.
+         * @param name the {@code name} to set, not null.
          * @return a reference to this Builder
          */
-        public Builder withName(String val) {
+        public Builder withName(String name) {
             this.name = Objects.requireNonNull(name);
             return this;
         }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/base/src/main/java/org/apache/tamaya/base/convert/ConversionContext.java
----------------------------------------------------------------------
diff --git a/code/base/src/main/java/org/apache/tamaya/base/convert/ConversionContext.java b/code/base/src/main/java/org/apache/tamaya/base/convert/ConversionContext.java
index 6f88211..df16eda 100644
--- a/code/base/src/main/java/org/apache/tamaya/base/convert/ConversionContext.java
+++ b/code/base/src/main/java/org/apache/tamaya/base/convert/ConversionContext.java
@@ -58,7 +58,7 @@ public class ConversionContext {
      * @param builder the builder, not {@code null}.
      */
     protected ConversionContext(Builder builder){
-        this.key = Objects.requireNonNull(builder.key);
+        this.key = builder.key;
         this.annotatedElement = builder.annotatedElement;
         this.targetType = Objects.requireNonNull(builder.targetType, "Target type required.");
         this.supportedFormats.addAll(builder.supportedFormats);
@@ -168,7 +168,7 @@ public class ConversionContext {
          * @param targetType the target type
          */
         public Builder(Config configuration, String key, Type targetType){
-            this.key = Objects.requireNonNull(key, "Key required");
+            this.key = key;
             this.configuration = configuration;
             this.targetType = Objects.requireNonNull(targetType, "Target type required.");
         }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/base/src/main/java/org/apache/tamaya/base/convert/ConverterManager.java
----------------------------------------------------------------------
diff --git a/code/base/src/main/java/org/apache/tamaya/base/convert/ConverterManager.java b/code/base/src/main/java/org/apache/tamaya/base/convert/ConverterManager.java
index a4855b7..f22f0ca 100644
--- a/code/base/src/main/java/org/apache/tamaya/base/convert/ConverterManager.java
+++ b/code/base/src/main/java/org/apache/tamaya/base/convert/ConverterManager.java
@@ -20,6 +20,8 @@ package org.apache.tamaya.base.convert;
 
 import org.apache.tamaya.base.FormatUtils;
 import org.apache.tamaya.base.PriorityServiceComparator;
+import org.apache.tamaya.spi.ConfigContext;
+import org.apache.tamaya.spi.ConfigContextSupplier;
 import org.apache.tamaya.spi.ServiceContext;
 import org.apache.tamaya.spi.ServiceContextManager;
 
@@ -42,6 +44,7 @@ public class ConverterManager {
      * The logger used.
      */
     private static final Logger LOG = Logger.getLogger(ConverterManager.class.getName());
+
     /**
      * The registered converters.
      */
@@ -68,6 +71,20 @@ public class ConverterManager {
         }
     };
 
+    private static final ConverterManager INSTANCE = new ConverterManager()
+            .addCoreConverters()
+            .addDiscoveredConverters();
+
+
+    /**
+     * Access the shared common default instance, that can be used for conversion if the current {@link Config}
+     * does not implement the {@link ConfigContextSupplier} interface.
+     * @return the shared instance, not null.
+     */
+    public static ConverterManager defaultInstance(){
+        return INSTANCE;
+    }
+
     /**
      * Get the classloader used for instance creation.
      * @return the classloader, never null.
@@ -118,7 +135,7 @@ public class ConverterManager {
      * @param converters the converters to add for this type
      * @return this builder, for chaining, never null.
      */
-    public <T> ConverterManager addConverter(Type typeToConvert, Converter<T>... converters) {
+    public ConverterManager addConverter(Type typeToConvert, Converter... converters) {
         return addConverter(typeToConvert, Arrays.asList(converters));
     }
 
@@ -132,7 +149,7 @@ public class ConverterManager {
      * @param converters the converters to add for this type
      * @return this builder, for chaining, never null.
      */
-    public <T> ConverterManager addConverter(Type typeToConvert, Collection<Converter<T>> converters) {
+    public ConverterManager addConverter(Type typeToConvert, Collection<Converter> converters) {
         Objects.requireNonNull(converters);
         List<Converter> converterList = List.class.cast(this.converters.get(typeToConvert));
         if(converterList==null){
@@ -374,31 +391,8 @@ public class ConverterManager {
         return converterList;
     }
 
-    public Object convertValue(String key, String value, Type type, Config config) {
-        if (value != null) {
-            List<Converter> converters = getConverters(type);
-            org.apache.tamaya.base.convert.ConversionContext context = new org.apache.tamaya.base.convert.ConversionContext.Builder(config, key, type)
-                    .build();
-            ConversionContext.setContext(context);
-            for (Converter converter : converters) {
-                try {
-                    Object t = converter.convert(value);
-                    if (t != null) {
-                        return t;
-                    }
-                } catch (Exception e) {
-                    LOG.log(Level.FINEST, "PropertyConverter: " + converter + " failed to convert value: " + value, e);
-                }
-            }
-            // if the target type is a String, we can return the value, no conversion required.
-            if(type.equals(String.class)){
-                return value;
-            }
-            // unsupported type, throw an exception
-            throw new IllegalStateException("Unparseable config value for type: " + type.getTypeName() + ": " + key +
-                    ", supported formats: " + context.getSupportedFormats());
-        }
-        return null;
+    public <T> T convertValue(String value, Type type){
+        return convertValue(value, type, this.getConverters(type));
     }
 
     private <T> void addConvertersToList(Collection<Converter> converters, List<Converter> converterList) {
@@ -565,6 +559,34 @@ public class ConverterManager {
     }
 
     /**
+     * Converts a given text input using the given config.
+     * @param textValue the text value.
+     * @param type the target type.
+     * @param converters the converters to be used.
+     * @param <T> the type
+     * @return the converted type, or null.
+     */
+    public <T> T convertValue(String textValue, Type type, Iterable<Converter> converters) {
+        if(textValue==null){
+            return null;
+        }
+        for(Converter<T> converter:converters){
+            try{
+                T t = converter.convert(textValue);
+                if(t!=null){
+                    return t;
+                }
+            }catch(Exception e){
+                LOG.log(Level.FINE, e, () -> "Could not parse config value: " + textValue);
+            }
+        }
+        if(String.class.equals(type) || CharSequence.class.equals(type)){
+            return (T)textValue;
+        }
+        throw new IllegalArgumentException("Uncovertible config value: '" + textValue + "', target type: " + type.getTypeName());
+    }
+
+    /**
      * Default converters imüöementation perfoming several lookups for String converion
      * option.
      * @param <T>

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/base/src/main/java/org/apache/tamaya/base/convert/EnumConverter.java
----------------------------------------------------------------------
diff --git a/code/base/src/main/java/org/apache/tamaya/base/convert/EnumConverter.java b/code/base/src/main/java/org/apache/tamaya/base/convert/EnumConverter.java
index c0f727b..47e53c7 100644
--- a/code/base/src/main/java/org/apache/tamaya/base/convert/EnumConverter.java
+++ b/code/base/src/main/java/org/apache/tamaya/base/convert/EnumConverter.java
@@ -52,7 +52,10 @@ public class EnumConverter<T> implements Converter<T> {
 
     @Override
     public T convert(String value) {
-        ConversionContext.getContext().addSupportedFormats(getClass(),"<enumValue>");
+        ConversionContext context =  ConversionContext.getContext();
+        if(context!=null){
+            context.addSupportedFormats(getClass(),"<enumValue>");
+        }
         try {
             return (T) factory.invoke(null, value);
         } catch (InvocationTargetException | IllegalAccessException e) {

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/core/src/main/java/org/apache/tamaya/core/converters/BigIntegerConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/converters/BigIntegerConverter.java b/code/core/src/main/java/org/apache/tamaya/core/converters/BigIntegerConverter.java
index 1e73b19..9dc6f8a 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/converters/BigIntegerConverter.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/converters/BigIntegerConverter.java
@@ -49,7 +49,9 @@ public class BigIntegerConverter implements Converter<BigInteger> {
     @Override
     public BigInteger convert(String value) {
         ConversionContext context = ConversionContext.getContext();
-        context.addSupportedFormats(getClass(), "[-]0X.. (hex)", "[-]0x... (hex)", "<bigint> -> new BigInteger(bigint)");
+        if(context!=null) {
+            context.addSupportedFormats(getClass(), "[-]0X.. (hex)", "[-]0x... (hex)", "<bigint> -> new BigInteger(bigint)");
+        }
         String trimmed = Objects.requireNonNull(value).trim();
         if(trimmed.startsWith("0x") || trimmed.startsWith("0X")){
             LOG.finest("Parsing Hex value to BigInteger: " + value);

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/core/src/main/java/org/apache/tamaya/core/converters/BooleanConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/converters/BooleanConverter.java b/code/core/src/main/java/org/apache/tamaya/core/converters/BooleanConverter.java
index df322b1..4fdcc0a 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/converters/BooleanConverter.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/converters/BooleanConverter.java
@@ -37,7 +37,9 @@ public class BooleanConverter implements Converter<Boolean> {
     @Override
     public Boolean convert(String value) {
         ConversionContext context = ConversionContext.getContext();
-        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");
+        if(context!=null) {
+            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);

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/core/src/main/java/org/apache/tamaya/core/converters/ByteConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/converters/ByteConverter.java b/code/core/src/main/java/org/apache/tamaya/core/converters/ByteConverter.java
index 7b72cc5..8d5c450 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/converters/ByteConverter.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/converters/ByteConverter.java
@@ -52,7 +52,9 @@ public class ByteConverter implements Converter<Byte> {
     @Override
     public Byte convert(String value) {
         ConversionContext context = ConversionContext.getContext();
-        context.addSupportedFormats(getClass(),"<byte>", "MIN_VALUE", "MIN", "MAX_VALUE", "MAX");
+        if(context!=null) {
+            context.addSupportedFormats(getClass(),"<byte>", "MIN_VALUE", "MIN", "MAX_VALUE", "MAX");
+        }
         String trimmed = Objects.requireNonNull(value).trim();
         switch(trimmed.toUpperCase(Locale.ENGLISH)){
             case "MIN_VALUE":

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/core/src/main/java/org/apache/tamaya/core/converters/CharConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/converters/CharConverter.java b/code/core/src/main/java/org/apache/tamaya/core/converters/CharConverter.java
index 9fa4e69..1c3c678 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/converters/CharConverter.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/converters/CharConverter.java
@@ -43,7 +43,9 @@ public class CharConverter implements Converter<Character> {
     @Override
     public Character convert(String value) {
         ConversionContext context = ConversionContext.getContext();
-        context.addSupportedFormats(getClass(),"\\'<char>\\'", "<char>", "<charNum>");
+        if(context!=null) {
+            context.addSupportedFormats(getClass(),"\\'<char>\\'", "<char>", "<charNum>");
+        }
         String trimmed = Objects.requireNonNull(value).trim();
         if(trimmed.isEmpty()){
             return null;

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/core/src/main/java/org/apache/tamaya/core/converters/ClassConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/converters/ClassConverter.java b/code/core/src/main/java/org/apache/tamaya/core/converters/ClassConverter.java
index c998065..40b17c9 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/converters/ClassConverter.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/converters/ClassConverter.java
@@ -44,7 +44,9 @@ public class ClassConverter implements Converter<Class<?>> {
         if(value==null){
             return null;
         }
-        context.addSupportedFormats(getClass(),"<fullyQualifiedClassName>");
+        if(context!=null) {
+            context.addSupportedFormats(getClass(),"<fullyQualifiedClassName>");
+        }
         String trimmed = Objects.requireNonNull(value).trim();
         try{
             return Class.forName(trimmed, false, Thread.currentThread().getContextClassLoader());

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/core/src/main/java/org/apache/tamaya/core/converters/CurrencyConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/converters/CurrencyConverter.java b/code/core/src/main/java/org/apache/tamaya/core/converters/CurrencyConverter.java
index 502e05c..f2068ef 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/converters/CurrencyConverter.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/converters/CurrencyConverter.java
@@ -46,7 +46,9 @@ public class CurrencyConverter implements Converter<Currency> {
     @Override
     public Currency convert(String value) {
         ConversionContext context = ConversionContext.getContext();
-        context.addSupportedFormats(getClass(), "<currencyCode>, using Locale.ENGLISH", "<numericValue>", "<locale>");
+        if(context!=null) {
+            context.addSupportedFormats(getClass(), "<currencyCode>, using Locale.ENGLISH", "<numericValue>", "<locale>");
+        }
         String trimmed = Objects.requireNonNull(value).trim();
         try {
             return Currency.getInstance(trimmed.toUpperCase(Locale.ENGLISH));

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/core/src/main/java/org/apache/tamaya/core/converters/DoubleConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/converters/DoubleConverter.java b/code/core/src/main/java/org/apache/tamaya/core/converters/DoubleConverter.java
index eb5b717..c3dc9b3 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/converters/DoubleConverter.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/converters/DoubleConverter.java
@@ -50,7 +50,9 @@ public class DoubleConverter implements Converter<Double> {
     @Override
     public Double convert(String value) {
         ConversionContext context = ConversionContext.getContext();
-        context.addSupportedFormats(getClass(), "<double>", "MIN", "MIN_VALUE", "MAX", "MAX_VALUE", "POSITIVE_INFINITY", "NEGATIVE_INFINITY", "NAN");
+        if(context!=null) {
+            context.addSupportedFormats(getClass(), "<double>", "MIN", "MIN_VALUE", "MAX", "MAX_VALUE", "POSITIVE_INFINITY", "NEGATIVE_INFINITY", "NAN");
+        }
         String trimmed = Objects.requireNonNull(value).trim();
         switch (trimmed.toUpperCase(Locale.ENGLISH)) {
             case "POSITIVE_INFINITY":

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/core/src/main/java/org/apache/tamaya/core/converters/DurationConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/converters/DurationConverter.java b/code/core/src/main/java/org/apache/tamaya/core/converters/DurationConverter.java
index eb05097..227deda 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/converters/DurationConverter.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/converters/DurationConverter.java
@@ -38,8 +38,10 @@ public class DurationConverter implements Converter<Duration> {
     @Override
     public Duration convert(String value) {
         ConversionContext context = ConversionContext.getContext();
-        context.addSupportedFormats(getClass(),
-                Duration.of(1234, ChronoUnit.SECONDS).toString());
+        if(context!=null) {
+            context.addSupportedFormats(getClass(),
+                    Duration.of(1234, ChronoUnit.SECONDS).toString());
+        }
         try {
             return Duration.parse(value);
         }catch(Exception e){

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/core/src/main/java/org/apache/tamaya/core/converters/FileConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/converters/FileConverter.java b/code/core/src/main/java/org/apache/tamaya/core/converters/FileConverter.java
index 38badd4..a9796f8 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/converters/FileConverter.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/converters/FileConverter.java
@@ -41,7 +41,9 @@ public class FileConverter implements Converter<File> {
         if(value==null || value.isEmpty()){
             return null;
         }
-        context.addSupportedFormats(getClass(),"<File>");
+        if(context!=null) {
+            context.addSupportedFormats(getClass(),"<File>");
+        }
         String trimmed = Objects.requireNonNull(value).trim();
         try {
             return new File(trimmed);

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/core/src/main/java/org/apache/tamaya/core/converters/FloatConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/converters/FloatConverter.java b/code/core/src/main/java/org/apache/tamaya/core/converters/FloatConverter.java
index b66a8e1..3184a8e 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/converters/FloatConverter.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/converters/FloatConverter.java
@@ -50,7 +50,9 @@ public class FloatConverter implements Converter<Float> {
     @Override
     public Float convert(String value) {
         ConversionContext context = ConversionContext.getContext();
-        context.addSupportedFormats(getClass(), "<float>", "MIN", "MIN_VALUE", "MAX", "MAX_VALUE", "POSITIVE_INFINITY", "NEGATIVE_INFINITY", "NAN");
+        if(context!=null) {
+            context.addSupportedFormats(getClass(), "<float>", "MIN", "MIN_VALUE", "MAX", "MAX_VALUE", "POSITIVE_INFINITY", "NEGATIVE_INFINITY", "NAN");
+        }
         String trimmed = Objects.requireNonNull(value).trim();
         switch(trimmed.toUpperCase(Locale.ENGLISH)){
             case "POSITIVE_INFINITY":

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/core/src/main/java/org/apache/tamaya/core/converters/InstantConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/converters/InstantConverter.java b/code/core/src/main/java/org/apache/tamaya/core/converters/InstantConverter.java
index b6d485f..04433b0 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/converters/InstantConverter.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/converters/InstantConverter.java
@@ -37,7 +37,9 @@ public class InstantConverter implements Converter<Instant> {
     @Override
     public Instant convert(String value) {
         ConversionContext context = ConversionContext.getContext();
-        context.addSupportedFormats(getClass(), Instant.now().toString());
+        if(context!=null) {
+            context.addSupportedFormats(getClass(), Instant.now().toString());
+        }
         try{
             return Instant.parse(value);
         }catch(Exception e){

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/core/src/main/java/org/apache/tamaya/core/converters/IntegerConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/converters/IntegerConverter.java b/code/core/src/main/java/org/apache/tamaya/core/converters/IntegerConverter.java
index 5a62a23..6cd49e0 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/converters/IntegerConverter.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/converters/IntegerConverter.java
@@ -54,7 +54,9 @@ public class IntegerConverter implements Converter<Integer> {
     @Override
     public Integer convert(String value) {
         ConversionContext context = ConversionContext.getContext();
-        context.addSupportedFormats(getClass(), "<int>", "MIN_VALUE", "MIN", "MAX_VALUE", "MAX");
+        if(context!=null) {
+            context.addSupportedFormats(getClass(), "<int>", "MIN_VALUE", "MIN", "MAX_VALUE", "MAX");
+        }
         String trimmed = Objects.requireNonNull(value).trim();
         switch(trimmed.toUpperCase(Locale.ENGLISH)){
             case "MIN_VALUE":

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/core/src/main/java/org/apache/tamaya/core/converters/LocalDateConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/converters/LocalDateConverter.java b/code/core/src/main/java/org/apache/tamaya/core/converters/LocalDateConverter.java
index edfaa3a..d5ec019 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/converters/LocalDateConverter.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/converters/LocalDateConverter.java
@@ -37,7 +37,9 @@ public class LocalDateConverter implements Converter<LocalDate> {
     @Override
     public LocalDate convert(String value) {
         ConversionContext context = ConversionContext.getContext();
-        context.addSupportedFormats(getClass(), LocalDate.now().toString());
+        if(context!=null) {
+            context.addSupportedFormats(getClass(), LocalDate.now().toString());
+        }
         try{
             return LocalDate.parse(value);
         }catch(Exception e){

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/core/src/main/java/org/apache/tamaya/core/converters/LocalDateTimeConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/converters/LocalDateTimeConverter.java b/code/core/src/main/java/org/apache/tamaya/core/converters/LocalDateTimeConverter.java
index 9450e30..3ea635a 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/converters/LocalDateTimeConverter.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/converters/LocalDateTimeConverter.java
@@ -37,7 +37,9 @@ public class LocalDateTimeConverter implements Converter<LocalDateTime> {
     @Override
     public LocalDateTime convert(String value) {
         ConversionContext context = ConversionContext.getContext();
-        context.addSupportedFormats(getClass(), LocalDateTime.now().toString());
+        if(context!=null) {
+            context.addSupportedFormats(getClass(), LocalDateTime.now().toString());
+        }
         try{
             return LocalDateTime.parse(value);
         }catch(Exception e){

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/core/src/main/java/org/apache/tamaya/core/converters/LocalTimeConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/converters/LocalTimeConverter.java b/code/core/src/main/java/org/apache/tamaya/core/converters/LocalTimeConverter.java
index dde2214..129e5a0 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/converters/LocalTimeConverter.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/converters/LocalTimeConverter.java
@@ -37,7 +37,9 @@ public class LocalTimeConverter implements Converter<LocalTime> {
     @Override
     public LocalTime convert(String value) {
         ConversionContext context = ConversionContext.getContext();
-        context.addSupportedFormats(getClass(), LocalTime.now().toString());
+        if(context!=null) {
+            context.addSupportedFormats(getClass(), LocalTime.now().toString());
+        }
         try{
             return LocalTime.parse(value);
         }catch(Exception e){

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/core/src/main/java/org/apache/tamaya/core/converters/LongConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/converters/LongConverter.java b/code/core/src/main/java/org/apache/tamaya/core/converters/LongConverter.java
index 8861c09..11b0a18 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/converters/LongConverter.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/converters/LongConverter.java
@@ -51,7 +51,9 @@ public class LongConverter implements Converter<Long> {
     @Override
     public Long convert(String value) {
         ConversionContext context = ConversionContext.getContext();
-        context.addSupportedFormats(getClass(), "<long>", "MIN", "MIN_VALUE", "MAX", "MAX_VALUE");
+        if(context!=null) {
+            context.addSupportedFormats(getClass(), "<long>", "MIN", "MIN_VALUE", "MAX", "MAX_VALUE");
+        }
 
         String trimmed = Objects.requireNonNull(value).trim();
             switch (trimmed.toUpperCase(Locale.ENGLISH)) {

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/core/src/main/java/org/apache/tamaya/core/converters/NumberConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/converters/NumberConverter.java b/code/core/src/main/java/org/apache/tamaya/core/converters/NumberConverter.java
index 2f2893d..a1d41b1 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/converters/NumberConverter.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/converters/NumberConverter.java
@@ -47,8 +47,10 @@ public class NumberConverter implements Converter<Number> {
     @Override
     public Number convert(String value) {
         ConversionContext context = ConversionContext.getContext();
-        context.addSupportedFormats(getClass(), "<double>, <long>", "0x (hex)", "0X... (hex)", "POSITIVE_INFINITY",
-                "NEGATIVE_INFINITY", "NAN");
+        if(context!=null) {
+            context.addSupportedFormats(getClass(), "<double>, <long>", "0x (hex)", "0X... (hex)", "POSITIVE_INFINITY",
+                    "NEGATIVE_INFINITY", "NAN");
+        }
 
         String trimmed = Objects.requireNonNull(value).trim();
         switch(trimmed.toUpperCase(Locale.ENGLISH)) {

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/core/src/main/java/org/apache/tamaya/core/converters/OffsetDateTimeConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/converters/OffsetDateTimeConverter.java b/code/core/src/main/java/org/apache/tamaya/core/converters/OffsetDateTimeConverter.java
index 8b78814..3254155 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/converters/OffsetDateTimeConverter.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/converters/OffsetDateTimeConverter.java
@@ -37,7 +37,9 @@ public class OffsetDateTimeConverter implements Converter<OffsetDateTime> {
     @Override
     public OffsetDateTime convert(String value) {
         ConversionContext context = ConversionContext.getContext();
-        context.addSupportedFormats(getClass(), OffsetDateTime.now().toString());
+        if(context!=null) {
+            context.addSupportedFormats(getClass(), OffsetDateTime.now().toString());
+        }
         try{
             return OffsetDateTime.parse(value);
         }catch(Exception e){

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/core/src/main/java/org/apache/tamaya/core/converters/OffsetTimeConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/converters/OffsetTimeConverter.java b/code/core/src/main/java/org/apache/tamaya/core/converters/OffsetTimeConverter.java
index 8186ac0..62d1530 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/converters/OffsetTimeConverter.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/converters/OffsetTimeConverter.java
@@ -37,7 +37,9 @@ public class OffsetTimeConverter implements Converter<OffsetTime> {
     @Override
     public OffsetTime convert(String value) {
         ConversionContext context = ConversionContext.getContext();
-        context.addSupportedFormats(getClass(), OffsetTime.now().toString());
+        if(context!=null) {
+            context.addSupportedFormats(getClass(), OffsetTime.now().toString());
+        }
         try{
             return OffsetTime.parse(value);
         }catch(Exception e){

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/core/src/main/java/org/apache/tamaya/core/converters/PathConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/converters/PathConverter.java b/code/core/src/main/java/org/apache/tamaya/core/converters/PathConverter.java
index 6bc9fc3..8d21f3d 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/converters/PathConverter.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/converters/PathConverter.java
@@ -42,7 +42,9 @@ public class PathConverter implements Converter<Path> {
         if(value==null || value.isEmpty()){
             return null;
         }
-        context.addSupportedFormats(getClass(),"<File>");
+        if(context!=null) {
+            context.addSupportedFormats(getClass(),"<File>");
+        }
         String trimmed = Objects.requireNonNull(value).trim();
         try {
             return FileSystems.getDefault().getPath(value);

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/core/src/main/java/org/apache/tamaya/core/converters/ShortConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/converters/ShortConverter.java b/code/core/src/main/java/org/apache/tamaya/core/converters/ShortConverter.java
index 19c5f77..1735453 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/converters/ShortConverter.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/converters/ShortConverter.java
@@ -52,7 +52,9 @@ public class ShortConverter implements Converter<Short> {
     @Override
     public Short convert(String value) {
         ConversionContext context = ConversionContext.getContext();
-        context.addSupportedFormats(getClass(), "short", "MIN", "MIN_VALUE", "MAX", "MAX_VALUE");
+        if(context!=null) {
+            context.addSupportedFormats(getClass(), "short", "MIN", "MIN_VALUE", "MAX", "MAX_VALUE");
+        }
         String trimmed = Objects.requireNonNull(value).trim();
         switch(trimmed.toUpperCase(Locale.ENGLISH)){
             case "MIN_VALUE":

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/core/src/main/java/org/apache/tamaya/core/converters/URIConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/converters/URIConverter.java b/code/core/src/main/java/org/apache/tamaya/core/converters/URIConverter.java
index d63103a..97778bb 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/converters/URIConverter.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/converters/URIConverter.java
@@ -41,7 +41,9 @@ public class URIConverter implements Converter<URI> {
         if(value==null || value.isEmpty()){
             return null;
         }
-        context.addSupportedFormats(getClass(), "<uri> -> new URI(uri)");
+        if(context!=null) {
+            context.addSupportedFormats(getClass(), "<uri> -> new URI(uri)");
+        }
         String trimmed = Objects.requireNonNull(value).trim();
         try {
             return new URI(trimmed);

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c509a8f1/code/core/src/main/java/org/apache/tamaya/core/converters/URLConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/converters/URLConverter.java b/code/core/src/main/java/org/apache/tamaya/core/converters/URLConverter.java
index 27c69b1..d677b96 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/converters/URLConverter.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/converters/URLConverter.java
@@ -41,7 +41,9 @@ public class URLConverter implements Converter<URL> {
         if(value==null || value.isEmpty()){
             return null;
         }
-        context.addSupportedFormats(getClass(),"<URL>");
+        if(context!=null) {
+            context.addSupportedFormats(getClass(),"<URL>");
+        }
         String trimmed = Objects.requireNonNull(value).trim();
         try {
             return new URL(trimmed);