remove fastjson dependency

This commit is contained in:
wenshao
2012-08-21 15:46:10 +08:00
parent a530c906ae
commit 7cea73b2c1
9 changed files with 94 additions and 40 deletions
@@ -207,6 +207,7 @@ public class DruidDataSourceStatManager implements DruidDataSourceStatManagerMBe
@SuppressWarnings("unchecked")
public static Set<DruidDataSource> getDruidDataSourceInstances() {
getInstances();
return dataSources.keySet();
}
@@ -5,6 +5,9 @@ import java.util.Collection;
import java.util.Date;
import java.util.Map;
import javax.management.openmbean.CompositeData;
import javax.management.openmbean.TabularData;
import com.alibaba.druid.util.IOUtils;
public class JSONWriter {
@@ -24,16 +27,6 @@ public class JSONWriter {
return;
}
if (o instanceof Map) {
writeMap((Map) o);
return;
}
if (o instanceof Collection) {
writeArray((Collection) o);
return;
}
if (o instanceof String) {
writeString((String) o);
return;
@@ -54,6 +47,11 @@ public class JSONWriter {
return;
}
if (o instanceof Collection) {
writeArray((Collection) o);
return;
}
if (o instanceof Throwable) {
writeError((Throwable) o);
return;
@@ -85,6 +83,21 @@ public class JSONWriter {
return;
}
if (o instanceof TabularData) {
writeTabularData((TabularData) o);
return;
}
if (o instanceof CompositeData) {
writeCompositeData((CompositeData) o);
return;
}
if (o instanceof Map) {
writeMap((Map) o);
return;
}
throw new IllegalArgumentException("not support type : " + o.getClass());
}
@@ -169,6 +182,50 @@ public class JSONWriter {
write('"');
}
public void writeTabularData(TabularData tabularData) {
if (tabularData == null) {
write("null");
return;
}
int entryIndex = 0;
write('[');
for (Object item : tabularData.values()) {
if (entryIndex != 0) {
write(',');
}
CompositeData row = (CompositeData) item;
writeCompositeData(row);
entryIndex++;
}
write(']');
}
public void writeCompositeData(CompositeData compositeData) {
if (compositeData == null) {
write("null");
return;
}
int entryIndex = 0;
write('{');
for (Object key : compositeData.getCompositeType().keySet()) {
if (entryIndex != 0) {
write(',');
}
writeString((String) key);
write(':');
Object value = compositeData.get((String) key);
writeObject(value);
entryIndex++;
}
write('}');
}
public void writeMap(Map<String, Object> map) {
if (map == null) {
write("null");
@@ -2,14 +2,14 @@ package com.alibaba.druid;
import junit.framework.TestCase;
import com.alibaba.fastjson.JSON;
import com.alibaba.druid.support.json.JSONUtils;
public class Bug_for_alibank extends TestCase {
public void test_bug() throws Exception {
String jsonStrz = "{addContact:[{\"address\":\"=\\\\\\\\\\\'\'\\&quot;);|]*{%0d%0a&lt;%00\"}]}";
String jsonStrz = "{\"addContact\":[{\"address\":\"=\\\\\\\\\\\'\'\\&quot;);|]*{%0d%0a&lt;%00\"}]}";
System.out.println(jsonStrz);
Object o = JSON.parseObject(jsonStrz.replaceAll("\\\\", ""));
System.out.println(JSON.toJSONString(o));
Object o = JSONUtils.parse(jsonStrz.replaceAll("\\\\", ""));
System.out.println(JSONUtils.toJSONString(o));
}
}
@@ -4,6 +4,8 @@ import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.concurrent.atomic.AtomicBoolean;
import junit.framework.TestCase;
@@ -15,19 +17,18 @@ import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.ha.cobar.CobarConfigLoader;
import com.alibaba.druid.pool.ha.cobar.CobarDataSource;
import com.alibaba.druid.pool.ha.cobar.CobarFailureDetecter;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.druid.support.json.JSONUtils;
public class CobarDataSourceTest extends TestCase {
public void test_cobarDataSource() throws Exception {
String url = "jdbc:cobar://127.0.0.1:8080/druid";
final JSONObject config = new JSONObject();
final HashMap<String, Object> config = new HashMap<String, Object>();
JSONArray cobarList = new JSONArray();
ArrayList<Object> cobarList = new ArrayList<Object>();
JSONObject cobarA = new JSONObject();
HashMap<String, Object> cobarA = new HashMap<String, Object>();
cobarA.put("ip", "mock");
cobarA.put("port", 80);
cobarA.put("schema", "cobarA");
@@ -35,7 +36,7 @@ public class CobarDataSourceTest extends TestCase {
cobarList.add(cobarA);
JSONObject cobarB = new JSONObject();
HashMap<String, Object> cobarB = new HashMap<String, Object>();
cobarB.put("ip", "mock");
cobarB.put("port", 81);
cobarB.put("schema", "cobarB");
@@ -62,7 +63,7 @@ public class CobarDataSourceTest extends TestCase {
CobarConfigLoader configLoader = new CobarConfigLoader(dataSource) {
public void load() throws SQLException {
responseMessage = config.toJSONString();
responseMessage = JSONUtils.toJSONString(config);
handleResponseMessage();
}
@@ -12,7 +12,7 @@ import junit.framework.Assert;
import junit.framework.TestCase;
import com.alibaba.druid.stat.JdbcStatManager;
import com.alibaba.fastjson.JSON;
import com.alibaba.druid.support.json.JSONUtils;
public class StatFilterTest extends TestCase {
@@ -52,6 +52,6 @@ public class StatFilterTest extends TestCase {
}
Assert.assertEquals(true, count > 0);
System.out.println(JSON.toJSONString(sqlList));
System.out.println(JSONUtils.toJSONString(sqlList));
}
}
@@ -10,8 +10,7 @@ import junit.framework.TestCase;
import com.alibaba.druid.pool.vendor.OracleExceptionSorter;
import com.alibaba.druid.stat.JdbcStatManager;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.druid.support.json.JSONUtils;
public class TestOracle_DruidDataSource extends TestCase {
@@ -69,13 +68,13 @@ public class TestOracle_DruidDataSource extends TestCase {
endLatch.await();
for (Object item : JdbcStatManager.getInstance().getDataSourceList().values()) {
String text = JSON.toJSONString(item, SerializerFeature.UseISO8601DateFormat);
System.out.println(JSON.toJSONString(JSON.parseObject(text, TreeMap.class), true));
String text = JSONUtils.toJSONString(item);
System.out.println(text);
}
for (Object item : JdbcStatManager.getInstance().getSqlList().values()) {
String text = JSON.toJSONString(item, SerializerFeature.UseISO8601DateFormat);
System.out.println(JSON.toJSONString(JSON.parseObject(text, TreeMap.class), true));
String text = JSONUtils.toJSONString(item);
System.out.println(text);
}
}
}
@@ -4,15 +4,13 @@ import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.TreeMap;
import javax.management.openmbean.TabularData;
import junit.framework.TestCase;
import com.alibaba.druid.stat.JdbcStatManager;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.druid.support.json.JSONUtils;
public class TestOracle extends TestCase {
@@ -38,8 +36,8 @@ public class TestOracle extends TestCase {
TabularData dataSourcesList = JdbcStatManager.getInstance().getDataSourceList();
for (Object item : dataSourcesList.values()) {
String text = JSON.toJSONString(item, SerializerFeature.UseISO8601DateFormat);
System.out.println(JSON.toJSONString(JSON.parseObject(text, TreeMap.class), true));
String text = JSONUtils.toJSONString(item);
System.out.println(text);
}
}
@@ -7,8 +7,6 @@ import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import junit.framework.Assert;
import oracle.jdbc.OracleStatement;
@@ -17,7 +15,7 @@ import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.sql.ast.SQLStatement;
import com.alibaba.druid.sql.dialect.oracle.parser.OracleStatementParser;
import com.alibaba.druid.sql.dialect.oracle.visitor.OracleSchemaStatVisitor;
import com.alibaba.fastjson.JSON;
import com.alibaba.druid.support.json.JSONUtils;
public class TestMigrate extends OracleTest {
@@ -340,7 +338,7 @@ public class TestMigrate extends OracleTest {
}
public String toString() {
return JSON.toJSONString(this);
return JSONUtils.toJSONString(this);
}
}
}
@@ -17,7 +17,7 @@ import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.sql.ast.SQLStatement;
import com.alibaba.druid.sql.dialect.oracle.parser.OracleStatementParser;
import com.alibaba.druid.sql.dialect.oracle.visitor.OracleSchemaStatVisitor;
import com.alibaba.fastjson.JSON;
import com.alibaba.druid.support.json.JSONUtils;
public class TestTransform extends OracleTest {
@@ -440,7 +440,7 @@ public class TestTransform extends OracleTest {
}
public String toString() {
return JSON.toJSONString(this);
return JSONUtils.toJSONString(this);
}
}
}