Repository: incubator-tamaya
Updated Branches:
  refs/heads/java8 78182381a -> 202ac0e7a


TAMAYA-274: Improved BND configs for better OSGI support, added OSGI 
annotations.


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

Branch: refs/heads/java8
Commit: 202ac0e7a48ac1c0787c5034528b71fd9261640a
Parents: 7818238
Author: anatole <anat...@apache.org>
Authored: Sun Sep 3 22:50:18 2017 +0200
Committer: anatole <anat...@apache.org>
Committed: Sun Sep 3 22:50: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         |  2 +
 .../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  |  3 ++
 .../EnvironmentPropertySource.java              |  3 ++
 .../JavaConfigurationPropertySource.java        |  2 +
 .../propertysource/SystemPropertySource.java    |  3 ++
 .../core/propertysource/package-info.java       | 23 ++++++++++
 pom.xml                                         | 46 +++++++++++++++-----
 49 files changed, 353 insertions(+), 39 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/202ac0e7/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-tam...@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/202ac0e7/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/202ac0e7/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/202ac0e7/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/202ac0e7/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-tam...@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/202ac0e7/code/core/pom.xml
----------------------------------------------------------------------
diff --git a/code/core/pom.xml b/code/core/pom.xml
index 295b521..75f4460 100644
--- a/code/core/pom.xml
+++ b/code/core/pom.xml
@@ -47,13 +47,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/202ac0e7/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/202ac0e7/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/202ac0e7/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/202ac0e7/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/202ac0e7/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/202ac0e7/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/202ac0e7/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/202ac0e7/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/202ac0e7/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 6779809..fd1b9cc 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,6 +38,7 @@ import java.util.logging.Logger;
  *     <li>0XFFFFAC (integral numbers only)</li>
  * </ul>
  */
+@Component(service = PropertyConverter.class)
 public class BigDecimalConverter implements PropertyConverter<BigDecimal>{
     /** The logger. */
     private static final Logger LOG = 
Logger.getLogger(BigDecimalConverter.class.getName());

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/202ac0e7/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/202ac0e7/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/202ac0e7/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/202ac0e7/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/202ac0e7/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/202ac0e7/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/202ac0e7/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/202ac0e7/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/202ac0e7/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/202ac0e7/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/202ac0e7/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/202ac0e7/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/202ac0e7/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/202ac0e7/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/202ac0e7/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/202ac0e7/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/202ac0e7/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/202ac0e7/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/202ac0e7/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/202ac0e7/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/202ac0e7/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/202ac0e7/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/202ac0e7/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/202ac0e7/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/202ac0e7/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/202ac0e7/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/202ac0e7/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/202ac0e7/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/202ac0e7/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 5f25f14..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,6 +31,7 @@ import java.util.Objects;
  * PropertySource that allows to add the programs main arguments as 
configuration entries. Unix syntax using '--' and
  * '-' params is supported.
  */
+@Component(service = PropertySource.class)
 public class CLIPropertySource extends BasePropertySource{
 
     /** The original main arguments. */

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/202ac0e7/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 c204d26..61c93a0 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
@@ -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.*;
 
@@ -29,6 +31,7 @@ import java.util.*;
  * {@code set myprop=myval} on Windows. You can disable this feature by 
setting {@code tamaya.envprops.disable}
  * or {@code tamaya.defaults.disable}.
  */
+@Component(service = PropertySource.class)
 public class EnvironmentPropertySource extends BasePropertySource {
 
     /**

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/202ac0e7/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/202ac0e7/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/202ac0e7/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/202ac0e7/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 8f79347..c98944b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -75,6 +75,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>
@@ -210,6 +211,7 @@
 
     <dependencyManagement>
         <dependencies>
+            <!-- test support -->
             <dependency>
                 <groupId>org.mockito</groupId>
                 <artifactId>mockito-core</artifactId>
@@ -228,7 +230,6 @@
                 <version>${commons-io.version}</version>
                 <scope>test</scope>
             </dependency>
-
             <dependency>
                 <groupId>junit</groupId>
                 <artifactId>junit</artifactId>
@@ -241,31 +242,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>

Reply via email to