geode-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From u..@apache.org
Subject [5/5] geode git commit: GEODE-2142: Removal of non-compliant org.json implementation.
Date Fri, 17 Feb 2017 20:47:51 GMT
GEODE-2142: Removal of non-compliant org.json implementation.


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

Branch: refs/heads/feature/OrgJsonRefactor
Commit: 3910177d15a08ab297e38d5dca866fa9488801b5
Parents: caafea3
Author: Udo Kohlmeyer <ukohlmeyer@pivotal.io>
Authored: Fri Feb 17 12:47:03 2017 -0800
Committer: Udo Kohlmeyer <ukohlmeyer@pivotal.io>
Committed: Fri Feb 17 12:47:03 2017 -0800

----------------------------------------------------------------------
 .../geode/management/internal/cli/CliUtil.java  |   42 -
 .../internal/cli/commands/ConfigCommands.java   |    3 +-
 ...xportImportClusterConfigurationCommands.java |    2 +-
 .../cli/functions/ExportConfigFunction.java     |    4 +-
 .../internal/cli/json/GfJsonObject.java         |   54 +-
 .../internal/cli/result/AbstractResultData.java |   56 +-
 .../cli/result/CompositeResultData.java         |   46 -
 .../internal/cli/result/ResultBuilder.java      |   30 -
 .../cli/commands/CliCommandTestBase.java        |    6 +-
 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 -
 geode-json/src/main/java/org/json/JSON.java     |  116 ++
 .../src/main/java/org/json/JSONArray.java       | 1587 +++++++-------
 .../src/main/java/org/json/JSONException.java   |   71 +-
 geode-json/src/main/java/org/json/JSONML.java   |  454 ----
 .../src/main/java/org/json/JSONObject.java      | 1952 +++++++-----------
 .../src/main/java/org/json/JSONString.java      |   17 +-
 .../src/main/java/org/json/JSONStringer.java    |  531 ++++-
 .../src/main/java/org/json/JSONTokener.java     | 1013 +++++----
 .../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 ----
 25 files changed, 2758 insertions(+), 5196 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/geode/blob/3910177d/geode-core/src/main/java/org/apache/geode/management/internal/cli/CliUtil.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/CliUtil.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/CliUtil.java
index 8525b58..a505001 100755
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/CliUtil.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/CliUtil.java
@@ -440,11 +440,6 @@ public class CliUtil {
 
       compressedDataLength = compresser.deflate(buffer);
       totalCompressedDataLength += compressedDataLength;
-      // System.out.println(compressedDataLength);
-      // System.out.println("uc: b "+buffer.length);
-      // System.out.println("uc: r "+result.length);
-      // System.out.println("uc: nr "+newResult.length);
-      // System.out.println();
       System.arraycopy(buffer, 0, newResult, result.length, buffer.length);
       result = newResult;
     } while (compressedDataLength != 0);
@@ -500,43 +495,6 @@ public class CliUtil {
     }
   }
 
-  public static void main(String[] args) {
-    try {
-      byte[][] filesToBytes =
-          filesToBytes(new String[] {"/export/abhishek1/work/aspenmm/GFTryouts/test.json"});
-
-      System.out.println(filesToBytes[1].length);
-
-      DeflaterInflaterData compressBytes = compressBytes(filesToBytes[1]);
-      System.out.println(compressBytes);
-
-      DeflaterInflaterData uncompressBytes =
-          uncompressBytes(compressBytes.data, compressBytes.dataLength);
-      System.out.println(uncompressBytes);
-
-      System.out.println(new String(uncompressBytes.getData()));
-    } catch (FileNotFoundException e) {
-      e.printStackTrace();
-    } catch (IOException e) {
-      e.printStackTrace();
-    } catch (DataFormatException e) {
-      e.printStackTrace();
-    }
-  }
-
-  public static void main1(String[] args) {
-    try {
-      byte[][] fileToBytes = filesToBytes(new String[] {"../dumped/source/lib"});
-
-      bytesToFiles(fileToBytes, "../dumped/dest/lib/", true);
-
-    } catch (FileNotFoundException e) {
-      e.printStackTrace();
-    } catch (IOException e) {
-      e.printStackTrace();
-    }
-  }
-
   public static boolean contains(Object[] array, Object object) {
     boolean contains = false;
 

http://git-wip-us.apache.org/repos/asf/geode/blob/3910177d/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ConfigCommands.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ConfigCommands.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ConfigCommands.java
index 12a0a64..283f09d 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ConfigCommands.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ConfigCommands.java
@@ -234,7 +234,8 @@ public class ConfigCommands extends AbstractCommandsSupport {
               false);
         }
       }
-      return ResultBuilder.buildResult(infoData);
+      Result result = ResultBuilder.buildResult(infoData);
+      return result;
     } catch (VirtualMachineError e) {
       SystemFailure.initiateFailure(e);
       throw e;

http://git-wip-us.apache.org/repos/asf/geode/blob/3910177d/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ExportImportClusterConfigurationCommands.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ExportImportClusterConfigurationCommands.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ExportImportClusterConfigurationCommands.java
index e94af4f..7485d9f 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ExportImportClusterConfigurationCommands.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ExportImportClusterConfigurationCommands.java
@@ -75,6 +75,7 @@ public class ExportImportClusterConfigurationCommands extends AbstractCommandsSu
   public Result exportSharedConfig(@CliOption(key = {CliStrings.EXPORT_SHARED_CONFIG__FILE},
       mandatory = true, help = CliStrings.EXPORT_SHARED_CONFIG__FILE__HELP) String zipFileName) {
 
+    System.err.println("Out 1");
     InternalLocator locator = InternalLocator.getLocator();
     if (!locator.isSharedConfigurationRunning()) {
       return ResultBuilder.createGemFireErrorResult(CliStrings.SHARED_CONFIGURATION_NOT_STARTED);
@@ -99,7 +100,6 @@ public class ExportImportClusterConfigurationCommands extends AbstractCommandsSu
         sc.writeConfigToFile(config);
       }
       ZipUtils.zipDirectory(sc.getSharedConfigurationDirPath(), zipFile.getCanonicalPath());
-
       InfoResultData infoData = ResultBuilder.createInfoResultData();
       byte[] byteData = FileUtils.readFileToByteArray(zipFile);
       infoData.addAsFile(zipFileName, byteData, InfoResultData.FILE_TYPE_BINARY,

http://git-wip-us.apache.org/repos/asf/geode/blob/3910177d/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ExportConfigFunction.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ExportConfigFunction.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ExportConfigFunction.java
index 49e27b0..64bc374 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ExportConfigFunction.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ExportConfigFunction.java
@@ -93,12 +93,10 @@ public class ExportConfigFunction implements Function, InternalEntity {
               .append(lineSeparator);
         }
       }
-
       CliFunctionResult result = new CliFunctionResult(memberId,
           new String[] {xmlWriter.toString(), propStringBuf.toString()});
-
+      System.err.println("ExportConfigFunction.execute CLI function result: "+result);
       context.getResultSender().lastResult(result);
-
     } catch (CacheClosedException cce) {
       CliFunctionResult result = new CliFunctionResult(memberId, false, null);
       context.getResultSender().lastResult(result);

http://git-wip-us.apache.org/repos/asf/geode/blob/3910177d/geode-core/src/main/java/org/apache/geode/management/internal/cli/json/GfJsonObject.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/json/GfJsonObject.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/json/GfJsonObject.java
index 69666ff..9137f72 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/json/GfJsonObject.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/json/GfJsonObject.java
@@ -49,22 +49,6 @@ public class GfJsonObject {
       this.jsonObject = (JSONObject) bean;
     } else {
       this.jsonObject = new JSONObject(bean);
-      // If we want to print out the values of the primitive arrays and report back
-      // Class klass = bean.getClass();
-      // if(klass.isArray() && klass.getComponentType().isPrimitive()){
-      // String str = "";
-      // int length = Array.getLength(bean);
-      // for (int i = 0; i < length; i++) {
-      // if(i==0)
-      // str += (Array.get(bean, i));
-      // else
-      // str +=(","+Array.get(bean, i));
-      // }
-      // try {
-      // this.jsonObject.put("Value", str);
-      // } catch (JSONException ignore) {
-      // }
-      // }
     }
     if (checkCyclicDep) {
       JSONObject.cyclicDepChkEnabled.set(false);
@@ -88,9 +72,9 @@ public class GfJsonObject {
     }
   }
 
-  public GfJsonObject(Object bean, String[] paramNames) {
-    this.jsonObject = new JSONObject(bean, paramNames);
-  }
+//  public GfJsonObject(Object bean, String[] paramNames) {
+//    this.jsonObject = new JSONObject(bean, paramNames);
+//  }
 
   /**
    * 
@@ -253,21 +237,21 @@ public class GfJsonObject {
     return this;
   }
 
-  /**
-   * 
-   * @param key
-   * @param value
-   * @return this GfJsonObject
-   * @throws GfJsonException if the key is a duplicate
-   */
-  public GfJsonObject putOnce(String key, Object value) throws GfJsonException {
-    try {
-      jsonObject.putOnce(key, value);
-    } catch (JSONException e) {
-      throw new GfJsonException(e.getMessage());
-    }
-    return this;
-  }
+//  /**
+//   *
+//   * @param key
+//   * @param value
+//   * @return this GfJsonObject
+//   * @throws GfJsonException if the key is a duplicate
+//   */
+//  public GfJsonObject putOnce(String key, Object value) throws GfJsonException {
+//    try {
+//      jsonObject.putOnce(key, value);
+//    } catch (JSONException e) {
+//      throw new GfJsonException(e.getMessage());
+//    }
+//    return this;
+//  }
 
   /**
    * 
@@ -362,7 +346,7 @@ public class GfJsonObject {
     }
   }
 
-  private static Object extractInternalForGfJsonOrReturnSame(Object value) {
+  private Object extractInternalForGfJsonOrReturnSame(Object value) {
     Object returnedValue = value;
     if (value instanceof GfJsonObject) {
       returnedValue = ((GfJsonObject) value).getInternalJsonObject();

http://git-wip-us.apache.org/repos/asf/geode/blob/3910177d/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/AbstractResultData.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/AbstractResultData.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/AbstractResultData.java
index e08d9b7..81ab511 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/AbstractResultData.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/AbstractResultData.java
@@ -20,7 +20,10 @@ import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
 import java.io.FileWriter;
 import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.nio.charset.Charset;
 import java.text.MessageFormat;
+import java.util.Base64;
 import java.util.zip.DataFormatException;
 
 import org.apache.geode.management.cli.Result.Status;
@@ -151,26 +154,10 @@ public abstract class AbstractResultData implements ResultData {
     if (addTimeStampToName) {
       fileName = addTimeStampBeforeLastDot(fileName);
     }
-    return addAsFile(fileName.getBytes(), bytes, fileType, message);
+    return addAsFile(fileName, bytes, fileType, message);
   }
 
-  public ResultData addByteDataFromFileFile(String filePath, int fileType, String message,
-      boolean addTimeStampToName) throws FileNotFoundException, IOException {
-    byte[][] filesToBytes = CliUtil.filesToBytes(new String[] {filePath});
-
-    byte[] bytes = filesToBytes[0];
-    if (addTimeStampToName) {
-      String fileName = new String(filesToBytes[0]);
-      fileName = addTimeStampBeforeLastDot(fileName);
-      bytes = fileName.getBytes();
-    }
-    return addAsFile(bytes, filesToBytes[1], fileType, message);
-  }
-
-  private ResultData addAsFile(byte[] fileName, byte[] data, int fileType, String message) {
-    // System.out.println("fileType :: "+fileType);
-    // System.out.println("FILE_TYPE_BINARY :: "+FILE_TYPE_BINARY);
-    // System.out.println("FILE_TYPE_TEXT :: "+FILE_TYPE_TEXT);
+  private ResultData addAsFile(String fileName, byte[] data, int fileType, String message) {
     if (fileType != FILE_TYPE_BINARY && fileType != FILE_TYPE_TEXT) {
       throw new IllegalArgumentException("Unsupported file type is specified.");
     }
@@ -186,14 +173,12 @@ public abstract class AbstractResultData implements ResultData {
 
       sectionData.put(FILE_NAME_FIELD, fileName);
       sectionData.put(FILE_TYPE_FIELD, fileType);
-      sectionData.put(FILE_MESSAGE, message.getBytes());
-      sectionData.putAsJSONObject(FILE_DATA_FIELD, CliUtil.compressBytes(data));
-      // System.out.println(data);
-      // sectionData.put(FILE_DATA_FIELD, Base64.encodeBytes(data, Base64.GZIP));
+      sectionData.put(FILE_MESSAGE, message);
+      DeflaterInflaterData deflaterInflaterData = CliUtil.compressBytes(data);
+      sectionData.put(FILE_DATA_FIELD, Base64.getEncoder().encodeToString(deflaterInflaterData.getData()));
+      sectionData.put(DATA_LENGTH_FIELD,deflaterInflaterData.getDataLength());
     } catch (GfJsonException e) {
       throw new ResultDataException(e.getMessage());
-      // } catch (IOException e) {
-      // e.printStackTrace();
     }
     return this;
   }
@@ -223,29 +208,30 @@ public abstract class AbstractResultData implements ResultData {
 
       // build file name
       byte[] fileNameBytes = null;
+      String fileName = null;
       GfJsonArray fileNameJsonBytes = object.getJSONArray(FILE_NAME_FIELD);
       if (fileNameJsonBytes != null) { // if in gfsh
         fileNameBytes = GfJsonArray.toByteArray(fileNameJsonBytes);
+        fileName = new String(fileNameBytes);
       } else { // if on member
-        fileNameBytes = (byte[]) object.get(FILE_NAME_FIELD);
+        fileName = (String) object.get(FILE_NAME_FIELD);
       }
-      String fileName = new String(fileNameBytes);
 
       // build file message
       byte[] fileMessageBytes = null;
+      String fileMessage = null;
       GfJsonArray fileMessageJsonBytes = object.getJSONArray(FILE_MESSAGE);
       if (fileMessageJsonBytes != null) { // if in gfsh
         fileMessageBytes = GfJsonArray.toByteArray(fileMessageJsonBytes);
+        fileMessage = new String(fileMessageBytes);
       } else { // if on member
-        fileMessageBytes = (byte[]) object.get(FILE_MESSAGE);
+        fileMessage = (String) object.get(FILE_MESSAGE);
       }
-      String fileMessage = new String(fileMessageBytes);
 
-      GfJsonObject fileDataBytes = object.getJSONObject(FILE_DATA_FIELD);
-      byte[] byteArray = GfJsonArray.toByteArray(fileDataBytes.getJSONArray(DATA_FIELD));
-      int dataLength = fileDataBytes.getInt(DATA_LENGTH_FIELD);
-      DeflaterInflaterData uncompressBytes = CliUtil.uncompressBytes(byteArray, dataLength);
-      byte[] uncompressed = uncompressBytes.getData();
+      String fileDataString = (String) object.get(FILE_DATA_FIELD);
+      int fileDataLength = (int) object.get(DATA_LENGTH_FIELD);
+      byte[] byteArray = Base64.getDecoder().decode(fileDataString);
+      byte[] uncompressBytes = CliUtil.uncompressBytes(byteArray,fileDataLength).getData();
 
       boolean isGfshVM = CliUtil.isGfshVM();
       File fileToDumpData = new File(fileName);
@@ -299,13 +285,13 @@ public abstract class AbstractResultData implements ResultData {
       if (fileType == FILE_TYPE_TEXT) {
         FileWriter fw = new FileWriter(fileToDumpData);
         BufferedWriter bw = new BufferedWriter(fw);
-        bw.write(new String(uncompressed));
+        bw.write(new String(uncompressBytes));
         bw.flush();
         fw.flush();
         fw.close();
       } else if (fileType == FILE_TYPE_BINARY) {
         FileOutputStream fos = new FileOutputStream(fileToDumpData);
-        fos.write(uncompressed);
+        fos.write(uncompressBytes);
         fos.flush();
         fos.close();
       }

http://git-wip-us.apache.org/repos/asf/geode/blob/3910177d/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/CompositeResultData.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/CompositeResultData.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/CompositeResultData.java
index 7d0d23b..c1db133 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/CompositeResultData.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/CompositeResultData.java
@@ -324,50 +324,4 @@ public class CompositeResultData extends AbstractResultData {
     // }
   }
 
-  public static void main(String[] args) {
-    CompositeResultData crd = new CompositeResultData();
-
-    SectionResultData r1Section = crd.addSection("R1");
-    r1Section.addData("Region", "R1").addData("IsPartitioned", false).addData("IsPersistent", true)
-        .addData("Disk Store", "DiskStore1").addData("Group", "Group1");
-    TabularResultData r1Table = r1Section.addTable("R1Members");
-    r1Table.accumulate("Member Id", "host1(3467):12435:12423")
-        .accumulate("PrimaryEntryCount", 20000).accumulate("BackupEntryCount", 20000)
-        .accumulate("Memory(MB)", "100").accumulate("NumOfCopies", 1);
-    r1Table.accumulate("Member Id", "host3(5756):57665:90923")
-        .accumulate("PrimaryEntryCount", 25000).accumulate("BackupEntryCount", 10000)
-        .accumulate("Memory(MB)", "200").accumulate("NumOfCopies", 1);
-
-    SectionResultData r3Section = crd.addSection("R3");
-    r3Section.addData("Region", "R3").addData("IsPartitioned", true).addData("IsPersistent", true)
-        .addData("Disk Store", "DiskStore2").addData("Group", "Group2")
-        .addData("ColocatedWith", "-");
-    SectionResultData r3SubSection = r3Section.addSection("R3Config");
-    r3SubSection.addData("Configuration", "");
-    r3SubSection.addData("Config1", "abcd");
-    r3SubSection.addData("Config2", "abcde");
-    r3SubSection.addData("Config3", "abcdfg");
-    TabularResultData r3Table = r3Section.addTable("R3Members");
-    r3Table.accumulate("Member Id", "host1(3467):12435:12423")
-        .accumulate("PrimaryEntryCount", 20000).accumulate("BackupEntryCount", 20000)
-        .accumulate("Memory(MB)", "100").accumulate("NumOfCopies", 1)
-        .accumulate("NumOfBuckets", 100);
-    r3Table.accumulate("Member Id", "host2(3353):23545:14723")
-        .accumulate("PrimaryEntryCount", 20000).accumulate("BackupEntryCount", 20000)
-        .accumulate("Memory(MB)", "100").accumulate("NumOfCopies", 1)
-        .accumulate("NumOfBuckets", 100);
-    r3Table.accumulate("Member Id", "host3(5756):57665:90923")
-        .accumulate("PrimaryEntryCount", 25000).accumulate("BackupEntryCount", 10000)
-        .accumulate("Memory(MB)", "200").accumulate("NumOfCopies", 1)
-        .accumulate("NumOfBuckets", 100);
-
-    try {
-      System.out.println(crd.getGfJsonObject().toIndentedString(/* 2 */0));
-
-    } catch (GfJsonException e) {
-      e.printStackTrace();
-    } catch (Exception e) {
-      e.printStackTrace();
-    }
-  }
 }

http://git-wip-us.apache.org/repos/asf/geode/blob/3910177d/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/ResultBuilder.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/ResultBuilder.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/ResultBuilder.java
index 06060a4..9bd2bf9 100755
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/ResultBuilder.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/ResultBuilder.java
@@ -301,12 +301,6 @@ public class ResultBuilder {
         }
 
         @Override
-        public ResultData addByteDataFromFileFile(String filePath, int fileType, String message,
-            boolean addTimeStampToName) throws FileNotFoundException, IOException {
-          throw new UnsupportedOperationException("This is read only result data");
-        }
-
-        @Override
         public TabularResultData accumulate(String accumulateFor, Object value) {
           throw new UnsupportedOperationException("This is read only result data");
         }
@@ -326,12 +320,6 @@ public class ResultBuilder {
         }
 
         @Override
-        public ResultData addByteDataFromFileFile(String filePath, int fileType, String message,
-            boolean addTimeStampToName) throws FileNotFoundException, IOException {
-          throw new UnsupportedOperationException("This is read only result data");
-        }
-
-        @Override
         public ErrorResultData addLine(String line) {
           throw new UnsupportedOperationException("This is read only result data");
         }
@@ -351,12 +339,6 @@ public class ResultBuilder {
         }
 
         @Override
-        public ResultData addByteDataFromFileFile(String filePath, int fileType, String message,
-            boolean addTimeStampToName) throws FileNotFoundException, IOException {
-          throw new UnsupportedOperationException("This is read only result data");
-        }
-
-        @Override
         public ErrorResultData addLine(String line) {
           throw new UnsupportedOperationException("This is read only result data");
         }
@@ -381,12 +363,6 @@ public class ResultBuilder {
         }
 
         @Override
-        public ResultData addByteDataFromFileFile(String filePath, int fileType, String message,
-            boolean addTimeStampToName) throws FileNotFoundException, IOException {
-          throw new UnsupportedOperationException("This is read only result data");
-        }
-
-        @Override
         public SectionResultData addSection() {
           throw new UnsupportedOperationException("This is read only result data");
         }
@@ -416,12 +392,6 @@ public class ResultBuilder {
         }
 
         @Override
-        public ResultData addByteDataFromFileFile(String filePath, int fileType, String message,
-            boolean addTimeStampToName) throws FileNotFoundException, IOException {
-          throw new UnsupportedOperationException("This is read only result data");
-        }
-
-        @Override
         public ObjectResultData<CliJsonSerializable> addCollection(
             Collection<CliJsonSerializable> infoBeans) {
           throw new UnsupportedOperationException("This is read only result data");

http://git-wip-us.apache.org/repos/asf/geode/blob/3910177d/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CliCommandTestBase.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CliCommandTestBase.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CliCommandTestBase.java
index 21426d6..239810b 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CliCommandTestBase.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CliCommandTestBase.java
@@ -360,7 +360,11 @@ public abstract class CliCommandTestBase extends JUnit4CacheTestCase {
 
     CommandResult result = null;
     try {
-      result = (CommandResult) shell.getResult(); // TODO: this can result in ClassCastException if
+      Object result1 = shell.getResult();
+      if (result1 instanceof String) {
+        System.err.println("result1 = " + result1);
+      }
+      result = (CommandResult) result1; // TODO: this can result in ClassCastException if
                                                   // command resulted in error
     } catch (InterruptedException ex) {
       error("shell received InterruptedException");

http://git-wip-us.apache.org/repos/asf/geode/blob/3910177d/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/3910177d/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/3910177d/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/3910177d/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/3910177d/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/3910177d/geode-json/src/main/java/org/json/JSON.java
----------------------------------------------------------------------
diff --git a/geode-json/src/main/java/org/json/JSON.java b/geode-json/src/main/java/org/json/JSON.java
new file mode 100755
index 0000000..1b32e69
--- /dev/null
+++ b/geode-json/src/main/java/org/json/JSON.java
@@ -0,0 +1,116 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.json;
+
+class JSON {
+    /**
+     * Returns the input if it is a JSON-permissible value; throws otherwise.
+     */
+    static double checkDouble(double d) throws JSONException {
+        if (Double.isInfinite(d) || Double.isNaN(d)) {
+            throw new JSONException("Forbidden numeric value: " + d);
+        }
+        return d;
+    }
+
+    static Boolean toBoolean(Object value) {
+        if (value instanceof Boolean) {
+            return (Boolean) value;
+        } else if (value instanceof String) {
+            String stringValue = (String) value;
+            if ("true".equalsIgnoreCase(stringValue)) {
+                return true;
+            } else if ("false".equalsIgnoreCase(stringValue)) {
+                return false;
+            }
+        }
+        return null;
+    }
+
+    static Double toDouble(Object value) {
+        if (value instanceof Double) {
+            return (Double) value;
+        } else if (value instanceof Number) {
+            return ((Number) value).doubleValue();
+        } else if (value instanceof String) {
+            try {
+                return Double.valueOf((String) value);
+            } catch (NumberFormatException ignored) {
+            }
+        }
+        return null;
+    }
+
+    static Integer toInteger(Object value) {
+        if (value instanceof Integer) {
+            return (Integer) value;
+        } else if (value instanceof Number) {
+            return ((Number) value).intValue();
+        } else if (value instanceof String) {
+            try {
+                return (int) Double.parseDouble((String) value);
+            } catch (NumberFormatException ignored) {
+            }
+        }
+        return null;
+    }
+
+    static Long toLong(Object value) {
+        if (value instanceof Long) {
+            return (Long) value;
+        } else if (value instanceof Number) {
+            return ((Number) value).longValue();
+        } else if (value instanceof String) {
+            try {
+                return (long) Double.parseDouble((String) value);
+            } catch (NumberFormatException ignored) {
+            }
+        }
+        return null;
+    }
+
+    static String toString(Object value) {
+        if (value instanceof String) {
+            return (String) value;
+        } else if (value != null) {
+            return String.valueOf(value);
+        }
+        return null;
+    }
+
+    public static JSONException typeMismatch(Object indexOrName, Object actual,
+            String requiredType) throws JSONException {
+        if (actual == null) {
+            throw new JSONException("Value at " + indexOrName + " is null.");
+        } else {
+            throw new JSONException("Value " + actual + " at " + indexOrName
+                    + " of type " + actual.getClass().getName()
+                    + " cannot be converted to " + requiredType);
+        }
+    }
+
+    public static JSONException typeMismatch(Object actual, String requiredType)
+            throws JSONException {
+        if (actual == null) {
+            throw new JSONException("Value is null.");
+        } else {
+            throw new JSONException("Value " + actual
+                    + " of type " + actual.getClass().getName()
+                    + " cannot be converted to " + requiredType);
+        }
+    }
+}


Mime
View raw message