Repository: incubator-tamaya-sandbox
Updated Branches:
  refs/heads/java8 4a63a4a4f -> b2c69a1b7


TAMAYA-260: Fixed Boolean conversion to comply with MP TCK.


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

Branch: refs/heads/java8
Commit: b2c69a1b71b73e8c0546bf46e5e290a583b38381
Parents: 4a63a4a
Author: anatole <anat...@apache.org>
Authored: Mon Aug 14 01:38:20 2017 +0200
Committer: anatole <anat...@apache.org>
Committed: Mon Aug 14 01:38:20 2017 +0200

----------------------------------------------------------------------
 microprofile/pom.xml                            |  5 +++++
 .../tamaya/microprofile/MicroprofileConfig.java | 20 +++++++++++++++++++-
 .../microprofile/cdi/BridgingConfigBean.java    | 10 ----------
 .../converter/BooleanAsIntegerConverterFix.java | 13 +++++++------
 .../tck/TamayaConfigArchiveProcessor.java       |  5 +++--
 5 files changed, 34 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/b2c69a1b/microprofile/pom.xml
----------------------------------------------------------------------
diff --git a/microprofile/pom.xml b/microprofile/pom.xml
index ff893b8..37bbb2b 100644
--- a/microprofile/pom.xml
+++ b/microprofile/pom.xml
@@ -77,6 +77,11 @@ under the License.
             <version>${tamaya-version}</version>
         </dependency>
         <dependency>
+            <groupId>org.apache.tamaya.ext</groupId>
+            <artifactId>tamaya-events</artifactId>
+            <version>${tamaya-version}</version>
+        </dependency>
+        <dependency>
             <groupId>org.eclipse.microprofile.config</groupId>
             <artifactId>microprofile-config-api</artifactId>
             <version>1.0</version>

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/b2c69a1b/microprofile/src/main/java/org/apache/tamaya/microprofile/MicroprofileConfig.java
----------------------------------------------------------------------
diff --git 
a/microprofile/src/main/java/org/apache/tamaya/microprofile/MicroprofileConfig.java
 
b/microprofile/src/main/java/org/apache/tamaya/microprofile/MicroprofileConfig.java
index 3dc4b34..61c3cdc 100644
--- 
a/microprofile/src/main/java/org/apache/tamaya/microprofile/MicroprofileConfig.java
+++ 
b/microprofile/src/main/java/org/apache/tamaya/microprofile/MicroprofileConfig.java
@@ -20,16 +20,21 @@ package org.apache.tamaya.microprofile;
 
 import org.apache.tamaya.ConfigException;
 import org.apache.tamaya.Configuration;
+import org.apache.tamaya.events.FrozenConfiguration;
 import org.apache.tamaya.spi.PropertySource;
 import org.eclipse.microprofile.config.Config;
 import org.eclipse.microprofile.config.spi.ConfigSource;
 
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.Serializable;
 import java.util.*;
 
 /**
  * Microprofile {@link ConfigSource} implementation that wraps a {@link 
PropertySource} instance.
  */
-public class MicroprofileConfig implements Config {
+public class MicroprofileConfig implements Config, Serializable {
 
     private Configuration delegate;
 
@@ -79,4 +84,17 @@ public class MicroprofileConfig implements Config {
                 "delegate=" + delegate +
                 '}';
     }
+
+    private void writeObject(ObjectOutputStream out) throws IOException{
+        if(!(this.delegate instanceof Serializable)){
+            out.writeObject(FrozenConfiguration.of(this.delegate));
+        }else {
+            out.writeObject(this.delegate);
+        }
+    }
+
+    private void readObject(ObjectInputStream in) throws IOException, 
ClassNotFoundException{
+        this.delegate = (Configuration)in.readObject();
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/b2c69a1b/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
index deb2496..a08f76f 100644
--- 
a/microprofile/src/main/java/org/apache/tamaya/microprofile/cdi/BridgingConfigBean.java
+++ 
b/microprofile/src/main/java/org/apache/tamaya/microprofile/cdi/BridgingConfigBean.java
@@ -85,16 +85,6 @@ final class BridgingConfigBean implements Bean<Object> {
 
     @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);
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/b2c69a1b/microprofile/src/main/java/org/apache/tamaya/microprofile/converter/BooleanAsIntegerConverterFix.java
----------------------------------------------------------------------
diff --git 
a/microprofile/src/main/java/org/apache/tamaya/microprofile/converter/BooleanAsIntegerConverterFix.java
 
b/microprofile/src/main/java/org/apache/tamaya/microprofile/converter/BooleanAsIntegerConverterFix.java
index debf6c7..1debc71 100644
--- 
a/microprofile/src/main/java/org/apache/tamaya/microprofile/converter/BooleanAsIntegerConverterFix.java
+++ 
b/microprofile/src/main/java/org/apache/tamaya/microprofile/converter/BooleanAsIntegerConverterFix.java
@@ -21,30 +21,31 @@ package org.apache.tamaya.microprofile.converter;
 import org.apache.tamaya.spi.ConversionContext;
 import org.apache.tamaya.spi.PropertyConverter;
 
+import javax.annotation.Priority;
 import java.util.Locale;
 import java.util.Objects;
 import java.util.logging.Logger;
 
 /**
- * Converter, converting from String to Boolean for zerpo = false, otherwise 
true.
+ * Converter, converting from String to Boolean for 1 = true, otherwise false.
  */
+@Priority(-1)
 public class BooleanAsIntegerConverterFix implements 
PropertyConverter<Boolean> {
 
     private final Logger LOG = Logger.getLogger(getClass().getName());
 
     @Override
     public Boolean convert(String value, ConversionContext context) {
-        context.addSupportedFormats(getClass(), "int != 0 (true)", "0 
(false)");
+        context.addSupportedFormats(getClass(), "'1' (true), otherwise 
false.");
         try{
             int val = Integer.parseInt(Objects.requireNonNull(value).trim());
-            if(val!=0) {
+            if(val==1) {
                 return Boolean.TRUE;
-            }else {
-                return Boolean.FALSE;
             }
+            return Boolean.FALSE;
         }catch(Exception e){
             // OK
-            return null;
+            return Boolean.FALSE;
         }
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/b2c69a1b/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 059f715..27c6013 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
@@ -21,6 +21,7 @@ package org.apache.tamaya.microprofile.tck;
 import org.apache.tamaya.microprofile.MicroprofileAdapter;
 import org.apache.tamaya.microprofile.MicroprofileConfigProviderResolver;
 import org.apache.tamaya.microprofile.cdi.MicroprofileCDIExtension;
+import org.apache.tamaya.microprofile.converter.BooleanAsIntegerConverterFix;
 import org.apache.tamaya.spi.PropertyConverter;
 import org.eclipse.microprofile.config.spi.ConfigProviderResolver;
 import 
org.jboss.arquillian.container.test.spi.client.deployment.ApplicationArchiveProcessor;
@@ -61,10 +62,10 @@ public class TamayaConfigArchiveProcessor implements 
ApplicationArchiveProcessor
                     .create(JavaArchive.class, "tamaya-config-impl.jar")
                     .addPackage(MicroprofileAdapter.class.getPackage())
                     .addPackage(MicroprofileCDIExtension.class.getPackage())
-//                    .addPackage(ProviderConverter.class.getPackage())
+                    
.addPackage(BooleanAsIntegerConverterFix.class.getPackage())
                     .addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml")
                     .addAsServiceProvider(ConfigProviderResolver.class, 
MicroprofileConfigProviderResolver.class)
-//                    .addAsServiceProvider(PropertyConverter.class, 
ProviderConverter.class)
+                    .addAsServiceProvider(PropertyConverter.class, 
BooleanAsIntegerConverterFix.class)
                     .addAsServiceProvider(Extension.class, 
MicroprofileCDIExtension.class);
             ((WebArchive) applicationArchive).addAsLibraries(
                     configJar)

Reply via email to