FELIX-6143 : Don't embedd javax.json and converter

git-svn-id: https://svn.apache.org/repos/asf/felix/trunk/configurator@1860746 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/pom.xml b/pom.xml
index ec55a41..3534ddb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -70,7 +70,6 @@
                         <Provide-Capability>
                             osgi.extender;osgi.extender="osgi.configurator";version:Version="1.0"
                         </Provide-Capability>
-                        <Embed-Dependency>geronimo-json_1.0_spec,johnzon-core,org.apache.felix.converter</Embed-Dependency>
                     </instructions>
                 </configuration>
             </plugin>
diff --git a/src/main/java/org/apache/felix/configurator/impl/json/JSONUtil.java b/src/main/java/org/apache/felix/configurator/impl/json/JSONUtil.java
index a2f63e8..dc1820e 100644
--- a/src/main/java/org/apache/felix/configurator/impl/json/JSONUtil.java
+++ b/src/main/java/org/apache/felix/configurator/impl/json/JSONUtil.java
@@ -36,6 +36,7 @@
 import java.util.Map;
 import java.util.Set;
 
+import javax.json.Json;
 import javax.json.JsonArray;
 import javax.json.JsonArrayBuilder;
 import javax.json.JsonNumber;
@@ -51,7 +52,6 @@
 import org.apache.felix.configurator.impl.model.Config;
 import org.apache.felix.configurator.impl.model.ConfigPolicy;
 import org.apache.felix.configurator.impl.model.ConfigurationFile;
-import org.apache.johnzon.core.JsonProviderImpl;
 import org.osgi.service.configurator.ConfiguratorConstants;
 
 public class JSONUtil {
@@ -261,43 +261,43 @@
     }
 
     public static JsonStructure build(final Object value) {
-        if ( value instanceof List ) {
+        if (value instanceof List) {
             @SuppressWarnings("unchecked")
-            final List<Object> list = (List<Object>)value;
-            final JsonArrayBuilder builder = new JsonProviderImpl().createArrayBuilder();
-            for(final Object obj : list) {
-                if ( obj instanceof String ) {
+            final List<Object> list = (List<Object>) value;
+            final JsonArrayBuilder builder = Json.createArrayBuilder();
+            for (final Object obj : list) {
+                if (obj instanceof String) {
                     builder.add(obj.toString());
-                } else if ( obj instanceof Long ) {
-                    builder.add((Long)obj);
-                } else if ( obj instanceof Double ) {
-                    builder.add((Double)obj);
-                } else if (obj instanceof Boolean ) {
-                    builder.add((Boolean)obj);
-                } else if ( obj instanceof Map ) {
+                } else if (obj instanceof Long) {
+                    builder.add((Long) obj);
+                } else if (obj instanceof Double) {
+                    builder.add((Double) obj);
+                } else if (obj instanceof Boolean) {
+                    builder.add((Boolean) obj);
+                } else if (obj instanceof Map) {
                     builder.add(build(obj));
-                } else if ( obj instanceof List ) {
+                } else if (obj instanceof List) {
                     builder.add(build(obj));
                 }
 
             }
             return builder.build();
-        } else if ( value instanceof Map ) {
+        } else if (value instanceof Map) {
             @SuppressWarnings("unchecked")
-            final Map<String, Object> map = (Map<String, Object>)value;
-            final JsonObjectBuilder builder = new JsonProviderImpl().createObjectBuilder();
-            for(final Map.Entry<String, Object> entry : map.entrySet()) {
-                if ( entry.getValue() instanceof String ) {
+            final Map<String, Object> map = (Map<String, Object>) value;
+            final JsonObjectBuilder builder = Json.createObjectBuilder();
+            for (final Map.Entry<String, Object> entry : map.entrySet()) {
+                if (entry.getValue() instanceof String) {
                     builder.add(entry.getKey(), entry.getValue().toString());
-                } else if ( entry.getValue() instanceof Long ) {
-                    builder.add(entry.getKey(), (Long)entry.getValue());
-                } else if ( entry.getValue() instanceof Double ) {
-                    builder.add(entry.getKey(), (Double)entry.getValue());
-                } else if ( entry.getValue() instanceof Boolean ) {
-                    builder.add(entry.getKey(), (Boolean)entry.getValue());
-                } else if ( entry.getValue() instanceof Map ) {
+                } else if (entry.getValue() instanceof Long) {
+                    builder.add(entry.getKey(), (Long) entry.getValue());
+                } else if (entry.getValue() instanceof Double) {
+                    builder.add(entry.getKey(), (Double) entry.getValue());
+                } else if (entry.getValue() instanceof Boolean) {
+                    builder.add(entry.getKey(), (Boolean) entry.getValue());
+                } else if (entry.getValue() instanceof Map) {
                     builder.add(entry.getKey(), build(entry.getValue()));
-                } else if ( entry.getValue() instanceof List ) {
+                } else if (entry.getValue() instanceof List) {
                     builder.add(entry.getKey(), build(entry.getValue()));
                 }
             }
@@ -326,11 +326,11 @@
             report.errors.add("Invalid JSON from " + name);
             return null;
         }
-        // Jonhzon is packaged in, so we can just use the impl type to avoid ClassLoader mess
-        try (final JsonReader reader = new JsonProviderImpl().createReader(new StringReader(contents)) ) {
+        try (final JsonReader reader = Json.createReader(new StringReader(contents))) {
+
             final JsonStructure obj = reader.read();
-            if ( obj != null && obj.getValueType() == ValueType.OBJECT ) {
-                return (JsonObject)obj;
+            if (obj != null && obj.getValueType() == ValueType.OBJECT) {
+                return (JsonObject) obj;
             }
             report.errors.add("Invalid JSON from " + name);
         }
diff --git a/src/main/java/org/apache/felix/configurator/impl/json/TypeConverter.java b/src/main/java/org/apache/felix/configurator/impl/json/TypeConverter.java
index e57a545..349f1dd 100644
--- a/src/main/java/org/apache/felix/configurator/impl/json/TypeConverter.java
+++ b/src/main/java/org/apache/felix/configurator/impl/json/TypeConverter.java
@@ -28,9 +28,9 @@
 import java.util.List;
 import java.util.Map;
 
+import javax.json.Json;
 import javax.json.JsonStructure;
 
-import org.apache.johnzon.core.JsonProviderImpl;
 import org.osgi.util.converter.Converter;
 import org.osgi.util.converter.ConverterFunction;
 import org.osgi.util.converter.Converters;
@@ -56,7 +56,7 @@
                         if ( obj instanceof Map || obj instanceof List ) {
                             final JsonStructure json = JSONUtil.build(obj);
                             final StringWriter w = new StringWriter();
-                            new JsonProviderImpl().createWriter(w).write(json);
+                            Json.createWriter(w).write(json);
                             return w.toString();
                         }
                         return CANNOT_HANDLE;