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);
         }