You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by ds...@apache.org on 2017/03/07 19:21:31 UTC

[08/51] [abbrv] geode git commit: GEODE-2142: Removal of offending JSON.ORG code and license information

GEODE-2142: Removal of offending JSON.ORG code and license information


Project: http://git-wip-us.apache.org/repos/asf/geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/geode/commit/76ea6c3c
Tree: http://git-wip-us.apache.org/repos/asf/geode/tree/76ea6c3c
Diff: http://git-wip-us.apache.org/repos/asf/geode/diff/76ea6c3c

Branch: refs/heads/feature/GEM-1195
Commit: 76ea6c3cae06442fed9ca680d5aacedaf6a4f2dd
Parents: f2721dc
Author: Udo Kohlmeyer <uk...@pivotal.io>
Authored: Fri Feb 17 14:14:50 2017 -0800
Committer: Udo Kohlmeyer <uk...@pivotal.io>
Committed: Mon Feb 27 07:18:55 2017 -0800

----------------------------------------------------------------------
 LICENSE                                         |   29 -
 geode-json/src/main/java/org/json/CDL.java      |  272 ----
 geode-json/src/main/java/org/json/Cookie.java   |  162 --
 .../src/main/java/org/json/CookieList.java      |   87 -
 geode-json/src/main/java/org/json/HTTP.java     |  185 ---
 .../src/main/java/org/json/HTTPTokener.java     |   77 -
 .../src/main/java/org/json/JSONArray.java       |  868 ----------
 .../src/main/java/org/json/JSONException.java   |   30 -
 geode-json/src/main/java/org/json/JSONML.java   |  454 ------
 .../src/main/java/org/json/JSONObject.java      | 1525 ------------------
 .../src/main/java/org/json/JSONString.java      |   17 -
 .../src/main/java/org/json/JSONStringer.java    |   75 -
 .../src/main/java/org/json/JSONTokener.java     |  437 -----
 .../src/main/java/org/json/JSONWriter.java      |  321 ----
 geode-json/src/main/java/org/json/XML.java      |  504 ------
 .../src/main/java/org/json/XMLTokener.java      |  362 -----
 16 files changed, 5405 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/geode/blob/76ea6c3c/LICENSE
----------------------------------------------------------------------
diff --git a/LICENSE b/LICENSE
index 4d22d30..e5f1557 100644
--- a/LICENSE
+++ b/LICENSE
@@ -275,35 +275,6 @@ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
 IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 
 ---------------------------------------------------------------------------
-The JSON License (http://www.json.org/license.html)
----------------------------------------------------------------------------
-
-Apache Geode bundles the following file under the JSON license:
-
-  - JSON (http://www.json.org), Copyright (c) 2002 JSON.org
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-The Software shall be used for Good, not Evil.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-DEALINGS IN THE SOFTWARE.
-
-
----------------------------------------------------------------------------
 The MIT License (http://opensource.org/licenses/mit-license.html)
 ---------------------------------------------------------------------------
 

http://git-wip-us.apache.org/repos/asf/geode/blob/76ea6c3c/geode-json/src/main/java/org/json/CDL.java
----------------------------------------------------------------------
diff --git a/geode-json/src/main/java/org/json/CDL.java b/geode-json/src/main/java/org/json/CDL.java
deleted file mode 100755
index d78935b..0000000
--- a/geode-json/src/main/java/org/json/CDL.java
+++ /dev/null
@@ -1,272 +0,0 @@
-package org.json;
-
-/*
- * Copyright (c) 2002 JSON.org
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
- * associated documentation files (the "Software"), to deal in the Software without restriction,
- * including without limitation the rights to use, copy, modify, merge, publish, distribute,
- * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in all copies or
- * substantial portions of the Software.
- * 
- * The Software shall be used for Good, not Evil.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
- * NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-/**
- * This provides static methods to convert comma delimited text into a JSONArray, and to covert a
- * JSONArray into comma delimited text. Comma delimited text is a very popular format for data
- * interchange. It is understood by most database, spreadsheet, and organizer programs.
- * <p>
- * Each row of text represents a row in a table or a data record. Each row ends with a NEWLINE
- * character. Each row contains one or more values. Values are separated by commas. A value can
- * contain any character except for comma, unless is is wrapped in single quotes or double quotes.
- * <p>
- * The first row usually contains the names of the columns.
- * <p>
- * A comma delimited list can be converted into a JSONArray of JSONObjects. The names for the
- * elements in the JSONObjects can be taken from the names in the first row.
- * 
- * @author JSON.org
- * @version 2010-12-24
- */
-public class CDL {
-
-  /**
-   * Get the next value. The value can be wrapped in quotes. The value can be empty.
-   * 
-   * @param x A JSONTokener of the source text.
-   * @return The value string, or null if empty.
-   * @throws JSONException if the quoted string is badly formed.
-   */
-  private static String getValue(JSONTokener x) throws JSONException {
-    char c;
-    char q;
-    StringBuffer sb;
-    do {
-      c = x.next();
-    } while (c == ' ' || c == '\t');
-    switch (c) {
-      case 0:
-        return null;
-      case '"':
-      case '\'':
-        q = c;
-        sb = new StringBuffer();
-        for (;;) {
-          c = x.next();
-          if (c == q) {
-            break;
-          }
-          if (c == 0 || c == '\n' || c == '\r') {
-            throw x.syntaxError("Missing close quote '" + q + "'.");
-          }
-          sb.append(c);
-        }
-        return sb.toString();
-      case ',':
-        x.back();
-        return "";
-      default:
-        x.back();
-        return x.nextTo(',');
-    }
-  }
-
-  /**
-   * Produce a JSONArray of strings from a row of comma delimited values.
-   * 
-   * @param x A JSONTokener of the source text.
-   * @return A JSONArray of strings.
-   * @throws JSONException
-   */
-  public static JSONArray rowToJSONArray(JSONTokener x) throws JSONException {
-    JSONArray ja = new JSONArray();
-    for (;;) {
-      String value = getValue(x);
-      char c = x.next();
-      if (value == null || (ja.length() == 0 && value.length() == 0 && c != ',')) {
-        return null;
-      }
-      ja.put(value);
-      for (;;) {
-        if (c == ',') {
-          break;
-        }
-        if (c != ' ') {
-          if (c == '\n' || c == '\r' || c == 0) {
-            return ja;
-          }
-          throw x.syntaxError("Bad character '" + c + "' (" + (int) c + ").");
-        }
-        c = x.next();
-      }
-    }
-  }
-
-  /**
-   * Produce a JSONObject from a row of comma delimited text, using a parallel JSONArray of strings
-   * to provides the names of the elements.
-   * 
-   * @param names A JSONArray of names. This is commonly obtained from the first row of a comma
-   *        delimited text file using the rowToJSONArray method.
-   * @param x A JSONTokener of the source text.
-   * @return A JSONObject combining the names and values.
-   * @throws JSONException
-   */
-  public static JSONObject rowToJSONObject(JSONArray names, JSONTokener x) throws JSONException {
-    JSONArray ja = rowToJSONArray(x);
-    return ja != null ? ja.toJSONObject(names) : null;
-  }
-
-  /**
-   * Produce a comma delimited text row from a JSONArray. Values containing the comma character will
-   * be quoted. Troublesome characters may be removed.
-   * 
-   * @param ja A JSONArray of strings.
-   * @return A string ending in NEWLINE.
-   */
-  public static String rowToString(JSONArray ja) {
-    StringBuffer sb = new StringBuffer();
-    for (int i = 0; i < ja.length(); i += 1) {
-      if (i > 0) {
-        sb.append(',');
-      }
-      Object object = ja.opt(i);
-      if (object != null) {
-        String string = object.toString();
-        if (string.length() > 0 && (string.indexOf(',') >= 0 || string.indexOf('\n') >= 0
-            || string.indexOf('\r') >= 0 || string.indexOf(0) >= 0 || string.charAt(0) == '"')) {
-          sb.append('"');
-          int length = string.length();
-          for (int j = 0; j < length; j += 1) {
-            char c = string.charAt(j);
-            if (c >= ' ' && c != '"') {
-              sb.append(c);
-            }
-          }
-          sb.append('"');
-        } else {
-          sb.append(string);
-        }
-      }
-    }
-    sb.append('\n');
-    return sb.toString();
-  }
-
-  /**
-   * Produce a JSONArray of JSONObjects from a comma delimited text string, using the first row as a
-   * source of names.
-   * 
-   * @param string The comma delimited text.
-   * @return A JSONArray of JSONObjects.
-   * @throws JSONException
-   */
-  public static JSONArray toJSONArray(String string) throws JSONException {
-    return toJSONArray(new JSONTokener(string));
-  }
-
-  /**
-   * Produce a JSONArray of JSONObjects from a comma delimited text string, using the first row as a
-   * source of names.
-   * 
-   * @param x The JSONTokener containing the comma delimited text.
-   * @return A JSONArray of JSONObjects.
-   * @throws JSONException
-   */
-  public static JSONArray toJSONArray(JSONTokener x) throws JSONException {
-    return toJSONArray(rowToJSONArray(x), x);
-  }
-
-  /**
-   * Produce a JSONArray of JSONObjects from a comma delimited text string using a supplied
-   * JSONArray as the source of element names.
-   * 
-   * @param names A JSONArray of strings.
-   * @param string The comma delimited text.
-   * @return A JSONArray of JSONObjects.
-   * @throws JSONException
-   */
-  public static JSONArray toJSONArray(JSONArray names, String string) throws JSONException {
-    return toJSONArray(names, new JSONTokener(string));
-  }
-
-  /**
-   * Produce a JSONArray of JSONObjects from a comma delimited text string using a supplied
-   * JSONArray as the source of element names.
-   * 
-   * @param names A JSONArray of strings.
-   * @param x A JSONTokener of the source text.
-   * @return A JSONArray of JSONObjects.
-   * @throws JSONException
-   */
-  public static JSONArray toJSONArray(JSONArray names, JSONTokener x) throws JSONException {
-    if (names == null || names.length() == 0) {
-      return null;
-    }
-    JSONArray ja = new JSONArray();
-    for (;;) {
-      JSONObject jo = rowToJSONObject(names, x);
-      if (jo == null) {
-        break;
-      }
-      ja.put(jo);
-    }
-    if (ja.length() == 0) {
-      return null;
-    }
-    return ja;
-  }
-
-
-  /**
-   * Produce a comma delimited text from a JSONArray of JSONObjects. The first row will be a list of
-   * names obtained by inspecting the first JSONObject.
-   * 
-   * @param ja A JSONArray of JSONObjects.
-   * @return A comma delimited text.
-   * @throws JSONException
-   */
-  public static String toString(JSONArray ja) throws JSONException {
-    JSONObject jo = ja.optJSONObject(0);
-    if (jo != null) {
-      JSONArray names = jo.names();
-      if (names != null) {
-        return rowToString(names) + toString(names, ja);
-      }
-    }
-    return null;
-  }
-
-  /**
-   * Produce a comma delimited text from a JSONArray of JSONObjects using a provided list of names.
-   * The list of names is not included in the output.
-   * 
-   * @param names A JSONArray of strings.
-   * @param ja A JSONArray of JSONObjects.
-   * @return A comma delimited text.
-   * @throws JSONException
-   */
-  public static String toString(JSONArray names, JSONArray ja) throws JSONException {
-    if (names == null || names.length() == 0) {
-      return null;
-    }
-    StringBuffer sb = new StringBuffer();
-    for (int i = 0; i < ja.length(); i += 1) {
-      JSONObject jo = ja.optJSONObject(i);
-      if (jo != null) {
-        sb.append(rowToString(jo.toJSONArray(names)));
-      }
-    }
-    return sb.toString();
-  }
-}

http://git-wip-us.apache.org/repos/asf/geode/blob/76ea6c3c/geode-json/src/main/java/org/json/Cookie.java
----------------------------------------------------------------------
diff --git a/geode-json/src/main/java/org/json/Cookie.java b/geode-json/src/main/java/org/json/Cookie.java
deleted file mode 100755
index 21f88d8..0000000
--- a/geode-json/src/main/java/org/json/Cookie.java
+++ /dev/null
@@ -1,162 +0,0 @@
-package org.json;
-
-/*
- * Copyright (c) 2002 JSON.org
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
- * associated documentation files (the "Software"), to deal in the Software without restriction,
- * including without limitation the rights to use, copy, modify, merge, publish, distribute,
- * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in all copies or
- * substantial portions of the Software.
- * 
- * The Software shall be used for Good, not Evil.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
- * NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-/**
- * Convert a web browser cookie specification to a JSONObject and back. JSON and Cookies are both
- * notations for name/value pairs.
- * 
- * @author JSON.org
- * @version 2010-12-24
- */
-public class Cookie {
-
-  /**
-   * Produce a copy of a string in which the characters '+', '%', '=', ';' and control characters
-   * are replaced with "%hh". This is a gentle form of URL encoding, attempting to cause as little
-   * distortion to the string as possible. The characters '=' and ';' are meta characters in
-   * cookies. By convention, they are escaped using the URL-encoding. This is only a convention, not
-   * a standard. Often, cookies are expected to have encoded values. We encode '=' and ';' because
-   * we must. We encode '%' and '+' because they are meta characters in URL encoding.
-   * 
-   * @param string The source string.
-   * @return The escaped result.
-   */
-  public static String escape(String string) {
-    char c;
-    String s = string.trim();
-    StringBuffer sb = new StringBuffer();
-    int length = s.length();
-    for (int i = 0; i < length; i += 1) {
-      c = s.charAt(i);
-      if (c < ' ' || c == '+' || c == '%' || c == '=' || c == ';') {
-        sb.append('%');
-        sb.append(Character.forDigit((char) ((c >>> 4) & 0x0f), 16));
-        sb.append(Character.forDigit((char) (c & 0x0f), 16));
-      } else {
-        sb.append(c);
-      }
-    }
-    return sb.toString();
-  }
-
-
-  /**
-   * Convert a cookie specification string into a JSONObject. The string will contain a name value
-   * pair separated by '='. The name and the value will be unescaped, possibly converting '+' and
-   * '%' sequences. The cookie properties may follow, separated by ';', also represented as
-   * name=value (except the secure property, which does not have a value). The name will be stored
-   * under the key "name", and the value will be stored under the key "value". This method does not
-   * do checking or validation of the parameters. It only converts the cookie string into a
-   * JSONObject.
-   * 
-   * @param string The cookie specification string.
-   * @return A JSONObject containing "name", "value", and possibly other members.
-   * @throws JSONException
-   */
-  public static JSONObject toJSONObject(String string) throws JSONException {
-    String name;
-    JSONObject jo = new JSONObject();
-    Object value;
-    JSONTokener x = new JSONTokener(string);
-    jo.put("name", x.nextTo('='));
-    x.next('=');
-    jo.put("value", x.nextTo(';'));
-    x.next();
-    while (x.more()) {
-      name = unescape(x.nextTo("=;"));
-      if (x.next() != '=') {
-        if (name.equals("secure")) {
-          value = Boolean.TRUE;
-        } else {
-          throw x.syntaxError("Missing '=' in cookie parameter.");
-        }
-      } else {
-        value = unescape(x.nextTo(';'));
-        x.next();
-      }
-      jo.put(name, value);
-    }
-    return jo;
-  }
-
-
-  /**
-   * Convert a JSONObject into a cookie specification string. The JSONObject must contain "name" and
-   * "value" members. If the JSONObject contains "expires", "domain", "path", or "secure" members,
-   * they will be appended to the cookie specification string. All other members are ignored.
-   * 
-   * @param jo A JSONObject
-   * @return A cookie specification string
-   * @throws JSONException
-   */
-  public static String toString(JSONObject jo) throws JSONException {
-    StringBuffer sb = new StringBuffer();
-
-    sb.append(escape(jo.getString("name")));
-    sb.append("=");
-    sb.append(escape(jo.getString("value")));
-    if (jo.has("expires")) {
-      sb.append(";expires=");
-      sb.append(jo.getString("expires"));
-    }
-    if (jo.has("domain")) {
-      sb.append(";domain=");
-      sb.append(escape(jo.getString("domain")));
-    }
-    if (jo.has("path")) {
-      sb.append(";path=");
-      sb.append(escape(jo.getString("path")));
-    }
-    if (jo.optBoolean("secure")) {
-      sb.append(";secure");
-    }
-    return sb.toString();
-  }
-
-  /**
-   * Convert <code>%</code><i>hh</i> sequences to single characters, and convert plus to space.
-   * 
-   * @param string A string that may contain <code>+</code>&nbsp;<small>(plus)</small> and
-   *        <code>%</code><i>hh</i> sequences.
-   * @return The unescaped string.
-   */
-  public static String unescape(String string) {
-    int length = string.length();
-    StringBuffer sb = new StringBuffer();
-    for (int i = 0; i < length; ++i) {
-      char c = string.charAt(i);
-      if (c == '+') {
-        c = ' ';
-      } else if (c == '%' && i + 2 < length) {
-        int d = JSONTokener.dehexchar(string.charAt(i + 1));
-        int e = JSONTokener.dehexchar(string.charAt(i + 2));
-        if (d >= 0 && e >= 0) {
-          c = (char) (d * 16 + e);
-          i += 2;
-        }
-      }
-      sb.append(c);
-    }
-    return sb.toString();
-  }
-}

http://git-wip-us.apache.org/repos/asf/geode/blob/76ea6c3c/geode-json/src/main/java/org/json/CookieList.java
----------------------------------------------------------------------
diff --git a/geode-json/src/main/java/org/json/CookieList.java b/geode-json/src/main/java/org/json/CookieList.java
deleted file mode 100755
index 35e1a97..0000000
--- a/geode-json/src/main/java/org/json/CookieList.java
+++ /dev/null
@@ -1,87 +0,0 @@
-package org.json;
-
-/*
- * Copyright (c) 2002 JSON.org
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
- * associated documentation files (the "Software"), to deal in the Software without restriction,
- * including without limitation the rights to use, copy, modify, merge, publish, distribute,
- * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in all copies or
- * substantial portions of the Software.
- * 
- * The Software shall be used for Good, not Evil.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
- * NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-import java.util.Iterator;
-
-/**
- * Convert a web browser cookie list string to a JSONObject and back.
- * 
- * @author JSON.org
- * @version 2010-12-24
- */
-public class CookieList {
-
-  /**
-   * Convert a cookie list into a JSONObject. A cookie list is a sequence of name/value pairs. The
-   * names are separated from the values by '='. The pairs are separated by ';'. The names and the
-   * values will be unescaped, possibly converting '+' and '%' sequences.
-   *
-   * To add a cookie to a cooklist, cookielistJSONObject.put(cookieJSONObject.getString("name"),
-   * cookieJSONObject.getString("value"));
-   * 
-   * @param string A cookie list string
-   * @return A JSONObject
-   * @throws JSONException
-   */
-  public static JSONObject toJSONObject(String string) throws JSONException {
-    JSONObject jo = new JSONObject();
-    JSONTokener x = new JSONTokener(string);
-    while (x.more()) {
-      String name = Cookie.unescape(x.nextTo('='));
-      x.next('=');
-      jo.put(name, Cookie.unescape(x.nextTo(';')));
-      x.next();
-    }
-    return jo;
-  }
-
-
-  /**
-   * Convert a JSONObject into a cookie list. A cookie list is a sequence of name/value pairs. The
-   * names are separated from the values by '='. The pairs are separated by ';'. The characters '%',
-   * '+', '=', and ';' in the names and values are replaced by "%hh".
-   * 
-   * @param jo A JSONObject
-   * @return A cookie list string
-   * @throws JSONException
-   */
-  public static String toString(JSONObject jo) throws JSONException {
-    boolean b = false;
-    Iterator keys = jo.keys();
-    String string;
-    StringBuffer sb = new StringBuffer();
-    while (keys.hasNext()) {
-      string = keys.next().toString();
-      if (!jo.isNull(string)) {
-        if (b) {
-          sb.append(';');
-        }
-        sb.append(Cookie.escape(string));
-        sb.append("=");
-        sb.append(Cookie.escape(jo.getString(string)));
-        b = true;
-      }
-    }
-    return sb.toString();
-  }
-}

http://git-wip-us.apache.org/repos/asf/geode/blob/76ea6c3c/geode-json/src/main/java/org/json/HTTP.java
----------------------------------------------------------------------
diff --git a/geode-json/src/main/java/org/json/HTTP.java b/geode-json/src/main/java/org/json/HTTP.java
deleted file mode 100755
index 1e815aa..0000000
--- a/geode-json/src/main/java/org/json/HTTP.java
+++ /dev/null
@@ -1,185 +0,0 @@
-package org.json;
-
-/*
- * Copyright (c) 2002 JSON.org
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
- * associated documentation files (the "Software"), to deal in the Software without restriction,
- * including without limitation the rights to use, copy, modify, merge, publish, distribute,
- * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in all copies or
- * substantial portions of the Software.
- * 
- * The Software shall be used for Good, not Evil.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
- * NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-import java.util.Iterator;
-
-/**
- * Convert an HTTP header to a JSONObject and back.
- * 
- * @author JSON.org
- * @version 2010-12-24
- */
-public class HTTP {
-
-  /** Carriage return/line feed. */
-  public static final String CRLF = "\r\n";
-
-  /**
-   * Convert an HTTP header string into a JSONObject. It can be a request header or a response
-   * header. A request header will contain
-   * 
-   * <pre>
-   * {
-   *    Method: "POST" (for example),
-   *    "Request-URI": "/" (for example),
-   *    "HTTP-Version": "HTTP/1.1" (for example)
-   * }
-   * </pre>
-   * 
-   * A response header will contain
-   * 
-   * <pre>
-   * {
-   *    "HTTP-Version": "HTTP/1.1" (for example),
-   *    "Status-Code": "200" (for example),
-   *    "Reason-Phrase": "OK" (for example)
-   * }
-   * </pre>
-   * 
-   * In addition, the other parameters in the header will be captured, using the HTTP field names as
-   * JSON names, so that
-   * 
-   * <pre>
-   *    Date: Sun, 26 May 2002 18:06:04 GMT
-   *    Cookie: Q=q2=PPEAsg--; B=677gi6ouf29bn&b=2&f=s
-   *    Cache-Control: no-cache
-   * </pre>
-   * 
-   * become
-   * 
-   * <pre>
-   * {...
-   *    Date: "Sun, 26 May 2002 18:06:04 GMT",
-   *    Cookie: "Q=q2=PPEAsg--; B=677gi6ouf29bn&b=2&f=s",
-   *    "Cache-Control": "no-cache",
-   * ...}
-   * </pre>
-   * 
-   * It does no further checking or conversion. It does not parse dates. It does not do '%'
-   * transforms on URLs.
-   * 
-   * @param string An HTTP header string.
-   * @return A JSONObject containing the elements and attributes of the XML string.
-   * @throws JSONException
-   */
-  public static JSONObject toJSONObject(String string) throws JSONException {
-    JSONObject jo = new JSONObject();
-    HTTPTokener x = new HTTPTokener(string);
-    String token;
-
-    token = x.nextToken();
-    if (token.toUpperCase().startsWith("HTTP")) {
-
-      // Response
-
-      jo.put("HTTP-Version", token);
-      jo.put("Status-Code", x.nextToken());
-      jo.put("Reason-Phrase", x.nextTo('\0'));
-      x.next();
-
-    } else {
-
-      // Request
-
-      jo.put("Method", token);
-      jo.put("Request-URI", x.nextToken());
-      jo.put("HTTP-Version", x.nextToken());
-    }
-
-    // Fields
-
-    while (x.more()) {
-      String name = x.nextTo(':');
-      x.next(':');
-      jo.put(name, x.nextTo('\0'));
-      x.next();
-    }
-    return jo;
-  }
-
-
-  /**
-   * Convert a JSONObject into an HTTP header. A request header must contain
-   * 
-   * <pre>
-   * {
-   *    Method: "POST" (for example),
-   *    "Request-URI": "/" (for example),
-   *    "HTTP-Version": "HTTP/1.1" (for example)
-   * }
-   * </pre>
-   * 
-   * A response header must contain
-   * 
-   * <pre>
-   * {
-   *    "HTTP-Version": "HTTP/1.1" (for example),
-   *    "Status-Code": "200" (for example),
-   *    "Reason-Phrase": "OK" (for example)
-   * }
-   * </pre>
-   * 
-   * Any other members of the JSONObject will be output as HTTP fields. The result will end with two
-   * CRLF pairs.
-   * 
-   * @param jo A JSONObject
-   * @return An HTTP header string.
-   * @throws JSONException if the object does not contain enough information.
-   */
-  public static String toString(JSONObject jo) throws JSONException {
-    Iterator keys = jo.keys();
-    String string;
-    StringBuffer sb = new StringBuffer();
-    if (jo.has("Status-Code") && jo.has("Reason-Phrase")) {
-      sb.append(jo.getString("HTTP-Version"));
-      sb.append(' ');
-      sb.append(jo.getString("Status-Code"));
-      sb.append(' ');
-      sb.append(jo.getString("Reason-Phrase"));
-    } else if (jo.has("Method") && jo.has("Request-URI")) {
-      sb.append(jo.getString("Method"));
-      sb.append(' ');
-      sb.append('"');
-      sb.append(jo.getString("Request-URI"));
-      sb.append('"');
-      sb.append(' ');
-      sb.append(jo.getString("HTTP-Version"));
-    } else {
-      throw new JSONException("Not enough material for an HTTP header.");
-    }
-    sb.append(CRLF);
-    while (keys.hasNext()) {
-      string = keys.next().toString();
-      if (!"HTTP-Version".equals(string) && !"Status-Code".equals(string)
-          && !"Reason-Phrase".equals(string) && !"Method".equals(string)
-          && !"Request-URI".equals(string) && !jo.isNull(string)) {
-        sb.append(string);
-        sb.append(": ");
-        sb.append(jo.getString(string));
-        sb.append(CRLF);
-      }
-    }
-    sb.append(CRLF);
-    return sb.toString();
-  }
-}

http://git-wip-us.apache.org/repos/asf/geode/blob/76ea6c3c/geode-json/src/main/java/org/json/HTTPTokener.java
----------------------------------------------------------------------
diff --git a/geode-json/src/main/java/org/json/HTTPTokener.java b/geode-json/src/main/java/org/json/HTTPTokener.java
deleted file mode 100755
index 72c9b88..0000000
--- a/geode-json/src/main/java/org/json/HTTPTokener.java
+++ /dev/null
@@ -1,77 +0,0 @@
-package org.json;
-
-/*
- * Copyright (c) 2002 JSON.org
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
- * associated documentation files (the "Software"), to deal in the Software without restriction,
- * including without limitation the rights to use, copy, modify, merge, publish, distribute,
- * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in all copies or
- * substantial portions of the Software.
- * 
- * The Software shall be used for Good, not Evil.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
- * NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-/**
- * The HTTPTokener extends the JSONTokener to provide additional methods for the parsing of HTTP
- * headers.
- * 
- * @author JSON.org
- * @version 2010-12-24
- */
-public class HTTPTokener extends JSONTokener {
-
-  /**
-   * Construct an HTTPTokener from a string.
-   * 
-   * @param string A source string.
-   */
-  public HTTPTokener(String string) {
-    super(string);
-  }
-
-
-  /**
-   * Get the next token or string. This is used in parsing HTTP headers.
-   * 
-   * @throws JSONException
-   * @return A String.
-   */
-  public String nextToken() throws JSONException {
-    char c;
-    char q;
-    StringBuffer sb = new StringBuffer();
-    do {
-      c = next();
-    } while (Character.isWhitespace(c));
-    if (c == '"' || c == '\'') {
-      q = c;
-      for (;;) {
-        c = next();
-        if (c < ' ') {
-          throw syntaxError("Unterminated string.");
-        }
-        if (c == q) {
-          return sb.toString();
-        }
-        sb.append(c);
-      }
-    }
-    for (;;) {
-      if (c == 0 || Character.isWhitespace(c)) {
-        return sb.toString();
-      }
-      sb.append(c);
-      c = next();
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/geode/blob/76ea6c3c/geode-json/src/main/java/org/json/JSONArray.java
----------------------------------------------------------------------
diff --git a/geode-json/src/main/java/org/json/JSONArray.java b/geode-json/src/main/java/org/json/JSONArray.java
deleted file mode 100644
index edaefa4..0000000
--- a/geode-json/src/main/java/org/json/JSONArray.java
+++ /dev/null
@@ -1,868 +0,0 @@
-package org.json;
-
-/*
- * Copyright (c) 2002 JSON.org
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
- * associated documentation files (the "Software"), to deal in the Software without restriction,
- * including without limitation the rights to use, copy, modify, merge, publish, distribute,
- * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in all copies or
- * substantial portions of the Software.
- * 
- * The Software shall be used for Good, not Evil.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
- * NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-import java.io.IOException;
-import java.io.StringWriter;
-import java.io.Writer;
-import java.lang.reflect.Array;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.Map;
-
-/**
- * A JSONArray is an ordered sequence of values. Its external text form is a string wrapped in
- * square brackets with commas separating the values. The internal form is an object having
- * <code>get</code> and <code>opt</code> methods for accessing the values by index, and
- * <code>put</code> methods for adding or replacing values. The values can be any of these types:
- * <code>Boolean</code>, <code>JSONArray</code>, <code>JSONObject</code>, <code>Number</code>,
- * <code>String</code>, or the <code>JSONObject.NULL object</code>.
- * <p>
- * The constructor can convert a JSON text into a Java object. The <code>toString</code> method
- * converts to JSON text.
- * <p>
- * A <code>get</code> method returns a value if one can be found, and throws an exception if one
- * cannot be found. An <code>opt</code> method returns a default value instead of throwing an
- * exception, and so is useful for obtaining optional values.
- * <p>
- * The generic <code>get()</code> and <code>opt()</code> methods return an object which you can cast
- * or query for type. There are also typed <code>get</code> and <code>opt</code> methods that do
- * type checking and type coercion for you.
- * <p>
- * The texts produced by the <code>toString</code> methods strictly conform to JSON syntax rules.
- * The constructors are more forgiving in the texts they will accept:
- * <ul>
- * <li>An extra <code>,</code>&nbsp;<small>(comma)</small> may appear just before the closing
- * bracket.</li>
- * <li>The <code>null</code> value will be inserted when there is <code>,</code>
- * &nbsp;<small>(comma)</small> elision.</li>
- * <li>Strings may be quoted with <code>'</code>&nbsp;<small>(single quote)</small>.</li>
- * <li>Strings do not need to be quoted at all if they do not begin with a quote or single quote,
- * and if they do not contain leading or trailing spaces, and if they do not contain any of these
- * characters: <code>{ } [ ] / \ : , = ; #</code> and if they do not look like numbers and if they
- * are not the reserved words <code>true</code>, <code>false</code>, or <code>null</code>.</li>
- * <li>Values can be separated by <code>;</code> <small>(semicolon)</small> as well as by
- * <code>,</code> <small>(comma)</small>.</li>
- * </ul>
- *
- * @author JSON.org
- * @version 2012-04-20
- */
-public class JSONArray {
-
-
-  /**
-   * The arrayList where the JSONArray's properties are kept.
-   */
-  private final ArrayList myArrayList;
-
-
-  /**
-   * Construct an empty JSONArray.
-   */
-  public JSONArray() {
-    this.myArrayList = new ArrayList();
-  }
-
-  /**
-   * Construct a JSONArray from a JSONTokener.
-   * 
-   * @param x A JSONTokener
-   * @throws JSONException If there is a syntax error.
-   */
-  public JSONArray(JSONTokener x) throws JSONException {
-    this();
-    if (x.nextClean() != '[') {
-      throw x.syntaxError("A JSONArray text must start with '['");
-    }
-    if (x.nextClean() != ']') {
-      x.back();
-      for (;;) {
-        if (x.nextClean() == ',') {
-          x.back();
-          this.myArrayList.add(JSONObject.NULL);
-        } else {
-          x.back();
-          this.myArrayList.add(x.nextValue());
-        }
-        switch (x.nextClean()) {
-          case ';':
-          case ',':
-            if (x.nextClean() == ']') {
-              return;
-            }
-            x.back();
-            break;
-          case ']':
-            return;
-          default:
-            throw x.syntaxError("Expected a ',' or ']'");
-        }
-      }
-    }
-  }
-
-
-  /**
-   * Construct a JSONArray from a source JSON text.
-   * 
-   * @param source A string that begins with <code>[</code>&nbsp;<small>(left bracket)</small> and
-   *        ends with <code>]</code>&nbsp;<small>(right bracket)</small>.
-   * @throws JSONException If there is a syntax error.
-   */
-  public JSONArray(String source) throws JSONException {
-    this(new JSONTokener(source));
-  }
-
-
-  /**
-   * Construct a JSONArray from a Collection.
-   * 
-   * @param collection A Collection.
-   */
-  public JSONArray(Collection collection) {
-    this.myArrayList = new ArrayList();
-    if (collection != null) {
-      Iterator iter = collection.iterator();
-      while (iter.hasNext()) {
-        this.myArrayList.add(JSONObject.wrap(iter.next()));
-      }
-    }
-  }
-
-
-  /**
-   * Construct a JSONArray from an array
-   * 
-   * @throws JSONException If not an array.
-   */
-  public JSONArray(Object array) throws JSONException {
-    this();
-    if (array.getClass().isArray()) {
-      int length = Array.getLength(array);
-      for (int i = 0; i < length; i += 1) {
-        this.put(JSONObject.wrap(Array.get(array, i)));
-      }
-    } else {
-      throw new JSONException("JSONArray initial value should be a string or collection or array.");
-    }
-  }
-
-
-  /**
-   * Get the object value associated with an index.
-   * 
-   * @param index The index must be between 0 and length() - 1.
-   * @return An object value.
-   * @throws JSONException If there is no value for the index.
-   */
-  public Object get(int index) throws JSONException {
-    Object object = this.opt(index);
-    if (object == null) {
-      throw new JSONException("JSONArray[" + index + "] not found.");
-    }
-    return object;
-  }
-
-
-  /**
-   * Get the boolean value associated with an index. The string values "true" and "false" are
-   * converted to boolean.
-   *
-   * @param index The index must be between 0 and length() - 1.
-   * @return The truth.
-   * @throws JSONException If there is no value for the index or if the value is not convertible to
-   *         boolean.
-   */
-  public boolean getBoolean(int index) throws JSONException {
-    Object object = this.get(index);
-    if (object.equals(Boolean.FALSE)
-        || (object instanceof String && ((String) object).equalsIgnoreCase("false"))) {
-      return false;
-    } else if (object.equals(Boolean.TRUE)
-        || (object instanceof String && ((String) object).equalsIgnoreCase("true"))) {
-      return true;
-    }
-    throw new JSONException("JSONArray[" + index + "] is not a boolean.");
-  }
-
-
-  /**
-   * Get the double value associated with an index.
-   *
-   * @param index The index must be between 0 and length() - 1.
-   * @return The value.
-   * @throws JSONException If the key is not found or if the value cannot be converted to a number.
-   */
-  public double getDouble(int index) throws JSONException {
-    Object object = this.get(index);
-    try {
-      return object instanceof Number ? ((Number) object).doubleValue()
-          : Double.parseDouble((String) object);
-    } catch (Exception e) {
-      throw new JSONException("JSONArray[" + index + "] is not a number.");
-    }
-  }
-
-
-  /**
-   * Get the int value associated with an index.
-   *
-   * @param index The index must be between 0 and length() - 1.
-   * @return The value.
-   * @throws JSONException If the key is not found or if the value is not a number.
-   */
-  public int getInt(int index) throws JSONException {
-    Object object = this.get(index);
-    try {
-      return object instanceof Number ? ((Number) object).intValue()
-          : Integer.parseInt((String) object);
-    } catch (Exception e) {
-      throw new JSONException("JSONArray[" + index + "] is not a number.");
-    }
-  }
-
-
-  /**
-   * Get the JSONArray associated with an index.
-   * 
-   * @param index The index must be between 0 and length() - 1.
-   * @return A JSONArray value.
-   * @throws JSONException If there is no value for the index. or if the value is not a JSONArray
-   */
-  public JSONArray getJSONArray(int index) throws JSONException {
-    Object object = this.get(index);
-    if (object instanceof JSONArray) {
-      return (JSONArray) object;
-    }
-    throw new JSONException("JSONArray[" + index + "] is not a JSONArray.");
-  }
-
-
-  /**
-   * Get the JSONObject associated with an index.
-   * 
-   * @param index subscript
-   * @return A JSONObject value.
-   * @throws JSONException If there is no value for the index or if the value is not a JSONObject
-   */
-  public JSONObject getJSONObject(int index) throws JSONException {
-    Object object = this.get(index);
-    if (object instanceof JSONObject) {
-      return (JSONObject) object;
-    }
-    throw new JSONException("JSONArray[" + index + "] is not a JSONObject.");
-  }
-
-
-  /**
-   * Get the long value associated with an index.
-   *
-   * @param index The index must be between 0 and length() - 1.
-   * @return The value.
-   * @throws JSONException If the key is not found or if the value cannot be converted to a number.
-   */
-  public long getLong(int index) throws JSONException {
-    Object object = this.get(index);
-    try {
-      return object instanceof Number ? ((Number) object).longValue()
-          : Long.parseLong((String) object);
-    } catch (Exception e) {
-      throw new JSONException("JSONArray[" + index + "] is not a number.");
-    }
-  }
-
-
-  /**
-   * Get the string associated with an index.
-   * 
-   * @param index The index must be between 0 and length() - 1.
-   * @return A string value.
-   * @throws JSONException If there is no string value for the index.
-   */
-  public String getString(int index) throws JSONException {
-    Object object = this.get(index);
-    if (object instanceof String) {
-      return (String) object;
-    }
-    throw new JSONException("JSONArray[" + index + "] not a string.");
-  }
-
-
-  /**
-   * Determine if the value is null.
-   * 
-   * @param index The index must be between 0 and length() - 1.
-   * @return true if the value at the index is null, or if there is no value.
-   */
-  public boolean isNull(int index) {
-    return JSONObject.NULL.equals(this.opt(index));
-  }
-
-
-  /**
-   * Make a string from the contents of this JSONArray. The <code>separator</code> string is
-   * inserted between each element. Warning: This method assumes that the data structure is
-   * acyclical.
-   * 
-   * @param separator A string that will be inserted between the elements.
-   * @return a string.
-   * @throws JSONException If the array contains an invalid number.
-   */
-  public String join(String separator) throws JSONException {
-    int len = this.length();
-    StringBuffer sb = new StringBuffer();
-
-    for (int i = 0; i < len; i += 1) {
-      if (i > 0) {
-        sb.append(separator);
-      }
-      sb.append(JSONObject.valueToString(this.myArrayList.get(i)));
-    }
-    return sb.toString();
-  }
-
-
-  /**
-   * Get the number of elements in the JSONArray, included nulls.
-   *
-   * @return The length (or size).
-   */
-  public int length() {
-    return this.myArrayList.size();
-  }
-
-
-  /**
-   * Get the optional object value associated with an index.
-   * 
-   * @param index The index must be between 0 and length() - 1.
-   * @return An object value, or null if there is no object at that index.
-   */
-  public Object opt(int index) {
-    return (index < 0 || index >= this.length()) ? null : this.myArrayList.get(index);
-  }
-
-
-  /**
-   * Get the optional boolean value associated with an index. It returns false if there is no value
-   * at that index, or if the value is not Boolean.TRUE or the String "true".
-   *
-   * @param index The index must be between 0 and length() - 1.
-   * @return The truth.
-   */
-  public boolean optBoolean(int index) {
-    return this.optBoolean(index, false);
-  }
-
-
-  /**
-   * Get the optional boolean value associated with an index. It returns the defaultValue if there
-   * is no value at that index or if it is not a Boolean or the String "true" or "false" (case
-   * insensitive).
-   *
-   * @param index The index must be between 0 and length() - 1.
-   * @param defaultValue A boolean default.
-   * @return The truth.
-   */
-  public boolean optBoolean(int index, boolean defaultValue) {
-    try {
-      return this.getBoolean(index);
-    } catch (Exception e) {
-      return defaultValue;
-    }
-  }
-
-
-  /**
-   * Get the optional double value associated with an index. NaN is returned if there is no value
-   * for the index, or if the value is not a number and cannot be converted to a number.
-   *
-   * @param index The index must be between 0 and length() - 1.
-   * @return The value.
-   */
-  public double optDouble(int index) {
-    return this.optDouble(index, Double.NaN);
-  }
-
-
-  /**
-   * Get the optional double value associated with an index. The defaultValue is returned if there
-   * is no value for the index, or if the value is not a number and cannot be converted to a number.
-   *
-   * @param index subscript
-   * @param defaultValue The default value.
-   * @return The value.
-   */
-  public double optDouble(int index, double defaultValue) {
-    try {
-      return this.getDouble(index);
-    } catch (Exception e) {
-      return defaultValue;
-    }
-  }
-
-
-  /**
-   * Get the optional int value associated with an index. Zero is returned if there is no value for
-   * the index, or if the value is not a number and cannot be converted to a number.
-   *
-   * @param index The index must be between 0 and length() - 1.
-   * @return The value.
-   */
-  public int optInt(int index) {
-    return this.optInt(index, 0);
-  }
-
-
-  /**
-   * Get the optional int value associated with an index. The defaultValue is returned if there is
-   * no value for the index, or if the value is not a number and cannot be converted to a number.
-   * 
-   * @param index The index must be between 0 and length() - 1.
-   * @param defaultValue The default value.
-   * @return The value.
-   */
-  public int optInt(int index, int defaultValue) {
-    try {
-      return this.getInt(index);
-    } catch (Exception e) {
-      return defaultValue;
-    }
-  }
-
-
-  /**
-   * Get the optional JSONArray associated with an index.
-   * 
-   * @param index subscript
-   * @return A JSONArray value, or null if the index has no value, or if the value is not a
-   *         JSONArray.
-   */
-  public JSONArray optJSONArray(int index) {
-    Object o = this.opt(index);
-    return o instanceof JSONArray ? (JSONArray) o : null;
-  }
-
-
-  /**
-   * Get the optional JSONObject associated with an index. Null is returned if the key is not found,
-   * or null if the index has no value, or if the value is not a JSONObject.
-   *
-   * @param index The index must be between 0 and length() - 1.
-   * @return A JSONObject value.
-   */
-  public JSONObject optJSONObject(int index) {
-    Object o = this.opt(index);
-    return o instanceof JSONObject ? (JSONObject) o : null;
-  }
-
-
-  /**
-   * Get the optional long value associated with an index. Zero is returned if there is no value for
-   * the index, or if the value is not a number and cannot be converted to a number.
-   *
-   * @param index The index must be between 0 and length() - 1.
-   * @return The value.
-   */
-  public long optLong(int index) {
-    return this.optLong(index, 0);
-  }
-
-
-  /**
-   * Get the optional long value associated with an index. The defaultValue is returned if there is
-   * no value for the index, or if the value is not a number and cannot be converted to a number.
-   * 
-   * @param index The index must be between 0 and length() - 1.
-   * @param defaultValue The default value.
-   * @return The value.
-   */
-  public long optLong(int index, long defaultValue) {
-    try {
-      return this.getLong(index);
-    } catch (Exception e) {
-      return defaultValue;
-    }
-  }
-
-
-  /**
-   * Get the optional string value associated with an index. It returns an empty string if there is
-   * no value at that index. If the value is not a string and is not null, then it is coverted to a
-   * string.
-   *
-   * @param index The index must be between 0 and length() - 1.
-   * @return A String value.
-   */
-  public String optString(int index) {
-    return this.optString(index, "");
-  }
-
-
-  /**
-   * Get the optional string associated with an index. The defaultValue is returned if the key is
-   * not found.
-   *
-   * @param index The index must be between 0 and length() - 1.
-   * @param defaultValue The default value.
-   * @return A String value.
-   */
-  public String optString(int index, String defaultValue) {
-    Object object = this.opt(index);
-    return JSONObject.NULL.equals(object) ? defaultValue : object.toString();
-  }
-
-
-  /**
-   * Append a boolean value. This increases the array's length by one.
-   *
-   * @param value A boolean value.
-   * @return this.
-   */
-  public JSONArray put(boolean value) {
-    this.put(value ? Boolean.TRUE : Boolean.FALSE);
-    return this;
-  }
-
-
-  /**
-   * Put a value in the JSONArray, where the value will be a JSONArray which is produced from a
-   * Collection.
-   * 
-   * @param value A Collection value.
-   * @return this.
-   */
-  public JSONArray put(Collection value) {
-    this.put(new JSONArray(value));
-    return this;
-  }
-
-
-  /**
-   * Append a double value. This increases the array's length by one.
-   *
-   * @param value A double value.
-   * @throws JSONException if the value is not finite.
-   * @return this.
-   */
-  public JSONArray put(double value) throws JSONException {
-    Double d = new Double(value);
-    JSONObject.testValidity(d);
-    this.put(d);
-    return this;
-  }
-
-
-  /**
-   * Append an int value. This increases the array's length by one.
-   *
-   * @param value An int value.
-   * @return this.
-   */
-  public JSONArray put(int value) {
-    this.put(new Integer(value));
-    return this;
-  }
-
-
-  /**
-   * Append an long value. This increases the array's length by one.
-   *
-   * @param value A long value.
-   * @return this.
-   */
-  public JSONArray put(long value) {
-    this.put(new Long(value));
-    return this;
-  }
-
-
-  /**
-   * Put a value in the JSONArray, where the value will be a JSONObject which is produced from a
-   * Map.
-   * 
-   * @param value A Map value.
-   * @return this.
-   */
-  public JSONArray put(Map value) {
-    this.put(new JSONObject(value));
-    return this;
-  }
-
-
-  /**
-   * Append an object value. This increases the array's length by one.
-   * 
-   * @param value An object value. The value should be a Boolean, Double, Integer, JSONArray,
-   *        JSONObject, Long, or String, or the JSONObject.NULL object.
-   * @return this.
-   */
-  public JSONArray put(Object value) {
-    this.myArrayList.add(value);
-    return this;
-  }
-
-
-  /**
-   * Put or replace a boolean value in the JSONArray. If the index is greater than the length of the
-   * JSONArray, then null elements will be added as necessary to pad it out.
-   * 
-   * @param index The subscript.
-   * @param value A boolean value.
-   * @return this.
-   * @throws JSONException If the index is negative.
-   */
-  public JSONArray put(int index, boolean value) throws JSONException {
-    this.put(index, value ? Boolean.TRUE : Boolean.FALSE);
-    return this;
-  }
-
-
-  /**
-   * Put a value in the JSONArray, where the value will be a JSONArray which is produced from a
-   * Collection.
-   * 
-   * @param index The subscript.
-   * @param value A Collection value.
-   * @return this.
-   * @throws JSONException If the index is negative or if the value is not finite.
-   */
-  public JSONArray put(int index, Collection value) throws JSONException {
-    this.put(index, new JSONArray(value));
-    return this;
-  }
-
-
-  /**
-   * Put or replace a double value. If the index is greater than the length of the JSONArray, then
-   * null elements will be added as necessary to pad it out.
-   * 
-   * @param index The subscript.
-   * @param value A double value.
-   * @return this.
-   * @throws JSONException If the index is negative or if the value is not finite.
-   */
-  public JSONArray put(int index, double value) throws JSONException {
-    this.put(index, new Double(value));
-    return this;
-  }
-
-
-  /**
-   * Put or replace an int value. If the index is greater than the length of the JSONArray, then
-   * null elements will be added as necessary to pad it out.
-   * 
-   * @param index The subscript.
-   * @param value An int value.
-   * @return this.
-   * @throws JSONException If the index is negative.
-   */
-  public JSONArray put(int index, int value) throws JSONException {
-    this.put(index, new Integer(value));
-    return this;
-  }
-
-
-  /**
-   * Put or replace a long value. If the index is greater than the length of the JSONArray, then
-   * null elements will be added as necessary to pad it out.
-   * 
-   * @param index The subscript.
-   * @param value A long value.
-   * @return this.
-   * @throws JSONException If the index is negative.
-   */
-  public JSONArray put(int index, long value) throws JSONException {
-    this.put(index, new Long(value));
-    return this;
-  }
-
-
-  /**
-   * Put a value in the JSONArray, where the value will be a JSONObject that is produced from a Map.
-   * 
-   * @param index The subscript.
-   * @param value The Map value.
-   * @return this.
-   * @throws JSONException If the index is negative or if the the value is an invalid number.
-   */
-  public JSONArray put(int index, Map value) throws JSONException {
-    this.put(index, new JSONObject(value));
-    return this;
-  }
-
-
-  /**
-   * Put or replace an object value in the JSONArray. If the index is greater than the length of the
-   * JSONArray, then null elements will be added as necessary to pad it out.
-   * 
-   * @param index The subscript.
-   * @param value The value to put into the array. The value should be a Boolean, Double, Integer,
-   *        JSONArray, JSONObject, Long, or String, or the JSONObject.NULL object.
-   * @return this.
-   * @throws JSONException If the index is negative or if the the value is an invalid number.
-   */
-  public JSONArray put(int index, Object value) throws JSONException {
-    JSONObject.testValidity(value);
-    if (index < 0) {
-      throw new JSONException("JSONArray[" + index + "] not found.");
-    }
-    if (index < this.length()) {
-      this.myArrayList.set(index, value);
-    } else {
-      while (index != this.length()) {
-        this.put(JSONObject.NULL);
-      }
-      this.put(value);
-    }
-    return this;
-  }
-
-
-  /**
-   * Remove an index and close the hole.
-   * 
-   * @param index The index of the element to be removed.
-   * @return The value that was associated with the index, or null if there was no value.
-   */
-  public Object remove(int index) {
-    Object o = this.opt(index);
-    this.myArrayList.remove(index);
-    return o;
-  }
-
-
-  /**
-   * Produce a JSONObject by combining a JSONArray of names with the values of this JSONArray.
-   * 
-   * @param names A JSONArray containing a list of key strings. These will be paired with the
-   *        values.
-   * @return A JSONObject, or null if there are no names or if this JSONArray has no values.
-   * @throws JSONException If any of the names are null.
-   */
-  public JSONObject toJSONObject(JSONArray names) throws JSONException {
-    if (names == null || names.length() == 0 || this.length() == 0) {
-      return null;
-    }
-    JSONObject jo = new JSONObject();
-    for (int i = 0; i < names.length(); i += 1) {
-      jo.put(names.getString(i), this.opt(i));
-    }
-    return jo;
-  }
-
-
-  /**
-   * Make a JSON text of this JSONArray. For compactness, no unnecessary whitespace is added. If it
-   * is not possible to produce a syntactically correct JSON text then null will be returned
-   * instead. This could occur if the array contains an invalid number.
-   * <p>
-   * Warning: This method assumes that the data structure is acyclical.
-   *
-   * @return a printable, displayable, transmittable representation of the array.
-   */
-  public String toString() {
-    try {
-      return '[' + this.join(",") + ']';
-    } catch (Exception e) {
-      return null;
-    }
-  }
-
-
-  /**
-   * Make a prettyprinted JSON text of this JSONArray. Warning: This method assumes that the data
-   * structure is acyclical.
-   * 
-   * @param indentFactor The number of spaces to add to each level of indentation.
-   * @return a printable, displayable, transmittable representation of the object, beginning with
-   *         <code>[</code>&nbsp;<small>(left bracket)</small> and ending with
-   *         <code>]</code>&nbsp;<small>(right bracket)</small>.
-   * @throws JSONException
-   */
-  public String toString(int indentFactor) throws JSONException {
-    StringWriter sw = new StringWriter();
-    synchronized (sw.getBuffer()) {
-      return this.write(sw, indentFactor, 0).toString();
-    }
-  }
-
-  /**
-   * Write the contents of the JSONArray as JSON text to a writer. For compactness, no whitespace is
-   * added.
-   * <p>
-   * Warning: This method assumes that the data structure is acyclical.
-   *
-   * @return The writer.
-   * @throws JSONException
-   */
-  public Writer write(Writer writer) throws JSONException {
-    return this.write(writer, 0, 0);
-  }
-
-  /**
-   * Write the contents of the JSONArray as JSON text to a writer. For compactness, no whitespace is
-   * added.
-   * <p>
-   * Warning: This method assumes that the data structure is acyclical.
-   *
-   * @param indentFactor The number of spaces to add to each level of indentation.
-   * @param indent The indention of the top level.
-   * @return The writer.
-   * @throws JSONException
-   */
-  Writer write(Writer writer, int indentFactor, int indent) throws JSONException {
-    try {
-      boolean commanate = false;
-      int length = this.length();
-      writer.write('[');
-
-      if (length == 1) {
-        JSONObject.writeValue(writer, this.myArrayList.get(0), indentFactor, indent);
-      } else if (length != 0) {
-        final int newindent = indent + indentFactor;
-
-        for (int i = 0; i < length; i += 1) {
-          if (commanate) {
-            writer.write(',');
-          }
-          if (indentFactor > 0) {
-            writer.write('\n');
-          }
-          JSONObject.indent(writer, newindent);
-          JSONObject.writeValue(writer, this.myArrayList.get(i), indentFactor, newindent);
-          commanate = true;
-        }
-        if (indentFactor > 0) {
-          writer.write('\n');
-        }
-        JSONObject.indent(writer, indent);
-      }
-      writer.write(']');
-      return writer;
-    } catch (IOException e) {
-      throw new JSONException(e);
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/geode/blob/76ea6c3c/geode-json/src/main/java/org/json/JSONException.java
----------------------------------------------------------------------
diff --git a/geode-json/src/main/java/org/json/JSONException.java b/geode-json/src/main/java/org/json/JSONException.java
deleted file mode 100755
index b65efe2..0000000
--- a/geode-json/src/main/java/org/json/JSONException.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package org.json;
-
-/**
- * The JSONException is thrown by the JSON.org classes when things are amiss.
- * 
- * @author JSON.org
- * @version 2010-12-24
- */
-public class JSONException extends Exception {
-  private static final long serialVersionUID = 0;
-  private Throwable cause;
-
-  /**
-   * Constructs a JSONException with an explanatory message.
-   * 
-   * @param message Detail about the reason for the exception.
-   */
-  public JSONException(String message) {
-    super(message);
-  }
-
-  public JSONException(Throwable cause) {
-    super(cause.getMessage());
-    this.cause = cause;
-  }
-
-  public Throwable getCause() {
-    return this.cause;
-  }
-}

http://git-wip-us.apache.org/repos/asf/geode/blob/76ea6c3c/geode-json/src/main/java/org/json/JSONML.java
----------------------------------------------------------------------
diff --git a/geode-json/src/main/java/org/json/JSONML.java b/geode-json/src/main/java/org/json/JSONML.java
deleted file mode 100755
index b535614..0000000
--- a/geode-json/src/main/java/org/json/JSONML.java
+++ /dev/null
@@ -1,454 +0,0 @@
-package org.json;
-
-/*
- * Copyright (c) 2008 JSON.org
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
- * associated documentation files (the "Software"), to deal in the Software without restriction,
- * including without limitation the rights to use, copy, modify, merge, publish, distribute,
- * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in all copies or
- * substantial portions of the Software.
- * 
- * The Software shall be used for Good, not Evil.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
- * NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-import java.util.Iterator;
-
-
-/**
- * This provides static methods to convert an XML text into a JSONArray or JSONObject, and to covert
- * a JSONArray or JSONObject into an XML text using the JsonML transform.
- * 
- * @author JSON.org
- * @version 2012-03-28
- */
-public class JSONML {
-
-  /**
-   * Parse XML values and store them in a JSONArray.
-   * 
-   * @param x The XMLTokener containing the source string.
-   * @param arrayForm true if array form, false if object form.
-   * @param ja The JSONArray that is containing the current tag or null if we are at the outermost
-   *        level.
-   * @return A JSONArray if the value is the outermost tag, otherwise null.
-   * @throws JSONException
-   */
-  private static Object parse(XMLTokener x, boolean arrayForm, JSONArray ja) throws JSONException {
-    String attribute;
-    char c;
-    String closeTag = null;
-    int i;
-    JSONArray newja = null;
-    JSONObject newjo = null;
-    Object token;
-    String tagName = null;
-
-    // Test for and skip past these forms:
-    // <!-- ... -->
-    // <![ ... ]]>
-    // <! ... >
-    // <? ... ?>
-
-    while (true) {
-      if (!x.more()) {
-        throw x.syntaxError("Bad XML");
-      }
-      token = x.nextContent();
-      if (token == XML.LT) {
-        token = x.nextToken();
-        if (token instanceof Character) {
-          if (token == XML.SLASH) {
-
-            // Close tag </
-
-            token = x.nextToken();
-            if (!(token instanceof String)) {
-              throw new JSONException("Expected a closing name instead of '" + token + "'.");
-            }
-            if (x.nextToken() != XML.GT) {
-              throw x.syntaxError("Misshaped close tag");
-            }
-            return token;
-          } else if (token == XML.BANG) {
-
-            // <!
-
-            c = x.next();
-            if (c == '-') {
-              if (x.next() == '-') {
-                x.skipPast("-->");
-              } else {
-                x.back();
-              }
-            } else if (c == '[') {
-              token = x.nextToken();
-              if (token.equals("CDATA") && x.next() == '[') {
-                if (ja != null) {
-                  ja.put(x.nextCDATA());
-                }
-              } else {
-                throw x.syntaxError("Expected 'CDATA['");
-              }
-            } else {
-              i = 1;
-              do {
-                token = x.nextMeta();
-                if (token == null) {
-                  throw x.syntaxError("Missing '>' after '<!'.");
-                } else if (token == XML.LT) {
-                  i += 1;
-                } else if (token == XML.GT) {
-                  i -= 1;
-                }
-              } while (i > 0);
-            }
-          } else if (token == XML.QUEST) {
-
-            // <?
-
-            x.skipPast("?>");
-          } else {
-            throw x.syntaxError("Misshaped tag");
-          }
-
-          // Open tag <
-
-        } else {
-          if (!(token instanceof String)) {
-            throw x.syntaxError("Bad tagName '" + token + "'.");
-          }
-          tagName = (String) token;
-          newja = new JSONArray();
-          newjo = new JSONObject();
-          if (arrayForm) {
-            newja.put(tagName);
-            if (ja != null) {
-              ja.put(newja);
-            }
-          } else {
-            newjo.put("tagName", tagName);
-            if (ja != null) {
-              ja.put(newjo);
-            }
-          }
-          token = null;
-          for (;;) {
-            if (token == null) {
-              token = x.nextToken();
-            }
-            if (token == null) {
-              throw x.syntaxError("Misshaped tag");
-            }
-            if (!(token instanceof String)) {
-              break;
-            }
-
-            // attribute = value
-
-            attribute = (String) token;
-            if (!arrayForm && ("tagName".equals(attribute) || "childNode".equals(attribute))) {
-              throw x.syntaxError("Reserved attribute.");
-            }
-            token = x.nextToken();
-            if (token == XML.EQ) {
-              token = x.nextToken();
-              if (!(token instanceof String)) {
-                throw x.syntaxError("Missing value");
-              }
-              newjo.accumulate(attribute, XML.stringToValue((String) token));
-              token = null;
-            } else {
-              newjo.accumulate(attribute, "");
-            }
-          }
-          if (arrayForm && newjo.length() > 0) {
-            newja.put(newjo);
-          }
-
-          // Empty tag <.../>
-
-          if (token == XML.SLASH) {
-            if (x.nextToken() != XML.GT) {
-              throw x.syntaxError("Misshaped tag");
-            }
-            if (ja == null) {
-              if (arrayForm) {
-                return newja;
-              } else {
-                return newjo;
-              }
-            }
-
-            // Content, between <...> and </...>
-
-          } else {
-            if (token != XML.GT) {
-              throw x.syntaxError("Misshaped tag");
-            }
-            closeTag = (String) parse(x, arrayForm, newja);
-            if (closeTag != null) {
-              if (!closeTag.equals(tagName)) {
-                throw x.syntaxError("Mismatched '" + tagName + "' and '" + closeTag + "'");
-              }
-              tagName = null;
-              if (!arrayForm && newja.length() > 0) {
-                newjo.put("childNodes", newja);
-              }
-              if (ja == null) {
-                if (arrayForm) {
-                  return newja;
-                } else {
-                  return newjo;
-                }
-              }
-            }
-          }
-        }
-      } else {
-        if (ja != null) {
-          ja.put(token instanceof String ? XML.stringToValue((String) token) : token);
-        }
-      }
-    }
-  }
-
-
-  /**
-   * Convert a well-formed (but not necessarily valid) XML string into a JSONArray using the JsonML
-   * transform. Each XML tag is represented as a JSONArray in which the first element is the tag
-   * name. If the tag has attributes, then the second element will be JSONObject containing the
-   * name/value pairs. If the tag contains children, then strings and JSONArrays will represent the
-   * child tags. Comments, prologs, DTDs, and <code>&lt;[ [ ]]></code> are ignored.
-   * 
-   * @param string The source string.
-   * @return A JSONArray containing the structured data from the XML string.
-   * @throws JSONException
-   */
-  public static JSONArray toJSONArray(String string) throws JSONException {
-    return toJSONArray(new XMLTokener(string));
-  }
-
-
-  /**
-   * Convert a well-formed (but not necessarily valid) XML string into a JSONArray using the JsonML
-   * transform. Each XML tag is represented as a JSONArray in which the first element is the tag
-   * name. If the tag has attributes, then the second element will be JSONObject containing the
-   * name/value pairs. If the tag contains children, then strings and JSONArrays will represent the
-   * child content and tags. Comments, prologs, DTDs, and <code>&lt;[ [ ]]></code> are ignored.
-   * 
-   * @param x An XMLTokener.
-   * @return A JSONArray containing the structured data from the XML string.
-   * @throws JSONException
-   */
-  public static JSONArray toJSONArray(XMLTokener x) throws JSONException {
-    return (JSONArray) parse(x, true, null);
-  }
-
-
-  /**
-   * Convert a well-formed (but not necessarily valid) XML string into a JSONObject using the JsonML
-   * transform. Each XML tag is represented as a JSONObject with a "tagName" property. If the tag
-   * has attributes, then the attributes will be in the JSONObject as properties. If the tag
-   * contains children, the object will have a "childNodes" property which will be an array of
-   * strings and JsonML JSONObjects.
-   * 
-   * Comments, prologs, DTDs, and <code>&lt;[ [ ]]></code> are ignored.
-   * 
-   * @param x An XMLTokener of the XML source text.
-   * @return A JSONObject containing the structured data from the XML string.
-   * @throws JSONException
-   */
-  public static JSONObject toJSONObject(XMLTokener x) throws JSONException {
-    return (JSONObject) parse(x, false, null);
-  }
-
-
-  /**
-   * Convert a well-formed (but not necessarily valid) XML string into a JSONObject using the JsonML
-   * transform. Each XML tag is represented as a JSONObject with a "tagName" property. If the tag
-   * has attributes, then the attributes will be in the JSONObject as properties. If the tag
-   * contains children, the object will have a "childNodes" property which will be an array of
-   * strings and JsonML JSONObjects.
-   * 
-   * Comments, prologs, DTDs, and <code>&lt;[ [ ]]></code> are ignored.
-   * 
-   * @param string The XML source text.
-   * @return A JSONObject containing the structured data from the XML string.
-   * @throws JSONException
-   */
-  public static JSONObject toJSONObject(String string) throws JSONException {
-    return toJSONObject(new XMLTokener(string));
-  }
-
-
-  /**
-   * Reverse the JSONML transformation, making an XML text from a JSONArray.
-   * 
-   * @param ja A JSONArray.
-   * @return An XML string.
-   * @throws JSONException
-   */
-  public static String toString(JSONArray ja) throws JSONException {
-    int i;
-    JSONObject jo;
-    String key;
-    Iterator keys;
-    int length;
-    Object object;
-    StringBuffer sb = new StringBuffer();
-    String tagName;
-    String value;
-
-    // Emit <tagName
-
-    tagName = ja.getString(0);
-    XML.noSpace(tagName);
-    tagName = XML.escape(tagName);
-    sb.append('<');
-    sb.append(tagName);
-
-    object = ja.opt(1);
-    if (object instanceof JSONObject) {
-      i = 2;
-      jo = (JSONObject) object;
-
-      // Emit the attributes
-
-      keys = jo.keys();
-      while (keys.hasNext()) {
-        key = keys.next().toString();
-        XML.noSpace(key);
-        value = jo.optString(key);
-        if (value != null) {
-          sb.append(' ');
-          sb.append(XML.escape(key));
-          sb.append('=');
-          sb.append('"');
-          sb.append(XML.escape(value));
-          sb.append('"');
-        }
-      }
-    } else {
-      i = 1;
-    }
-
-    // Emit content in body
-
-    length = ja.length();
-    if (i >= length) {
-      sb.append('/');
-      sb.append('>');
-    } else {
-      sb.append('>');
-      do {
-        object = ja.get(i);
-        i += 1;
-        if (object != null) {
-          if (object instanceof String) {
-            sb.append(XML.escape(object.toString()));
-          } else if (object instanceof JSONObject) {
-            sb.append(toString((JSONObject) object));
-          } else if (object instanceof JSONArray) {
-            sb.append(toString((JSONArray) object));
-          }
-        }
-      } while (i < length);
-      sb.append('<');
-      sb.append('/');
-      sb.append(tagName);
-      sb.append('>');
-    }
-    return sb.toString();
-  }
-
-  /**
-   * Reverse the JSONML transformation, making an XML text from a JSONObject. The JSONObject must
-   * contain a "tagName" property. If it has children, then it must have a "childNodes" property
-   * containing an array of objects. The other properties are attributes with string values.
-   * 
-   * @param jo A JSONObject.
-   * @return An XML string.
-   * @throws JSONException
-   */
-  public static String toString(JSONObject jo) throws JSONException {
-    StringBuffer sb = new StringBuffer();
-    int i;
-    JSONArray ja;
-    String key;
-    Iterator keys;
-    int length;
-    Object object;
-    String tagName;
-    String value;
-
-    // Emit <tagName
-
-    tagName = jo.optString("tagName");
-    if (tagName == null) {
-      return XML.escape(jo.toString());
-    }
-    XML.noSpace(tagName);
-    tagName = XML.escape(tagName);
-    sb.append('<');
-    sb.append(tagName);
-
-    // Emit the attributes
-
-    keys = jo.keys();
-    while (keys.hasNext()) {
-      key = keys.next().toString();
-      if (!"tagName".equals(key) && !"childNodes".equals(key)) {
-        XML.noSpace(key);
-        value = jo.optString(key);
-        if (value != null) {
-          sb.append(' ');
-          sb.append(XML.escape(key));
-          sb.append('=');
-          sb.append('"');
-          sb.append(XML.escape(value));
-          sb.append('"');
-        }
-      }
-    }
-
-    // Emit content in body
-
-    ja = jo.optJSONArray("childNodes");
-    if (ja == null) {
-      sb.append('/');
-      sb.append('>');
-    } else {
-      sb.append('>');
-      length = ja.length();
-      for (i = 0; i < length; i += 1) {
-        object = ja.get(i);
-        if (object != null) {
-          if (object instanceof String) {
-            sb.append(XML.escape(object.toString()));
-          } else if (object instanceof JSONObject) {
-            sb.append(toString((JSONObject) object));
-          } else if (object instanceof JSONArray) {
-            sb.append(toString((JSONArray) object));
-          } else {
-            sb.append(object.toString());
-          }
-        }
-      }
-      sb.append('<');
-      sb.append('/');
-      sb.append(tagName);
-      sb.append('>');
-    }
-    return sb.toString();
-  }
-}