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/13 12:59:48 UTC
git commit: FLEECE-8 another bunch of cleanup and improvements from
Hendrik Saly
Repository: incubator-fleece
Updated Branches:
refs/heads/master 351374bbe -> ec0983ed1
FLEECE-8 another bunch of cleanup and improvements from Hendrik Saly
Project: http://git-wip-us.apache.org/repos/asf/incubator-fleece/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-fleece/commit/ec0983ed
Tree: http://git-wip-us.apache.org/repos/asf/incubator-fleece/tree/ec0983ed
Diff: http://git-wip-us.apache.org/repos/asf/incubator-fleece/diff/ec0983ed
Branch: refs/heads/master
Commit: ec0983ed1ffe27b71d6b67badb9f2b3e4dcdfe4f
Parents: 351374b
Author: Romain Manni-Bucau <rm...@gmail.com>
Authored: Sun Jul 13 12:59:29 2014 +0200
Committer: Romain Manni-Bucau <rm...@gmail.com>
Committed: Sun Jul 13 12:59:29 2014 +0200
----------------------------------------------------------------------
.travis.yml | 2 +
.../fleece/core/JsonBaseStreamParser.java | 54 ++++++++++++++++----
.../apache/fleece/core/JsonGeneratorImpl.java | 2 +-
.../org/apache/fleece/core/JsonParserTest.java | 12 +++++
.../fleece/jaxrs/xml/WadlDocumentToJson.java | 4 +-
.../java/org/apache/fleece/mapper/Mapper.java | 10 ++--
6 files changed, 65 insertions(+), 19 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-fleece/blob/ec0983ed/.travis.yml
----------------------------------------------------------------------
diff --git a/.travis.yml b/.travis.yml
index 6b929a1..90ec009 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -4,3 +4,5 @@ jdk:
- openjdk6
- openjdk7
- oraclejdk7
+ - oraclejdk8
+
http://git-wip-us.apache.org/repos/asf/incubator-fleece/blob/ec0983ed/fleece-core/src/main/java/org/apache/fleece/core/JsonBaseStreamParser.java
----------------------------------------------------------------------
diff --git a/fleece-core/src/main/java/org/apache/fleece/core/JsonBaseStreamParser.java b/fleece-core/src/main/java/org/apache/fleece/core/JsonBaseStreamParser.java
index abbdeaf..9d69db8 100644
--- a/fleece-core/src/main/java/org/apache/fleece/core/JsonBaseStreamParser.java
+++ b/fleece-core/src/main/java/org/apache/fleece/core/JsonBaseStreamParser.java
@@ -21,6 +21,7 @@ package org.apache.fleece.core;
import javax.json.JsonException;
import javax.json.stream.JsonLocation;
import javax.json.stream.JsonParsingException;
+
import java.io.IOException;
import java.math.BigDecimal;
import java.util.NoSuchElementException;
@@ -103,6 +104,11 @@ public abstract class JsonBaseStreamParser implements JsonChars,
}
private boolean ifConstructingStringValueAdd(char c) throws IOException {
+
+ if(!constructingStringValue) {
+ return false;
+ }
+
if (escaped) {
if (c == 'u') {
@@ -129,17 +135,10 @@ public abstract class JsonBaseStreamParser implements JsonChars,
escaped = false;
}
+
+ appendValue(c);
- return ifConstructingStringValueAdd(c, false);
- }
-
- private boolean ifConstructingStringValueAdd(final char c,
- final boolean escape) {
- if (constructingStringValue) {
-
- appendValue(escape ? Strings.asEscapedChar(c) : c);
- }
- return constructingStringValue;
+ return true;
}
protected abstract char readNextChar() throws IOException;
@@ -742,7 +741,7 @@ public abstract class JsonBaseStreamParser implements JsonChars,
}
- private boolean isNumber(final char c) {
+ private static boolean isNumber(final char c) {
return isAsciiDigit(c) || c == DOT || c == MINUS || c == PLUS
|| c == EXP_LOWERCASE || c == EXP_UPPERCASE;
}
@@ -777,6 +776,10 @@ public abstract class JsonBaseStreamParser implements JsonChars,
return currentIntegralNumber.intValue();
}
+ if(isCurrentNumberIntegral) {
+ return (int) parseLongFromChars(currentValue, 0, valueLength);
+ }
+
return getBigDecimal().intValue();
}
@@ -790,6 +793,10 @@ public abstract class JsonBaseStreamParser implements JsonChars,
return currentIntegralNumber.intValue();
} // int is ok, its only from 0-9
+ if(isCurrentNumberIntegral) {
+ return parseLongFromChars(currentValue, 0, valueLength);
+ }
+
return getBigDecimal().longValue();
}
@@ -826,5 +833,30 @@ public abstract class JsonBaseStreamParser implements JsonChars,
public String getEscapedString() {
return Strings.escape(getValue());
}
+
+ private static long parseLongFromChars(char[] chars, int start, int end) {
+
+ if (chars == null
+ || chars.length == 0
+ || start < 0
+ || end <= start
+ || end > chars.length - 1
+ || start > chars.length - 1) {
+ throw new IllegalArgumentException();
+ }
+
+ long retVal = 0;
+ boolean negative = chars[start] == MINUS;
+ for (int i = negative ? start + 1 : start; i < end; i++) {
+
+ //int this context we know its an integral number, so skip this due to perf reasons
+ /*if (chars[i] < ZERO || chars[i] > NINE) {
+ throw new IllegalArgumentException("Not a integral number");
+ }*/
+ retVal = retVal * 10 + (chars[i] - ZERO);
+ }
+
+ return negative ? -retVal : retVal;
+ }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-fleece/blob/ec0983ed/fleece-core/src/main/java/org/apache/fleece/core/JsonGeneratorImpl.java
----------------------------------------------------------------------
diff --git a/fleece-core/src/main/java/org/apache/fleece/core/JsonGeneratorImpl.java b/fleece-core/src/main/java/org/apache/fleece/core/JsonGeneratorImpl.java
index f36166f..7a77a11 100644
--- a/fleece-core/src/main/java/org/apache/fleece/core/JsonGeneratorImpl.java
+++ b/fleece-core/src/main/java/org/apache/fleece/core/JsonGeneratorImpl.java
@@ -1,5 +1,5 @@
/*
-esc * Licensed to the Apache Software Foundation (ASF) under one
+ * 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
http://git-wip-us.apache.org/repos/asf/incubator-fleece/blob/ec0983ed/fleece-core/src/test/java/org/apache/fleece/core/JsonParserTest.java
----------------------------------------------------------------------
diff --git a/fleece-core/src/test/java/org/apache/fleece/core/JsonParserTest.java b/fleece-core/src/test/java/org/apache/fleece/core/JsonParserTest.java
index 5be07b2..dd6b534 100644
--- a/fleece-core/src/test/java/org/apache/fleece/core/JsonParserTest.java
+++ b/fleece-core/src/test/java/org/apache/fleece/core/JsonParserTest.java
@@ -602,6 +602,17 @@ public class JsonParserTest {
assertFalse(parser.hasNext());
parser.close();
}
+
+ @Test
+ public void escapedStringAwareParser() {
+ final EscapedStringAwareJsonParser parser = (EscapedStringAwareJsonParser) Json.createParser(Thread.currentThread().getContextClassLoader().getResourceAsStream("json/stringescape.json"));
+ parser.next();
+ parser.next();
+ parser.next();
+ assertEquals("s\"mit\"", parser.getString());
+ assertEquals("s\\\"mit\\\"", parser.getEscapedString());
+ parser.close();
+ }
@Test
public void dosProtected() {
@@ -716,6 +727,7 @@ public class JsonParserTest {
assertEquals(0L, Json.createReader(new ByteArrayInputStream("[0]".getBytes())).readArray().getJsonNumber(0).longValue());
}
+
@Test
public void shortestNonEmtyJsonFileWithWhiteSpaceChars() {
// using a reader as wrapper of parser
http://git-wip-us.apache.org/repos/asf/incubator-fleece/blob/ec0983ed/fleece-jaxrs/src/main/java/org/apache/fleece/jaxrs/xml/WadlDocumentToJson.java
----------------------------------------------------------------------
diff --git a/fleece-jaxrs/src/main/java/org/apache/fleece/jaxrs/xml/WadlDocumentToJson.java b/fleece-jaxrs/src/main/java/org/apache/fleece/jaxrs/xml/WadlDocumentToJson.java
index a580e75..74d70d6 100644
--- a/fleece-jaxrs/src/main/java/org/apache/fleece/jaxrs/xml/WadlDocumentToJson.java
+++ b/fleece-jaxrs/src/main/java/org/apache/fleece/jaxrs/xml/WadlDocumentToJson.java
@@ -46,7 +46,7 @@ public class WadlDocumentToJson {
return builder.add(item.getNodeName(), createNode(item)).build().toString();
}
- private void addChildrens(final String nodeName, final JsonObjectBuilder builder, final NodeList children) {
+ private void addChildrens(/*final String nodeName, */final JsonObjectBuilder builder, final NodeList children) {
final Map<String, Collection<Node>> nodesByName = new LinkedHashMap<String, Collection<Node>>();
for (int i = 0; i < children.getLength(); i++) {
final Node node = children.item(i);
@@ -91,7 +91,7 @@ public class WadlDocumentToJson {
if (childBuilder == null) {
childBuilder = builderFactory.createObjectBuilder();
}
- addChildrens(node.getNodeName(), childBuilder, node.getChildNodes());
+ addChildrens(/*node.getNodeName(),*/ childBuilder, node.getChildNodes());
}
return childBuilder;
}
http://git-wip-us.apache.org/repos/asf/incubator-fleece/blob/ec0983ed/fleece-mapper/src/main/java/org/apache/fleece/mapper/Mapper.java
----------------------------------------------------------------------
diff --git a/fleece-mapper/src/main/java/org/apache/fleece/mapper/Mapper.java b/fleece-mapper/src/main/java/org/apache/fleece/mapper/Mapper.java
index 70bde53..6e31b4a 100644
--- a/fleece-mapper/src/main/java/org/apache/fleece/mapper/Mapper.java
+++ b/fleece-mapper/src/main/java/org/apache/fleece/mapper/Mapper.java
@@ -127,12 +127,12 @@ public class Mapper {
return generator;
}
- private <T> String convertFrom(final Class<T> aClass, final T value) {
+ /*private <T> String convertFrom(final Class<T> aClass, final T value) {
final Converter<T> converter = (Converter<T>) findConverter(aClass);
return doConverFrom(value, converter);
- }
+ }*/
- private <T> String doConverFrom(final T value, final Converter<T> converter) {
+ private static <T> String doConverFrom(final T value, final Converter<T> converter) {
if (converter == null) {
throw new MapperException("can't convert " + value + " to String");
}
@@ -242,9 +242,9 @@ public class Mapper {
return;
}
- JsonGenerator gen = null;
+ //JsonGenerator gen = null;
try {
- gen = doWriteObject(generator, object);
+ /*gen = */doWriteObject(generator, object);
} finally {
doCloseOrFlush(generator);
}