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 -> 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>