Repository: incubator-tamaya-sandbox
Updated Branches:
  refs/heads/java8 41305de43 -> 50927f438


TAMAYA-260: Fixed CDI issues regarding MP integration.


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

Branch: refs/heads/java8
Commit: 88b39eff5c92d977414f2e8d229bf0d023173656
Parents: 41305de
Author: anatole <anat...@apache.org>
Authored: Sun Aug 13 01:27:49 2017 +0200
Committer: anatole <anat...@apache.org>
Committed: Sun Aug 13 01:27:49 2017 +0200

----------------------------------------------------------------------
 microprofile/pom.xml                            |  72 +++++++++----
 .../microprofile/MicroprofileConfigBuilder.java |   6 +-
 .../microprofile/cdi/BridgingConfigBean.java    | 104 +++++++++++++++++++
 .../tamaya/microprofile/cdi/ConfiguredType.java |   4 +-
 .../cdi/MicroprofileCDIExtension.java           |  94 +++--------------
 .../cdi/MicroprofileConfigurationProducer.java  |  63 ++++++++---
 .../converter/ProviderConverter.java            |  10 +-
 microprofile/src/main/resources/beans.xml       |  25 +++++
 .../AutoDiscoveredConfigSourceTest.java         |   2 +-
 .../imported/CDIPlainInjectionTest.java         |  46 ++++++--
 .../imported/CdiOptionalInjectionTest.java      |  52 +++++-----
 .../imported/ConfigProviderTest.java            |  29 +-----
 .../microprofile/imported/ConverterTest.java    |   2 +-
 .../imported/CustomConfigSourceTest.java        |  21 ----
 .../imported/OptionalValuesBean.java            |   3 +-
 .../imported/base/AbstractTest.java             |  42 --------
 .../imported/broken/ConfigOwner.java            |  28 ++---
 .../imported/broken/CustomConverterBean.java    |  26 ++---
 ...MissingConverterOnInstanceInjectionTest.java |  62 -----------
 .../MissingValueOnInstanceInjectionTest.java    |  61 -----------
 .../WrongConverterOnInstanceInjectionTest.java  |  63 -----------
 .../microprofile/imported/converters/Pizza.java |   9 +-
 .../imported/converters/PizzaConverter.java     |   3 +-
 .../tck/TamayaConfigArchiveProcessor.java       |   4 +-
 .../src/test/resources/META-INF/beans.xml       |  24 +++++
 .../META-INF/microprofile-config.properties     |   2 +
 ...rg.eclipse.microprofile.config.spi.Converter |  18 ++++
 27 files changed, 406 insertions(+), 469 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/88b39eff/microprofile/pom.xml
----------------------------------------------------------------------
diff --git a/microprofile/pom.xml b/microprofile/pom.xml
index 4795d36..ff893b8 100644
--- a/microprofile/pom.xml
+++ b/microprofile/pom.xml
@@ -42,7 +42,10 @@ under the License.
         <arquillian.version>1.1.13.Final</arquillian.version>
         
<arquillian-weld-embedded.version>2.0.0.Beta5</arquillian-weld-embedded.version>
         <cdi2-api.version>2.0</cdi2-api.version>
-        <weld.version>3.0.0.Final</weld.version>
+        <weld-shaded.version>3.0.0.Final</weld-shaded.version>
+        <weld.version>2.2.7.Final</weld.version>
+        <deltaspike.version>1.1.0</deltaspike.version>
+        <openejb.version>4.7.1</openejb.version>
     </properties>
 
     <dependencies>
@@ -73,29 +76,48 @@ under the License.
             <artifactId>tamaya-functions</artifactId>
             <version>${tamaya-version}</version>
         </dependency>
-        <!--<dependency>-->
-            <!--<groupId>javax.enterprise</groupId>-->
-            <!--<artifactId>cdi-api</artifactId>-->
-            <!--<version>1.2</version>-->
-            <!--<scope>provided</scope>-->
-        <!--</dependency>-->
-        <!--<dependency>-->
-            <!--<groupId>org.apache.geronimo.specs</groupId>-->
-            <!--<artifactId>geronimo-jcdi_1.1_spec</artifactId>-->
-            <!--<version>${geronimo-jcdi-1.1-spec.version}</version>-->
-            <!--<scope>provided</scope>-->
-        <!--</dependency>-->
         <dependency>
             <groupId>org.eclipse.microprofile.config</groupId>
             <artifactId>microprofile-config-api</artifactId>
             <version>1.0</version>
         </dependency>
         <dependency>
-            <groupId>org.eclipse.microprofile.config</groupId>
-            <artifactId>microprofile-config-tck</artifactId>
-            <version>1.0</version>
+            <groupId>javax.enterprise</groupId>
+            <artifactId>cdi-api</artifactId>
+            <version>1.2</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.geronimo.specs</groupId>
+            <artifactId>geronimo-jcdi_1.1_spec</artifactId>
+            <version>${geronimo-jcdi-1.1-spec.version}</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.jboss.weld.se</groupId>
+            <artifactId>weld-se</artifactId>
+            <version>${weld.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.deltaspike.cdictrl</groupId>
+            <artifactId>deltaspike-cdictrl-weld</artifactId>
+            <version>${deltaspike.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.deltaspike.modules</groupId>
+            <artifactId>deltaspike-test-control-module-api</artifactId>
+            <version>${deltaspike.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.deltaspike.modules</groupId>
+            <artifactId>deltaspike-test-control-module-impl</artifactId>
+            <version>${deltaspike.version}</version>
             <scope>test</scope>
         </dependency>
+        <!-- Microprofile TCK support only -->
         <dependency>
             <groupId>org.jboss.arquillian.testng</groupId>
             <artifactId>arquillian-testng-container</artifactId>
@@ -115,19 +137,31 @@ under the License.
             <scope>test</scope>
             <type>pom</type>
         </dependency>
+        <dependency>
+            <groupId>org.apache.openejb</groupId>
+            <artifactId>openejb-core</artifactId>
+            <version>${openejb.version}</version>
+            <scope>provided</scope>
+        </dependency>
     </dependencies>
 
     <profiles>
         <profile>
-            <id>Weld3</id>
+            <id>TCK</id>
             <activation>
-                <activeByDefault>true</activeByDefault>
+                <activeByDefault>false</activeByDefault>
             </activation>
             <dependencies>
                 <dependency>
+                    <groupId>org.eclipse.microprofile.config</groupId>
+                    <artifactId>microprofile-config-tck</artifactId>
+                    <version>1.0</version>
+                    <scope>test</scope>
+                </dependency>
+                <dependency>
                     <groupId>org.jboss.weld.se</groupId>
                     <artifactId>weld-se-shaded</artifactId>
-                    <version>${weld.version}</version>
+                    <version>${weld-shaded.version}</version>
                     <scope>test</scope>
                 </dependency>
                 <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/88b39eff/microprofile/src/main/java/org/apache/tamaya/microprofile/MicroprofileConfigBuilder.java
----------------------------------------------------------------------
diff --git 
a/microprofile/src/main/java/org/apache/tamaya/microprofile/MicroprofileConfigBuilder.java
 
b/microprofile/src/main/java/org/apache/tamaya/microprofile/MicroprofileConfigBuilder.java
index aacd31b..7947e63 100644
--- 
a/microprofile/src/main/java/org/apache/tamaya/microprofile/MicroprofileConfigBuilder.java
+++ 
b/microprofile/src/main/java/org/apache/tamaya/microprofile/MicroprofileConfigBuilder.java
@@ -96,8 +96,10 @@ final class MicroprofileConfigBuilder implements 
ConfigBuilder{
     @Override
     public ConfigBuilder addDiscoveredConverters() {
         for(Converter<?> converter: 
ServiceContextManager.getServiceContext().getServices(Converter.class)){
-            TypeLiteral lit = 
TypeLiteral.of(TypeLiteral.of(converter.getClass()).getType());
-            contextBuilder.addPropertyConverters(lit, 
MicroprofileAdapter.toPropertyConverter(converter));
+            TypeLiteral targetType = TypeLiteral.of(
+                    
TypeLiteral.getGenericInterfaceTypeParameters(converter.getClass(),Converter.class)[0]);
+            contextBuilder.addPropertyConverters(targetType,
+                    MicroprofileAdapter.toPropertyConverter(converter));
         }
         return this;
     }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/88b39eff/microprofile/src/main/java/org/apache/tamaya/microprofile/cdi/BridgingConfigBean.java
----------------------------------------------------------------------
diff --git 
a/microprofile/src/main/java/org/apache/tamaya/microprofile/cdi/BridgingConfigBean.java
 
b/microprofile/src/main/java/org/apache/tamaya/microprofile/cdi/BridgingConfigBean.java
new file mode 100644
index 0000000..0b22c6a
--- /dev/null
+++ 
b/microprofile/src/main/java/org/apache/tamaya/microprofile/cdi/BridgingConfigBean.java
@@ -0,0 +1,104 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.tamaya.microprofile.cdi;
+
+import javax.enterprise.context.spi.CreationalContext;
+import javax.enterprise.inject.spi.Bean;
+import javax.enterprise.inject.spi.InjectionPoint;
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Type;
+import java.util.Objects;
+import java.util.Set;
+
+/**
+ * Internally used conversion bean.
+ */
+class BridgingConfigBean implements Bean<Object> {
+
+    private final Bean<Object> delegate;
+    private final Set<Type> types;
+
+    public BridgingConfigBean(final Bean delegate, final Set<Type> types) {
+        this.types = types;
+        this.delegate = Objects.requireNonNull(delegate);
+    }
+
+    @Override
+    public Set<Type> getTypes() {
+        return types;
+    }
+
+    @Override
+    public Class<?> getBeanClass() {
+        return delegate.getBeanClass();
+    }
+
+    @Override
+    public Set<InjectionPoint> getInjectionPoints() {
+        return delegate.getInjectionPoints();
+    }
+
+    @Override
+    public String getName() {
+        return delegate.getName();
+    }
+
+    @Override
+    public Set<Annotation> getQualifiers() {
+        return delegate.getQualifiers();
+    }
+
+    @Override
+    public Class<? extends Annotation> getScope() {
+        return delegate.getScope();
+    }
+
+    @Override
+    public Set<Class<? extends Annotation>> getStereotypes() {
+        return delegate.getStereotypes();
+    }
+
+    @Override
+    public boolean isAlternative() {
+        return delegate.isAlternative();
+    }
+
+    @Override
+    public boolean isNullable() {
+        return delegate.isNullable();
+    }
+
+    @Override
+    public Object create(CreationalContext<Object> creationalContext) {
+//        Set<InjectionPoint> injectionPoints = delegate.getInjectionPoints();
+//        for(InjectionPoint injectionPoint:injectionPoints){
+//            final ConfigProperty annotation = 
injectionPoint.getAnnotated().getAnnotation(ConfigProperty.class);
+//            String key = annotation.name();
+//            ConversionContext context =
+//                    
MicroprofileConfigurationProducer.createConversionContext(key, injectionPoint);
+//            Object result = 
MicroprofileConfigurationProducer.resolveValue(annotation.defaultValue(), 
context, injectionPoint);
+//            creationalContext.push(result);
+//            return result;
+//        }
+        return this.delegate.create(creationalContext);
+    }
+
+    @Override
+    public void destroy(Object instance, CreationalContext<Object> 
creationalContext) {
+        delegate.destroy(instance, creationalContext);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/88b39eff/microprofile/src/main/java/org/apache/tamaya/microprofile/cdi/ConfiguredType.java
----------------------------------------------------------------------
diff --git 
a/microprofile/src/main/java/org/apache/tamaya/microprofile/cdi/ConfiguredType.java
 
b/microprofile/src/main/java/org/apache/tamaya/microprofile/cdi/ConfiguredType.java
index fdebf31..e94c075 100644
--- 
a/microprofile/src/main/java/org/apache/tamaya/microprofile/cdi/ConfiguredType.java
+++ 
b/microprofile/src/main/java/org/apache/tamaya/microprofile/cdi/ConfiguredType.java
@@ -31,7 +31,7 @@ import java.util.Objects;
  * Event published for items configured by CDI extensions. This is for example 
used by the documentation module
  * to automatically track the configuration endpoints for documentation.
  */
-class ConfiguredType {
+public class ConfiguredType {
 
     private final Class<?> type;
     private final List<ConfiguredMethod> methods = new ArrayList<>();
@@ -63,7 +63,7 @@ class ConfiguredType {
 
     /**
      * Used to build up during injection point processing.
-     * @param injectionPoint the CDI injection ppint, not null.
+     * @param injectionPoint the CDI injection point, not null.
      * @param key the possible config key, not null.
      */
     void addConfiguredMember(InjectionPoint injectionPoint, String key) {

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/88b39eff/microprofile/src/main/java/org/apache/tamaya/microprofile/cdi/MicroprofileCDIExtension.java
----------------------------------------------------------------------
diff --git 
a/microprofile/src/main/java/org/apache/tamaya/microprofile/cdi/MicroprofileCDIExtension.java
 
b/microprofile/src/main/java/org/apache/tamaya/microprofile/cdi/MicroprofileCDIExtension.java
index b6280f4..1993e7b 100644
--- 
a/microprofile/src/main/java/org/apache/tamaya/microprofile/cdi/MicroprofileCDIExtension.java
+++ 
b/microprofile/src/main/java/org/apache/tamaya/microprofile/cdi/MicroprofileCDIExtension.java
@@ -16,16 +16,13 @@
  */
 package org.apache.tamaya.microprofile.cdi;
 
-import org.eclipse.microprofile.config.Config;
-import org.eclipse.microprofile.config.ConfigProvider;
 import org.eclipse.microprofile.config.inject.ConfigProperty;
 
-import javax.enterprise.context.spi.CreationalContext;
 import javax.enterprise.event.Observes;
 import javax.enterprise.inject.spi.*;
-import java.lang.annotation.Annotation;
 import java.lang.reflect.Field;
 import java.lang.reflect.Member;
+import java.lang.reflect.Method;
 import java.lang.reflect.Type;
 import java.util.*;
 import java.util.logging.Logger;
@@ -65,16 +62,18 @@ public class MicroprofileCDIExtension implements Extension {
         for (InjectionPoint injectionPoint : ips) {
             if 
(injectionPoint.getAnnotated().isAnnotationPresent(ConfigProperty.class)) {
                 final ConfigProperty annotation = 
injectionPoint.getAnnotated().getAnnotation(ConfigProperty.class);
-                String key = 
annotation!=null?annotation.name():injectionPoint.getMember().getName();
+                String key = 
!annotation.name().isEmpty()?annotation.name():injectionPoint.getMember().getName();
                 Member member = injectionPoint.getMember();
-                if(member instanceof Field){
-                    if(annotation!=null){
-                        types.add(((Field)member).getType());
-                        configured = true;
-                        LOG.finest(() -> "Enabling Tamaya Microprofile 
Configuration on bean: " + configuredType.getName());
-                        configuredType.addConfiguredMember(injectionPoint, 
key);
-                    }
+                if(member instanceof Field) {
+                    types.add(((Field) member).getType());
+                }else if(member instanceof Method){
+                    types.add(((Method) member).getParameterTypes()[0]);
+                }else{
+                    continue;
                 }
+                configured = true;
+                LOG.finest(() -> "Enabling Tamaya Microprofile Configuration 
on bean: " + configuredType.getName());
+                configuredType.addConfiguredMember(injectionPoint, key);
             }
         }
         if(configured) {
@@ -92,78 +91,9 @@ public class MicroprofileCDIExtension implements Extension {
 
     public void addConverter(@Observes final AfterBeanDiscovery abd, final 
BeanManager bm) {
         if(!types.isEmpty() && convBean!=null) {
-            abd.addBean(new ConverterBean(convBean, types));
+            abd.addBean(new BridgingConfigBean(convBean, types));
         }
     }
 
 
-    /**
-     * Internally used conversion bean.
-     */
-    private static class ConverterBean implements Bean<Object> {
-
-        private final Bean<Object> delegate;
-        private final Set<Type> types;
-
-        public ConverterBean(final Bean convBean, final Set<Type> types) {
-            this.types = types;
-            this.delegate = Objects.requireNonNull(convBean);
-        }
-
-        @Override
-        public Set<Type> getTypes() {
-            return types;
-        }
-
-        @Override
-        public Class<?> getBeanClass() {
-            return delegate.getBeanClass();
-        }
-
-        @Override
-        public Set<InjectionPoint> getInjectionPoints() {
-            return delegate.getInjectionPoints();
-        }
-
-        @Override
-        public String getName() {
-            return delegate.getName();
-        }
-
-        @Override
-        public Set<Annotation> getQualifiers() {
-            return delegate.getQualifiers();
-        }
-
-        @Override
-        public Class<? extends Annotation> getScope() {
-            return delegate.getScope();
-        }
-
-        @Override
-        public Set<Class<? extends Annotation>> getStereotypes() {
-            return delegate.getStereotypes();
-        }
-
-        @Override
-        public boolean isAlternative() {
-            return delegate.isAlternative();
-        }
-
-        @Override
-        public boolean isNullable() {
-            return delegate.isNullable();
-        }
-
-        @Override
-        public Object create(CreationalContext<Object> creationalContext) {
-            return delegate.create(creationalContext);
-        }
-
-        @Override
-        public void destroy(Object instance, CreationalContext<Object> 
creationalContext) {
-            delegate.destroy(instance, creationalContext);
-        }
-    }
-
 }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/88b39eff/microprofile/src/main/java/org/apache/tamaya/microprofile/cdi/MicroprofileConfigurationProducer.java
----------------------------------------------------------------------
diff --git 
a/microprofile/src/main/java/org/apache/tamaya/microprofile/cdi/MicroprofileConfigurationProducer.java
 
b/microprofile/src/main/java/org/apache/tamaya/microprofile/cdi/MicroprofileConfigurationProducer.java
index 1f2e397..e4bbf6b 100644
--- 
a/microprofile/src/main/java/org/apache/tamaya/microprofile/cdi/MicroprofileConfigurationProducer.java
+++ 
b/microprofile/src/main/java/org/apache/tamaya/microprofile/cdi/MicroprofileConfigurationProducer.java
@@ -26,10 +26,10 @@ import org.eclipse.microprofile.config.spi.ConfigBuilder;
 import org.eclipse.microprofile.config.spi.ConfigProviderResolver;
 
 import javax.enterprise.context.ApplicationScoped;
-import javax.enterprise.inject.Any;
 import javax.enterprise.inject.Produces;
 import javax.enterprise.inject.spi.InjectionPoint;
 import java.lang.reflect.AnnotatedElement;
+import java.lang.reflect.Type;
 import java.util.List;
 import java.util.logging.Level;
 import java.util.logging.Logger;
@@ -50,26 +50,43 @@ public class MicroprofileConfigurationProducer {
 
         // unless the extension is not installed, this should never happen 
because the extension
         // enforces the resolvability of the config
-        Configuration config = ConfigurationProvider.getConfiguration();
-        final Class<?> toType = (Class<?>) 
injectionPoint.getAnnotated().getBaseType();
+
         String defaultTextValue = annotation.defaultValue().isEmpty() ? null : 
annotation.defaultValue();
-        String textValue = config.get(key);
+        ConversionContext conversionContext = createConversionContext(key, 
injectionPoint);
+        Object value = resolveValue(defaultTextValue, conversionContext, 
injectionPoint);
+        if (value == null) {
+            throw new ConfigException(String.format(
+                    "Can't resolve any of the possible config keys: %s to the 
required target type: %s, supported formats: %s",
+                    key, conversionContext.getTargetType(), 
conversionContext.getSupportedFormats().toString()));
+        }
+        LOGGER.finest(String.format("Injecting %s for key %s in class %s", 
key, value.toString(), injectionPoint.toString()));
+        return value;
+    }
+
+    static ConversionContext createConversionContext(String key, 
InjectionPoint injectionPoint) {
+        final Type targetType = injectionPoint.getAnnotated().getBaseType();
+        Configuration config = ConfigurationProvider.getConfiguration();
         ConversionContext.Builder builder = new 
ConversionContext.Builder(config,
-                ConfigurationProvider.getConfiguration().getContext(), key, 
TypeLiteral.of(toType));
+                ConfigurationProvider.getConfiguration().getContext(), key, 
TypeLiteral.of(targetType));
         if (injectionPoint.getMember() instanceof AnnotatedElement) {
             builder.setAnnotatedElement((AnnotatedElement) 
injectionPoint.getMember());
         }
-        ConversionContext conversionContext = builder.build();
+        return builder.build();
+    }
+
+    static Object resolveValue(String defaultTextValue, ConversionContext 
context, InjectionPoint injectionPoint) {
+        Configuration config = ConfigurationProvider.getConfiguration();
+        String textValue = config.get(context.getKey());
         if (textValue == null) {
             textValue = defaultTextValue;
         }
         Object value = null;
         if (textValue != null) {
-            List<PropertyConverter<Object>> converters = 
ConfigurationProvider.getConfiguration().getContext()
-                    .getPropertyConverters(TypeLiteral.of(toType));
+            List<PropertyConverter> converters = 
ConfigurationProvider.getConfiguration().getContext()
+                    
.getPropertyConverters((TypeLiteral)context.getTargetType());
             for (PropertyConverter<Object> converter : converters) {
                 try {
-                    value = converter.convert(textValue, conversionContext);
+                    value = converter.convert(textValue, context);
                     if (value != null) {
                         LOGGER.log(Level.FINEST, "Parsed default value from '" 
+ textValue + "' into " +
                                 injectionPoint);
@@ -81,12 +98,6 @@ public class MicroprofileConfigurationProducer {
                 }
             }
         }
-        if (value == null) {
-            throw new ConfigException(String.format(
-                    "Can't resolve any of the possible config keys: %s to the 
required target type: %s, supported formats: %s",
-                    key, toType.getName(), 
conversionContext.getSupportedFormats().toString()));
-        }
-        LOGGER.finest(String.format("Injecting %s for key %s in class %s", 
key, value.toString(), injectionPoint.toString()));
         return value;
     }
 
@@ -100,4 +111,26 @@ public class MicroprofileConfigurationProducer {
         return ConfigProviderResolver.instance().getBuilder();
     }
 
+//    @Produces
+//    @ConfigProperty
+//    public Provider getConfiguredProvider(InjectionPoint injectionPoint){
+//        final ConfigProperty annotation = 
injectionPoint.getAnnotated().getAnnotation(ConfigProperty.class);
+//        String key = annotation.name();
+//
+//        // unless the extension is not installed, this should never happen 
because the extension
+//        // enforces the resolvability of the config
+//
+//        String defaultTextValue = annotation.defaultValue().isEmpty() ? null 
: annotation.defaultValue();
+//        ConversionContext conversionContext = createConversionContext(key, 
injectionPoint);
+//        return () -> {
+//            Object value = resolveValue(defaultTextValue, conversionContext, 
injectionPoint);
+//            if (value == null) {
+//                throw new ConfigException(String.format(
+//                        "Can't resolve any of the possible config keys: %s 
to the required target type: %s, supported formats: %s",
+//                        key, conversionContext.getTargetType(), 
conversionContext.getSupportedFormats().toString()));
+//            }
+//            return value;
+//        };
+//    }
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/88b39eff/microprofile/src/main/java/org/apache/tamaya/microprofile/converter/ProviderConverter.java
----------------------------------------------------------------------
diff --git 
a/microprofile/src/main/java/org/apache/tamaya/microprofile/converter/ProviderConverter.java
 
b/microprofile/src/main/java/org/apache/tamaya/microprofile/converter/ProviderConverter.java
index 1548999..d50cba9 100644
--- 
a/microprofile/src/main/java/org/apache/tamaya/microprofile/converter/ProviderConverter.java
+++ 
b/microprofile/src/main/java/org/apache/tamaya/microprofile/converter/ProviderConverter.java
@@ -23,6 +23,8 @@ import org.apache.tamaya.spi.ConversionContext;
 import org.apache.tamaya.spi.PropertyConverter;
 
 import javax.inject.Provider;
+import java.lang.reflect.Type;
+import java.util.Optional;
 import java.util.logging.Logger;
 
 /**
@@ -34,11 +36,15 @@ public class ProviderConverter implements 
PropertyConverter<Provider> {
 
     @Override
     public Provider<?> convert(String value, ConversionContext context) {
-        TypeLiteral<Provider> target = 
(TypeLiteral<Provider>)context.getTargetType();
+        TypeLiteral<Optional> target = 
(TypeLiteral<Optional>)context.getTargetType();
+        Type targetType = TypeLiteral.getTypeParameters(target.getType())[0];
         return () -> {
             Object result = null;
+            if(String.class.equals(targetType)){
+                result = value;
+            }
             for(PropertyConverter 
pv:context.getConfigurationContext().getPropertyConverters(
-                    TypeLiteral.of(target.getType()))){
+                    TypeLiteral.of(targetType))){
                 result = pv.convert(value, context);
                 if(result!=null){
                     break;

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/88b39eff/microprofile/src/main/resources/beans.xml
----------------------------------------------------------------------
diff --git a/microprofile/src/main/resources/beans.xml 
b/microprofile/src/main/resources/beans.xml
new file mode 100644
index 0000000..9b07802
--- /dev/null
+++ b/microprofile/src/main/resources/beans.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+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 current 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.
+-->
+<beans xmlns="http://java.sun.com/xml/ns/javaee"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+       xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://jboss.org/schema/cdi/beans_1_0.xsd";>
+
+
+</beans>
+

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/88b39eff/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/AutoDiscoveredConfigSourceTest.java
----------------------------------------------------------------------
diff --git 
a/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/AutoDiscoveredConfigSourceTest.java
 
b/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/AutoDiscoveredConfigSourceTest.java
index f321f54..57cbc5d 100644
--- 
a/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/AutoDiscoveredConfigSourceTest.java
+++ 
b/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/AutoDiscoveredConfigSourceTest.java
@@ -19,9 +19,9 @@
  
*******************************************************************************/
 package org.apache.tamaya.microprofile.imported;
 
+import org.apache.tamaya.microprofile.imported.converters.Pizza;
 import org.eclipse.microprofile.config.Config;
 import org.eclipse.microprofile.config.spi.ConfigProviderResolver;
-import org.eclipse.microprofile.config.tck.converters.Pizza;
 import org.junit.Assert;
 import org.junit.Test;
 

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/88b39eff/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/CDIPlainInjectionTest.java
----------------------------------------------------------------------
diff --git 
a/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/CDIPlainInjectionTest.java
 
b/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/CDIPlainInjectionTest.java
index 170f55b..61c67fb 100644
--- 
a/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/CDIPlainInjectionTest.java
+++ 
b/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/CDIPlainInjectionTest.java
@@ -19,10 +19,18 @@
 
 package org.apache.tamaya.microprofile.imported;
 
+import org.apache.openejb.jee.EjbJar;
+import org.apache.openejb.junit.ApplicationComposer;
+import org.apache.openejb.testing.Classes;
+import org.apache.openejb.testing.Module;
+import org.apache.tamaya.microprofile.cdi.MicroprofileCDIExtension;
+import org.apache.tamaya.microprofile.cdi.MicroprofileConfigurationProducer;
 import org.eclipse.microprofile.config.inject.ConfigProperty;
 import org.eclipse.microprofile.config.spi.ConfigSource;
-import org.jboss.arquillian.testng.Arquillian;
-import org.testng.annotations.Test;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
 
 import javax.enterprise.context.Dependent;
 import javax.enterprise.inject.spi.CDI;
@@ -31,20 +39,43 @@ import javax.inject.Provider;
 import java.util.HashMap;
 import java.util.Map;
 
-import static 
org.eclipse.microprofile.config.tck.matchers.AdditionalMatchers.floatCloseTo;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.*;
+import static org.junit.Assert.assertEquals;
 
 /**
  * Test cases for CDI-based API that test retrieving values from the 
configuration.
  * The tests depend only on CDI 1.2.
  * @author Ondrej Mihalyi
  */
-public class CDIPlainInjectionTest extends Arquillian{
+@RunWith(ApplicationComposer.class)
+public class CDIPlainInjectionTest{
 
     private static final String DEFAULT_PROPERTY_BEAN_KEY =
             
"org.eclipse.microprofile.config.tck.CDIPlainInjectionTest.defaultPropertyBean.configProperty";
 
+    static{
+        System.setProperty("my.string.property", "text");
+        System.setProperty("my.boolean.property", "true");
+        System.setProperty("my.int.property", "5");
+        System.setProperty("my.long.property", "10");
+        System.setProperty("my.float.property", "10.5");
+        System.setProperty("my.double.property", "11.5");
+        System.setProperty(DEFAULT_PROPERTY_BEAN_KEY, "pathConfigValue");
+    }
+
+    @Module
+    @Classes(cdi = true, value = {
+            SimpleValuesBean.class,  DynamicValuesBean.class, 
DefaultPropertyBean.class,
+            MicroprofileCDIExtension.class,
+            MicroprofileConfigurationProducer.class
+    })
+    public EjbJar jar() {
+        ensure_all_property_values_are_defined();
+        return new EjbJar("config");
+    }
+
+
     @Test
     public void can_inject_simple_values_when_defined() {
         ensure_all_property_values_are_defined();
@@ -55,13 +86,13 @@ public class CDIPlainInjectionTest extends Arquillian{
         assertThat(bean.booleanProperty, is(true));
         assertThat(bean.intProperty, is(equalTo(5)));
         assertThat(bean.longProperty, is(equalTo(10L)));
-        assertThat(bean.floatProperty, is(floatCloseTo(10.5f, 0.1f)));
+        assertEquals(bean.floatProperty, 10.5f, 0.1f);
         assertThat(bean.doubleProperty, is(closeTo(11.5, 0.1)));
 
         assertThat(bean.booleanObjProperty, is(true));
         assertThat(bean.integerProperty, is(equalTo(5)));
         assertThat(bean.longObjProperty, is(equalTo(10L)));
-        assertThat(bean.floatObjProperty, is(floatCloseTo(10.5f, 0.1f)));
+        assertEquals(bean.floatObjProperty, 10.5f, 0.1f);
         assertThat(bean.doubleObjProperty, is(closeTo(11.5, 0.1)));
 
         assertThat(bean.doublePropertyWithDefaultValue, is(closeTo(3.1415, 
0.1)));
@@ -101,7 +132,8 @@ public class CDIPlainInjectionTest extends Arquillian{
         System.setProperty(DEFAULT_PROPERTY_BEAN_KEY, "pathConfigValue");
     }
 
-    private void clear_all_property_values() {
+    @After
+    public void clear_all_property_values() {
         System.getProperties().remove("my.string.property");
         System.getProperties().remove("my.boolean.property");
         System.getProperties().remove("my.int.property");

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/88b39eff/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/CdiOptionalInjectionTest.java
----------------------------------------------------------------------
diff --git 
a/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/CdiOptionalInjectionTest.java
 
b/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/CdiOptionalInjectionTest.java
index ee6d158..e156644 100644
--- 
a/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/CdiOptionalInjectionTest.java
+++ 
b/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/CdiOptionalInjectionTest.java
@@ -19,44 +19,42 @@
  */
 package org.apache.tamaya.microprofile.imported;
 
-import org.eclipse.microprofile.config.tck.OptionalValuesBean;
-import org.jboss.arquillian.container.test.api.Deployment;
-import org.jboss.arquillian.testng.Arquillian;
-import org.jboss.shrinkwrap.api.ShrinkWrap;
-import org.jboss.shrinkwrap.api.asset.EmptyAsset;
-import org.jboss.shrinkwrap.api.asset.StringAsset;
-import org.jboss.shrinkwrap.api.spec.JavaArchive;
-import org.jboss.shrinkwrap.api.spec.WebArchive;
-import org.testng.Assert;
-import org.testng.annotations.Test;
+import org.apache.deltaspike.testcontrol.api.TestControl;
+import org.apache.deltaspike.testcontrol.api.junit.CdiTestRunner;
+import org.apache.openejb.jee.EjbJar;
+import org.apache.openejb.junit.ApplicationComposer;
+import org.apache.openejb.testing.Classes;
+import org.apache.openejb.testing.Module;
+import org.apache.tamaya.microprofile.cdi.MicroprofileCDIExtension;
+import org.apache.tamaya.microprofile.cdi.MicroprofileConfigurationProducer;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
 
+import javax.enterprise.context.ApplicationScoped;
+import javax.enterprise.context.RequestScoped;
 import javax.inject.Inject;
+import javax.inject.Singleton;
 
 /**
  * Verify injection of {@code Optional<T>} fields.
  *
  * @author <a href="mailto:strub...@apache.org";>Mark Struberg</a>
  */
-public class CdiOptionalInjectionTest extends Arquillian{
+@RunWith(ApplicationComposer.class)
+public class CdiOptionalInjectionTest{
 
-    private @Inject OptionalValuesBean optionalValuesBean;
-
-    @Deployment
-    public static WebArchive deploy() {
-        JavaArchive testJar = ShrinkWrap
-                .create(JavaArchive.class, "cdiOptionalInjectionTest.jar")
-                
.addClasses(org.eclipse.microprofile.config.tck.CdiOptionalInjectionTest.class, 
OptionalValuesBean.class)
-                .addAsManifestResource(new 
StringAsset("my.optional.int.property=1234\nmy.optional.string.property=hello"),
-                        "microprofile-config.properties")
-                .addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml")
-                .as(JavaArchive.class);
-
-        WebArchive war = ShrinkWrap
-                .create(WebArchive.class, "cdiOptionalInjectionTest.war")
-                .addAsLibrary(testJar);
-        return war;
+    @Module
+    @Classes(cdi = true, value = {
+            OptionalValuesBean.class,
+            MicroprofileCDIExtension.class,
+            MicroprofileConfigurationProducer.class
+    })
+    public EjbJar jar() {
+        return new EjbJar("config");
     }
 
+    private @Inject OptionalValuesBean optionalValuesBean;
 
     @Test
     public void testOptionalInjection() {

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/88b39eff/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/ConfigProviderTest.java
----------------------------------------------------------------------
diff --git 
a/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/ConfigProviderTest.java
 
b/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/ConfigProviderTest.java
index 4feb736..d7368ea 100644
--- 
a/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/ConfigProviderTest.java
+++ 
b/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/ConfigProviderTest.java
@@ -21,18 +21,11 @@ package org.apache.tamaya.microprofile.imported;
 import org.eclipse.microprofile.config.Config;
 import org.eclipse.microprofile.config.ConfigProvider;
 import org.eclipse.microprofile.config.spi.ConfigSource;
-import org.eclipse.microprofile.config.tck.base.AbstractTest;
 import org.hamcrest.CoreMatchers;
 import org.hamcrest.MatcherAssert;
-import org.jboss.arquillian.container.test.api.Deployment;
-import org.jboss.shrinkwrap.api.ShrinkWrap;
-import org.jboss.shrinkwrap.api.asset.EmptyAsset;
-import org.jboss.shrinkwrap.api.spec.JavaArchive;
-import org.jboss.shrinkwrap.api.spec.WebArchive;
 import org.junit.Assert;
 import org.junit.Test;
 
-import javax.inject.Inject;
 import java.io.*;
 import java.util.Map;
 import java.util.NoSuchElementException;
@@ -46,23 +39,6 @@ public class ConfigProviderTest {
 
     private Config config = ConfigProvider.getConfig();
 
-    @Deployment
-    public static WebArchive deploy() {
-        JavaArchive testJar = ShrinkWrap
-                .create(JavaArchive.class, "configProviderTest.jar")
-                .addPackage(AbstractTest.class.getPackage())
-                
.addClass(org.eclipse.microprofile.config.tck.ConfigProviderTest.class)
-                .addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml")
-                .as(JavaArchive.class);
-
-        AbstractTest.addFile(testJar, 
"META-INF/microprofile-config.properties");
-
-        WebArchive war = ShrinkWrap
-                .create(WebArchive.class, "configProviderTest.war")
-                .addAsLibrary(testJar);
-        return war;
-    }
-
     @Test
     public void testEnvironmentConfigSource() {
         Map<String, String> env = System.getenv();
@@ -76,7 +52,10 @@ public class ConfigProviderTest {
         Properties properties = System.getProperties();
 
         for (Map.Entry<Object, Object> propEntry : properties.entrySet()) {
-            String propValue = (String) propEntry.getValue();
+            if(!String.class.equals(propEntry.getValue().getClass())){
+                continue;
+            }
+            String propValue = propEntry.getValue().toString();
             if (propValue != null && propValue.length() > 0) {
                 Assert.assertEquals(propValue, config.getValue((String) 
propEntry.getKey(), String.class));
             }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/88b39eff/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/ConverterTest.java
----------------------------------------------------------------------
diff --git 
a/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/ConverterTest.java
 
b/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/ConverterTest.java
index a4e887c..c513957 100644
--- 
a/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/ConverterTest.java
+++ 
b/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/ConverterTest.java
@@ -19,9 +19,9 @@
  */
 package org.apache.tamaya.microprofile.imported;
 
+import org.apache.tamaya.microprofile.imported.converters.Duck;
 import org.eclipse.microprofile.config.Config;
 import org.eclipse.microprofile.config.ConfigProvider;
-import org.eclipse.microprofile.config.tck.converters.Duck;
 import org.junit.Assert;
 import org.junit.Test;
 

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/88b39eff/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/CustomConfigSourceTest.java
----------------------------------------------------------------------
diff --git 
a/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/CustomConfigSourceTest.java
 
b/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/CustomConfigSourceTest.java
index 79a62f6..2fe702e 100644
--- 
a/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/CustomConfigSourceTest.java
+++ 
b/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/CustomConfigSourceTest.java
@@ -24,9 +24,6 @@ import org.eclipse.microprofile.config.ConfigProvider;
 import org.junit.Assert;
 import org.junit.Test;
 
-import javax.inject.Inject;
-
-import static org.eclipse.microprofile.config.tck.base.AbstractTest.addFile;
 
 /**
  * @author <a href="mailto:strub...@apache.org";>Mark Struberg</a>
@@ -35,24 +32,6 @@ public class CustomConfigSourceTest {
 
     private Config config = ConfigProvider.getConfig();
 
-//    @Deployment
-//    public static WebArchive deploy() {
-//        JavaArchive testJar = ShrinkWrap
-//                .create(JavaArchive.class, "customConfigSourceTest.jar")
-//                
.addClasses(org.eclipse.microprofile.config.tck.CustomConfigSourceTest.class, 
CustomDbConfigSource.class, CustomConfigSourceProvider.class)
-//                .addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml")
-//                .addAsServiceProvider(ConfigSource.class, 
CustomDbConfigSource.class)
-//                .addAsServiceProvider(ConfigSourceProvider.class, 
CustomConfigSourceProvider.class)
-//                .as(JavaArchive.class);
-//
-//        addFile(testJar, "META-INF/microprofile-config.properties");
-//
-//        WebArchive war = ShrinkWrap
-//                .create(WebArchive.class, "customConfigSourceTest.war")
-//                .addAsLibrary(testJar);
-//        return war;
-//    }
-
 
     @Test
     public void testConfigSourceProvider() {

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/88b39eff/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/OptionalValuesBean.java
----------------------------------------------------------------------
diff --git 
a/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/OptionalValuesBean.java
 
b/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/OptionalValuesBean.java
index bc9df03..397116e 100644
--- 
a/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/OptionalValuesBean.java
+++ 
b/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/OptionalValuesBean.java
@@ -28,9 +28,10 @@ import org.eclipse.microprofile.config.inject.ConfigProperty;
 
 import javax.enterprise.context.Dependent;
 import javax.inject.Inject;
+import javax.inject.Singleton;
 import java.util.Optional;
 
-@Dependent
+@Singleton
 public class OptionalValuesBean {
     @Inject
     @ConfigProperty(name="my.optional.int.property")

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/88b39eff/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/base/AbstractTest.java
----------------------------------------------------------------------
diff --git 
a/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/base/AbstractTest.java
 
b/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/base/AbstractTest.java
deleted file mode 100644
index 0c9d3cc..0000000
--- 
a/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/base/AbstractTest.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (c) 2016-2017 Contributors to the Eclipse Foundation
- *
- * See the NOTICE file(s) distributed with this work for additional
- * information regarding copyright ownership.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * You may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.tamaya.microprofile.imported.base;
-
-import org.jboss.shrinkwrap.api.asset.UrlAsset;
-import org.jboss.shrinkwrap.api.spec.JavaArchive;
-
-
-/**
- * @author <a href="mailto:strub...@apache.org";>Mark Struberg</a>
- */
-public class AbstractTest {
-
-
-    public static void addFile(JavaArchive archive, String originalPath) {
-        archive.addAsResource(new 
UrlAsset(Thread.currentThread().getContextClassLoader().getResource("internal/" 
+ originalPath)),
-                originalPath);
-    }
-
-    public static void addFile(JavaArchive archive, String originalFile, 
String targetFile) {
-        archive.addAsResource(new 
UrlAsset(Thread.currentThread().getContextClassLoader().getResource(originalFile)),
-                targetFile);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/88b39eff/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/broken/ConfigOwner.java
----------------------------------------------------------------------
diff --git 
a/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/broken/ConfigOwner.java
 
b/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/broken/ConfigOwner.java
index e6763b2..fbdd875 100644
--- 
a/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/broken/ConfigOwner.java
+++ 
b/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/broken/ConfigOwner.java
@@ -23,17 +23,17 @@ import 
org.eclipse.microprofile.config.inject.ConfigProperty;
 
 import javax.enterprise.context.RequestScoped;
 import javax.inject.Inject;
-
-/**
- * A bean contains a config property injection
- *
- * @author <a href="mailto:strub...@apache.org";>Mark Struberg</a>
- * @author <a href="mailto:emiji...@uk.ibm.com";>Emily Jiang</a>
- */
-@RequestScoped
-public class ConfigOwner {
-
-    @Inject
-    @ConfigProperty(name="my.long.value")
-    private Long configValue;
-}
+//
+///**
+// * A bean contains a config property injection
+// *
+// * @author <a href="mailto:strub...@apache.org";>Mark Struberg</a>
+// * @author <a href="mailto:emiji...@uk.ibm.com";>Emily Jiang</a>
+// */
+//@RequestScoped
+//public class ConfigOwner {
+//
+//    @Inject
+//    @ConfigProperty(name="my.long.value")
+//    private Long configValue;
+//}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/88b39eff/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/broken/CustomConverterBean.java
----------------------------------------------------------------------
diff --git 
a/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/broken/CustomConverterBean.java
 
b/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/broken/CustomConverterBean.java
index 51b7028..30ec35b 100644
--- 
a/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/broken/CustomConverterBean.java
+++ 
b/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/broken/CustomConverterBean.java
@@ -31,16 +31,16 @@ import javax.inject.Inject;
  * @author <a href="mailto:emiji...@uk.ibm.com";>Emily Jiang</a>
  */
 
-public class CustomConverterBean {
-
-    @RequestScoped
-    public static class ConfigOwner {
-
-        @Inject
-        @ConfigProperty(name="my.customtype.value")
-        private CustomType configValue;
-    }
-
-    public static class CustomType {
-    }
-}
+//public class CustomConverterBean {
+//
+//    @RequestScoped
+//    public static class ConfigOwner {
+//
+//        @Inject
+//        @ConfigProperty(name="my.customtype.value")
+//        private CustomType configValue;
+//    }
+//
+//    public static class CustomType {
+//    }
+//}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/88b39eff/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/broken/MissingConverterOnInstanceInjectionTest.java
----------------------------------------------------------------------
diff --git 
a/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/broken/MissingConverterOnInstanceInjectionTest.java
 
b/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/broken/MissingConverterOnInstanceInjectionTest.java
deleted file mode 100644
index 863594c..0000000
--- 
a/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/broken/MissingConverterOnInstanceInjectionTest.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright (c) 2016-2017 Contributors to the Eclipse Foundation
- *
- * See the NOTICE file(s) distributed with this work for additional
- * information regarding copyright ownership.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * You may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.tamaya.microprofile.imported.broken;
-
-import org.jboss.arquillian.container.test.api.Deployment;
-import org.jboss.arquillian.container.test.api.ShouldThrowException;
-import org.jboss.arquillian.testng.Arquillian;
-import org.jboss.shrinkwrap.api.ShrinkWrap;
-import org.jboss.shrinkwrap.api.asset.EmptyAsset;
-import org.jboss.shrinkwrap.api.asset.StringAsset;
-import org.jboss.shrinkwrap.api.spec.JavaArchive;
-import org.jboss.shrinkwrap.api.spec.WebArchive;
-import org.testng.annotations.Test;
-
-import javax.enterprise.inject.spi.DeploymentException;
-
-/**
- * Verify that a Converter exists which can handle the configured string.
- *
- * @author <a href="mailto:strub...@apache.org";>Mark Struberg</a>
- */
-public class MissingConverterOnInstanceInjectionTest extends Arquillian {
-
-    @ShouldThrowException(DeploymentException.class)
-    @Deployment
-    public static WebArchive deploy() {
-        JavaArchive testJar = ShrinkWrap
-                .create(JavaArchive.class, 
"missingConverterOnInstanceInjectionTest.jar")
-                .addClass(CustomConverterBean.class)
-                .addAsManifestResource(new 
StringAsset("my.customtype.value=xxxxx"), "microprofile-config.properties")
-                .addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml")
-                .as(JavaArchive.class);
-
-        WebArchive war = ShrinkWrap
-                .create(WebArchive.class, 
"missingConverterOnInstanceInjectionTest.war")
-                .addAsLibrary(testJar);
-        return war;
-    }
-
-    @Test
-    public void test() {
-    }
-
-    
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/88b39eff/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/broken/MissingValueOnInstanceInjectionTest.java
----------------------------------------------------------------------
diff --git 
a/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/broken/MissingValueOnInstanceInjectionTest.java
 
b/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/broken/MissingValueOnInstanceInjectionTest.java
deleted file mode 100644
index 776000a..0000000
--- 
a/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/broken/MissingValueOnInstanceInjectionTest.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (c) 2016-2017 Contributors to the Eclipse Foundation
- *
- * See the NOTICE file(s) distributed with this work for additional
- * information regarding copyright ownership.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * You may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.tamaya.microprofile.imported.broken;
-
-import org.jboss.arquillian.container.test.api.Deployment;
-import org.jboss.arquillian.container.test.api.ShouldThrowException;
-import org.jboss.arquillian.testng.Arquillian;
-import org.jboss.shrinkwrap.api.ShrinkWrap;
-import org.jboss.shrinkwrap.api.asset.EmptyAsset;
-import org.jboss.shrinkwrap.api.spec.JavaArchive;
-import org.jboss.shrinkwrap.api.spec.WebArchive;
-import org.testng.annotations.Test;
-
-import javax.enterprise.inject.spi.DeploymentException;
-
-/**
- * Verify that injectng a native value which is not configured will lead to a 
deployment error.
- *
- * @author <a href="mailto:strub...@apache.org";>Mark Struberg</a>
- */
-public class MissingValueOnInstanceInjectionTest extends Arquillian {
-
-    @ShouldThrowException(DeploymentException.class)
-    @Deployment
-    public static WebArchive deploy() {
-        JavaArchive testJar = ShrinkWrap
-                .create(JavaArchive.class, 
"missingValueOnInstanceInjectionTest.jar")
-                .addClass(ConfigOwner.class)
-                .addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml")
-                .as(JavaArchive.class);
-
-        WebArchive war = ShrinkWrap
-                .create(WebArchive.class, 
"missingValueOnInstanceInjectionTest.war")
-                .addAsLibrary(testJar);
-        return war;
-    }
-
-    @Test
-    public void test() {
-    }
-
-
-    
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/88b39eff/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/broken/WrongConverterOnInstanceInjectionTest.java
----------------------------------------------------------------------
diff --git 
a/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/broken/WrongConverterOnInstanceInjectionTest.java
 
b/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/broken/WrongConverterOnInstanceInjectionTest.java
deleted file mode 100644
index 5075ef2..0000000
--- 
a/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/broken/WrongConverterOnInstanceInjectionTest.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (c) 2016-2017 Contributors to the Eclipse Foundation
- *
- * See the NOTICE file(s) distributed with this work for additional
- * information regarding copyright ownership.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * You may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.tamaya.microprofile.imported.broken;
-
-import org.jboss.arquillian.container.test.api.Deployment;
-import org.jboss.arquillian.container.test.api.ShouldThrowException;
-import org.jboss.arquillian.testng.Arquillian;
-import org.jboss.shrinkwrap.api.ShrinkWrap;
-import org.jboss.shrinkwrap.api.asset.EmptyAsset;
-import org.jboss.shrinkwrap.api.asset.StringAsset;
-import org.jboss.shrinkwrap.api.spec.JavaArchive;
-import org.jboss.shrinkwrap.api.spec.WebArchive;
-import org.testng.annotations.Test;
-
-import javax.enterprise.inject.spi.DeploymentException;
-
-/**
- * Verify that injectng a native value also has a valid converter which can 
handle the configured string.
- *
- * @author <a href="mailto:strub...@apache.org";>Mark Struberg</a>
- */
-public class WrongConverterOnInstanceInjectionTest extends Arquillian {
-
-    @ShouldThrowException(DeploymentException.class)
-    @Deployment
-    public static WebArchive deploy() {
-        JavaArchive testJar = ShrinkWrap
-                .create(JavaArchive.class, 
"wrongConverterOnInstanceInjectionTest.jar")
-                .addClass(ConfigOwner.class)
-                .addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml")
-                .addAsManifestResource(new StringAsset("my.long.value=xxxxx"), 
"microprofile-config.properties")
-                .as(JavaArchive.class);
-
-        WebArchive war = ShrinkWrap
-                .create(WebArchive.class, 
"wrongConverterOnInstanceInjectionTest.war")
-                .addAsLibrary(testJar);
-        return war;
-    }
-
-    @Test
-    public void test() {
-    }
-
-
-    
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/88b39eff/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/converters/Pizza.java
----------------------------------------------------------------------
diff --git 
a/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/converters/Pizza.java
 
b/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/converters/Pizza.java
index 147756a..bba1100 100644
--- 
a/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/converters/Pizza.java
+++ 
b/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/converters/Pizza.java
@@ -27,12 +27,9 @@ public class Pizza {
     private String size;
 
 
-    public Pizza(String... parts) {
-        if (parts.length ==2) {
-            size = parts[0];
-            flavor = parts[1];
-        }
-        
+    public Pizza(String size, String flavor) {
+        this.size = size;
+        this.flavor = flavor;
     }
 
     public String getSize() {

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/88b39eff/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/converters/PizzaConverter.java
----------------------------------------------------------------------
diff --git 
a/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/converters/PizzaConverter.java
 
b/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/converters/PizzaConverter.java
index 0cdb388..9717405 100644
--- 
a/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/converters/PizzaConverter.java
+++ 
b/microprofile/src/test/java/org/apache/tamaya/microprofile/imported/converters/PizzaConverter.java
@@ -28,6 +28,7 @@ public class PizzaConverter implements Converter<Pizza> {
 
     @Override
     public Pizza convert(String value) {
-        return new Pizza(value.split(":"));
+        String[] parts = value.split(":");
+        return new Pizza(parts[0], parts[1]);
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/88b39eff/microprofile/src/test/java/org/apache/tamaya/microprofile/tck/TamayaConfigArchiveProcessor.java
----------------------------------------------------------------------
diff --git 
a/microprofile/src/test/java/org/apache/tamaya/microprofile/tck/TamayaConfigArchiveProcessor.java
 
b/microprofile/src/test/java/org/apache/tamaya/microprofile/tck/TamayaConfigArchiveProcessor.java
index d9caf5d..1620535 100644
--- 
a/microprofile/src/test/java/org/apache/tamaya/microprofile/tck/TamayaConfigArchiveProcessor.java
+++ 
b/microprofile/src/test/java/org/apache/tamaya/microprofile/tck/TamayaConfigArchiveProcessor.java
@@ -26,7 +26,6 @@ import org.apache.tamaya.spi.PropertyConverter;
 import org.eclipse.microprofile.config.spi.ConfigProviderResolver;
 import 
org.jboss.arquillian.container.test.spi.client.deployment.ApplicationArchiveProcessor;
 import org.jboss.arquillian.test.spi.TestClass;
-import org.jboss.arquillian.testenricher.cdi.container.CDIExtension;
 import org.jboss.shrinkwrap.api.Archive;
 import org.jboss.shrinkwrap.api.ShrinkWrap;
 import org.jboss.shrinkwrap.api.asset.EmptyAsset;
@@ -34,6 +33,7 @@ import org.jboss.shrinkwrap.api.spec.JavaArchive;
 import org.jboss.shrinkwrap.api.spec.WebArchive;
 import org.jboss.shrinkwrap.resolver.api.maven.Maven;
 
+import javax.enterprise.inject.spi.Extension;
 import java.io.File;
 
 /**
@@ -66,7 +66,7 @@ public class TamayaConfigArchiveProcessor implements 
ApplicationArchiveProcessor
                     .addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml")
                     .addAsServiceProvider(ConfigProviderResolver.class, 
MicroprofileConfigProviderResolver.class)
                     .addAsServiceProvider(PropertyConverter.class, 
ProviderConverter.class)
-                    .addAsServiceProvider(CDIExtension.class, 
MicroprofileCDIExtension.class);
+                    .addAsServiceProvider(Extension.class, 
MicroprofileCDIExtension.class);
             ((WebArchive) applicationArchive).addAsLibraries(
                     configJar)
                     .addAsLibraries(apiLibs)

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/88b39eff/microprofile/src/test/resources/META-INF/beans.xml
----------------------------------------------------------------------
diff --git a/microprofile/src/test/resources/META-INF/beans.xml 
b/microprofile/src/test/resources/META-INF/beans.xml
new file mode 100644
index 0000000..adee378
--- /dev/null
+++ b/microprofile/src/test/resources/META-INF/beans.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+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 current 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.
+-->
+<beans xmlns="http://java.sun.com/xml/ns/javaee"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+       xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://jboss.org/schema/cdi/beans_1_0.xsd";>
+
+</beans>
+

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/88b39eff/microprofile/src/test/resources/META-INF/microprofile-config.properties
----------------------------------------------------------------------
diff --git 
a/microprofile/src/test/resources/META-INF/microprofile-config.properties 
b/microprofile/src/test/resources/META-INF/microprofile-config.properties
index 6895df3..39298a8 100644
--- a/microprofile/src/test/resources/META-INF/microprofile-config.properties
+++ b/microprofile/src/test/resources/META-INF/microprofile-config.properties
@@ -18,6 +18,8 @@
 # under the License.
 #
 
+my.optional.int.property=1234
+my.optional.string.property=hello
 
 tck.config.test.javaconfig.properties.key1=VALue1
 

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/88b39eff/microprofile/src/test/resources/META-INF/services/org.eclipse.microprofile.config.spi.Converter
----------------------------------------------------------------------
diff --git 
a/microprofile/src/test/resources/META-INF/services/org.eclipse.microprofile.config.spi.Converter
 
b/microprofile/src/test/resources/META-INF/services/org.eclipse.microprofile.config.spi.Converter
new file mode 100644
index 0000000..7d5dcd6
--- /dev/null
+++ 
b/microprofile/src/test/resources/META-INF/services/org.eclipse.microprofile.config.spi.Converter
@@ -0,0 +1,18 @@
+#
+# Copyright (c) 2016-2017 Mark Struberg and others
+#
+# Licensed 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.
+#
+
+org.apache.tamaya.microprofile.imported.converters.PizzaConverter
\ No newline at end of file

Reply via email to