You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@johnzon.apache.org by st...@apache.org on 2016/11/22 18:58:12 UTC
johnzon git commit: JOHNZON-96 implement JSON-P 1.1 API
Repository: johnzon
Updated Branches:
refs/heads/JSONP-1.1 [created] d396c5bc5
JOHNZON-96 implement JSON-P 1.1 API
Project: http://git-wip-us.apache.org/repos/asf/johnzon/repo
Commit: http://git-wip-us.apache.org/repos/asf/johnzon/commit/d396c5bc
Tree: http://git-wip-us.apache.org/repos/asf/johnzon/tree/d396c5bc
Diff: http://git-wip-us.apache.org/repos/asf/johnzon/diff/d396c5bc
Branch: refs/heads/JSONP-1.1
Commit: d396c5bc5357f821fbb772022399bf356816de82
Parents: b0af96e
Author: Mark Struberg <st...@apache.org>
Authored: Tue Nov 22 19:46:32 2016 +0100
Committer: Mark Struberg <st...@apache.org>
Committed: Tue Nov 22 19:46:32 2016 +0100
----------------------------------------------------------------------
.../johnzon/core/JsonArrayBuilderImpl.java | 9 ++-
.../johnzon/core/JsonBuilderFactoryImpl.java | 13 ++++
.../apache/johnzon/core/JsonGeneratorImpl.java | 36 ++++++-----
.../johnzon/core/JsonObjectBuilderImpl.java | 24 ++++++-
.../apache/johnzon/core/JsonProviderImpl.java | 66 ++++++++++++++++++++
.../johnzon/mapper/MappingParserImpl.java | 2 +-
.../org/apache/johnzon/mapper/MapperTest.java | 5 +-
pom.xml | 6 +-
8 files changed, 136 insertions(+), 25 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/johnzon/blob/d396c5bc/johnzon-core/src/main/java/org/apache/johnzon/core/JsonArrayBuilderImpl.java
----------------------------------------------------------------------
diff --git a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonArrayBuilderImpl.java b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonArrayBuilderImpl.java
index 913c22a..b8ff582 100644
--- a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonArrayBuilderImpl.java
+++ b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonArrayBuilderImpl.java
@@ -32,6 +32,13 @@ import java.util.List;
class JsonArrayBuilderImpl implements JsonArrayBuilder, Serializable {
private List<JsonValue> tmpList;
+ public JsonArrayBuilderImpl() {
+ }
+
+ public JsonArrayBuilderImpl(JsonArray initialData) {
+ tmpList = new ArrayList<>(initialData);
+ }
+
@Override
public JsonArrayBuilder add(final JsonValue value) {
addValue(value);
@@ -104,7 +111,7 @@ class JsonArrayBuilderImpl implements JsonArrayBuilder, Serializable {
}
if(tmpList==null){
- tmpList=new ArrayList<JsonValue>();
+ tmpList=new ArrayList<>();
}
tmpList.add(value);
http://git-wip-us.apache.org/repos/asf/johnzon/blob/d396c5bc/johnzon-core/src/main/java/org/apache/johnzon/core/JsonBuilderFactoryImpl.java
----------------------------------------------------------------------
diff --git a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonBuilderFactoryImpl.java b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonBuilderFactoryImpl.java
index 121f18f..c91014d 100644
--- a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonBuilderFactoryImpl.java
+++ b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonBuilderFactoryImpl.java
@@ -25,8 +25,10 @@ import java.util.List;
import java.util.Map;
import java.util.logging.Logger;
+import javax.json.JsonArray;
import javax.json.JsonArrayBuilder;
import javax.json.JsonBuilderFactory;
+import javax.json.JsonObject;
import javax.json.JsonObjectBuilder;
class JsonBuilderFactoryImpl implements JsonBuilderFactory {
@@ -56,10 +58,21 @@ class JsonBuilderFactoryImpl implements JsonBuilderFactory {
}
@Override
+ public JsonObjectBuilder createObjectBuilder(JsonObject initialData) {
+ return new JsonObjectBuilderImpl(initialData);
+ }
+
+ @Override
public JsonArrayBuilder createArrayBuilder() {
return new JsonArrayBuilderImpl();
}
+
+ @Override
+ public JsonArrayBuilder createArrayBuilder(JsonArray initialData) {
+ return new JsonArrayBuilderImpl(initialData);
+ }
+
@Override
public Map<String, ?> getConfigInUse() {
return Collections.unmodifiableMap(internalConfig);
http://git-wip-us.apache.org/repos/asf/johnzon/blob/d396c5bc/johnzon-core/src/main/java/org/apache/johnzon/core/JsonGeneratorImpl.java
----------------------------------------------------------------------
diff --git a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonGeneratorImpl.java b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonGeneratorImpl.java
index e1371e5..1b8b573 100644
--- a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonGeneratorImpl.java
+++ b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonGeneratorImpl.java
@@ -431,6 +431,26 @@ class JsonGeneratorImpl implements JsonGenerator, JsonChars, Serializable {
}
@Override
+ public JsonGenerator writeKey(final String key) {
+ final GeneratorState currentState = currentState();
+ if (!currentState.acceptsKey) {
+ throw new JsonGenerationException("state " + currentState + " does not accept a key");
+ }
+ if (currentState == GeneratorState.IN_OBJECT) {
+ justWrite(COMMA_CHAR);
+ writeEol();
+ }
+
+ writeIndent();
+
+ writeCachedKey(key);
+ state.push(GeneratorState.AFTER_KEY);
+ return this;
+ }
+
+
+
+ @Override
public void close() {
try {
if (currentState() != GeneratorState.END) {
@@ -650,22 +670,6 @@ class JsonGeneratorImpl implements JsonGenerator, JsonChars, Serializable {
return state.peek();
}
- private void writeKey(final String key) {
- final GeneratorState currentState = currentState();
- if (!currentState.acceptsKey) {
- throw new IllegalStateException("state " + currentState + " does not accept a key");
- }
- if (currentState == GeneratorState.IN_OBJECT) {
- justWrite(COMMA_CHAR);
- writeEol();
- }
-
- writeIndent();
-
- writeCachedKey(key);
- state.push(GeneratorState.AFTER_KEY);
- }
-
private void writeValueAsJsonString(final String value) {
prepareValue();
final GeneratorState peek = state.peek();
http://git-wip-us.apache.org/repos/asf/johnzon/blob/d396c5bc/johnzon-core/src/main/java/org/apache/johnzon/core/JsonObjectBuilderImpl.java
----------------------------------------------------------------------
diff --git a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonObjectBuilderImpl.java b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonObjectBuilderImpl.java
index d625383..17cfe17 100644
--- a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonObjectBuilderImpl.java
+++ b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonObjectBuilderImpl.java
@@ -32,6 +32,14 @@ import java.util.Map;
class JsonObjectBuilderImpl implements JsonObjectBuilder, Serializable {
private Map<String, JsonValue> tmpMap;
+ public JsonObjectBuilderImpl() {
+ }
+
+ public JsonObjectBuilderImpl(JsonObject initialData) {
+ tmpMap = new LinkedHashMap<>(initialData);
+ }
+
+
@Override
public JsonObjectBuilder add(final String name, final JsonValue value) {
putValue(name, value);
@@ -97,14 +105,26 @@ class JsonObjectBuilderImpl implements JsonObjectBuilder, Serializable {
putValue(name, builder.build());
return this;
}
-
+
+ @Override
+ public JsonObjectBuilder addAll(JsonObjectBuilder builder) {
+ tmpMap.putAll(builder.build());
+ return this;
+ }
+
+ @Override
+ public JsonObjectBuilder remove(String name) {
+ tmpMap.remove(name);
+ return this;
+ }
+
private void putValue(String name, JsonValue value){
if(name == null || value == null) {
throw npe();
}
if(tmpMap==null){
- tmpMap=new LinkedHashMap<String, JsonValue>();
+ tmpMap = new LinkedHashMap<>();
}
tmpMap.put(name, value);
http://git-wip-us.apache.org/repos/asf/johnzon/blob/d396c5bc/johnzon-core/src/main/java/org/apache/johnzon/core/JsonProviderImpl.java
----------------------------------------------------------------------
diff --git a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonProviderImpl.java b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonProviderImpl.java
index d1bbec6..99fd6fc 100644
--- a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonProviderImpl.java
+++ b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonProviderImpl.java
@@ -25,11 +25,17 @@ import java.io.Serializable;
import java.io.Writer;
import java.util.Map;
+import javax.json.JsonArray;
import javax.json.JsonArrayBuilder;
import javax.json.JsonBuilderFactory;
import javax.json.JsonObjectBuilder;
+import javax.json.JsonPatch;
+import javax.json.JsonPatchBuilder;
+import javax.json.JsonPointer;
import javax.json.JsonReader;
import javax.json.JsonReaderFactory;
+import javax.json.JsonStructure;
+import javax.json.JsonValue;
import javax.json.JsonWriter;
import javax.json.JsonWriterFactory;
import javax.json.spi.JsonProvider;
@@ -116,6 +122,36 @@ public class JsonProviderImpl extends JsonProvider implements Serializable {
return DELEGATE.createBuilderFactory(stringMap);
}
+ @Override
+ public JsonPointer createJsonPointer(String path) {
+ return DELEGATE.createJsonPointer(path);
+ }
+
+ @Override
+ public JsonPatch createPatch(JsonStructure source, JsonStructure target) {
+ return DELEGATE.createPatch(source, target);
+ }
+
+ @Override
+ public JsonPatchBuilder createPatchBuilder() {
+ return DELEGATE.createPatchBuilder();
+ }
+
+ @Override
+ public JsonPatchBuilder createPatchBuilder(JsonArray initialData) {
+ return DELEGATE.createPatchBuilder(initialData);
+ }
+
+ @Override
+ public JsonValue createMergePatch(JsonValue source, JsonValue target) {
+ return DELEGATE.createMergePatch(source, target);
+ }
+
+ @Override
+ public JsonValue mergePatch(JsonValue source, JsonValue patch) {
+ return DELEGATE.mergePatch(source, patch);
+ }
+
static class JsonProviderDelegate extends JsonProvider {
private final JsonReaderFactory readerFactory = new JsonReaderFactoryImpl(null);
private final JsonParserFactory parserFactory = new JsonParserFactoryImpl(null);
@@ -197,5 +233,35 @@ public class JsonProviderImpl extends JsonProvider implements Serializable {
public JsonBuilderFactory createBuilderFactory(final Map<String, ?> config) {
return (config == null || config.isEmpty()) ? builderFactory : new JsonBuilderFactoryImpl(config);
}
+
+ @Override
+ public JsonPointer createJsonPointer(String path) {
+ throw new UnsupportedOperationException("TODO JSON-P 1.1");
+ }
+
+ @Override
+ public JsonPatch createPatch(JsonStructure source, JsonStructure target) {
+ throw new UnsupportedOperationException("TODO JSON-P 1.1");
+ }
+
+ @Override
+ public JsonPatchBuilder createPatchBuilder() {
+ throw new UnsupportedOperationException("TODO JSON-P 1.1");
+ }
+
+ @Override
+ public JsonPatchBuilder createPatchBuilder(JsonArray initialData) {
+ throw new UnsupportedOperationException("TODO JSON-P 1.1");
+ }
+
+ @Override
+ public JsonValue createMergePatch(JsonValue source, JsonValue target) {
+ throw new UnsupportedOperationException("TODO JSON-P 1.1");
+ }
+
+ @Override
+ public JsonValue mergePatch(JsonValue source, JsonValue patch) {
+ throw new UnsupportedOperationException("TODO JSON-P 1.1");
+ }
}
}
http://git-wip-us.apache.org/repos/asf/johnzon/blob/d396c5bc/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MappingParserImpl.java
----------------------------------------------------------------------
diff --git a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MappingParserImpl.java b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MappingParserImpl.java
index e731b8f..9164f7a 100644
--- a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MappingParserImpl.java
+++ b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MappingParserImpl.java
@@ -593,7 +593,7 @@ public class MappingParserImpl implements MappingParser {
} else if (collection.size() == 1) {
return Collection.class.cast(EnumSet.of(Enum.class.cast(collection.iterator().next())));
} else {
- final List<Enum<?>> list = List.class.cast(collection);
+ final List<Enum> list = List.class.cast(collection);
return Collection.class.cast(EnumSet.of(list.get(0), list.subList(1, list.size()).toArray(new Enum[list.size() - 1])));
}
}
http://git-wip-us.apache.org/repos/asf/johnzon/blob/d396c5bc/johnzon-mapper/src/test/java/org/apache/johnzon/mapper/MapperTest.java
----------------------------------------------------------------------
diff --git a/johnzon-mapper/src/test/java/org/apache/johnzon/mapper/MapperTest.java b/johnzon-mapper/src/test/java/org/apache/johnzon/mapper/MapperTest.java
index 594315a..e0330f4 100644
--- a/johnzon-mapper/src/test/java/org/apache/johnzon/mapper/MapperTest.java
+++ b/johnzon-mapper/src/test/java/org/apache/johnzon/mapper/MapperTest.java
@@ -184,8 +184,9 @@ public class MapperTest {
// read
assertEquals(Boolean.TRUE, simpleMapper.readObject(new ByteArrayInputStream("true".getBytes()), Object.class));
assertEquals(Boolean.FALSE, simpleMapper.readObject(new ByteArrayInputStream("false".getBytes()), Object.class));
- assertEquals(1., encodingAwareMapper
- .readObject(new ByteArrayInputStream("1".getBytes()), Object.class));
+ assertEquals(1.,
+ encodingAwareMapper.readObject(new ByteArrayInputStream("1".getBytes()), Object.class),
+ 0.1);
assertEquals("val", simpleMapper.readObject(new ByteArrayInputStream("\"val\"".getBytes()), Object.class));
assertEquals(asList("val1", "val2"), simpleMapper.readObject(new ByteArrayInputStream("[\"val1\", \"val2\"]".getBytes()), Object.class));
assertEquals(new HashMap<String, Object>() {{
http://git-wip-us.apache.org/repos/asf/johnzon/blob/d396c5bc/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index e507cc7..f8ca1f8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -40,14 +40,14 @@
<url>http://johnzon.apache.org</url>
<properties>
- <jsonspecversion>1.0-alpha-1</jsonspecversion>
+ <jsonspecversion>1.0-SNAPSHOT</jsonspecversion>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<johnzon.site.url>https://svn.apache.org/repos/asf/johnzon/site/publish/</johnzon.site.url>
<pubsub.url>scm:svn:${johnzon.site.url}</pubsub.url>
<staging.directory>${project.build.directory}/site</staging.directory>
<felix.plugin.version>2.5.3</felix.plugin.version>
<bnd.version.policy>[$(version;==;$(@)),$(version;+;$(@)))</bnd.version.policy>
- <java-compile.version>1.6</java-compile.version>
+ <java-compile.version>1.8</java-compile.version>
<cxf.version>3.0.0</cxf.version>
<javadoc.params /> <!-- for java 8 set disable doclint (by profile) -->
<checkstyle.version>2.15</checkstyle.version> <!-- checkstyle > 2.15 version do not support java 6 -->
@@ -66,7 +66,7 @@
<dependencies>
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
- <artifactId>geronimo-json_1.0_spec</artifactId>
+ <artifactId>geronimo-json_1.1_spec</artifactId>
<version>${jsonspecversion}</version>
<scope>provided</scope>
</dependency>