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/09/28 20:03:37 UTC

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

Repository: incubator-tamaya
Updated Branches:
  refs/heads/master 0852f7fe5 -> 7d2b5a873


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/bbfee921
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/tree/bbfee921
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/diff/bbfee921

Branch: refs/heads/master
Commit: bbfee921054c574e6e3d8c41cef6c48cc986e7e6
Parents: 0852f7f
Author: anatole <an...@apache.org>
Authored: Tue Aug 8 21:44:51 2017 +0200
Committer: Anatole Tresch <an...@apache.org>
Committed: Thu Sep 28 21:52:10 2017 +0200

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


http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bbfee921/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 9d18024..affc2d5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -35,7 +35,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>


[11/12] incubator-tamaya git commit: TAMAYA-297: Removed unused ServiceTracker.

Posted by an...@apache.org.
TAMAYA-297: Removed unused ServiceTracker.


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

Branch: refs/heads/master
Commit: cdc74d72877fa5a8012160e7fe6d47a0d7cc2cee
Parents: fe4302a
Author: anatole <an...@apache.org>
Authored: Tue Sep 19 22:07:01 2017 +0200
Committer: Anatole Tresch <an...@apache.org>
Committed: Thu Sep 28 22:01:28 2017 +0200

----------------------------------------------------------------------
 .../java/org/apache/tamaya/core/internal/OSGIServiceLoader.java    | 2 --
 1 file changed, 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/cdc74d72/code/core/src/main/java/org/apache/tamaya/core/internal/OSGIServiceLoader.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/OSGIServiceLoader.java b/code/core/src/main/java/org/apache/tamaya/core/internal/OSGIServiceLoader.java
index 0854b0d..dae7bea 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/internal/OSGIServiceLoader.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/internal/OSGIServiceLoader.java
@@ -42,8 +42,6 @@ public class OSGIServiceLoader implements BundleListener {
 
     private BundleContext context;
 
-    private Map<Class, ServiceTracker<Object,Object>> services = new ConcurrentHashMap<>();
-
     private Set<Bundle> resourceBundles = Collections.synchronizedSet(new HashSet<Bundle>());
 
     public OSGIServiceLoader(BundleContext context){


[12/12] incubator-tamaya git commit: TAMAYA-311: Removed logging for loaded SPI.

Posted by an...@apache.org.
TAMAYA-311: Removed logging for loaded 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/7d2b5a87
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/tree/7d2b5a87
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/diff/7d2b5a87

Branch: refs/heads/master
Commit: 7d2b5a8731e744a9c07fc84387f4a61c8638c16b
Parents: cdc74d7
Author: anatole <an...@apache.org>
Authored: Sun Sep 24 21:29:40 2017 +0200
Committer: Anatole Tresch <an...@apache.org>
Committed: Thu Sep 28 22:01:29 2017 +0200

----------------------------------------------------------------------
 .../src/main/java/org/apache/tamaya/ConfigurationProvider.java    | 3 ---
 1 file changed, 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/7d2b5a87/code/api/src/main/java/org/apache/tamaya/ConfigurationProvider.java
----------------------------------------------------------------------
diff --git a/code/api/src/main/java/org/apache/tamaya/ConfigurationProvider.java b/code/api/src/main/java/org/apache/tamaya/ConfigurationProvider.java
index 38af74e..564d5a1 100644
--- a/code/api/src/main/java/org/apache/tamaya/ConfigurationProvider.java
+++ b/code/api/src/main/java/org/apache/tamaya/ConfigurationProvider.java
@@ -38,7 +38,6 @@ public final class ConfigurationProvider {
         if(spi==null){
             throw new IllegalStateException("ConfigurationProviderSpi not available.");
         }
-        LOG.info("TAMAYA Loaded ConfigurationProviderSpi: " + spi.getClass().getName());
         return spi;
     }
 
@@ -62,7 +61,6 @@ public final class ConfigurationProvider {
      * @return a new Configuration instance, never {@code null}.
      */
     public static Configuration createConfiguration(ConfigurationContext context) {
-        // todo obf if (1==1) throw new RuntimeException("No tests written.");
         return spi().createConfiguration(context);
     }
 
@@ -106,7 +104,6 @@ public final class ConfigurationProvider {
      *                                                 applying a new Configuration.
      */
     public static void setConfiguration(Configuration config) {
-        // todo obf if (1==1) throw new RuntimeException("No tests written.");
         LOG.info("TAMAYA Applying new Configuration: " + config);
         spi().setConfiguration(config);
     }


[05/12] incubator-tamaya git commit: TAMAYA-260: Fixed CDI issues regarding MP integration.

Posted by an...@apache.org.
TAMAYA-260: Fixed CDI issues regarding MP integration.


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

Branch: refs/heads/master
Commit: e8a6386b2d3265f1cd8c0efb17e70fbc52a20f28
Parents: aea69a7
Author: anatole <an...@apache.org>
Authored: Sun Aug 13 01:27:48 2017 +0200
Committer: Anatole Tresch <an...@apache.org>
Committed: Thu Sep 28 21:52:13 2017 +0200

----------------------------------------------------------------------
 .../tamaya/core/internal/converters/OptionalConverter.java    | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/e8a6386b/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
index 69595ac..e05e645 100644
--- 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
@@ -23,6 +23,7 @@ import org.apache.tamaya.core.internal.PropertyConverterManager;
 import org.apache.tamaya.spi.ConversionContext;
 import org.apache.tamaya.spi.PropertyConverter;
 
+import java.lang.reflect.Type;
 import java.util.Locale;
 import java.util.Objects;
 import java.util.Optional;
@@ -39,8 +40,12 @@ public class OptionalConverter implements PropertyConverter<Optional> {
     public Optional<?> convert(String value, ConversionContext context) {
         TypeLiteral<Optional> target = (TypeLiteral<Optional>)context.getTargetType();
         Object result = null;
+        Type targetType = TypeLiteral.getTypeParameters(target.getType())[0];
+        if(String.class.equals(targetType)){
+            result = value;
+        }
         for(PropertyConverter pv:context.getConfigurationContext().getPropertyConverters(
-                TypeLiteral.of(target.getType()))){
+                TypeLiteral.of(targetType))){
             result = pv.convert(value, context);
             if(result!=null){
                 return Optional.of(result);


[03/12] 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/2278346a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/tree/2278346a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/diff/2278346a

Branch: refs/heads/master
Commit: 2278346a684cf6ef8dd12c8d4edef7631d45feaf
Parents: bbfee92
Author: anatole <an...@apache.org>
Authored: Tue Aug 8 21:45:49 2017 +0200
Committer: Anatole Tresch <an...@apache.org>
Committed: Thu Sep 28 21:52:11 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/2278346a/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/2278346a/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/2278346a/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/2278346a/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/2278346a/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/2278346a/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/2278346a/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/2278346a/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/2278346a/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/2278346a/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/2278346a/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/2278346a/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/2278346a/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/2278346a/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/2278346a/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/2278346a/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


[02/12] 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/2c4ecc32
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/tree/2c4ecc32
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/diff/2c4ecc32

Branch: refs/heads/master
Commit: 2c4ecc329757207f14e0bdaaa4af1bd5a8a99dfb
Parents: 2278346
Author: anatole <an...@apache.org>
Authored: Wed Aug 9 00:22:29 2017 +0200
Committer: Anatole Tresch <an...@apache.org>
Committed: Thu Sep 28 21:52:11 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/2c4ecc32/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/2c4ecc32/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index affc2d5..cd8eda3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -35,11 +35,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>
@@ -423,9 +422,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>
@@ -722,8 +721,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>


[07/12] incubator-tamaya git commit: Merged conflicts.

Posted by an...@apache.org.
Merged conflicts.


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

Branch: refs/heads/master
Commit: 4872a5082806eedfefdc57c984e5f75d6999cff6
Parents: 3bcb169
Author: Anatole Tresch <an...@apache.org>
Authored: Thu Sep 28 22:01:18 2017 +0200
Committer: Anatole Tresch <an...@apache.org>
Committed: Thu Sep 28 22:01:18 2017 +0200

----------------------------------------------------------------------
 code/api/bnd.bnd                                | 22 +++++++++-
 code/api/pom.xml                                |  7 +++
 .../java/org/apache/tamaya/package-info.java    | 24 ++++++++++
 .../org/apache/tamaya/spi/package-info.java     | 24 ++++++++++
 code/core/bnd.bnd                               | 40 +++++++++++++++--
 code/core/pom.xml                               |  8 +++-
 .../org/apache/tamaya/core/OSGIActivator.java   |  4 +-
 .../internal/DefaultConfigValueEvaluator.java   |  2 +
 .../core/internal/DefaultConfiguration.java     |  2 +
 .../DefaultConfigurationContextBuilder.java     |  2 +
 .../internal/DefaultConfigurationProvider.java  |  2 +
 .../core/internal/DefaultServiceContext.java    |  1 +
 .../core/internal/OSGIServiceContext.java       | 13 ++++--
 .../tamaya/core/internal/OSGIServiceLoader.java | 37 +++++++++-------
 .../converters/BigDecimalConverter.java         |  5 ++-
 .../converters/BigIntegerConverter.java         |  2 +
 .../internal/converters/BooleanConverter.java   |  2 +
 .../core/internal/converters/ByteConverter.java |  2 +
 .../core/internal/converters/CharConverter.java |  2 +
 .../internal/converters/ClassConverter.java     |  2 +
 .../internal/converters/CurrencyConverter.java  |  2 +
 .../internal/converters/DoubleConverter.java    |  2 +
 .../internal/converters/DurationConverter.java  |  2 +
 .../core/internal/converters/EnumConverter.java |  2 +
 .../core/internal/converters/FileConverter.java |  2 +
 .../internal/converters/FloatConverter.java     |  2 +
 .../internal/converters/InstantConverter.java   |  2 +
 .../internal/converters/IntegerConverter.java   |  2 +
 .../internal/converters/LocalDateConverter.java |  2 +
 .../converters/LocalDateTimeConverter.java      |  2 +
 .../internal/converters/LocalTimeConverter.java |  2 +
 .../core/internal/converters/LongConverter.java |  2 +
 .../internal/converters/NumberConverter.java    |  2 +
 .../converters/OffsetDateTimeConverter.java     |  2 +
 .../converters/OffsetTimeConverter.java         |  2 +
 .../internal/converters/OptionalConverter.java  |  2 +
 .../core/internal/converters/PathConverter.java |  2 +
 .../internal/converters/ShortConverter.java     |  2 +
 .../core/internal/converters/URIConverter.java  |  2 +
 .../core/internal/converters/URLConverter.java  |  2 +
 .../core/internal/converters/package-info.java  | 23 ++++++++++
 .../tamaya/core/internal/package-info.java      | 25 +++++++++++
 .../org/apache/tamaya/core/package-info.java    | 24 ++++++++++
 .../core/propertysource/CLIPropertySource.java  |  5 ++-
 .../EnvironmentPropertySource.java              |  2 +
 .../JavaConfigurationPropertySource.java        |  2 +
 .../propertysource/SystemPropertySource.java    |  3 ++
 .../core/propertysource/package-info.java       | 23 ++++++++++
 pom.xml                                         | 46 +++++++++++++++-----
 49 files changed, 355 insertions(+), 41 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4872a508/code/api/bnd.bnd
----------------------------------------------------------------------
diff --git a/code/api/bnd.bnd b/code/api/bnd.bnd
index 7ca7687..b606a72 100644
--- a/code/api/bnd.bnd
+++ b/code/api/bnd.bnd
@@ -1,4 +1,24 @@
+-buildpath: \
+	osgi.annotation; version=6.0.0,\
+	osgi.core; version=6.0,\
+	osgi.cmpn; version=6.0
+
+-testpath: \
+	${junit}
+
+javac.source: 1.8
+javac.target: 1.8
+
+Bundle-Version: ${version}.${tstamp}
+Bundle-SymbolicName: org.apache.tamaya
+Bundle-Name: Apache Tamaya - API
+Bundle-Description: Apacha Tamaya Configuration Java API
+Bundle-Category: API
+Bundle-Copyright: (C) Apache Foundation
+Bundle-License: Apache Licence version 2
+Bundle-Vendor: Apache Software Foundation
+Bundle-ContactAddress: dev-tamaya@incubator.apache.org
+Bundle-DocURL: http://tamaya.apache.org
 Export-Package: \
 	org.apache.tamaya,\
 	org.apache.tamaya.spi
-Bundle-SymbolicName: org.apache.tamaya
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4872a508/code/api/pom.xml
----------------------------------------------------------------------
diff --git a/code/api/pom.xml b/code/api/pom.xml
index d37ba4a..cccaae2 100644
--- a/code/api/pom.xml
+++ b/code/api/pom.xml
@@ -33,6 +33,7 @@ under the License.
         The API for accessing configuration data.
     </description>
     
+
     <url>http://tamaya.incubator.apache.org</url>
     
     <dependencies>
@@ -49,6 +50,12 @@ under the License.
             <groupId>org.mockito</groupId>
             <artifactId>mockito-core</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.annotation</artifactId>
+            <scope>provided</scope>
+            <optional>true</optional>
+        </dependency>
     </dependencies>
 
 </project>

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4872a508/code/api/src/main/java/org/apache/tamaya/package-info.java
----------------------------------------------------------------------
diff --git a/code/api/src/main/java/org/apache/tamaya/package-info.java b/code/api/src/main/java/org/apache/tamaya/package-info.java
new file mode 100644
index 0000000..60692a4
--- /dev/null
+++ b/code/api/src/main/java/org/apache/tamaya/package-info.java
@@ -0,0 +1,24 @@
+/*
+ * 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.
+ */
+
+/**
+ * This package contains the Apache Tamaya API.
+ */
+@org.osgi.annotation.versioning.Version("0.4")
+package org.apache.tamaya;
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4872a508/code/api/src/main/java/org/apache/tamaya/spi/package-info.java
----------------------------------------------------------------------
diff --git a/code/api/src/main/java/org/apache/tamaya/spi/package-info.java b/code/api/src/main/java/org/apache/tamaya/spi/package-info.java
new file mode 100644
index 0000000..49dbab9
--- /dev/null
+++ b/code/api/src/main/java/org/apache/tamaya/spi/package-info.java
@@ -0,0 +1,24 @@
+/*
+ * 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.
+ */
+
+/**
+ * This package contains the Apache Tamaya SPI artifacts.
+ */
+@org.osgi.annotation.versioning.Version("0.4")
+package org.apache.tamaya.spi;
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4872a508/code/core/bnd.bnd
----------------------------------------------------------------------
diff --git a/code/core/bnd.bnd b/code/core/bnd.bnd
index 7aa4182..5419c17 100644
--- a/code/core/bnd.bnd
+++ b/code/core/bnd.bnd
@@ -1,11 +1,43 @@
+-buildpath: \
+	osgi.annotation; version=6.0.0,\
+	osgi.core; version=6.0,\
+	osgi.cmpn; version=6.0
+
+-testpath: \
+	${junit}
+
+javac.source: 1.8
+javac.target: 1.8
+
+Bundle-Version: ${version}.${tstamp}
+Bundle-Name: Apache Tamaya - Core
+Bundle-SymbolicName: org.apache.tamaya.core
+Bundle-Description: Apacha Tamaya Configuration Java Core Implementation
+Bundle-Category: Implementation
+Bundle-Copyright: (C) Apache Foundation
+Bundle-License: Apache Licence version 2
+Bundle-Vendor: Apache Software Foundation
+Bundle-ContactAddress: dev-tamaya@incubator.apache.org
+Bundle-DocURL: http://tamaya.apache.org
+Bundle-Activator: org.apache.tamaya.core.OSGIActivator
 Export-Package: \
 	org.apache.tamaya.core,\
-	org.apache.tamaya.core.internal,\
-	org.apache.tamaya.core.propertysource
+	org.apache.tamaya.core.propertysource,\
+	org.apache.tamaya.core.provider
 Import-Package: \
 	org.apache.tamaya,\
 	org.apache.tamaya.spi,\
 	org.osgi.framework,\
 	javax.annotation
-Bundle-Activator: org.apache.tamaya.core.OSGIActivator
-Bundle-SymbolicName: org.apache.tamaya.core
\ No newline at end of file
+Private-Package: \
+	org.apache.tamaya.core.internal,\
+	org.apache.tamaya.core.internal.converters
+Export-Service: \
+    org.apache.tamaya.Configuration,\
+    org.apache.tamaya.core.internal.ConfigValueEvaluator,\
+    org.apache.tamaya.spi.ConfigurationContextBuilder,\
+    org.apache.tamaya.spi.ConfigurationProviderSpi,\
+    org.apache.tamaya.spi.PropertyConverter,\
+    org.apache.tamaya.spi.PropertySource,\
+    org.apache.tamaya.spi.ServiceContext
+    
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4872a508/code/core/pom.xml
----------------------------------------------------------------------
diff --git a/code/core/pom.xml b/code/core/pom.xml
index a608882..0c57c6d 100644
--- a/code/core/pom.xml
+++ b/code/core/pom.xml
@@ -51,13 +51,17 @@ under the License.
             <groupId>org.osgi</groupId>
             <artifactId>org.osgi.compendium</artifactId>
             <scope>provided</scope>
-            <version>${osgi.compendium.version}</version>
             <optional>true</optional>
         </dependency>
         <dependency>
             <groupId>org.osgi</groupId>
             <artifactId>org.osgi.core</artifactId>
-            <version>${osgi.version}</version>
+            <scope>provided</scope>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.annotation</artifactId>
             <scope>provided</scope>
             <optional>true</optional>
         </dependency>

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4872a508/code/core/src/main/java/org/apache/tamaya/core/OSGIActivator.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/OSGIActivator.java b/code/core/src/main/java/org/apache/tamaya/core/OSGIActivator.java
index 8798531..46355f3 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/OSGIActivator.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/OSGIActivator.java
@@ -40,10 +40,10 @@ public class OSGIActivator implements BundleActivator {
     @Override
     public void start(BundleContext context) {
         // Register marker service
-        serviceLoader = new OSGIServiceLoader(context);
+        this.serviceLoader = new OSGIServiceLoader(context);
         context.addBundleListener(serviceLoader);
         ServiceContextManager.set(new OSGIServiceContext(serviceLoader));
-        LOG.info("Registered OSGI enabled ServiceContext...");
+        LOG.info("Registered Tamaya OSGI ServiceContext...");
         ConfigurationProvider.setConfiguration(
                 new DefaultConfiguration(
                        new DefaultConfigurationContextBuilder()

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4872a508/code/core/src/main/java/org/apache/tamaya/core/internal/DefaultConfigValueEvaluator.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/DefaultConfigValueEvaluator.java b/code/core/src/main/java/org/apache/tamaya/core/internal/DefaultConfigValueEvaluator.java
index 332df89..4d8a7f3 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/internal/DefaultConfigValueEvaluator.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/internal/DefaultConfigValueEvaluator.java
@@ -22,6 +22,7 @@ import org.apache.tamaya.spi.ConfigurationContext;
 import org.apache.tamaya.spi.PropertyFilter;
 import org.apache.tamaya.spi.PropertySource;
 import org.apache.tamaya.spi.PropertyValue;
+import org.osgi.service.component.annotations.Component;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -32,6 +33,7 @@ import java.util.Map;
  * chain of {@link PropertySource} and {@link PropertyFilter}
  * instance to evaluate the current Configuration.
  */
+@Component(service = ConfigValueEvaluator.class)
 public class DefaultConfigValueEvaluator implements ConfigValueEvaluator{
 
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4872a508/code/core/src/main/java/org/apache/tamaya/core/internal/DefaultConfiguration.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/DefaultConfiguration.java b/code/core/src/main/java/org/apache/tamaya/core/internal/DefaultConfiguration.java
index c768a4c..2011133 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/internal/DefaultConfiguration.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/internal/DefaultConfiguration.java
@@ -24,6 +24,7 @@ import org.apache.tamaya.ConfigQuery;
 import org.apache.tamaya.Configuration;
 import org.apache.tamaya.TypeLiteral;
 import org.apache.tamaya.spi.*;
+import org.osgi.service.component.annotations.Component;
 
 import java.util.HashMap;
 import java.util.List;
@@ -37,6 +38,7 @@ import java.util.logging.Logger;
  * chain of {@link PropertySource} and {@link PropertyFilter}
  * instance to evaluate the current Configuration.
  */
+@Component(service = Configuration.class)
 public class DefaultConfiguration implements Configuration {
     /**
      * The logger.

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4872a508/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 f63e5bb..35590f9 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
@@ -33,6 +33,7 @@ import org.apache.tamaya.spi.PropertySource;
 import org.apache.tamaya.spi.PropertySourceProvider;
 import org.apache.tamaya.spi.PropertyValueCombinationPolicy;
 import org.apache.tamaya.spi.ServiceContextManager;
+import org.osgi.service.component.annotations.Component;
 
 import java.io.File;
 import java.lang.reflect.Type;
@@ -47,6 +48,7 @@ import java.util.logging.Logger;
 /**
  * Default implementation of {@link org.apache.tamaya.spi.ConfigurationContextBuilder}.
  */
+@Component(service = ConfigurationContextBuilder.class)
 public class DefaultConfigurationContextBuilder implements ConfigurationContextBuilder {
 
     private static final Logger LOG = Logger.getLogger(DefaultConfigurationContextBuilder.class.getName());

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4872a508/code/core/src/main/java/org/apache/tamaya/core/internal/DefaultConfigurationProvider.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/DefaultConfigurationProvider.java b/code/core/src/main/java/org/apache/tamaya/core/internal/DefaultConfigurationProvider.java
index 4b02472..a7f0a6f 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/internal/DefaultConfigurationProvider.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/internal/DefaultConfigurationProvider.java
@@ -22,6 +22,7 @@ import org.apache.tamaya.Configuration;
 import org.apache.tamaya.spi.ConfigurationContext;
 import org.apache.tamaya.spi.ConfigurationContextBuilder;
 import org.apache.tamaya.spi.ConfigurationProviderSpi;
+import org.osgi.service.component.annotations.Component;
 
 import java.util.Objects;
 
@@ -30,6 +31,7 @@ import java.util.Objects;
  * chain of {@link org.apache.tamaya.spi.PropertySource} and {@link org.apache.tamaya.spi.PropertyFilter}
  * instance to evaluate the current Configuration.
  */
+@Component(service = ConfigurationProviderSpi.class)
 public class DefaultConfigurationProvider implements ConfigurationProviderSpi {
 
     ConfigurationContext context = new DefaultConfigurationContextBuilder()

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4872a508/code/core/src/main/java/org/apache/tamaya/core/internal/DefaultServiceContext.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/DefaultServiceContext.java b/code/core/src/main/java/org/apache/tamaya/core/internal/DefaultServiceContext.java
index c29aae1..b4a059c 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/internal/DefaultServiceContext.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/internal/DefaultServiceContext.java
@@ -20,6 +20,7 @@ package org.apache.tamaya.core.internal;
 
 import org.apache.tamaya.ConfigException;
 import org.apache.tamaya.spi.ServiceContext;
+import org.osgi.service.component.annotations.Component;
 
 import javax.annotation.Priority;
 import java.io.IOException;

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4872a508/code/core/src/main/java/org/apache/tamaya/core/internal/OSGIServiceContext.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/OSGIServiceContext.java b/code/core/src/main/java/org/apache/tamaya/core/internal/OSGIServiceContext.java
index 3763937..d17650b 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/internal/OSGIServiceContext.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/internal/OSGIServiceContext.java
@@ -89,21 +89,28 @@ public class OSGIServiceContext implements ServiceContext{
     public <T> List<T> getServices(Class<T> serviceType) {
         LOG.finest("TAMAYA  Loading services: " + serviceType.getName());
         List<ServiceReference<T>> refs = new ArrayList<>();
+        List<T> services = new ArrayList<>(refs.size());
         try {
             refs.addAll(this.osgiServiceLoader.getBundleContext().getServiceReferences(serviceType, null));
             Collections.sort(refs, REF_COMPARATOR);
-            List<T> services = new ArrayList<>(refs.size());
             for(ServiceReference<T> ref:refs){
                 T service = osgiServiceLoader.getBundleContext().getService(ref);
                 if(service!=null) {
                     services.add(service);
                 }
             }
-            return services;
         } catch (InvalidSyntaxException e) {
             e.printStackTrace();
-            return Collections.emptyList();
         }
+        try{
+            for(T service:ServiceLoader.load(serviceType)){
+                services.add(service);
+            }
+            return services;
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return services;
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4872a508/code/core/src/main/java/org/apache/tamaya/core/internal/OSGIServiceLoader.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/OSGIServiceLoader.java b/code/core/src/main/java/org/apache/tamaya/core/internal/OSGIServiceLoader.java
index 96f9562..4c12df9 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/internal/OSGIServiceLoader.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/internal/OSGIServiceLoader.java
@@ -38,7 +38,7 @@ import org.osgi.util.tracker.ServiceTracker;
 public class OSGIServiceLoader implements BundleListener {
     // Provide logging
     private static final Logger log = Logger.getLogger(OSGIServiceLoader.class.getName());
-    private static final String OSGIRESOURCE_MARKER = "META-INF/OSGIResource";
+    private static final String META_INF_SERVICES = "META-INF/services/";
 
     private BundleContext context;
 
@@ -65,14 +65,13 @@ public class OSGIServiceLoader implements BundleListener {
         // Parse and create metadata on STARTING
         if (bundleEvent.getType() == BundleEvent.STARTING) {
             Bundle bundle = bundleEvent.getBundle();
-            if (bundle.getEntry(OSGIRESOURCE_MARKER) != null) {
-                synchronized (resourceBundles){
-                    resourceBundles.add(bundle);
-                }
-            }
-            if (bundle.getEntry("META-INF/services/") == null) {
+            if (bundle.getEntry(META_INF_SERVICES) == null) {
                 return;
             }
+            synchronized (resourceBundles){
+                resourceBundles.add(bundle);
+                log.info("Registered ServiceLoader bundle: " + bundle.getSymbolicName());
+            }
             Enumeration<String> entryPaths = bundle.getEntryPaths("META-INF/services/");
             while (entryPaths.hasMoreElements()) {
                 String entryPath = entryPaths.nextElement();
@@ -82,14 +81,13 @@ public class OSGIServiceLoader implements BundleListener {
             }
         } else if (bundleEvent.getType() == BundleEvent.STOPPING) {
             Bundle bundle = bundleEvent.getBundle();
-            if (bundle.getEntry(OSGIRESOURCE_MARKER) != null) {
-                synchronized (resourceBundles){
-                    resourceBundles.remove(bundle);
-                }
-            }
-            if (bundle.getEntry("META-INF/services/") == null) {
+            if (bundle.getEntry(META_INF_SERVICES) == null) {
                 return;
             }
+            synchronized (resourceBundles) {
+                resourceBundles.remove(bundle);
+                log.finest("Unregistered ServiceLoader bundle: " + bundle.getSymbolicName());
+            }
             Enumeration<String> entryPaths = bundle.getEntryPaths("META-INF/services/");
             while (entryPaths.hasMoreElements()) {
                 String entryPath = entryPaths.nextElement();
@@ -102,9 +100,13 @@ public class OSGIServiceLoader implements BundleListener {
 
     private void processEntryPath(Bundle bundle, String entryPath) {
         try {
-            String serviceName = entryPath.substring("META-INF/services/".length());
+            String serviceName = entryPath.substring(META_INF_SERVICES.length());
+            if(!serviceName.startsWith("org.apache.tamaya")){
+                // Ignore non Tamaya entries...
+                return;
+            }
             Class<?> serviceClass = bundle.loadClass(serviceName);
-
+            log.info("Loaded Tamaya service class: " + serviceClass.getName() +"("+serviceName+")");
             URL child = bundle.getEntry(entryPath);
             InputStream inStream = child.openStream();
 
@@ -140,6 +142,7 @@ public class OSGIServiceLoader implements BundleListener {
                         // Register the service factory on behalf of the intercepted bundle
                         JDKUtilServiceFactory factory = new JDKUtilServiceFactory(implClass);
                         BundleContext bundleContext = bundle.getBundleContext();
+                        log.info("Registering Tamaya service class: " + serviceClass.getName() +"("+serviceName+")");
                         bundleContext.registerService(serviceName, factory, props);
                     }
                     catch(Exception e){
@@ -162,6 +165,10 @@ public class OSGIServiceLoader implements BundleListener {
     private void removeEntryPath(Bundle bundle, String entryPath) {
         try {
             String serviceName = entryPath.substring("META-INF/services/".length());
+            if(!serviceName.startsWith("org.apache.tamaya")){
+                // Ignore non Tamaya entries...
+                return;
+            }
             Class<?> serviceClass = bundle.loadClass(serviceName);
 
             URL child = bundle.getEntry(entryPath);

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4872a508/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BigDecimalConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BigDecimalConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BigDecimalConverter.java
index a0d9c5f..7e71b7e 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BigDecimalConverter.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BigDecimalConverter.java
@@ -20,6 +20,7 @@ package org.apache.tamaya.core.internal.converters;
 
 import org.apache.tamaya.spi.ConversionContext;
 import org.apache.tamaya.spi.PropertyConverter;
+import org.osgi.service.component.annotations.Component;
 
 import java.math.BigDecimal;
 import java.math.BigInteger;
@@ -37,7 +38,9 @@ import java.util.logging.Logger;
  *     <li>0XFFFFAC (integral numbers only)</li>
  * </ul>
  */
-public class BigDecimalConverter implements PropertyConverter<BigDecimal> {
+@Component(service = PropertyConverter.class)
+public class BigDecimalConverter implements PropertyConverter<BigDecimal>{
+
     /** The logger. */
     private static final Logger LOG = Logger.getLogger(BigDecimalConverter.class.getName());
     /** Converter to be used if the format is not directly supported by BigDecimal, e.g. for integral hex values. */

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4872a508/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BigIntegerConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BigIntegerConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BigIntegerConverter.java
index 19052f7..edca14a 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BigIntegerConverter.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BigIntegerConverter.java
@@ -20,6 +20,7 @@ package org.apache.tamaya.core.internal.converters;
 
 import org.apache.tamaya.spi.ConversionContext;
 import org.apache.tamaya.spi.PropertyConverter;
+import org.osgi.service.component.annotations.Component;
 
 import java.math.BigInteger;
 import java.util.Objects;
@@ -37,6 +38,7 @@ import java.util.logging.Logger;
  *     <li>-23257352735276352753</li>
  * </ul>
  */
+@Component(service = PropertyConverter.class)
 public class BigIntegerConverter implements PropertyConverter<BigInteger>{
 
     /** The logger. */

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4872a508/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 0d14fc1..7e61140 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
@@ -20,6 +20,7 @@ package org.apache.tamaya.core.internal.converters;
 
 import org.apache.tamaya.spi.ConversionContext;
 import org.apache.tamaya.spi.PropertyConverter;
+import org.osgi.service.component.annotations.Component;
 
 import java.util.Locale;
 import java.util.Objects;
@@ -28,6 +29,7 @@ import java.util.logging.Logger;
 /**
  * Converter, converting from String to Boolean.
  */
+@Component(service = PropertyConverter.class)
 public class BooleanConverter implements PropertyConverter<Boolean> {
 
     private final Logger LOG = Logger.getLogger(getClass().getName());

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4872a508/code/core/src/main/java/org/apache/tamaya/core/internal/converters/ByteConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/ByteConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/ByteConverter.java
index 1382fdb..9b213cf 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/ByteConverter.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/ByteConverter.java
@@ -20,6 +20,7 @@ package org.apache.tamaya.core.internal.converters;
 
 import org.apache.tamaya.spi.ConversionContext;
 import org.apache.tamaya.spi.PropertyConverter;
+import org.osgi.service.component.annotations.Component;
 
 import java.util.Locale;
 import java.util.Objects;
@@ -43,6 +44,7 @@ import java.util.logging.Logger;
  *     <li>MAX (ignoring case)</li>
  * </ul>
  */
+@Component(service = PropertyConverter.class)
 public class ByteConverter implements PropertyConverter<Byte>{
 
     private final Logger LOG = Logger.getLogger(getClass().getName());

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4872a508/code/core/src/main/java/org/apache/tamaya/core/internal/converters/CharConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/CharConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/CharConverter.java
index fe332af..3895969 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/CharConverter.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/CharConverter.java
@@ -20,6 +20,7 @@ package org.apache.tamaya.core.internal.converters;
 
 import org.apache.tamaya.spi.ConversionContext;
 import org.apache.tamaya.spi.PropertyConverter;
+import org.osgi.service.component.annotations.Component;
 
 import java.util.Objects;
 import java.util.logging.Logger;
@@ -34,6 +35,7 @@ import java.util.logging.Logger;
  *     <li>0D1 (byte value)</li>
  * </ul>
  */
+@Component(service = PropertyConverter.class)
 public class CharConverter implements PropertyConverter<Character>{
 
     private static final Logger LOG = Logger.getLogger(CharConverter.class.getName());

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4872a508/code/core/src/main/java/org/apache/tamaya/core/internal/converters/ClassConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/ClassConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/ClassConverter.java
index 15311b2..b29bc15 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/ClassConverter.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/ClassConverter.java
@@ -20,6 +20,7 @@ package org.apache.tamaya.core.internal.converters;
 
 import org.apache.tamaya.spi.ConversionContext;
 import org.apache.tamaya.spi.PropertyConverter;
+import org.osgi.service.component.annotations.Component;
 
 import java.util.Objects;
 import java.util.logging.Logger;
@@ -32,6 +33,7 @@ import java.util.logging.Logger;
  *     <li>The system Classloader</li>
  * </ul>
  */
+@Component(service = PropertyConverter.class)
 public class ClassConverter implements PropertyConverter<Class<?>>{
 
     private final Logger LOG = Logger.getLogger(getClass().getName());

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4872a508/code/core/src/main/java/org/apache/tamaya/core/internal/converters/CurrencyConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/CurrencyConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/CurrencyConverter.java
index bdbc7a1..b769d06 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/CurrencyConverter.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/CurrencyConverter.java
@@ -20,6 +20,7 @@ package org.apache.tamaya.core.internal.converters;
 
 import org.apache.tamaya.spi.ConversionContext;
 import org.apache.tamaya.spi.PropertyConverter;
+import org.osgi.service.component.annotations.Component;
 
 import java.util.Currency;
 import java.util.Locale;
@@ -37,6 +38,7 @@ import java.util.logging.Logger;
  *     <li>de_DE, de_DE_123 (Locale)</li>
  * </ul>
  */
+@Component(service = PropertyConverter.class)
 public class CurrencyConverter implements PropertyConverter<Currency> {
 
     private static final Logger LOG = Logger.getLogger(CurrencyConverter.class.getName());

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4872a508/code/core/src/main/java/org/apache/tamaya/core/internal/converters/DoubleConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/DoubleConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/DoubleConverter.java
index 2311d9b..e527756 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/DoubleConverter.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/DoubleConverter.java
@@ -20,6 +20,7 @@ package org.apache.tamaya.core.internal.converters;
 
 import org.apache.tamaya.spi.ConversionContext;
 import org.apache.tamaya.spi.PropertyConverter;
+import org.osgi.service.component.annotations.Component;
 
 import java.util.Locale;
 import java.util.Objects;
@@ -35,6 +36,7 @@ import java.util.logging.Logger;
  * <li>NEGATIVE_INFINITY (ignoring case)</li>
  * </ul>
  */
+@Component(service = PropertyConverter.class)
 public class DoubleConverter implements PropertyConverter<Double> {
     /**
      * The logger.

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4872a508/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
index 65086d8..55b81ad 100644
--- 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
@@ -20,6 +20,7 @@ package org.apache.tamaya.core.internal.converters;
 
 import org.apache.tamaya.spi.ConversionContext;
 import org.apache.tamaya.spi.PropertyConverter;
+import org.osgi.service.component.annotations.Component;
 
 import java.time.Duration;
 import java.time.temporal.ChronoUnit;
@@ -28,6 +29,7 @@ import java.util.logging.Logger;
 /**
  * Converter, converting from String to Boolean.
  */
+@Component(service = PropertyConverter.class)
 public class DurationConverter implements PropertyConverter<Duration> {
 
     private final Logger LOG = Logger.getLogger(getClass().getName());

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4872a508/code/core/src/main/java/org/apache/tamaya/core/internal/converters/EnumConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/EnumConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/EnumConverter.java
index d19c2f5..f66e638 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/EnumConverter.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/EnumConverter.java
@@ -21,6 +21,7 @@ package org.apache.tamaya.core.internal.converters;
 import org.apache.tamaya.ConfigException;
 import org.apache.tamaya.spi.ConversionContext;
 import org.apache.tamaya.spi.PropertyConverter;
+import org.osgi.service.component.annotations.Component;
 
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
@@ -32,6 +33,7 @@ import java.util.logging.Logger;
 /**
  * Converter, converting from String to tge given enum type.
  */
+@Component(service = PropertyConverter.class)
 public class EnumConverter<T> implements PropertyConverter<T> {
     private final Logger LOG = Logger.getLogger(EnumConverter.class.getName());
     private Class<T> enumType;

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4872a508/code/core/src/main/java/org/apache/tamaya/core/internal/converters/FileConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/FileConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/FileConverter.java
index 4e9ecea..0901c9f 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/FileConverter.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/FileConverter.java
@@ -20,6 +20,7 @@ package org.apache.tamaya.core.internal.converters;
 
 import org.apache.tamaya.spi.ConversionContext;
 import org.apache.tamaya.spi.PropertyConverter;
+import org.osgi.service.component.annotations.Component;
 
 import java.io.File;
 import java.net.URL;
@@ -30,6 +31,7 @@ import java.util.logging.Logger;
 /**
  * Converter, converting from String to URI, using new URL(value).
  */
+@Component(service = PropertyConverter.class)
 public class FileConverter implements PropertyConverter<File> {
 
     private final Logger LOG = Logger.getLogger(getClass().getName());

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4872a508/code/core/src/main/java/org/apache/tamaya/core/internal/converters/FloatConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/FloatConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/FloatConverter.java
index 7a27f98..84daa10 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/FloatConverter.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/FloatConverter.java
@@ -20,6 +20,7 @@ package org.apache.tamaya.core.internal.converters;
 
 import org.apache.tamaya.spi.ConversionContext;
 import org.apache.tamaya.spi.PropertyConverter;
+import org.osgi.service.component.annotations.Component;
 
 import java.util.Locale;
 import java.util.Objects;
@@ -35,6 +36,7 @@ import java.util.logging.Logger;
  * <li>NEGATIVE_INFINITY (ignoring case)</li>
  * </ul>
  */
+@Component(service = PropertyConverter.class)
 public class FloatConverter implements PropertyConverter<Float> {
     /**
      * The logger.

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4872a508/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
index c0f2bf0..47489c5 100644
--- 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
@@ -20,6 +20,7 @@ package org.apache.tamaya.core.internal.converters;
 
 import org.apache.tamaya.spi.ConversionContext;
 import org.apache.tamaya.spi.PropertyConverter;
+import org.osgi.service.component.annotations.Component;
 
 import java.time.Instant;
 import java.util.logging.Logger;
@@ -27,6 +28,7 @@ import java.util.logging.Logger;
 /**
  * Converter, converting from String to Boolean.
  */
+@Component(service = PropertyConverter.class)
 public class InstantConverter implements PropertyConverter<Instant> {
 
     private final Logger LOG = Logger.getLogger(getClass().getName());

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4872a508/code/core/src/main/java/org/apache/tamaya/core/internal/converters/IntegerConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/IntegerConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/IntegerConverter.java
index 27ce70f..d09df9b 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/IntegerConverter.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/IntegerConverter.java
@@ -20,6 +20,7 @@ package org.apache.tamaya.core.internal.converters;
 
 import org.apache.tamaya.spi.ConversionContext;
 import org.apache.tamaya.spi.PropertyConverter;
+import org.osgi.service.component.annotations.Component;
 
 import java.util.Locale;
 import java.util.Objects;
@@ -42,6 +43,7 @@ import java.util.logging.Logger;
  *     <li>MAX (ignoring case)</li>
  * </ul>
  */
+@Component(service = PropertyConverter.class)
 public class IntegerConverter implements PropertyConverter<Integer>{
 
     /**

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4872a508/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
index 2ae8bef..06bd9b2 100644
--- 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
@@ -20,6 +20,7 @@ package org.apache.tamaya.core.internal.converters;
 
 import org.apache.tamaya.spi.ConversionContext;
 import org.apache.tamaya.spi.PropertyConverter;
+import org.osgi.service.component.annotations.Component;
 
 import java.time.LocalDate;
 import java.util.logging.Logger;
@@ -27,6 +28,7 @@ import java.util.logging.Logger;
 /**
  * Converter, converting from String to Boolean.
  */
+@Component(service = PropertyConverter.class)
 public class LocalDateConverter implements PropertyConverter<LocalDate> {
 
     private final Logger LOG = Logger.getLogger(getClass().getName());

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4872a508/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
index cdf6042..589ee78 100644
--- 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
@@ -20,6 +20,7 @@ package org.apache.tamaya.core.internal.converters;
 
 import org.apache.tamaya.spi.ConversionContext;
 import org.apache.tamaya.spi.PropertyConverter;
+import org.osgi.service.component.annotations.Component;
 
 import java.time.LocalDateTime;
 import java.util.logging.Logger;
@@ -27,6 +28,7 @@ import java.util.logging.Logger;
 /**
  * Converter, converting from String to Boolean.
  */
+@Component(service = PropertyConverter.class)
 public class LocalDateTimeConverter implements PropertyConverter<LocalDateTime> {
 
     private final Logger LOG = Logger.getLogger(getClass().getName());

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4872a508/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
index e6e62a5..a8c7ac6 100644
--- 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
@@ -20,6 +20,7 @@ package org.apache.tamaya.core.internal.converters;
 
 import org.apache.tamaya.spi.ConversionContext;
 import org.apache.tamaya.spi.PropertyConverter;
+import org.osgi.service.component.annotations.Component;
 
 import java.time.LocalTime;
 import java.util.logging.Logger;
@@ -27,6 +28,7 @@ import java.util.logging.Logger;
 /**
  * Converter, converting from String to Boolean.
  */
+@Component(service = PropertyConverter.class)
 public class LocalTimeConverter implements PropertyConverter<LocalTime> {
 
     private final Logger LOG = Logger.getLogger(getClass().getName());

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4872a508/code/core/src/main/java/org/apache/tamaya/core/internal/converters/LongConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/LongConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/LongConverter.java
index fee2efd..121c490 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/LongConverter.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/LongConverter.java
@@ -20,6 +20,7 @@ package org.apache.tamaya.core.internal.converters;
 
 import org.apache.tamaya.spi.ConversionContext;
 import org.apache.tamaya.spi.PropertyConverter;
+import org.osgi.service.component.annotations.Component;
 
 import java.util.Locale;
 import java.util.Objects;
@@ -42,6 +43,7 @@ import java.util.logging.Logger;
  *     <li>MAX (ignoring case)</li>
  * </ul>
  */
+@Component(service = PropertyConverter.class)
 public class LongConverter implements PropertyConverter<Long>{
 
     private static final Logger LOGGER = Logger.getLogger(LongConverter.class.getName());

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4872a508/code/core/src/main/java/org/apache/tamaya/core/internal/converters/NumberConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/NumberConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/NumberConverter.java
index 06f1e18..a7b2c43 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/NumberConverter.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/NumberConverter.java
@@ -20,6 +20,7 @@ package org.apache.tamaya.core.internal.converters;
 
 import org.apache.tamaya.spi.ConversionContext;
 import org.apache.tamaya.spi.PropertyConverter;
+import org.osgi.service.component.annotations.Component;
 
 import java.math.BigDecimal;
 import java.util.Locale;
@@ -36,6 +37,7 @@ import java.util.logging.Logger;
  *     1234566789.23642327352735273752 -&gt; new BigDecimal(input)
  * </pre>
  */
+@Component(service = PropertyConverter.class)
 public class NumberConverter implements PropertyConverter<Number>{
     /** the logger. */
     private static final Logger LOGGER = Logger.getLogger(NumberConverter.class.getName());

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4872a508/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
index 4bcf1ef..980113e 100644
--- 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
@@ -20,6 +20,7 @@ package org.apache.tamaya.core.internal.converters;
 
 import org.apache.tamaya.spi.ConversionContext;
 import org.apache.tamaya.spi.PropertyConverter;
+import org.osgi.service.component.annotations.Component;
 
 import java.time.LocalDate;
 import java.time.OffsetDateTime;
@@ -28,6 +29,7 @@ import java.util.logging.Logger;
 /**
  * Converter, converting from String to Boolean.
  */
+@Component(service = PropertyConverter.class)
 public class OffsetDateTimeConverter implements PropertyConverter<OffsetDateTime> {
 
     private final Logger LOG = Logger.getLogger(getClass().getName());

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4872a508/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
index eaaafc6..583ffe0 100644
--- 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
@@ -20,6 +20,7 @@ package org.apache.tamaya.core.internal.converters;
 
 import org.apache.tamaya.spi.ConversionContext;
 import org.apache.tamaya.spi.PropertyConverter;
+import org.osgi.service.component.annotations.Component;
 
 import java.time.OffsetDateTime;
 import java.time.OffsetTime;
@@ -28,6 +29,7 @@ import java.util.logging.Logger;
 /**
  * Converter, converting from String to Boolean.
  */
+@Component(service = PropertyConverter.class)
 public class OffsetTimeConverter implements PropertyConverter<OffsetTime> {
 
     private final Logger LOG = Logger.getLogger(getClass().getName());

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4872a508/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
index e05e645..2213bcc 100644
--- 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
@@ -22,6 +22,7 @@ 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 org.osgi.service.component.annotations.Component;
 
 import java.lang.reflect.Type;
 import java.util.Locale;
@@ -32,6 +33,7 @@ import java.util.logging.Logger;
 /**
  * Converter, converting from String to Boolean.
  */
+@Component(service = PropertyConverter.class)
 public class OptionalConverter implements PropertyConverter<Optional> {
 
     private final Logger LOG = Logger.getLogger(getClass().getName());

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4872a508/code/core/src/main/java/org/apache/tamaya/core/internal/converters/PathConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/PathConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/PathConverter.java
index 9d334c8..e59c0b9 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/PathConverter.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/PathConverter.java
@@ -20,6 +20,7 @@ package org.apache.tamaya.core.internal.converters;
 
 import org.apache.tamaya.spi.ConversionContext;
 import org.apache.tamaya.spi.PropertyConverter;
+import org.osgi.service.component.annotations.Component;
 
 import java.io.File;
 import java.nio.file.FileSystem;
@@ -33,6 +34,7 @@ import java.util.logging.Logger;
 /**
  * Converter, converting from String to URI, using new URL(value).
  */
+@Component(service = PropertyConverter.class)
 public class PathConverter implements PropertyConverter<Path> {
 
     private final Logger LOG = Logger.getLogger(getClass().getName());

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4872a508/code/core/src/main/java/org/apache/tamaya/core/internal/converters/ShortConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/ShortConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/ShortConverter.java
index e42bc26..7b561f3 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/ShortConverter.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/ShortConverter.java
@@ -20,6 +20,7 @@ package org.apache.tamaya.core.internal.converters;
 
 import org.apache.tamaya.spi.ConversionContext;
 import org.apache.tamaya.spi.PropertyConverter;
+import org.osgi.service.component.annotations.Component;
 
 import java.util.Locale;
 import java.util.Objects;
@@ -42,6 +43,7 @@ import java.util.logging.Logger;
  *     <li>MAX (ignoring case)</li>
  * </ul>
  */
+@Component(service = PropertyConverter.class)
 public class ShortConverter implements PropertyConverter<Short>{
 
     /** the logger. */

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4872a508/code/core/src/main/java/org/apache/tamaya/core/internal/converters/URIConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/URIConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/URIConverter.java
index 9304f27..793631e 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/URIConverter.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/URIConverter.java
@@ -20,6 +20,7 @@ package org.apache.tamaya.core.internal.converters;
 
 import org.apache.tamaya.spi.ConversionContext;
 import org.apache.tamaya.spi.PropertyConverter;
+import org.osgi.service.component.annotations.Component;
 
 import java.net.URI;
 import java.util.Objects;
@@ -29,6 +30,7 @@ import java.util.logging.Logger;
 /**
  * Converter, converting from String to URI, using new URI(value).
  */
+@Component(service = PropertyConverter.class)
 public class URIConverter implements PropertyConverter<URI> {
 
     private final Logger LOG = Logger.getLogger(getClass().getName());

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4872a508/code/core/src/main/java/org/apache/tamaya/core/internal/converters/URLConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/URLConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/URLConverter.java
index bca7637..e1994bf 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/URLConverter.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/URLConverter.java
@@ -20,6 +20,7 @@ package org.apache.tamaya.core.internal.converters;
 
 import org.apache.tamaya.spi.ConversionContext;
 import org.apache.tamaya.spi.PropertyConverter;
+import org.osgi.service.component.annotations.Component;
 
 import java.net.URL;
 import java.util.Objects;
@@ -29,6 +30,7 @@ import java.util.logging.Logger;
 /**
  * Converter, converting from String to URI, using new URL(value).
  */
+@Component(service = PropertyConverter.class)
 public class URLConverter implements PropertyConverter<URL> {
 
     private final Logger LOG = Logger.getLogger(getClass().getName());

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4872a508/code/core/src/main/java/org/apache/tamaya/core/internal/converters/package-info.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/package-info.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/package-info.java
new file mode 100644
index 0000000..13f66c1
--- /dev/null
+++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/package-info.java
@@ -0,0 +1,23 @@
+/*
+ * 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.
+ */
+
+/**
+ * Contains implementations of the converters provided by default.
+ */
+package org.apache.tamaya.core.internal.converters;
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4872a508/code/core/src/main/java/org/apache/tamaya/core/internal/package-info.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/package-info.java b/code/core/src/main/java/org/apache/tamaya/core/internal/package-info.java
new file mode 100644
index 0000000..a99070b
--- /dev/null
+++ b/code/core/src/main/java/org/apache/tamaya/core/internal/package-info.java
@@ -0,0 +1,25 @@
+/*
+ * 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.
+ */
+
+/**
+ * Contains implementations of different property sources for supporting
+ * CLI, Environment and System Properties as well as simple properties
+ * based on the formats defined by {@link java.util.Properties}.
+ */
+package org.apache.tamaya.core.internal;
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4872a508/code/core/src/main/java/org/apache/tamaya/core/package-info.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/package-info.java b/code/core/src/main/java/org/apache/tamaya/core/package-info.java
new file mode 100644
index 0000000..eb7a398
--- /dev/null
+++ b/code/core/src/main/java/org/apache/tamaya/core/package-info.java
@@ -0,0 +1,24 @@
+/*
+ * 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.
+ */
+
+/**
+ * This is the root package of the Apache Tamaya API implementation.
+ */
+@org.osgi.annotation.versioning.Version("0.4")
+package org.apache.tamaya.core;
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4872a508/code/core/src/main/java/org/apache/tamaya/core/propertysource/CLIPropertySource.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/propertysource/CLIPropertySource.java b/code/core/src/main/java/org/apache/tamaya/core/propertysource/CLIPropertySource.java
index 40e39e0..276cc94 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/propertysource/CLIPropertySource.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/propertysource/CLIPropertySource.java
@@ -18,7 +18,9 @@
  */
 package org.apache.tamaya.core.propertysource;
 
+import org.apache.tamaya.spi.PropertySource;
 import org.apache.tamaya.spi.PropertyValue;
+import org.osgi.service.component.annotations.Component;
 
 import java.util.Collections;
 import java.util.HashMap;
@@ -29,7 +31,8 @@ import java.util.Objects;
  * PropertySource that allows to add the programs main arguments as configuration entries. Unix syntax using '--' and
  * '-' params is supported.
  */
-public class CLIPropertySource extends BasePropertySource {
+@Component(service = PropertySource.class)
+public class CLIPropertySource extends BasePropertySource{
 
     /** The original main arguments. */
     private static String[] args = new String[0];

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4872a508/code/core/src/main/java/org/apache/tamaya/core/propertysource/EnvironmentPropertySource.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/propertysource/EnvironmentPropertySource.java b/code/core/src/main/java/org/apache/tamaya/core/propertysource/EnvironmentPropertySource.java
index 6a0e6af..0ba4cd4 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/propertysource/EnvironmentPropertySource.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/propertysource/EnvironmentPropertySource.java
@@ -20,6 +20,7 @@ package org.apache.tamaya.core.propertysource;
 
 import org.apache.tamaya.spi.PropertySource;
 import org.apache.tamaya.spi.PropertyValue;
+import org.osgi.service.component.annotations.Component;
 
 import java.util.*;
 
@@ -87,6 +88,7 @@ import java.util.*;
  * disabled by the setting the systemproperty {@code tamaya.envprops.disable}
  * or {@code tamaya.defaults.disable} to {@code true}.</p>
  */
+@Component(service = PropertySource.class)
 public class EnvironmentPropertySource extends BasePropertySource {
     private static final String TAMAYA_ENVPROPS_PREFIX = "tamaya.envprops.prefix";
     private static final String TAMAYA_ENVPROPS_DISABLE = "tamaya.envprops.disable";

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4872a508/code/core/src/main/java/org/apache/tamaya/core/propertysource/JavaConfigurationPropertySource.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/propertysource/JavaConfigurationPropertySource.java b/code/core/src/main/java/org/apache/tamaya/core/propertysource/JavaConfigurationPropertySource.java
index a6cd5e3..1518fc0 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/propertysource/JavaConfigurationPropertySource.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/propertysource/JavaConfigurationPropertySource.java
@@ -23,6 +23,7 @@ import org.apache.tamaya.core.internal.PropertySourceComparator;
 import org.apache.tamaya.spi.PropertySource;
 import org.apache.tamaya.spi.PropertyValue;
 import org.apache.tamaya.spi.ServiceContextManager;
+import org.osgi.service.component.annotations.Component;
 
 import java.io.IOException;
 import java.net.URL;
@@ -38,6 +39,7 @@ import static java.lang.Thread.currentThread;
  * {@code tamaya.defaultprops.disable} or {@code tamaya.defaults.disable}
  * as system or environment property this feature can be disabled.
  */
+@Component(service = PropertySource.class)
 public class JavaConfigurationPropertySource extends BasePropertySource {
     /**
      * Default location in the classpath, where Tamaya looks for simple line based configuration by default.

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4872a508/code/core/src/main/java/org/apache/tamaya/core/propertysource/SystemPropertySource.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/propertysource/SystemPropertySource.java b/code/core/src/main/java/org/apache/tamaya/core/propertysource/SystemPropertySource.java
index 7759827..b4ded3a 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/propertysource/SystemPropertySource.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/propertysource/SystemPropertySource.java
@@ -18,7 +18,9 @@
  */
 package org.apache.tamaya.core.propertysource;
 
+import org.apache.tamaya.spi.PropertySource;
 import org.apache.tamaya.spi.PropertyValue;
+import org.osgi.service.component.annotations.Component;
 
 import java.util.Collections;
 import java.util.HashMap;
@@ -29,6 +31,7 @@ import java.util.Properties;
  * This {@link org.apache.tamaya.spi.PropertySource} manages the system properties. You can disable this feature by
  * setting {@code tamaya.envprops.disable} or {@code tamaya.defaults.disable}.
  */
+@Component(service = PropertySource.class)
 public class SystemPropertySource extends BasePropertySource {
 
     /**

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4872a508/code/core/src/main/java/org/apache/tamaya/core/propertysource/package-info.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/propertysource/package-info.java b/code/core/src/main/java/org/apache/tamaya/core/propertysource/package-info.java
new file mode 100644
index 0000000..05ed466
--- /dev/null
+++ b/code/core/src/main/java/org/apache/tamaya/core/propertysource/package-info.java
@@ -0,0 +1,23 @@
+/*
+ * 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.
+ */
+
+/**
+ * Contains internal implementations artifacts registered as services.
+ */
+package org.apache.tamaya.core.propertysource;
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4872a508/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index cd8eda3..21797e3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -71,6 +71,7 @@
         <!-- Dependencies for site generation -->
         <reflow-skin.version>1.1.1</reflow-skin.version>
         <released_version>0.2-incubating</released_version>
+        <osgi.annotation.version>6.0.0</osgi.annotation.version>
     </properties>
 
     <licenses>
@@ -206,6 +207,7 @@
 
     <dependencyManagement>
         <dependencies>
+            <!-- test support -->
             <dependency>
                 <groupId>org.assertj</groupId>
                 <artifactId>assertj-core</artifactId>
@@ -230,7 +232,6 @@
                 <version>${commons-io.version}</version>
                 <scope>test</scope>
             </dependency>
-
             <dependency>
                 <groupId>junit</groupId>
                 <artifactId>junit</artifactId>
@@ -243,31 +244,52 @@
                     </exclusion>
                 </exclusions>
             </dependency>
-
+            <dependency>
+                <groupId>org.hamcrest</groupId>
+                <artifactId>java-hamcrest</artifactId>
+                <version>${hamcrest.version}</version>
+                <scope>test</scope>
+            </dependency>
+            <!-- quality gates -->
             <dependency>
                 <groupId>com.google.code.findbugs</groupId>
                 <artifactId>jsr305</artifactId>
                 <version>${findbugs.version}</version>
             </dependency>
-
+            <!-- JSON Specs -->
             <dependency>
-                <groupId>org.hamcrest</groupId>
-                <artifactId>java-hamcrest</artifactId>
-                <version>${hamcrest.version}</version>
-                <scope>test</scope>
+                <groupId>org.apache.geronimo.specs</groupId>
+                <artifactId>geronimo-json_1.0_spec</artifactId>
+                <version>${json.spec.version}</version>
             </dependency>
-
+            <!-- asciidoctor -->
             <dependency>
                 <groupId>rubygems</groupId>
                 <artifactId>asciidoctor-diagram</artifactId>
                 <version>${asciidoctor-diagramm.version}</version>
                 <type>gem</type>
             </dependency>
-
+            <!-- OSGI support -->
             <dependency>
-                <groupId>org.apache.geronimo.specs</groupId>
-                <artifactId>geronimo-json_1.0_spec</artifactId>
-                <version>${json.spec.version}</version>
+                <groupId>org.osgi</groupId>
+                <artifactId>org.osgi.annotation</artifactId>
+                <scope>provided</scope>
+                <version>${osgi.annotation.version}</version>
+                <optional>true</optional>
+            </dependency>
+            <dependency>
+                <groupId>org.osgi</groupId>
+                <artifactId>org.osgi.compendium</artifactId>
+                <scope>provided</scope>
+                <version>${osgi.compendium.version}</version>
+                <optional>true</optional>
+            </dependency>
+            <dependency>
+                <groupId>org.osgi</groupId>
+                <artifactId>org.osgi.core</artifactId>
+                <version>${osgi.version}</version>
+                <scope>provided</scope>
+                <optional>true</optional>
             </dependency>
         </dependencies>
     </dependencyManagement>


[06/12] incubator-tamaya git commit: TAMAYA-260: Added on/off on Boolean conversion. Fixed minor issue in value evaluation.

Posted by an...@apache.org.
TAMAYA-260: Added on/off on Boolean conversion.
Fixed minor issue in value evaluation.


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

Branch: refs/heads/master
Commit: 3bcb1696cfac5e00d53de5d6f256fe0272ec9c77
Parents: e8a6386
Author: anatole <an...@apache.org>
Authored: Mon Aug 14 01:39:43 2017 +0200
Committer: Anatole Tresch <an...@apache.org>
Committed: Thu Sep 28 21:52:14 2017 +0200

----------------------------------------------------------------------
 .../apache/tamaya/core/internal/DefaultConfigValueEvaluator.java   | 2 +-
 .../java/org/apache/tamaya/core/internal/DefaultConfiguration.java | 2 +-
 .../apache/tamaya/core/internal/converters/BooleanConverter.java   | 2 ++
 3 files changed, 4 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/3bcb1696/code/core/src/main/java/org/apache/tamaya/core/internal/DefaultConfigValueEvaluator.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/DefaultConfigValueEvaluator.java b/code/core/src/main/java/org/apache/tamaya/core/internal/DefaultConfigValueEvaluator.java
index f3b30a3..332df89 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/internal/DefaultConfigValueEvaluator.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/internal/DefaultConfigValueEvaluator.java
@@ -42,7 +42,7 @@ public class DefaultConfigValueEvaluator implements ConfigValueEvaluator{
                     collect(unfilteredValue, key, propertySource);
         }
         if(unfilteredValue==null || unfilteredValue.getValue()==null){
-            return unfilteredValue;
+            return null;
         }
         return unfilteredValue;
     }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/3bcb1696/code/core/src/main/java/org/apache/tamaya/core/internal/DefaultConfiguration.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/DefaultConfiguration.java b/code/core/src/main/java/org/apache/tamaya/core/internal/DefaultConfiguration.java
index 54cd186..c768a4c 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/internal/DefaultConfiguration.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/internal/DefaultConfiguration.java
@@ -81,7 +81,7 @@ public class DefaultConfiguration implements Configuration {
         Objects.requireNonNull(key, "Key must not be null.");
 
         PropertyValue value = configEvaluator.evaluteRawValue(key, configurationContext);
-        if(value==null || value.getValue()==null){
+        if(value==null){
             return null;
         }
         value = PropertyFiltering.applyFilter(value, configurationContext);

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/3bcb1696/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 61c182b..0d14fc1 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
@@ -44,12 +44,14 @@ public class BooleanConverter implements PropertyConverter<Boolean> {
             case "y":
             case "true":
             case "t":
+            case "on":
                 return Boolean.TRUE;
             case "no":
             case "n":
             case "false":
             case "f":
             case "0":
+            case "off":
                 return Boolean.FALSE;
             default:
                 LOG.finest("Unknown boolean value encountered: " + value);


[08/12] incubator-tamaya git commit: TAMAYA-274: Added default implementations for deprecated methods.

Posted by an...@apache.org.
TAMAYA-274: Added default implementations for deprecated methods.


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

Branch: refs/heads/master
Commit: 48af147a8decac2a2988cdb4d29388c26ef625dc
Parents: 4872a50
Author: anatole <an...@apache.org>
Authored: Sun Sep 10 22:29:45 2017 +0200
Committer: Anatole Tresch <an...@apache.org>
Committed: Thu Sep 28 22:01:26 2017 +0200

----------------------------------------------------------------------
 .../org/apache/tamaya/spi/ConfigurationProviderSpi.java | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/48af147a/code/api/src/main/java/org/apache/tamaya/spi/ConfigurationProviderSpi.java
----------------------------------------------------------------------
diff --git a/code/api/src/main/java/org/apache/tamaya/spi/ConfigurationProviderSpi.java b/code/api/src/main/java/org/apache/tamaya/spi/ConfigurationProviderSpi.java
index 63f09e9..b69bef6 100644
--- a/code/api/src/main/java/org/apache/tamaya/spi/ConfigurationProviderSpi.java
+++ b/code/api/src/main/java/org/apache/tamaya/spi/ConfigurationProviderSpi.java
@@ -79,7 +79,9 @@ public interface ConfigurationProviderSpi {
      * @deprecated Will be removed in favour of {@link Configuration#getContext()}.
      */
     @Deprecated
-    ConfigurationContext getConfigurationContext();
+    default ConfigurationContext getConfigurationContext(){
+        return getConfiguration().getContext();
+    }
 
     /**
      * This method allows to replace the current {@link org.apache.tamaya.spi.ConfigurationContext} with a new
@@ -93,7 +95,9 @@ public interface ConfigurationProviderSpi {
      * @deprecated use {@link #setConfiguration(Configuration)}
      */
     @Deprecated
-    void setConfigurationContext(ConfigurationContext context);
+    default void setConfigurationContext(ConfigurationContext context){
+        setConfiguration(createConfiguration(context));
+    }
 
     /**
      * Method that allows to determine if a new {@link org.apache.tamaya.spi.ConfigurationContext} can be applied
@@ -105,7 +109,9 @@ public interface ConfigurationProviderSpi {
      * @deprecated use {@link #isConfigurationSettable()}
      */
     @Deprecated
-    boolean isConfigurationContextSettable();
+    default boolean isConfigurationContextSettable(){
+        return isConfigurationSettable();
+    }
 
 
 }


[09/12] incubator-tamaya git commit: TAMAYA-274: Fixed basic service loading in OSGI. Added missing requirements.

Posted by an...@apache.org.
TAMAYA-274: Fixed basic service loading in OSGI. Added missing requirements.


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

Branch: refs/heads/master
Commit: ec4079dc3205c3825e6287be8d17013b91ade8e0
Parents: 48af147
Author: anatole <an...@apache.org>
Authored: Sun Sep 17 01:51:20 2017 +0200
Committer: Anatole Tresch <an...@apache.org>
Committed: Thu Sep 28 22:01:27 2017 +0200

----------------------------------------------------------------------
 .../tamaya/core/internal/OSGIServiceLoader.java | 96 +++++++++++++-------
 .../examples/minimal/TestConfigProvider.java    | 49 ++++++++++
 2 files changed, 110 insertions(+), 35 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/ec4079dc/code/core/src/main/java/org/apache/tamaya/core/internal/OSGIServiceLoader.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/OSGIServiceLoader.java b/code/core/src/main/java/org/apache/tamaya/core/internal/OSGIServiceLoader.java
index 4c12df9..0854b0d 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/internal/OSGIServiceLoader.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/internal/OSGIServiceLoader.java
@@ -48,6 +48,13 @@ public class OSGIServiceLoader implements BundleListener {
 
     public OSGIServiceLoader(BundleContext context){
         this.context = Objects.requireNonNull(context);
+        // Check for matching bundles already installed...
+        for(Bundle bundle:context.getBundles()){
+            switch(bundle.getState()){
+                case Bundle.ACTIVE:
+                    checkAndLoadBundle(bundle);
+            }
+        }
     }
 
     public BundleContext getBundleContext(){
@@ -62,38 +69,46 @@ public class OSGIServiceLoader implements BundleListener {
 
     @Override
     public void bundleChanged(BundleEvent bundleEvent) {
-        // Parse and create metadata on STARTING
-        if (bundleEvent.getType() == BundleEvent.STARTING) {
+        // Parse and create metadata when installed
+        if (bundleEvent.getType() == BundleEvent.STARTED) {
             Bundle bundle = bundleEvent.getBundle();
-            if (bundle.getEntry(META_INF_SERVICES) == null) {
-                return;
-            }
-            synchronized (resourceBundles){
-                resourceBundles.add(bundle);
-                log.info("Registered ServiceLoader bundle: " + bundle.getSymbolicName());
-            }
-            Enumeration<String> entryPaths = bundle.getEntryPaths("META-INF/services/");
-            while (entryPaths.hasMoreElements()) {
-                String entryPath = entryPaths.nextElement();
-                if(!entryPath.endsWith("/")) {
-                    processEntryPath(bundle, entryPath);
-                }
-            }
-        } else if (bundleEvent.getType() == BundleEvent.STOPPING) {
+            checkAndLoadBundle(bundle);
+        } else if (bundleEvent.getType() == BundleEvent.STOPPED) {
             Bundle bundle = bundleEvent.getBundle();
-            if (bundle.getEntry(META_INF_SERVICES) == null) {
-                return;
-            }
-            synchronized (resourceBundles) {
-                resourceBundles.remove(bundle);
-                log.finest("Unregistered ServiceLoader bundle: " + bundle.getSymbolicName());
+            checkAndUnloadBundle(bundle);
+        }
+    }
+
+    private void checkAndUnloadBundle(Bundle bundle) {
+        if (bundle.getEntry(META_INF_SERVICES) == null) {
+            return;
+        }
+        synchronized (resourceBundles) {
+            resourceBundles.remove(bundle);
+            log.fine("Unregistered ServiceLoader bundle: " + bundle.getSymbolicName());
+        }
+        Enumeration<String> entryPaths = bundle.getEntryPaths("META-INF/services/");
+        while (entryPaths.hasMoreElements()) {
+            String entryPath = entryPaths.nextElement();
+            if(!entryPath.endsWith("/")) {
+                removeEntryPath(bundle, entryPath);
             }
-            Enumeration<String> entryPaths = bundle.getEntryPaths("META-INF/services/");
-            while (entryPaths.hasMoreElements()) {
-                String entryPath = entryPaths.nextElement();
-                if(!entryPath.endsWith("/")) {
-                    removeEntryPath(bundle, entryPath);
-                }
+        }
+    }
+
+    private void checkAndLoadBundle(Bundle bundle) {
+        if (bundle.getEntry(META_INF_SERVICES) == null) {
+            return;
+        }
+        synchronized (resourceBundles){
+            resourceBundles.add(bundle);
+            log.info("Registered ServiceLoader bundle: " + bundle.getSymbolicName());
+        }
+        Enumeration<String> entryPaths = bundle.getEntryPaths("META-INF/services/");
+        while (entryPaths.hasMoreElements()) {
+            String entryPath = entryPaths.nextElement();
+            if(!entryPath.endsWith("/")) {
+                processEntryPath(bundle, entryPath);
             }
         }
     }
@@ -106,10 +121,9 @@ public class OSGIServiceLoader implements BundleListener {
                 return;
             }
             Class<?> serviceClass = bundle.loadClass(serviceName);
-            log.info("Loaded Tamaya service class: " + serviceClass.getName() +"("+serviceName+")");
             URL child = bundle.getEntry(entryPath);
             InputStream inStream = child.openStream();
-
+            log.info("Loading Services " + serviceClass.getName() +" from bundle...: " + bundle.getSymbolicName());
             BufferedReader br = new BufferedReader(new InputStreamReader(inStream, "UTF-8"));
             String implClassName = br.readLine();
             while (implClassName != null){
@@ -124,12 +138,14 @@ public class OSGIServiceLoader implements BundleListener {
                 if (implClassName.length() > 0) {
                     try {
                         // Load the service class
+                        log.fine("Loading Class " + implClassName +" from bundle...: " + bundle.getSymbolicName());
                         Class<?> implClass = bundle.loadClass(implClassName);
                         if (!serviceClass.isAssignableFrom(implClass)) {
                             log.warning("Configured service: " + implClassName + " is not assignble to " +
                                     serviceClass.getName());
                             continue;
                         }
+                        log.info("Loaded Service Factory ("+serviceName+"): " + implClassName);
                         // Provide service properties
                         Hashtable<String, String> props = new Hashtable<>();
                         props.put(Constants.VERSION_ATTRIBUTE, bundle.getVersion().toString());
@@ -142,12 +158,16 @@ public class OSGIServiceLoader implements BundleListener {
                         // Register the service factory on behalf of the intercepted bundle
                         JDKUtilServiceFactory factory = new JDKUtilServiceFactory(implClass);
                         BundleContext bundleContext = bundle.getBundleContext();
-                        log.info("Registering Tamaya service class: " + serviceClass.getName() +"("+serviceName+")");
                         bundleContext.registerService(serviceName, factory, props);
+                        log.info("Registered Tamaya service class: " + implClassName +"("+serviceName+")");
                     }
                     catch(Exception e){
                         log.log(Level.SEVERE,
-                                "Failed to load service class using ServiceLoader logic: " + implClassName, e);
+                                "Failed to load service: " + implClassName, e);
+                    }
+                    catch(NoClassDefFoundError err){
+                        log.log(Level.SEVERE,
+                                "Failed to load service: " + implClassName, err);
                     }
                 }
                 implClassName = br.readLine();
@@ -186,6 +206,7 @@ public class OSGIServiceLoader implements BundleListener {
                 }
                 implClassName = implClassName.trim();
                 if (implClassName.length() > 0) {
+                    log.fine("Unloading Service ("+serviceName+"): " + implClassName);
                     try {
                         // Load the service class
                         Class<?> implClass = bundle.loadClass(implClassName);
@@ -201,7 +222,11 @@ public class OSGIServiceLoader implements BundleListener {
                     }
                     catch(Exception e){
                         log.log(Level.SEVERE,
-                                "Failed to unload service class using ServiceLoader logic: " + implClassName, e);
+                                "Failed to unload service: " + implClassName, e);
+                    }
+                    catch(NoClassDefFoundError err){
+                        log.log(Level.SEVERE,
+                                "Failed to unload service: " + implClassName, err);
                     }
                 }
                 implClassName = br.readLine();
@@ -230,11 +255,12 @@ public class OSGIServiceLoader implements BundleListener {
         @Override
         public Object getService(Bundle bundle, ServiceRegistration registration) {
             try {
+                log.fine("Creating Service...:" + serviceClass.getName());
                 return serviceClass.newInstance();
             }
             catch (Exception ex) {
                 ex.printStackTrace();
-                throw new IllegalStateException("Cannot create service: " + serviceClass.getName(), ex);
+                throw new IllegalStateException("Failed to create service: " + serviceClass.getName(), ex);
             }
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/ec4079dc/examples/01-minimal/src/main/java/org/apache/tamaya/examples/minimal/TestConfigProvider.java
----------------------------------------------------------------------
diff --git a/examples/01-minimal/src/main/java/org/apache/tamaya/examples/minimal/TestConfigProvider.java b/examples/01-minimal/src/main/java/org/apache/tamaya/examples/minimal/TestConfigProvider.java
new file mode 100644
index 0000000..f9fb853
--- /dev/null
+++ b/examples/01-minimal/src/main/java/org/apache/tamaya/examples/minimal/TestConfigProvider.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.examples.minimal;
+
+import org.apache.tamaya.Configuration;
+import org.apache.tamaya.core.internal.DefaultConfigurationProvider;
+
+/**
+ * Configuration provider that allows to set and reset a configuration
+ * different per thread.
+ */
+public class TestConfigProvider extends DefaultConfigurationProvider{
+
+    private ThreadLocal<Configuration> threadedConfig = new ThreadLocal<>();
+
+    @Override
+    public Configuration getConfiguration() {
+        Configuration config = threadedConfig.get();
+        if(config!=null){
+            return config;
+        }
+        return super.getConfiguration();
+    }
+
+    @Override
+    public void setConfiguration(Configuration config) {
+        if(config==null){
+            threadedConfig.remove();
+        }else {
+            threadedConfig.set(config);
+        }
+    }
+}


[10/12] incubator-tamaya git commit: TAMAYA-304 - If no services came back, use the class's class loader to discover services.

Posted by an...@apache.org.
TAMAYA-304 - If no services came back, use the class's class loader to discover services.


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

Branch: refs/heads/master
Commit: fe4302a2f715cddf5bcb6bf56775c12e9773ba6f
Parents: ec4079d
Author: John D. Ament <jo...@gmail.com>
Authored: Wed Sep 20 23:01:16 2017 -0400
Committer: Anatole Tresch <an...@apache.org>
Committed: Thu Sep 28 22:01:27 2017 +0200

----------------------------------------------------------------------
 .../org/apache/tamaya/core/internal/DefaultServiceContext.java | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/fe4302a2/code/core/src/main/java/org/apache/tamaya/core/internal/DefaultServiceContext.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/DefaultServiceContext.java b/code/core/src/main/java/org/apache/tamaya/core/internal/DefaultServiceContext.java
index b4a059c..7146ccf 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/internal/DefaultServiceContext.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/internal/DefaultServiceContext.java
@@ -20,7 +20,6 @@ package org.apache.tamaya.core.internal;
 
 import org.apache.tamaya.ConfigException;
 import org.apache.tamaya.spi.ServiceContext;
-import org.osgi.service.component.annotations.Component;
 
 import javax.annotation.Priority;
 import java.io.IOException;
@@ -96,6 +95,11 @@ public final class DefaultServiceContext implements ServiceContext {
             for (T t : ServiceLoader.load(serviceType)) {
                 services.add(t);
             }
+            if(services.isEmpty()) {
+                for (T t : ServiceLoader.load(serviceType, serviceType.getClassLoader())) {
+                    services.add(t);
+                }
+            }
             Collections.sort(services, PriorityServiceComparator.getInstance());
             services = Collections.unmodifiableList(services);
         } catch (ServiceConfigurationError e) {


[04/12] 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/aea69a75
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/tree/aea69a75
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/diff/aea69a75

Branch: refs/heads/master
Commit: aea69a75ec5303ee1eddda69e68fc75f012d584d
Parents: 2c4ecc3
Author: anatole <an...@apache.org>
Authored: Wed Aug 9 00:22:59 2017 +0200
Committer: Anatole Tresch <an...@apache.org>
Committed: Thu Sep 28 21:52:12 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/aea69a75/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/aea69a75/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/aea69a75/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/aea69a75/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