You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@johnzon.apache.org by rm...@apache.org on 2014/07/07 07:58:26 UTC
git commit: getting rid of some System properties configuring the
factory
Repository: incubator-fleece
Updated Branches:
refs/heads/master 3a8b2e884 -> 64b94e665
getting rid of some System properties configuring the factory
Project: http://git-wip-us.apache.org/repos/asf/incubator-fleece/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-fleece/commit/64b94e66
Tree: http://git-wip-us.apache.org/repos/asf/incubator-fleece/tree/64b94e66
Diff: http://git-wip-us.apache.org/repos/asf/incubator-fleece/diff/64b94e66
Branch: refs/heads/master
Commit: 64b94e6656a4bd216fc3ce5221327f27dd41ecc6
Parents: 3a8b2e8
Author: Romain Manni-Bucau <rm...@gmail.com>
Authored: Mon Jul 7 07:58:14 2014 +0200
Committer: Romain Manni-Bucau <rm...@gmail.com>
Committed: Mon Jul 7 07:58:14 2014 +0200
----------------------------------------------------------------------
.../fleece/core/JsonParserFactoryImpl.java | 45 ++++--
.../apache/fleece/core/JsonProviderImpl.java | 141 +++++++++++++++----
.../fleece/core/JsonReaderFactoryImpl.java | 9 +-
.../org/apache/fleece/core/JsonReaderImpl.java | 12 +-
.../apache/fleece/core/JsonReaderImplTest.java | 40 +++---
pom.xml | 2 +-
6 files changed, 172 insertions(+), 77 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-fleece/blob/64b94e66/fleece-core/src/main/java/org/apache/fleece/core/JsonParserFactoryImpl.java
----------------------------------------------------------------------
diff --git a/fleece-core/src/main/java/org/apache/fleece/core/JsonParserFactoryImpl.java b/fleece-core/src/main/java/org/apache/fleece/core/JsonParserFactoryImpl.java
index ceeef70..e1eea34 100644
--- a/fleece-core/src/main/java/org/apache/fleece/core/JsonParserFactoryImpl.java
+++ b/fleece-core/src/main/java/org/apache/fleece/core/JsonParserFactoryImpl.java
@@ -31,33 +31,42 @@ import java.util.Map;
public class JsonParserFactoryImpl implements JsonParserFactory {
public static final String MAX_STRING_LENGTH = "org.apache.fleece.max-string-length";
+ public static final String BUFFER_LENGTH = "org.apache.fleece.default-char-buffer";
public static final int DEFAULT_MAX_SIZE = Integer.getInteger(MAX_STRING_LENGTH, 8192);
private final Map<String, ?> config;
private final int maxSize;
+ private final int bufferSize;
public JsonParserFactoryImpl(final Map<String, ?> config) {
this.config = config;
- final Object maxStringSize = config.get(MAX_STRING_LENGTH);
+ this.maxSize = getInt(MAX_STRING_LENGTH);
+ this.bufferSize = getInt(BUFFER_LENGTH);
+ if (bufferSize <= 0) {
+ throw new IllegalArgumentException("buffer length must be greater than zero");
+ }
+ }
+
+ private int getInt(final String key) {
+ final Object maxStringSize = config.get(key);
if (maxStringSize == null) {
- maxSize = DEFAULT_MAX_SIZE;
+ return DEFAULT_MAX_SIZE;
} else if (Number.class.isInstance(maxStringSize)) {
- maxSize = Number.class.cast(maxStringSize).intValue();
- } else {
- maxSize = Integer.parseInt(maxStringSize.toString());
+ return Number.class.cast(maxStringSize).intValue();
}
+ return Integer.parseInt(maxStringSize.toString());
}
-
- JsonParser getDefaultJsonParserImpl(InputStream in) {
- return new JsonCharBufferStreamParser(in, maxSize);
+
+ private JsonCharBufferStreamParser getDefaultJsonParserImpl(InputStream in) {
+ return new JsonCharBufferStreamParser(in, maxSize, bufferSize);
}
-
- JsonParser getDefaultJsonParserImpl(InputStream in, Charset charset) {
- return new JsonCharBufferStreamParser(in, charset, maxSize);
+
+ private JsonCharBufferStreamParser getDefaultJsonParserImpl(InputStream in, Charset charset) {
+ return new JsonCharBufferStreamParser(in, charset, maxSize, bufferSize);
}
-
- JsonParser getDefaultJsonParserImpl(Reader in) {
- return new JsonCharBufferStreamParser(in, maxSize);
+
+ private JsonCharBufferStreamParser getDefaultJsonParserImpl(Reader in) {
+ return new JsonCharBufferStreamParser(in, maxSize, bufferSize);
}
@Override
@@ -89,4 +98,12 @@ public class JsonParserFactoryImpl implements JsonParserFactory {
public Map<String, ?> getConfigInUse() {
return Collections.unmodifiableMap(config);
}
+
+ public EscapedStringAwareJsonParser createInternalParser(final InputStream in) {
+ return getDefaultJsonParserImpl(in);
+ }
+
+ public EscapedStringAwareJsonParser createInternalParser(final Reader reader) {
+ return getDefaultJsonParserImpl(reader);
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-fleece/blob/64b94e66/fleece-core/src/main/java/org/apache/fleece/core/JsonProviderImpl.java
----------------------------------------------------------------------
diff --git a/fleece-core/src/main/java/org/apache/fleece/core/JsonProviderImpl.java b/fleece-core/src/main/java/org/apache/fleece/core/JsonProviderImpl.java
index 3869cbf..1e432ce 100644
--- a/fleece-core/src/main/java/org/apache/fleece/core/JsonProviderImpl.java
+++ b/fleece-core/src/main/java/org/apache/fleece/core/JsonProviderImpl.java
@@ -34,84 +34,167 @@ import java.io.InputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Reader;
+import java.io.Serializable;
import java.io.Writer;
import java.util.Collections;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
-public class JsonProviderImpl extends JsonProvider {
- @Override
- public JsonParser createParser(final InputStream in) {
- return createParserFactory(Collections.<String, Object>emptyMap()).createParser(in);
- }
+public class JsonProviderImpl extends JsonProvider implements Serializable {
+ private static final JsonProvider DELEGATE = new JsonProviderDelegate();
@Override
public JsonParser createParser(final Reader reader) {
- return createParserFactory(Collections.<String, Object>emptyMap()).createParser(reader);
+ return DELEGATE.createParser(reader);
}
@Override
- public JsonReader createReader(final InputStream in) {
- return new JsonReaderImpl(in);
+ public JsonParser createParser(final InputStream inputStream) {
+ return DELEGATE.createParser(inputStream);
}
@Override
- public JsonReader createReader(final Reader reader) {
- return new JsonReaderImpl(reader);
+ public JsonParserFactory createParserFactory(final Map<String, ?> stringMap) {
+ return DELEGATE.createParserFactory(stringMap);
}
@Override
- public JsonParserFactory createParserFactory(final Map<String, ?> config) {
- return new JsonParserFactoryImpl(config);
+ public JsonGenerator createGenerator(final Writer writer) {
+ return DELEGATE.createGenerator(writer);
}
@Override
- public JsonReaderFactory createReaderFactory(final Map<String, ?> config) {
- return new JsonReaderFactoryImpl(config);
+ public JsonGenerator createGenerator(final OutputStream outputStream) {
+ return DELEGATE.createGenerator(outputStream);
}
@Override
- public JsonGenerator createGenerator(final Writer writer) {
- return new JsonGeneratorFacade(new JsonGeneratorImpl(writer, new ConcurrentHashMap<String, String>()));
+ public JsonGeneratorFactory createGeneratorFactory(final Map<String, ?> stringMap) {
+ return DELEGATE.createGeneratorFactory(stringMap);
}
@Override
- public JsonGenerator createGenerator(final OutputStream out) {
- return createGenerator(new OutputStreamWriter(out));
+ public JsonReader createReader(final Reader reader) {
+ return DELEGATE.createReader(reader);
}
@Override
- public JsonGeneratorFactory createGeneratorFactory(final Map<String, ?> config) {
- return new JsonGeneratorFactoryImpl(config);
+ public JsonReader createReader(final InputStream inputStream) {
+ return DELEGATE.createReader(inputStream);
}
@Override
public JsonWriter createWriter(final Writer writer) {
- return new JsonWriterImpl(createGenerator(writer));
+ return DELEGATE.createWriter(writer);
}
@Override
- public JsonWriter createWriter(final OutputStream out) {
- return createWriter(new OutputStreamWriter(out));
+ public JsonWriter createWriter(final OutputStream outputStream) {
+ return DELEGATE.createWriter(outputStream);
}
@Override
- public JsonWriterFactory createWriterFactory(final Map<String, ?> config) {
- return new JsonWriterFactoryImpl(config);
+ public JsonWriterFactory createWriterFactory(final Map<String, ?> stringMap) {
+ return DELEGATE.createWriterFactory(stringMap);
+ }
+
+ @Override
+ public JsonReaderFactory createReaderFactory(final Map<String, ?> stringMap) {
+ return DELEGATE.createReaderFactory(stringMap);
}
@Override
public JsonObjectBuilder createObjectBuilder() {
- return new JsonObjectBuilderImpl();
+ return DELEGATE.createObjectBuilder();
}
@Override
public JsonArrayBuilder createArrayBuilder() {
- return new JsonArrayBuilderImpl();
+ return DELEGATE.createArrayBuilder();
}
@Override
- public JsonBuilderFactory createBuilderFactory(final Map<String, ?> config) {
- return new JsonBuilderFactoryImpl(config);
+ public JsonBuilderFactory createBuilderFactory(Map<String, ?> stringMap) {
+ return DELEGATE.createBuilderFactory(stringMap);
+ }
+
+ private static class JsonProviderDelegate extends JsonProvider {
+ private final JsonReaderFactory readerFactory = new JsonReaderFactoryImpl(Collections.<String, Object>emptyMap());
+ private final JsonParserFactory parserFactory = new JsonParserFactoryImpl(Collections.<String, Object>emptyMap());
+
+ @Override
+ public JsonParser createParser(final InputStream in) {
+ return parserFactory.createParser(in);
+ }
+
+ @Override
+ public JsonParser createParser(final Reader reader) {
+ return parserFactory.createParser(reader);
+ }
+
+ @Override
+ public JsonReader createReader(final InputStream in) {
+ return readerFactory.createReader(in);
+ }
+
+ @Override
+ public JsonReader createReader(final Reader reader) {
+ return readerFactory.createReader(reader);
+ }
+
+ @Override
+ public JsonParserFactory createParserFactory(final Map<String, ?> config) {
+ return new JsonParserFactoryImpl(config);
+ }
+
+ @Override
+ public JsonReaderFactory createReaderFactory(final Map<String, ?> config) {
+ return new JsonReaderFactoryImpl(config);
+ }
+
+ @Override
+ public JsonGenerator createGenerator(final Writer writer) {
+ return new JsonGeneratorFacade(new JsonGeneratorImpl(writer, new ConcurrentHashMap<String, String>()));
+ }
+
+ @Override
+ public JsonGenerator createGenerator(final OutputStream out) {
+ return createGenerator(new OutputStreamWriter(out));
+ }
+
+ @Override
+ public JsonGeneratorFactory createGeneratorFactory(final Map<String, ?> config) {
+ return new JsonGeneratorFactoryImpl(config);
+ }
+
+ @Override
+ public JsonWriter createWriter(final Writer writer) {
+ return new JsonWriterImpl(createGenerator(writer));
+ }
+
+ @Override
+ public JsonWriter createWriter(final OutputStream out) {
+ return createWriter(new OutputStreamWriter(out));
+ }
+
+ @Override
+ public JsonWriterFactory createWriterFactory(final Map<String, ?> config) {
+ return new JsonWriterFactoryImpl(config);
+ }
+
+ @Override
+ public JsonObjectBuilder createObjectBuilder() {
+ return new JsonObjectBuilderImpl();
+ }
+
+ @Override
+ public JsonArrayBuilder createArrayBuilder() {
+ return new JsonArrayBuilderImpl();
+ }
+
+ @Override
+ public JsonBuilderFactory createBuilderFactory(final Map<String, ?> config) {
+ return new JsonBuilderFactoryImpl(config);
+ }
}
}
http://git-wip-us.apache.org/repos/asf/incubator-fleece/blob/64b94e66/fleece-core/src/main/java/org/apache/fleece/core/JsonReaderFactoryImpl.java
----------------------------------------------------------------------
diff --git a/fleece-core/src/main/java/org/apache/fleece/core/JsonReaderFactoryImpl.java b/fleece-core/src/main/java/org/apache/fleece/core/JsonReaderFactoryImpl.java
index 82c5cba..bd9d528 100644
--- a/fleece-core/src/main/java/org/apache/fleece/core/JsonReaderFactoryImpl.java
+++ b/fleece-core/src/main/java/org/apache/fleece/core/JsonReaderFactoryImpl.java
@@ -20,7 +20,6 @@ package org.apache.fleece.core;
import javax.json.JsonReader;
import javax.json.JsonReaderFactory;
-
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
@@ -30,24 +29,26 @@ import java.util.Map;
public class JsonReaderFactoryImpl implements JsonReaderFactory {
private final Map<String, ?> config;
+ private final JsonParserFactoryImpl parserFactory;
public JsonReaderFactoryImpl(final Map<String, ?> config) {
this.config = config;
+ this.parserFactory = new JsonParserFactoryImpl(config);
}
@Override
public JsonReader createReader(final Reader reader) {
- return new JsonReaderImpl(reader);
+ return new JsonReaderImpl(parserFactory.createInternalParser(reader));
}
@Override
public JsonReader createReader(final InputStream in) {
- return new JsonReaderImpl(in);
+ return new JsonReaderImpl(parserFactory.createInternalParser(in));
}
@Override
public JsonReader createReader(final InputStream in, final Charset charset) {
- return new JsonReaderImpl(new InputStreamReader(in, charset));
+ return createReader(new InputStreamReader(in, charset));
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-fleece/blob/64b94e66/fleece-core/src/main/java/org/apache/fleece/core/JsonReaderImpl.java
----------------------------------------------------------------------
diff --git a/fleece-core/src/main/java/org/apache/fleece/core/JsonReaderImpl.java b/fleece-core/src/main/java/org/apache/fleece/core/JsonReaderImpl.java
index 6f6b71c..15a9d0f 100644
--- a/fleece-core/src/main/java/org/apache/fleece/core/JsonReaderImpl.java
+++ b/fleece-core/src/main/java/org/apache/fleece/core/JsonReaderImpl.java
@@ -18,7 +18,6 @@
*/
package org.apache.fleece.core;
-import javax.json.Json;
import javax.json.JsonArray;
import javax.json.JsonObject;
import javax.json.JsonReader;
@@ -26,21 +25,14 @@ import javax.json.JsonStructure;
import javax.json.JsonValue;
import javax.json.stream.JsonParser;
import javax.json.stream.JsonParsingException;
-
-import java.io.InputStream;
-import java.io.Reader;
import java.math.BigDecimal;
public class JsonReaderImpl implements JsonReader {
private final EscapedStringAwareJsonParser parser;
private final JsonReaderListenerFactory listenerFactory;
- public JsonReaderImpl(final InputStream in) {
- this((EscapedStringAwareJsonParser)Json.createParser(in), new JsonListenerFactory());
- }
-
- public JsonReaderImpl(final Reader in) {
- this((EscapedStringAwareJsonParser)Json.createParser(in), new JsonListenerFactory());
+ public JsonReaderImpl(final EscapedStringAwareJsonParser parser) {
+ this(parser, new JsonListenerFactory());
}
public JsonReaderImpl(final EscapedStringAwareJsonParser parser, final JsonReaderListenerFactory listenerFactory) {
http://git-wip-us.apache.org/repos/asf/incubator-fleece/blob/64b94e66/fleece-core/src/test/java/org/apache/fleece/core/JsonReaderImplTest.java
----------------------------------------------------------------------
diff --git a/fleece-core/src/test/java/org/apache/fleece/core/JsonReaderImplTest.java b/fleece-core/src/test/java/org/apache/fleece/core/JsonReaderImplTest.java
index cdd82de..0672587 100644
--- a/fleece-core/src/test/java/org/apache/fleece/core/JsonReaderImplTest.java
+++ b/fleece-core/src/test/java/org/apache/fleece/core/JsonReaderImplTest.java
@@ -27,6 +27,8 @@ import javax.json.JsonObject;
import javax.json.JsonReader;
import javax.json.JsonStructure;
+import java.util.HashMap;
+
import static org.hamcrest.CoreMatchers.instanceOf;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
@@ -34,12 +36,6 @@ import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
public class JsonReaderImplTest {
-
- @Before
- public void setup(){
- System.setProperty("org.apache.fleece.default-char-buffer", "8192");
- }
-
@Test
public void simple() {
final JsonReader reader = Json.createReader(Thread.currentThread().getContextClassLoader().getResourceAsStream("json/simple.json"));
@@ -154,8 +150,9 @@ public class JsonReaderImplTest {
@Test
public void simpleBadBufferSize8() {
- System.setProperty("org.apache.fleece.default-char-buffer", "8");
- final JsonReader reader = Json.createReader(Thread.currentThread().getContextClassLoader().getResourceAsStream("json/simple.json"));
+ final JsonReader reader = Json.createReaderFactory(new HashMap<String, Object>() {{
+ put("org.apache.fleece.default-char-buffer", "8");
+ }}).createReader(Thread.currentThread().getContextClassLoader().getResourceAsStream("json/simple.json"));
assertNotNull(reader);
final JsonObject object = reader.readObject();
assertNotNull(object);
@@ -172,8 +169,9 @@ public class JsonReaderImplTest {
}
@Test
public void simpleBadBufferSize9() {
- System.setProperty("org.apache.fleece.default-char-buffer", "9");
- final JsonReader reader = Json.createReader(Thread.currentThread().getContextClassLoader().getResourceAsStream("json/simple.json"));
+ final JsonReader reader = Json.createReaderFactory(new HashMap<String, Object>() {{
+ put("org.apache.fleece.default-char-buffer", "9");
+ }}).createReader(Thread.currentThread().getContextClassLoader().getResourceAsStream("json/simple.json"));
assertNotNull(reader);
final JsonObject object = reader.readObject();
assertNotNull(object);
@@ -191,8 +189,9 @@ public class JsonReaderImplTest {
@Test(expected=IllegalArgumentException.class)
public void emptyZeroCharBuffersize() {
- System.setProperty("org.apache.fleece.default-char-buffer", "0");
- final JsonReader reader = Json.createReader(Thread.currentThread().getContextClassLoader().getResourceAsStream("json/empty.json"));
+ final JsonReader reader = Json.createReaderFactory(new HashMap<String, Object>() {{
+ put("org.apache.fleece.default-char-buffer", "0");
+ }}).createReader(Thread.currentThread().getContextClassLoader().getResourceAsStream("json/empty.json"));
assertNotNull(reader);
reader.readObject();
reader.close();
@@ -200,8 +199,9 @@ public class JsonReaderImplTest {
@Test
public void emptyOneCharBufferSize() {
- System.setProperty("org.apache.fleece.default-char-buffer", "1");
- final JsonReader reader = Json.createReader(Thread.currentThread().getContextClassLoader().getResourceAsStream("json/empty.json"));
+ final JsonReader reader = Json.createReaderFactory(new HashMap<String, Object>() {{
+ put("org.apache.fleece.default-char-buffer", "1");
+ }}).createReader(Thread.currentThread().getContextClassLoader().getResourceAsStream("json/empty.json"));
assertNotNull(reader);
final JsonObject object = reader.readObject();
assertNotNull(object);
@@ -211,8 +211,9 @@ public class JsonReaderImplTest {
@Test
public void emptyArrayOneCharBufferSize() {
- System.setProperty("org.apache.fleece.default-char-buffer", "1");
- final JsonReader reader = Json.createReader(Thread.currentThread().getContextClassLoader().getResourceAsStream("json/emptyarray.json"));
+ final JsonReader reader = Json.createReaderFactory(new HashMap<String, Object>() {{
+ put("org.apache.fleece.default-char-buffer", "1");
+ }}).createReader(Thread.currentThread().getContextClassLoader().getResourceAsStream("json/emptyarray.json"));
assertNotNull(reader);
final JsonArray array = reader.readArray();
assertNotNull(array);
@@ -228,9 +229,10 @@ public class JsonReaderImplTest {
28, 32, 64, 128, 1024, 8192 };
for (int i = 0; i < buffersizes.length; i++) {
- System.setProperty("org.apache.fleece.default-char-buffer", String.valueOf(buffersizes[i]));
- final JsonReader reader = Json.createReader(Thread.currentThread().getContextClassLoader()
- .getResourceAsStream("json/stringescape.json"));
+ final String value = String.valueOf(buffersizes[i]);
+ final JsonReader reader = Json.createReaderFactory(new HashMap<String, Object>() {{
+ put("org.apache.fleece.default-char-buffer", value);
+ }}).createReader(Thread.currentThread().getContextClassLoader().getResourceAsStream("json/stringescape.json"));
assertNotNull(reader);
final JsonObject object = reader.readObject();
assertNotNull(object);
http://git-wip-us.apache.org/repos/asf/incubator-fleece/blob/64b94e66/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 8196b0c..ed634d1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -160,7 +160,7 @@
<module name="TreeWalker">
<module name="FileContentsHolder" />
<module name="ConstantName">
- <property name="format" value="^_?((log)|(logger)|([a-z][a-zA-Z]*ThreadLocal)|([A-Z][A-Z0-9]*(_[A-Z0-9]+)*))$" />
+ <property name="format" value="^(([A-Z][A-Z0-9]*(_[A-Z0-9]+)*))$" />
</module>
<module name="LocalVariableName" />
<module name="MethodName">