diff --git a/CHANGES.txt b/CHANGES.txt index ab3d276..5ffd4c4 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,3 +1,8 @@ +* 2020-05-31 0.5 + - Remove bundled libjson-simple which conflicts with i2p.jar + - Switch to use libjson-simple 2.x API in i2p.jar + - Requires I2P 0.9.47 + * 2017-03-26 0.4 - Fixes for Sonarr diff --git a/build.xml b/build.xml index c6f34c5..38316a2 100644 --- a/build.xml +++ b/build.xml @@ -11,7 +11,7 @@ - + diff --git a/scripts/plugin.config b/scripts/plugin.config index f1a1e3e..ef3e53f 100644 --- a/scripts/plugin.config +++ b/scripts/plugin.config @@ -9,4 +9,4 @@ websiteURL=http://zzz.i2p/forums/16 license=GPLv2 min-java-version=1.7 min-jetty-version=9 -min-i2p-version=0.9.29 +min-i2p-version=0.9.47 diff --git a/src/java/org/json/simple/ItemList.java b/src/java/org/json/simple/ItemList.java deleted file mode 100644 index 109f97d..0000000 --- a/src/java/org/json/simple/ItemList.java +++ /dev/null @@ -1,205 +0,0 @@ -/* - * $Id: ItemList.java,v 1.2 2009-03-15 22:12:18 parg Exp $ - * Created on 2006-3-24 - */ -package org.json.simple; - -import java.util.ArrayList; -import java.util.List; -import java.util.StringTokenizer; - -/** - * �����÷ָ����ֿ���һ��item.�ָ�������һ����һ��item.ÿ��item���߲����ǿհ׷�. - * ���磺 - * |a:b:c| => |a|,|b|,|c| - * |:| => ||,|| - * |a:| => |a|,|| - * @author FangYidong - */ -public class ItemList { - private final static String sp=","; - List items=new ArrayList(); - - - public ItemList(){} - - /** - * - * @param s �ָ���������һ���ַ������� - */ - public ItemList(String s){ - this.split(s,sp,items); - } - /** - * - * @param s �ָ���������һ���ַ������� - * @param sp �ָ��� - */ - //public ItemList(String s,String sp){ - // this.sp=s; - // this.split(s,sp,items); - //} - - /** - * - * @param s - * @param sp - * @param isMultiToken sp�Ƿ�Ϊ��ָ��� - */ - public ItemList(String s,String sp,boolean isMultiToken){ - split(s,sp,items,isMultiToken); - } - - public List getItems(){ - return this.items; - } - - public String[] getArray(){ - return (String[])this.items.toArray(new String[items.size()]); - } - - public void split(String s,String sp,List append,boolean isMultiToken){ - if(s==null || sp==null) - return; - if(isMultiToken){ - StringTokenizer tokens=new StringTokenizer(s,sp); - while(tokens.hasMoreTokens()){ - append.add(tokens.nextToken().trim()); - } - } - else{ - this.split(s,sp,append); - } - } - - public void split(String s,String sp,List append){ - if(s==null || sp==null) - return; - int pos=0; - int prevPos=0; - do{ - prevPos=pos; - pos=s.indexOf(sp,pos); - if(pos==-1) - break; - append.add(s.substring(prevPos,pos).trim()); - pos+=sp.length(); - }while(pos!=-1); - append.add(s.substring(prevPos).trim()); - } - - /** - * ���÷ָ���. - * @param sp �ָ��� - */ - //public void setSP(String sp){ - // this.sp=sp; - //} - - /** - * ���뵥��item. - * @param i �����λ��(֮ǰ) - * @param item - */ - public void add(int i,String item){ - if(item==null) - return; - items.add(i,item.trim()); - } - /** - * ���뵥��item. - * @param item - */ - public void add(String item){ - if(item==null) - return; - items.add(item.trim()); - } - - /** - * ��һ��item. - * @param list �����list - */ - public void addAll(ItemList list){ - items.addAll(list.items); - } - - /** - * ��һ��item. - * @param s �ָ���������һ���ַ������� - */ - public void addAll(String s){ - this.split(s,sp,items); - } - - /** - * ��һ��item. - * @param s �ָ���������һ���ַ������� - * @param sp �ָ��� - */ - public void addAll(String s,String sp){ - this.split(s,sp,items); - } - - public void addAll(String s,String sp,boolean isMultiToken){ - this.split(s,sp,items,isMultiToken); - } - - /** - * ��õ�i��item. 0-based. - * @param i - * @return - */ - public String get(int i){ - return (String)items.get(i); - } - - /** - * ���item��. - * @return - */ - public int size(){ - return items.size(); - } - /** - * �÷ָ����ָ��ı�ʾ. - */ - public String toString(){ - return toString(sp); - } - - /** - * �÷ָ����ָ��ı�ʾ. - * @param sp ����ø÷ָ����ָ�. - * @return - */ - public String toString(String sp){ - StringBuilder sb=new StringBuilder(); - - for(int i=0;i - */ -public class JSONArray extends ArrayList { - public JSONArray() { - super(); - } - - public JSONArray(Collection arg0) { - super(arg0); - } - - public JSONArray(int initialCapacity) { - super(initialCapacity); - } - - public String toString(){ - ItemList list=new ItemList(); - - Iterator iter=iterator(); - - while(iter.hasNext()){ - Object value=iter.next(); - if(value instanceof String){ - list.add("\""+JSONObject.escape((String)value)+"\""); - } - else - list.add(String.valueOf(value)); - } - return "["+list.toString()+"]"; - } - - public void toString( StringBuilder sb ){ - sb.append( "[" ); - - Iterator iter=iterator(); - - boolean first = true; - while(iter.hasNext()){ - if ( first ){ - first = false; - }else{ - sb.append( "," ); - } - Object value=iter.next(); - if(value instanceof String){ - sb.append( "\"" ); - JSONObject.escape(sb, (String)value); - sb.append( "\""); - }else if ( value instanceof JSONObject ){ - ((JSONObject)value).toString( sb ); - }else if ( value instanceof JSONArray ){ - ((JSONArray)value).toString( sb ); - }else{ - sb.append(String.valueOf(value)); - } - } - - sb.append( "]" ); - } -} diff --git a/src/java/org/json/simple/JSONObject.java b/src/java/org/json/simple/JSONObject.java deleted file mode 100644 index 7cba7f5..0000000 --- a/src/java/org/json/simple/JSONObject.java +++ /dev/null @@ -1,207 +0,0 @@ -/* - * $Id: JSONObject.java,v 1.2 2008-08-07 01:18:54 parg Exp $ - * Created on 2006-4-10 - */ -package org.json.simple; - -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; - -/** - * @author FangYidong - */ -public class JSONObject extends HashMap{ - - public JSONObject() { - super(); - } - - public JSONObject(int initialCapacity, float loadFactor) { - super(initialCapacity, loadFactor); - } - - public JSONObject(int initialCapacity) { - super(initialCapacity); - } - - public JSONObject(Map arg0) { - super(arg0); - } - - public String toString(){ - ItemList list=new ItemList(); - Iterator> iter=entrySet().iterator(); - - while(iter.hasNext()){ - Map.Entry entry=iter.next(); - list.add(toString(entry.getKey().toString(),entry.getValue())); - } - return "{"+list.toString()+"}"; - } - - public void toString( StringBuilder sb ){ - - sb.append( "{" ); - - Iterator iter=entrySet().iterator(); - - boolean first = true; - - while(iter.hasNext()){ - if ( first ){ - first = false; - }else{ - sb.append( "," ); - } - Map.Entry entry=(Map.Entry)iter.next(); - toString(sb, entry.getKey().toString(),entry.getValue()); - } - - sb.append( "}" ); - } - - public static String toString(String key,Object value){ - StringBuilder sb=new StringBuilder(); - - sb.append("\""); - sb.append(escape(key)); - sb.append("\":"); - if(value==null){ - sb.append("null"); - return sb.toString(); - } - - if(value instanceof String){ - sb.append("\""); - sb.append(escape((String)value)); - sb.append("\""); - } - else - sb.append(value); - return sb.toString(); - } - - public static void toString(StringBuilder sb, String key,Object value){ - sb.append("\""); - escape(sb,key); - sb.append("\":"); - if(value==null){ - sb.append("null"); - return; - } - - if(value instanceof String){ - sb.append("\""); - escape(sb,(String)value); - sb.append("\""); - }else if ( value instanceof JSONObject ){ - ((JSONObject)value).toString( sb ); - }else if ( value instanceof JSONArray ){ - ((JSONArray)value).toString( sb ); - }else{ - sb.append(String.valueOf( value )); - } - } - - /** - * " => \" , \ => \\ - * @param s - * @return - */ - public static String escape(String s){ - if(s==null) - return null; - StringBuilder sb=new StringBuilder(); - for(int i=0;i='\u0000' && ch<='\u001F'){ - String ss=Integer.toHexString(ch); - sb.append("\\u"); - for(int k=0;k<4-ss.length();k++){ - sb.append('0'); - } - sb.append(ss.toUpperCase()); - } - else{ - sb.append(ch); - } - } - }//for - return sb.toString(); - } - - public static void escape(StringBuilder sb, String s){ - if(s==null){ - sb.append((String)null); - }else{ - for(int i=0;i='\u0000' && ch<='\u001F'){ - String ss=Integer.toHexString(ch); - sb.append("\\u"); - for(int k=0;k<4-ss.length();k++){ - sb.append('0'); - } - sb.append(ss.toUpperCase()); - } - else{ - sb.append(ch); - } - } - }//for - } - } -} diff --git a/src/java/org/json/simple/JSONValue.java b/src/java/org/json/simple/JSONValue.java deleted file mode 100644 index d2c9888..0000000 --- a/src/java/org/json/simple/JSONValue.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * $Id: JSONValue.java,v 1.1 2007-06-05 00:43:56 tuxpaper Exp $ - * Created on 2006-4-15 - */ -package org.json.simple; - -import java.io.Reader; -import java.io.StringReader; -import java.util.Map; - -import org.json.simple.parser.JSONParser; - -import org.klomp.snark.rpc.JSONUtils; - - -/** - * @author FangYidong - */ -public class JSONValue { - /** - * parse into java object from input source. - * @param in - * @return instance of : JSONObject,JSONArray,String,Boolean,Long,Double or null - */ - public static Object parse(Reader in){ - try{ - JSONParser parser=new JSONParser(); - return parser.parse(in); - } - catch(Exception e){ - return null; - } - } - - public static Object parse(String s){ - StringReader in=new StringReader(s); - return parse(in); - } - - public static String toJSONString(Object value) { - if (value instanceof Map) { - return JSONUtils.encodeToJSON((Map) value); - } - return ""; - } -} diff --git a/src/java/org/json/simple/parser/JSONParser.java b/src/java/org/json/simple/parser/JSONParser.java deleted file mode 100644 index aae8e26..0000000 --- a/src/java/org/json/simple/parser/JSONParser.java +++ /dev/null @@ -1,190 +0,0 @@ -/* - * $Id: JSONParser.java,v 1.2 2008-08-07 01:18:55 parg Exp $ - * Created on 2006-4-15 - */ -package org.json.simple.parser; - -import java.io.Reader; -import java.util.Stack; - -import org.json.simple.JSONArray; -import org.json.simple.JSONObject; - - -/** - * @author FangYidong - */ -public class JSONParser { - public static final int S_INIT=0; - public static final int S_IN_FINISHED_VALUE=1;//string,number,boolean,null,object,array - public static final int S_IN_OBJECT=2; - public static final int S_IN_ARRAY=3; - public static final int S_PASSED_PAIR_KEY=4; - public static final int S_IN_ERROR=-1; - - private int peekStatus(Stack statusStack){ - if(statusStack.size()==0) - return -1; - Integer status=(Integer)statusStack.peek(); - return status.intValue(); - } - - public Object parse(Reader in) throws Exception{ - Stack statusStack=new Stack(); - Stack valueStack=new Stack(); - Yylex lexer=new Yylex(in); - Yytoken token=null; - int status=S_INIT; - - try{ - do{ - token=lexer.yylex(); - if(token==null) - token=new Yytoken(Yytoken.TYPE_EOF,null); - switch(status){ - case S_INIT: - switch(token.type){ - case Yytoken.TYPE_VALUE: - status=S_IN_FINISHED_VALUE; - statusStack.push(new Integer(status)); - valueStack.push(token.value); - break; - case Yytoken.TYPE_LEFT_BRACE: - status=S_IN_OBJECT; - statusStack.push(new Integer(status)); - valueStack.push(new JSONObject()); - break; - case Yytoken.TYPE_LEFT_SQUARE: - status=S_IN_ARRAY; - statusStack.push(new Integer(status)); - valueStack.push(new JSONArray()); - break; - default: - status=S_IN_ERROR; - }//inner switch - break; - - case S_IN_FINISHED_VALUE: - if(token.type==Yytoken.TYPE_EOF) - return valueStack.pop(); - else - return null; - - case S_IN_OBJECT: - switch(token.type){ - case Yytoken.TYPE_COMMA: - break; - case Yytoken.TYPE_VALUE: - if(token.value instanceof String){ - String key=(String)token.value; - valueStack.push(key); - status=S_PASSED_PAIR_KEY; - statusStack.push(new Integer(status)); - } - else{ - status=S_IN_ERROR; - } - break; - case Yytoken.TYPE_RIGHT_BRACE: - if(valueStack.size()>1){ - statusStack.pop(); - JSONObject map = (JSONObject)valueStack.pop(); - status=peekStatus(statusStack); - } - else{ - status=S_IN_FINISHED_VALUE; - } - break; - default: - status=S_IN_ERROR; - break; - }//inner switch - break; - - case S_PASSED_PAIR_KEY: - switch(token.type){ - case Yytoken.TYPE_COLON: - break; - case Yytoken.TYPE_VALUE: - statusStack.pop(); - String key=(String)valueStack.pop(); - JSONObject parent=(JSONObject)valueStack.peek(); - parent.put(key,token.value); - status=peekStatus(statusStack); - break; - case Yytoken.TYPE_LEFT_SQUARE: - statusStack.pop(); - key=(String)valueStack.pop(); - parent=(JSONObject)valueStack.peek(); - JSONArray newArray=new JSONArray(); - parent.put(key,newArray); - status=S_IN_ARRAY; - statusStack.push(new Integer(status)); - valueStack.push(newArray); - break; - case Yytoken.TYPE_LEFT_BRACE: - statusStack.pop(); - key=(String)valueStack.pop(); - parent=(JSONObject)valueStack.peek(); - JSONObject newObject=new JSONObject(); - parent.put(key,newObject); - status=S_IN_OBJECT; - statusStack.push(new Integer(status)); - valueStack.push(newObject); - break; - default: - status=S_IN_ERROR; - } - break; - - case S_IN_ARRAY: - switch(token.type){ - case Yytoken.TYPE_COMMA: - break; - case Yytoken.TYPE_VALUE: - JSONArray val=(JSONArray)valueStack.peek(); - val.add(token.value); - break; - case Yytoken.TYPE_RIGHT_SQUARE: - if(valueStack.size()>1){ - statusStack.pop(); - valueStack.pop(); - status=peekStatus(statusStack); - } - else{ - status=S_IN_FINISHED_VALUE; - } - break; - case Yytoken.TYPE_LEFT_BRACE: - val=(JSONArray)valueStack.peek(); - JSONObject newObject=new JSONObject(); - val.add(newObject); - status=S_IN_OBJECT; - statusStack.push(new Integer(status)); - valueStack.push(newObject); - break; - case Yytoken.TYPE_LEFT_SQUARE: - val=(JSONArray)valueStack.peek(); - JSONArray newArray=new JSONArray(); - val.add(newArray); - status=S_IN_ARRAY; - statusStack.push(new Integer(status)); - valueStack.push(newArray); - break; - default: - status=S_IN_ERROR; - }//inner switch - break; - case S_IN_ERROR: - return null; - }//switch - if(status==S_IN_ERROR) - return null; - }while(token.type!=Yytoken.TYPE_EOF); - } - catch(Exception e){ - throw e; - } - return null; - } -} diff --git a/src/java/org/json/simple/parser/Yylex.java b/src/java/org/json/simple/parser/Yylex.java deleted file mode 100644 index cf79958..0000000 --- a/src/java/org/json/simple/parser/Yylex.java +++ /dev/null @@ -1,428 +0,0 @@ -package org.json.simple.parser; - - -class Yylex { - private final static int YY_BUFFER_SIZE = 512; - private final static int YY_F = -1; - private final static int YY_NO_STATE = -1; - private final static int YY_NOT_ACCEPT = 0; - //private final static int YY_START = 1; - private final static int YY_END = 2; - private final static int YY_NO_ANCHOR = 4; - private final static int YY_BOL = 65536; - private final static int YY_EOF = 65537; - -private StringBuffer sb=new StringBuffer(); - private java.io.BufferedReader yy_reader; - private int yy_buffer_index; - private int yy_buffer_read; - private int yy_buffer_start; - private int yy_buffer_end; - private char yy_buffer[]; - private boolean yy_at_bol; - private int yy_lexical_state; - - Yylex (java.io.Reader reader) { - this (); - if (null == reader) { - throw (new Error("Error: Bad input stream initializer.")); - } - yy_reader = new java.io.BufferedReader(reader); - } - - Yylex (java.io.InputStream instream) { - this (); - if (null == instream) { - throw (new Error("Error: Bad input stream initializer.")); - } - yy_reader = new java.io.BufferedReader(new java.io.InputStreamReader(instream)); - } - - private Yylex () { - yy_buffer = new char[YY_BUFFER_SIZE]; - yy_buffer_read = 0; - yy_buffer_index = 0; - yy_buffer_start = 0; - yy_buffer_end = 0; - yy_at_bol = true; - yy_lexical_state = YYINITIAL; - } - - //private boolean yy_eof_done = false; - private static final int YYINITIAL = 0; - private static final int STRING_BEGIN = 1; - private static final int yy_state_dtrans[] = { - 0, - 39 - }; - private void yybegin (int state) { - yy_lexical_state = state; - } - private int yy_advance () - throws java.io.IOException { - int next_read; - int i; - int j; - - if (yy_buffer_index < yy_buffer_read) { - return yy_buffer[yy_buffer_index++]; - } - - if (0 != yy_buffer_start) { - i = yy_buffer_start; - j = 0; - while (i < yy_buffer_read) { - yy_buffer[j] = yy_buffer[i]; - ++i; - ++j; - } - yy_buffer_end = yy_buffer_end - yy_buffer_start; - yy_buffer_start = 0; - yy_buffer_read = j; - yy_buffer_index = j; - next_read = yy_reader.read(yy_buffer, - yy_buffer_read, - yy_buffer.length - yy_buffer_read); - if (-1 == next_read) { - return YY_EOF; - } - yy_buffer_read = yy_buffer_read + next_read; - } - - while (yy_buffer_index >= yy_buffer_read) { - if (yy_buffer_index >= yy_buffer.length) { - yy_buffer = yy_double(yy_buffer); - } - next_read = yy_reader.read(yy_buffer, - yy_buffer_read, - yy_buffer.length - yy_buffer_read); - if (-1 == next_read) { - return YY_EOF; - } - yy_buffer_read = yy_buffer_read + next_read; - } - return yy_buffer[yy_buffer_index++]; - } - private void yy_move_end () { - if (yy_buffer_end > yy_buffer_start && - '\n' == yy_buffer[yy_buffer_end-1]) - yy_buffer_end--; - if (yy_buffer_end > yy_buffer_start && - '\r' == yy_buffer[yy_buffer_end-1]) - yy_buffer_end--; - } - //private boolean yy_last_was_cr=false; - private void yy_mark_start () { - yy_buffer_start = yy_buffer_index; - } - private void yy_mark_end () { - yy_buffer_end = yy_buffer_index; - } - private void yy_to_mark () { - yy_buffer_index = yy_buffer_end; - yy_at_bol = (yy_buffer_end > yy_buffer_start) && - ('\r' == yy_buffer[yy_buffer_end-1] || - '\n' == yy_buffer[yy_buffer_end-1] || - 2028/*LS*/ == yy_buffer[yy_buffer_end-1] || - 2029/*PS*/ == yy_buffer[yy_buffer_end-1]); - } - private java.lang.String yytext () { - return (new java.lang.String(yy_buffer, - yy_buffer_start, - yy_buffer_end - yy_buffer_start)); - } - //private int yylength () { - // return yy_buffer_end - yy_buffer_start; - //} - private char[] yy_double (char buf[]) { - int i; - char newbuf[]; - newbuf = new char[2*buf.length]; - for (i = 0; i < buf.length; ++i) { - newbuf[i] = buf[i]; - } - return newbuf; - } - private static final int YY_E_INTERNAL = 0; - //private final int YY_E_MATCH = 1; - private java.lang.String yy_error_string[] = { - "Error: Internal error.\n", - "Error: Unmatched input.\n" - }; - private void yy_error (int code,boolean fatal) { - java.lang.System.out.print(yy_error_string[code]); - java.lang.System.out.flush(); - if (fatal) { - throw new Error("Fatal Error.\n"); - } - } - private static int[][] unpackFromString(int size1, int size2, String st) { - int colonIndex = -1; - String lengthString; - int sequenceLength = 0; - int sequenceInteger = 0; - - int commaIndex; - String workString; - - int res[][] = new int[size1][size2]; - for (int i= 0; i < size1; i++) { - for (int j= 0; j < size2; j++) { - if (sequenceLength != 0) { - res[i][j] = sequenceInteger; - sequenceLength--; - continue; - } - commaIndex = st.indexOf(','); - workString = (commaIndex==-1) ? st : - st.substring(0, commaIndex); - st = st.substring(commaIndex+1); - colonIndex = workString.indexOf(':'); - if (colonIndex == -1) { - res[i][j]=Integer.parseInt(workString); - continue; - } - lengthString = - workString.substring(colonIndex+1); - sequenceLength=Integer.parseInt(lengthString); - workString=workString.substring(0,colonIndex); - sequenceInteger=Integer.parseInt(workString); - res[i][j] = sequenceInteger; - sequenceLength--; - } - } - return res; - } - private static final int yy_acpt[] = { - /* 0 */ YY_NOT_ACCEPT, - /* 1 */ YY_NO_ANCHOR, - /* 2 */ YY_NO_ANCHOR, - /* 3 */ YY_NO_ANCHOR, - /* 4 */ YY_NO_ANCHOR, - /* 5 */ YY_NO_ANCHOR, - /* 6 */ YY_NO_ANCHOR, - /* 7 */ YY_NO_ANCHOR, - /* 8 */ YY_NO_ANCHOR, - /* 9 */ YY_NO_ANCHOR, - /* 10 */ YY_NO_ANCHOR, - /* 11 */ YY_NO_ANCHOR, - /* 12 */ YY_NO_ANCHOR, - /* 13 */ YY_NO_ANCHOR, - /* 14 */ YY_NO_ANCHOR, - /* 15 */ YY_NO_ANCHOR, - /* 16 */ YY_NO_ANCHOR, - /* 17 */ YY_NO_ANCHOR, - /* 18 */ YY_NO_ANCHOR, - /* 19 */ YY_NO_ANCHOR, - /* 20 */ YY_NO_ANCHOR, - /* 21 */ YY_NO_ANCHOR, - /* 22 */ YY_NO_ANCHOR, - /* 23 */ YY_NO_ANCHOR, - /* 24 */ YY_NO_ANCHOR, - /* 25 */ YY_NOT_ACCEPT, - /* 26 */ YY_NO_ANCHOR, - /* 27 */ YY_NO_ANCHOR, - /* 28 */ YY_NOT_ACCEPT, - /* 29 */ YY_NOT_ACCEPT, - /* 30 */ YY_NOT_ACCEPT, - /* 31 */ YY_NOT_ACCEPT, - /* 32 */ YY_NOT_ACCEPT, - /* 33 */ YY_NOT_ACCEPT, - /* 34 */ YY_NOT_ACCEPT, - /* 35 */ YY_NOT_ACCEPT, - /* 36 */ YY_NOT_ACCEPT, - /* 37 */ YY_NOT_ACCEPT, - /* 38 */ YY_NOT_ACCEPT, - /* 39 */ YY_NOT_ACCEPT, - /* 40 */ YY_NOT_ACCEPT, - /* 41 */ YY_NOT_ACCEPT, - /* 42 */ YY_NOT_ACCEPT, - /* 43 */ YY_NOT_ACCEPT, - /* 44 */ YY_NOT_ACCEPT - }; - private static final int yy_cmap[] = unpackFromString(1,65538, -"11:8,27:2,28,11,27,28,11:18,27,11,2,11:8,16,25,12,14,3,13:10,26,11:6,10:4,1" + -"5,10,11:20,23,1,24,11:3,18,4,10:2,17,5,11:5,19,11,6,11:3,7,20,8,9,11:5,21,1" + -"1,22,11:65410,0:2")[0]; - - private static final int yy_rmap[] = unpackFromString(1,45, -"0,1:2,2,1:7,3,1:2,4,1:10,5,6,1,7,8,9,10,11,12,13,14,15,16,6,17,18,19,20,21," + -"22")[0]; - - private static final int yy_nxt[][] = unpackFromString(23,29, -"1,-1,2,-1:2,25,28,-1,29,-1:3,30,3,-1:7,4,5,6,7,8,9,10:2,-1:42,3,33,34,-1,34" + -",-1:24,11,-1,34,-1,34,-1:12,16,17,18,19,20,21,22,23,40,-1:37,31,-1:23,26,-1" + -":24,42,-1:26,32,-1:34,3,-1:34,35,-1:18,37,-1:32,11,-1:27,38,26,-1:2,38,-1:3" + -"2,37,-1:27,12,-1:26,13,-1:11,1,14,15,27:25,-1:5,44:2,-1:4,44,-1:2,44,-1,44," + -"-1,44:2,-1:14,24:2,-1:4,24,-1:2,24,-1,24,-1,24:2,-1:29,36,-1:13,41:2,-1:4,4" + -"1,-1:2,41,-1,41,-1,41:2,-1:14,43:2,-1:4,43,-1:2,43,-1,43,-1,43:2,-1:10"); - - public Yytoken yylex () - throws java.io.IOException { - int yy_lookahead; - int yy_anchor = YY_NO_ANCHOR; - int yy_state = yy_state_dtrans[yy_lexical_state]; - int yy_next_state = YY_NO_STATE; - int yy_last_accept_state = YY_NO_STATE; - boolean yy_initial = true; - int yy_this_accept; - - yy_mark_start(); - yy_this_accept = yy_acpt[yy_state]; - if (YY_NOT_ACCEPT != yy_this_accept) { - yy_last_accept_state = yy_state; - yy_mark_end(); - } - while (true) { - if (yy_initial && yy_at_bol) yy_lookahead = YY_BOL; - else yy_lookahead = yy_advance(); - yy_next_state = YY_F; - yy_next_state = yy_nxt[yy_rmap[yy_state]][yy_cmap[yy_lookahead]]; - if (YY_EOF == yy_lookahead && true == yy_initial) { - return null; - } - if (YY_F != yy_next_state) { - yy_state = yy_next_state; - yy_initial = false; - yy_this_accept = yy_acpt[yy_state]; - if (YY_NOT_ACCEPT != yy_this_accept) { - yy_last_accept_state = yy_state; - yy_mark_end(); - } - } - else { - if (YY_NO_STATE == yy_last_accept_state) { - throw (new Error("Lexical Error: Unmatched Input.")); - } - else { - yy_anchor = yy_acpt[yy_last_accept_state]; - if (0 != (YY_END & yy_anchor)) { - yy_move_end(); - } - yy_to_mark(); - switch (yy_last_accept_state) { - case 1: - - case -2: - break; - case 2: - { sb.delete(0,sb.length());yybegin(STRING_BEGIN);} - case -3: - break; - case 3: - { Long val=Long.valueOf(yytext()); return new Yytoken(Yytoken.TYPE_VALUE,val);} - case -4: - break; - case 4: - { return new Yytoken(Yytoken.TYPE_LEFT_BRACE,null);} - case -5: - break; - case 5: - { return new Yytoken(Yytoken.TYPE_RIGHT_BRACE,null);} - case -6: - break; - case 6: - { return new Yytoken(Yytoken.TYPE_LEFT_SQUARE,null);} - case -7: - break; - case 7: - { return new Yytoken(Yytoken.TYPE_RIGHT_SQUARE,null);} - case -8: - break; - case 8: - { return new Yytoken(Yytoken.TYPE_COMMA,null);} - case -9: - break; - case 9: - { return new Yytoken(Yytoken.TYPE_COLON,null);} - case -10: - break; - case 10: - {} - case -11: - break; - case 11: - { Double val=Double.valueOf(yytext()); return new Yytoken(Yytoken.TYPE_VALUE,val);} - case -12: - break; - case 12: - { return new Yytoken(Yytoken.TYPE_VALUE,null);} - case -13: - break; - case 13: - { Boolean val=Boolean.valueOf(yytext()); return new Yytoken(Yytoken.TYPE_VALUE,val);} - case -14: - break; - case 14: - { sb.append(yytext());} - case -15: - break; - case 15: - { yybegin(YYINITIAL);return new Yytoken(Yytoken.TYPE_VALUE,sb.toString());} - case -16: - break; - case 16: - {sb.append('\\');} - case -17: - break; - case 17: - {sb.append('"');} - case -18: - break; - case 18: - {sb.append('/');} - case -19: - break; - case 19: - {sb.append('\b');} - case -20: - break; - case 20: - {sb.append('\f');} - case -21: - break; - case 21: - {sb.append('\n');} - case -22: - break; - case 22: - {sb.append('\r');} - case -23: - break; - case 23: - {sb.append('\t');} - case -24: - break; - case 24: - { int ch=Integer.parseInt(yytext().substring(2),16); - sb.append((char)ch); - } - case -25: - break; - case 26: - { Double val=Double.valueOf(yytext()); return new Yytoken(Yytoken.TYPE_VALUE,val);} - case -26: - break; - case 27: - { sb.append(yytext());} - case -27: - break; - default: - yy_error(YY_E_INTERNAL,false); - case -1: - } - yy_initial = true; - yy_state = yy_state_dtrans[yy_lexical_state]; - yy_next_state = YY_NO_STATE; - yy_last_accept_state = YY_NO_STATE; - yy_mark_start(); - yy_this_accept = yy_acpt[yy_state]; - if (YY_NOT_ACCEPT != yy_this_accept) { - yy_last_accept_state = yy_state; - yy_mark_end(); - } - } - } - } - } -} diff --git a/src/java/org/json/simple/parser/Yytoken.java b/src/java/org/json/simple/parser/Yytoken.java deleted file mode 100644 index 4c90001..0000000 --- a/src/java/org/json/simple/parser/Yytoken.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * $Id: Yytoken.java,v 1.1 2007-06-05 00:43:56 tuxpaper Exp $ - * Created on 2006-4-15 - */ -package org.json.simple.parser; - -/** - * @author FangYidong - */ -public class Yytoken { - public static final int TYPE_VALUE=0;//JSON primitive value: string,number,boolean,null - public static final int TYPE_LEFT_BRACE=1; - public static final int TYPE_RIGHT_BRACE=2; - public static final int TYPE_LEFT_SQUARE=3; - public static final int TYPE_RIGHT_SQUARE=4; - public static final int TYPE_COMMA=5; - public static final int TYPE_COLON=6; - public static final int TYPE_EOF=-1;//end of file - - public int type=0; - public Object value=null; - - public Yytoken(int type,Object value){ - this.type=type; - this.value=value; - } - - public String toString(){ - return String.valueOf(type+"=>|"+value+"|"); - } -} diff --git a/src/java/org/klomp/snark/rpc/JSONUtils.java b/src/java/org/klomp/snark/rpc/JSONUtils.java index c3914d8..e5a99d4 100644 --- a/src/java/org/klomp/snark/rpc/JSONUtils.java +++ b/src/java/org/klomp/snark/rpc/JSONUtils.java @@ -20,9 +20,9 @@ package org.klomp.snark.rpc; import java.io.UnsupportedEncodingException; import java.util.*; -import org.json.simple.JSONArray; -import org.json.simple.JSONObject; -import org.json.simple.JSONValue; +import org.json.simple.JsonArray; +import org.json.simple.JsonObject; +import org.json.simple.Jsoner; import net.i2p.I2PAppContext; import net.i2p.data.Base64; @@ -47,7 +47,7 @@ public class JSONUtils */ public static Map decodeJSON(String json) { try { - Object object = JSONValue.parse(json); + Object object = Jsoner.deserialize(json); if (object instanceof Map) { return (Map) object; } @@ -62,7 +62,7 @@ public class JSONUtils } /** - * encodes a map into a JSONObject. + * encodes a map into a JsonObject. *

* It's recommended that you use {@link #encodeToJSON(Map)} instead * @@ -71,8 +71,8 @@ public class JSONUtils * * @since 3.0.1.5 */ - public static JSONObject encodeToJSONObject(Map map) { - JSONObject newMap = new JSONObject((int)(map.size()*1.5)); + public static JsonObject encodeToJSONObject(Map map) { + JsonObject newMap = new JsonObject(); for (Map.Entry entry: ((Map)map).entrySet()){ String key = entry.getKey(); @@ -99,14 +99,12 @@ public class JSONUtils * @since 3.0.1.5 */ public static String encodeToJSON(Map map) { - JSONObject jobj = encodeToJSONObject(map); - StringBuilder sb = new StringBuilder(8192); - jobj.toString( sb ); - return( sb.toString()); + JsonObject jobj = encodeToJSONObject(map); + return jobj.toJson(); } public static String encodeToJSON(Collection list) { - return encodeToJSONArray(list).toString(); + return encodeToJSONArray(list).toJson(); } private static Object coerce(Object value) { @@ -153,8 +151,8 @@ public class JSONUtils * * @since 3.0.1.5 */ - private static JSONArray encodeToJSONArray(Collection list) { - JSONArray newList = new JSONArray(list.size()); + private static JsonArray encodeToJSONArray(Collection list) { + JsonArray newList = new JsonArray(); for ( Object value: list ){ newList.add(coerce(value)); } diff --git a/src/java/org/klomp/snark/rpc/XMWebUIPlugin.java b/src/java/org/klomp/snark/rpc/XMWebUIPlugin.java index bc60589..bef1aa5 100644 --- a/src/java/org/klomp/snark/rpc/XMWebUIPlugin.java +++ b/src/java/org/klomp/snark/rpc/XMWebUIPlugin.java @@ -80,8 +80,7 @@ import org.klomp.snark.Storage; import org.klomp.snark.TrackerClient; import org.klomp.snark.bencode.BEncoder; -import org.json.simple.JSONObject; -import org.json.simple.JSONValue; +import org.json.simple.JsonObject; @SuppressWarnings({ "unchecked", @@ -1189,7 +1188,7 @@ XMWebUIPlugin { List l_engines = new ArrayList(); result.put("engines", l_engines); for (Engine engine : engines) { - JSONObject map = new JSONObject(); + JsonObject map = new JsonObject(); l_engines.add(map); map.put("name", engine.getName()); map.put("id", engine.getUID());