From cb828319c5c7ea709073f11e62f1c6dd4d8344a7 Mon Sep 17 00:00:00 2001 From: Eric Evans Date: Mon, 28 Dec 2009 22:20:52 +0000 Subject: [PATCH] consolidate json libraries Patch by eevans; reviewed by jbellis for CASSANDRA-587 git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@894259 13f79535-47bb-0310-9956-ffa450edef68 --- LICENSE.txt | 4 ++-- NOTICE.txt | 5 +---- lib/flexjson-1.7.jar | Bin 48995 -> 0 bytes .../org/apache/cassandra/client/RingCache.java | 4 ++-- .../cassandra/service/CassandraServer.java | 5 ++--- 5 files changed, 7 insertions(+), 11 deletions(-) delete mode 100644 lib/flexjson-1.7.jar diff --git a/LICENSE.txt b/LICENSE.txt index f7cae5baae..0e71d679af 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -209,8 +209,8 @@ dependencies that have separate copyright notices and license terms. Your use of these libraries is subject to the terms and conditions of the following licenses. -For lib/flexjson-1.7.jar, lib/google-collect-1.0-rc1.jar, -lib/clhm-production.jar, and lib/json_simple-1.1.jar: +For lib/google-collect-1.0-rc1.jar, lib/clhm-production.jar, and +lib/json_simple-1.1.jar: While developed outside the ASF, these projects are also licensed under the Apache License 2.0. The full text of the Apache License 2.0 can be diff --git a/NOTICE.txt b/NOTICE.txt index b03750cb06..4ee478728a 100644 --- a/NOTICE.txt +++ b/NOTICE.txt @@ -18,10 +18,7 @@ Written by Cliff Click and released as Public Domain. This product makes use of JLine for console input (http://jline.sf.net). Copyright (c) 2002-2006, Marc Prud'hommeaux -JSON serialization provided by Flexjson (http://flexjson.sf.net). -Copyright 2007 Charlie Hubbard. - -JSON parsing provided by json-simple (http://code.google.com/p/json-simple/). +JSON support provided by json-simple (http://code.google.com/p/json-simple/). Copyright 2006-2009 Yidong Fang. This product makes use of the JUnit test framework (http://junit.org). diff --git a/lib/flexjson-1.7.jar b/lib/flexjson-1.7.jar deleted file mode 100644 index 5e07e126878c70a684b7f0ce0eff14b22ee3e60d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48995 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 tokenToHostMap = (Map) new JSONTokener(client.get_string_property(CassandraServer.TOKEN_MAP)).nextValue(); + Map tokenToHostMap = (Map) JSONValue.parse(client.get_string_property(CassandraServer.TOKEN_MAP)); BiMap tokenEndpointMap = HashBiMap.create(); for (Map.Entry entry : tokenToHostMap.entrySet()) diff --git a/src/java/org/apache/cassandra/service/CassandraServer.java b/src/java/org/apache/cassandra/service/CassandraServer.java index dc7d0c41ac..70f0222f3e 100644 --- a/src/java/org/apache/cassandra/service/CassandraServer.java +++ b/src/java/org/apache/cassandra/service/CassandraServer.java @@ -36,8 +36,7 @@ import org.apache.cassandra.db.filter.QueryPath; import org.apache.cassandra.service.StorageService; import org.apache.cassandra.utils.Pair; import org.apache.thrift.TException; - -import flexjson.JSONSerializer; +import org.json.simple.JSONValue; public class CassandraServer implements Cassandra.Iface { @@ -529,7 +528,7 @@ public class CassandraServer implements Cassandra.Iface } else if (propertyName.equals(TOKEN_MAP)) { - return new JSONSerializer().serialize(storageService.getStringEndpointMap()); + return JSONValue.toJSONString(storageService.getStringEndpointMap()); } else if (propertyName.equals("version")) {