|
Author: doogie
Date: Wed Feb 10 22:48:41 2010 New Revision: 908714 URL: http://svn.apache.org/viewvc?rev=908714&view=rev Log: Allow readObject/writeObject to fall back to JSON. Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilIO.java ofbiz/trunk/framework/base/src/org/ofbiz/base/util/test/UtilIOTests.java Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilIO.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilIO.java?rev=908714&r1=908713&r2=908714&view=diff ============================================================================== --- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilIO.java (original) +++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilIO.java Wed Feb 10 22:48:41 2010 @@ -35,6 +35,7 @@ import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.io.Serializable; +import java.io.StringReader; import java.io.StringWriter; import java.io.Writer; import java.nio.ByteBuffer; @@ -46,6 +47,8 @@ import org.ofbiz.base.container.ClassLoaderContainer; import org.ofbiz.base.conversion.Converter; import org.ofbiz.base.conversion.Converters; +import org.ofbiz.base.json.JSON; +import org.ofbiz.base.json.JSONWriter; public final class UtilIO { public static final Charset UTF8 = Charset.forName("UTF-8"); @@ -310,6 +313,11 @@ } } catch (Exception e) { } + try { + return new JSON(new StringReader(new String(buffer, offset, length))).JSONValue(); + } catch (Error e) { + } catch (Exception e) { + } throw new IOException("Can't read (" + new String(buffer, offset, length) + ")"); } @@ -347,7 +355,12 @@ writer.write(str); return true; } else { - return false; + StringWriter sw = new StringWriter(); + IndentingWriter indenting = new IndentingWriter(writer, true, false); + JSONWriter jsonWriter = new JSONWriter(indenting); + jsonWriter.write(value); + writer.write(sw.toString()); + return true; } } Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/test/UtilIOTests.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/test/UtilIOTests.java?rev=908714&r1=908713&r2=908714&view=diff ============================================================================== --- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/test/UtilIOTests.java (original) +++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/test/UtilIOTests.java Wed Feb 10 22:48:41 2010 @@ -152,7 +152,7 @@ checkBasicReadWriteObject(BigDecimal.valueOf(500.5), "java.math.BigDecimal:500.5\n"); checkBasicReadWriteObject(BigInteger.valueOf(500), "java.math.BigInteger:500\n"); checkBasicReadWriteObject("1", "java.lang.String:1\n"); - //checkBasicReadWriteObject(Arrays.asList(new Object[] {"a", UtilMisc.toMap("b", Long.valueOf(1))}), "[ \"a\", { \"b\": 1 } ]\n"); + checkBasicReadWriteObject(Arrays.asList(new Object[] {"a", UtilMisc.toMap("b", Long.valueOf(1))}), "java.util.List:[\n \"a\",\n {\n \"b\": 1\n }\n]\n"); checkBasicReadWriteObject(MemoryType.HEAP, "java.lang.management.MemoryType:HEAP\n"); checkBasicReadWriteObject(MemoryType.NON_HEAP, "java.lang.management.MemoryType:NON_HEAP\n"); checkBasicReadWriteObject(UtilIO.UTF8, "java.nio.charset.Charset:UTF-8\n"); |
| Free forum by Nabble | Edit this page |
