Util: Update json-simple lib to 2.3.0 2017-10-04

Bundle 2.0 API only; remove 1.1 API
Convert DoH, NDT, and i2pcontrol to the 2.x API
Fix i2pcontrol handling of number values and serialization for 2.x API
Remove xenial dependency on libjson-simple-java, it has only 1.1
Set min and max version constraint on libjson-simple-java for bionic+
Based on patch from Gilles Filippini
ref: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=901827
This does not support 3.x but the patch for that will be smaller.
This commit is contained in:
zzz
2020-05-31 12:37:37 +00:00
parent 4fd834d13e
commit f985004be0
38 changed files with 3525 additions and 2275 deletions

View File

@ -1,7 +1,7 @@
package com.thetransactioncompany.jsonrpc2;
import org.json.simple.JSONObject;
import org.json.simple.JsonObject;
/**
@ -220,7 +220,7 @@ public class JSONRPC2Error extends Exception {
* @see #toJSONObject
*/
@Deprecated
public JSONObject toJSON() {
public JsonObject toJSON() {
return toJSONObject();
}
@ -231,9 +231,9 @@ public class JSONRPC2Error extends Exception {
*
* @return A JSON object representing this error object.
*/
public JSONObject toJSONObject() {
public JsonObject toJSONObject() {
JSONObject out = new JSONObject();
JsonObject out = new JsonObject();
out.put("code", code);
out.put("message", super.getMessage());

View File

@ -5,8 +5,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.json.simple.JSONAware;
import org.json.simple.JSONObject;
import org.json.simple.JsonObject;
/**
@ -54,7 +53,7 @@ import org.json.simple.JSONObject;
*
* @author Vladimir Dzhuvinov
*/
public abstract class JSONRPC2Message implements JSONAware {
public abstract class JSONRPC2Message {
/**
@ -220,7 +219,7 @@ public abstract class JSONRPC2Message implements JSONAware {
*
* @return The JSON object.
*/
public abstract JSONObject toJSONObject();
public abstract JsonObject toJSONObject();
/**
@ -246,6 +245,6 @@ public abstract class JSONRPC2Message implements JSONAware {
@Override
public String toString() {
return toJSONObject().toString();
return toJSONObject().toJson();
}
}

View File

@ -4,7 +4,7 @@ package com.thetransactioncompany.jsonrpc2;
import java.util.List;
import java.util.Map;
import org.json.simple.JSONObject;
import org.json.simple.JsonObject;
/**
@ -414,9 +414,9 @@ public class JSONRPC2Notification extends JSONRPC2Message {
@Override
public JSONObject toJSONObject() {
public JsonObject toJSONObject() {
JSONObject notf = new JSONObject();
JsonObject notf = new JsonObject();
notf.put("method", method);

View File

@ -4,9 +4,8 @@ package com.thetransactioncompany.jsonrpc2;
import java.util.List;
import java.util.Map;
import org.json.simple.parser.ContainerFactory;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
import org.json.simple.Jsoner;
import org.json.simple.DeserializationException;
/**
@ -56,12 +55,6 @@ import org.json.simple.parser.ParseException;
public class JSONRPC2Parser {
/**
* Reusable JSON parser. Not thread-safe!
*/
private final JSONParser parser;
/**
* If {@code true} the order of the parsed JSON object members must be
* preserved.
@ -153,10 +146,7 @@ public class JSONRPC2Parser {
public JSONRPC2Parser(final boolean preserveOrder,
final boolean ignoreVersion,
final boolean parseNonStdAttributes) {
// Numbers parsed as long/double, requires JSON Smart 1.0.9+
parser = new JSONParser();
this.preserveOrder = preserveOrder;
this.ignoreVersion = ignoreVersion;
this.parseNonStdAttributes = parseNonStdAttributes;
@ -189,13 +179,9 @@ public class JSONRPC2Parser {
// Parse the JSON string
try {
//if (preserveOrder)
// json = parser.parse(jsonString, ContainerFactory.FACTORY_ORDERED);
//else
json = parser.parse(jsonString);
json = Jsoner.deserialize(jsonString);
} catch (ParseException e) {
} catch (DeserializationException e) {
// Terse message, do not include full parse exception message
throw new JSONRPC2ParseException("Invalid JSON",

View File

@ -4,7 +4,7 @@ package com.thetransactioncompany.jsonrpc2;
import java.util.List;
import java.util.Map;
import org.json.simple.JSONObject;
import org.json.simple.JsonObject;
/**
@ -472,9 +472,9 @@ public class JSONRPC2Request extends JSONRPC2Message {
@Override
public JSONObject toJSONObject() {
public JsonObject toJSONObject() {
JSONObject req = new JSONObject();
JsonObject req = new JsonObject();
req.put("method", method);

View File

@ -3,7 +3,7 @@ package com.thetransactioncompany.jsonrpc2;
import java.util.Map;
import org.json.simple.JSONObject;
import org.json.simple.JsonObject;
/**
@ -384,9 +384,9 @@ public class JSONRPC2Response extends JSONRPC2Message {
@Override
public JSONObject toJSONObject() {
public JsonObject toJSONObject() {
JSONObject out = new JSONObject();
JsonObject out = new JsonObject();
// Result and error are mutually exclusive
if (error != null) {

View File

@ -37,8 +37,8 @@ import net.i2p.util.I2PSSLSocketFactory;
import net.i2p.util.Log;
import net.i2p.util.PortMapper;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
import org.json.simple.Jsoner;
import org.json.simple.DeserializationException;
import net.i2p.i2pcontrol.security.KeyStoreProvider;
import net.i2p.i2pcontrol.security.SecurityManager;
@ -194,13 +194,12 @@ public class SocketController implements RouterApp {
public void run() {
try {
final BufferedReader reader = new BufferedReader(new InputStreamReader(s.getInputStream(), "UTF-8"));
final JSONParser parser = new JSONParser();
while (true) {
Object o = parser.parse(reader);
Object o = Jsoner.deserialize(reader);
// TODO
System.out.println("i2pcontrol got: " + o);
}
} catch (ParseException pe) {
} catch (DeserializationException pe) {
_log.error("i2pcontrol handler", pe);
return;
} catch (IOException ioe) {

View File

@ -86,7 +86,7 @@ public class AuthenticateHandler implements RequestHandler {
Integer apiVersion;
try {
apiVersion = ((Long) api).intValue();
apiVersion = ((Number) api).intValue();
} catch (ClassCastException e) {
e.printStackTrace();
return JSONRPC2ExtendedError.UNSPECIFIED_API_VERSION;

View File

@ -56,12 +56,10 @@ public class GetRateHandler implements RequestHandler {
if (input == null) {
return new JSONRPC2Response(JSONRPC2Error.INVALID_PARAMS, req.getID());
}
long period;
try {
period = (Long) inParams.get("Period");
} catch (NumberFormatException e) {
Number p = (Number) inParams.get("Period");
if (p == null)
return new JSONRPC2Response(JSONRPC2Error.INVALID_PARAMS, req.getID());
}
long period = p.longValue();
RateStat rateStat = I2PAppContext.getGlobalContext().statManager().getRate(input);

View File

@ -1,7 +1,6 @@
package net.i2p.i2pcontrol.servlets.jsonrpc2handlers;
import com.thetransactioncompany.jsonrpc2.JSONRPC2Error;
import org.json.simple.JSONObject;
/*
* Copyright 2011 hottuna (dev@robertfoss.se)