upgrade to i2p 0.9.47, switch to json.org library to prevent library clash with i2p changes, i2p-zero version 1.18 release

pull/35/head
knaccc 4 years ago
parent 8ce2d51512
commit 802939088b

@ -27,14 +27,14 @@ Download the latest binary releases for Mac/Windows/Linux here: https://github.c
The zero-dependency distribution sizes are as follows: The zero-dependency distribution sizes are as follows:
OS | Uncompressed size (MB) | Compressed size (MB) | v1.17 Reproducible build SHA-256 OS | Uncompressed size (MB) | Compressed size (MB) | v1.18 Reproducible build SHA-256
------------ | ----------------------- | --------------------- | ------------------------------------------------------------------ ------------ | ----------------------- | --------------------- | ------------------------------------------------------------------
Mac | 37.8 | 26.3 | `e25c304c6f45291d03d3c303fd8d4a126ba910f9b67e205341150384b81de9cd` Mac | 38.7 | 26.4 | `2f522910b283658604c1200820e8d55d9644e6ced315b83b0c70470717e2e413`
Windows | 47.3 | 32.2 | `a3fa0c8b3ae2311ec8c4914d657adbf23a506256b91493d4609fc0e6f557a30b` Windows | 48.0 | 32.4 | `7a10debc0674d2fdfc211cf478961cbaad35d03897d7d765a1ea4951d1eaac3d`
Linux | 61.4 | 36.2 | `298abd5bfe918581ed85f35ad9bc75261a9cdf16f576356525085dfa898a2fb6` Linux | 61.6 | 36.3 | `96950ddca5898a756459a62889e54637f74ead9c5732297ae3adbf68405fa543`
Mac GUI | 61.0 | 45.7 | `968af1268f2d21812a8dc8e9ba6abbb36eb472652da099228c82d81c8cbb0a86` Mac GUI | 61.4 | 45.8 | `8c1f2b27151351604e6a47275c5e69c1db8c898b57039f41fe4b747421dacc19`
Windows GUI | 69.2 | 50.4 | `2296825e662dba491e428970aae87f4d9596971eb2ff9e51a52df471b354fc60` Windows GUI | 70.5 | 50.6 | `5374e4dc015142774ba2fc7ae15f0647e0120b36c716dee218975b76f3a198f6`
Linux GUI | 86.5 | 56.4 | `2acbb171fa06197ecaeb1e2904e2b56b9a20adfc71d09521f6fa3545631e2b29` Linux GUI | 86.9 | 56.5 | `7d273233962e54ab1c965e81505f861645c0f0247905cb0eab2e96cdcdd29ed7`
Note: Reproducible builds are currently experimental. Due to JDK differences, Builds on Mac will consistently have different hashes than builds on Linux. Official releases will always be built using Docker. Note: Reproducible builds are currently experimental. Due to JDK differences, Builds on Mac will consistently have different hashes than builds on Linux. Official releases will always be built using Docker.

@ -9,7 +9,7 @@ fi
source "$basedir/bin/java-config.sh" source "$basedir/bin/java-config.sh"
echo "*** Compiling CLI" echo "*** Compiling CLI"
"$JAVA_HOME"/bin/javac --module-path "$basedir/target/modules/combined.jar" -d "$basedir/target/classes/org.getmonero.i2p.zero" $(find "$basedir/org.getmonero.i2p.zero/src" -name '*.java') "$JAVA_HOME"/bin/javac --enable-preview -source 14 --module-path "$basedir/target/modules/combined.jar" -d "$basedir/target/classes/org.getmonero.i2p.zero" $(find "$basedir/org.getmonero.i2p.zero/src" -name '*.java')
cp "$basedir/org.getmonero.i2p.zero/src/org/getmonero/i2p/zero/VERSION" "$basedir/target/classes/org.getmonero.i2p.zero/org/getmonero/i2p/zero/" cp "$basedir/org.getmonero.i2p.zero/src/org/getmonero/i2p/zero/VERSION" "$basedir/target/classes/org.getmonero.i2p.zero/org/getmonero/i2p/zero/"
echo "*** Packaging CLI as a modular jar" echo "*** Packaging CLI as a modular jar"
@ -17,7 +17,7 @@ echo "*** Packaging CLI as a modular jar"
normalizeZip "$basedir/target/org.getmonero.i2p.zero.jar" normalizeZip "$basedir/target/org.getmonero.i2p.zero.jar"
echo "*** Compiling GUI" echo "*** Compiling GUI"
"$JAVA_HOME"/bin/javac --module-path "$basedir/target/org.getmonero.i2p.zero.jar:$basedir/target/modules/combined.jar:$basedir/import/javafx-sdks/linux/javafx-sdk-$JAVAFX_VERSION/lib" -d "$basedir/target/classes/org.getmonero.i2p.zero.gui" $(find "$basedir/org.getmonero.i2p.zero.gui/src" -name '*.java') "$JAVA_HOME"/bin/javac --enable-preview -source 14 --module-path "$basedir/target/org.getmonero.i2p.zero.jar:$basedir/target/modules/combined.jar:$basedir/import/javafx-sdks/linux/javafx-sdk-$JAVAFX_VERSION/lib" -d "$basedir/target/classes/org.getmonero.i2p.zero.gui" $(find "$basedir/org.getmonero.i2p.zero.gui/src" -name '*.java')
cp -r "$basedir/org.getmonero.i2p.zero.gui/src/org/getmonero/i2p/zero/gui/"*.{css,png,fxml,ttf} "$basedir/target/classes/org.getmonero.i2p.zero.gui/org/getmonero/i2p/zero/gui/" cp -r "$basedir/org.getmonero.i2p.zero.gui/src/org/getmonero/i2p/zero/gui/"*.{css,png,fxml,ttf} "$basedir/target/classes/org.getmonero.i2p.zero.gui/org/getmonero/i2p/zero/gui/"

@ -9,6 +9,7 @@ fi
source "$basedir/bin/java-config.sh" source "$basedir/bin/java-config.sh"
cp "$basedir"/import/jetty-lib/*.jar "$basedir/import/lib/" cp "$basedir"/import/jetty-lib/*.jar "$basedir/import/lib/"
cp "$basedir"/import/org-json/*.jar "$basedir/import/lib/"
rm -fr "$basedir/target/lib-combined" rm -fr "$basedir/target/lib-combined"
rm -fr "$basedir/target/lib-combined-tmp" rm -fr "$basedir/target/lib-combined-tmp"
@ -45,7 +46,7 @@ echo 'uses org.eclipse.jetty.http.HttpFieldPreEncoder; }' >> "$basedir/target/mo
echo "*** Creating new combined modular jar" echo "*** Creating new combined modular jar"
"$JAVA_HOME"/bin/javac --module-path "$combinedJarPath/combined" --patch-module combined="$combinedJarPath" "$basedir/target/module-info/combined/module-info.java" "$JAVA_HOME"/bin/javac --enable-preview -source 14 --module-path "$combinedJarPath/combined" --patch-module combined="$combinedJarPath" "$basedir/target/module-info/combined/module-info.java"
cp $combinedJarPath "$basedir/target/modules/" cp $combinedJarPath "$basedir/target/modules/"
"$JAVA_HOME"/bin/jar uf "$basedir/target/modules/combined.jar" -C "$basedir/target/module-info/combined" module-info.class "$JAVA_HOME"/bin/jar uf "$basedir/target/modules/combined.jar" -C "$basedir/target/module-info/combined" module-info.class

@ -17,7 +17,7 @@ fi
cd "$basedir/import/i2p.i2p" cd "$basedir/import/i2p.i2p"
git fetch git fetch
git checkout tags/i2p-0.9.45 git checkout tags/i2p-0.9.47
cd .. cd ..
if [ ! -d "$basedir/import/jdks" ]; then if [ ! -d "$basedir/import/jdks" ]; then
@ -27,14 +27,14 @@ if [ ! -d "$basedir/import/jdks" ]; then
wget --directory-prefix=jdks/mac $JDK_DOWNLOAD_URL_MAC wget --directory-prefix=jdks/mac $JDK_DOWNLOAD_URL_MAC
wget --directory-prefix=jdks/win $JDK_DOWNLOAD_URL_WIN wget --directory-prefix=jdks/win $JDK_DOWNLOAD_URL_WIN
tar zxvf jdks/linux/$JDK_DOWNLOAD_FILENAME_LINUX -C jdks/linux/ tar zxf jdks/linux/$JDK_DOWNLOAD_FILENAME_LINUX -C jdks/linux/
tar zxvf jdks/mac/$JDK_DOWNLOAD_FILENAME_MAC -C jdks/mac/ tar zxf jdks/mac/$JDK_DOWNLOAD_FILENAME_MAC -C jdks/mac/
unzip jdks/win/$JDK_DOWNLOAD_FILENAME_WIN -d jdks/win/ unzip -q jdks/win/$JDK_DOWNLOAD_FILENAME_WIN -d jdks/win/
fi fi
if [ ! -d "$basedir/import/apache-ant-1.10.7" ]; then if [ ! -d "$basedir/import/apache-ant-1.10.7" ]; then
wget https://archive.apache.org/dist/ant/binaries/apache-ant-1.10.7-bin.tar.gz wget https://archive.apache.org/dist/ant/binaries/apache-ant-1.10.7-bin.tar.gz
tar zxvf apache-ant-1.10.7-bin.tar.gz tar zxf apache-ant-1.10.7-bin.tar.gz
fi fi
if [ ! -d "$basedir/import/commons-compress-1.20" ]; then if [ ! -d "$basedir/import/commons-compress-1.20" ]; then
@ -42,6 +42,11 @@ if [ ! -d "$basedir/import/commons-compress-1.20" ]; then
wget --directory-prefix=commons-compress-1.20 https://repo1.maven.org/maven2/org/apache/commons/commons-compress/1.20/commons-compress-1.20.jar wget --directory-prefix=commons-compress-1.20 https://repo1.maven.org/maven2/org/apache/commons/commons-compress/1.20/commons-compress-1.20.jar
fi fi
if [ ! -d "$basedir/import/org-json" ]; then
mkdir -p org-json
wget --directory-prefix=org-json https://repo1.maven.org/maven2/org/json/json/20200518/json-20200518.jar
fi
if [ ! -d "$basedir/import/jetty-lib" ]; then if [ ! -d "$basedir/import/jetty-lib" ]; then
mkdir -p jetty-lib mkdir -p jetty-lib
wget --directory-prefix=jetty-lib https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-server/9.4.26.v20200117/jetty-server-9.4.26.v20200117.jar wget --directory-prefix=jetty-lib https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-server/9.4.26.v20200117/jetty-server-9.4.26.v20200117.jar
@ -62,9 +67,9 @@ if [ ! -d "$basedir/import/javafx-sdks" ]; then
wget --directory-prefix=javafx-sdks/mac $JAVAFX_SDK_DOWNLOAD_URL_MAC wget --directory-prefix=javafx-sdks/mac $JAVAFX_SDK_DOWNLOAD_URL_MAC
wget --directory-prefix=javafx-sdks/win $JAVAFX_SDK_DOWNLOAD_URL_WIN wget --directory-prefix=javafx-sdks/win $JAVAFX_SDK_DOWNLOAD_URL_WIN
unzip javafx-sdks/linux/`basename $JAVAFX_SDK_DOWNLOAD_URL_LINUX` -d javafx-sdks/linux/ unzip -q javafx-sdks/linux/`basename $JAVAFX_SDK_DOWNLOAD_URL_LINUX` -d javafx-sdks/linux/
unzip javafx-sdks/mac/`basename $JAVAFX_SDK_DOWNLOAD_URL_MAC` -d javafx-sdks/mac/ unzip -q javafx-sdks/mac/`basename $JAVAFX_SDK_DOWNLOAD_URL_MAC` -d javafx-sdks/mac/
unzip javafx-sdks/win/`basename $JAVAFX_SDK_DOWNLOAD_URL_WIN` -d javafx-sdks/win/ unzip -q javafx-sdks/win/`basename $JAVAFX_SDK_DOWNLOAD_URL_WIN` -d javafx-sdks/win/
fi fi
if [ ! -d "$basedir/import/javafx-jmods" ]; then if [ ! -d "$basedir/import/javafx-jmods" ]; then
@ -74,14 +79,14 @@ if [ ! -d "$basedir/import/javafx-jmods" ]; then
wget --directory-prefix=javafx-jmods/mac $JAVAFX_JMODS_DOWNLOAD_URL_MAC wget --directory-prefix=javafx-jmods/mac $JAVAFX_JMODS_DOWNLOAD_URL_MAC
wget --directory-prefix=javafx-jmods/win $JAVAFX_JMODS_DOWNLOAD_URL_WIN wget --directory-prefix=javafx-jmods/win $JAVAFX_JMODS_DOWNLOAD_URL_WIN
unzip javafx-jmods/linux/$JAVAFX_JMODS_DOWNLOAD_FILENAME_LINUX -d javafx-jmods/linux/ unzip -q javafx-jmods/linux/$JAVAFX_JMODS_DOWNLOAD_FILENAME_LINUX -d javafx-jmods/linux/
unzip javafx-jmods/mac/$JAVAFX_JMODS_DOWNLOAD_FILENAME_MAC -d javafx-jmods/mac/ unzip -q javafx-jmods/mac/$JAVAFX_JMODS_DOWNLOAD_FILENAME_MAC -d javafx-jmods/mac/
unzip javafx-jmods/win/$JAVAFX_JMODS_DOWNLOAD_FILENAME_WIN -d javafx-jmods/win/ unzip -q javafx-jmods/win/$JAVAFX_JMODS_DOWNLOAD_FILENAME_WIN -d javafx-jmods/win/
fi fi
if [ ! -d "$basedir/import/jpackage" ]; then if [ ! -d "$basedir/import/jpackage" ]; then
mkdir -p jpackage/linux jpackage/win mkdir -p jpackage/linux jpackage/win
unzip $JAVA_HOME_LINUX/jmods/jdk.incubator.jpackage.jmod -d jpackage/linux/ unzip -q $JAVA_HOME_LINUX/jmods/jdk.incubator.jpackage.jmod -d jpackage/linux/
unzip $JAVA_HOME_WIN/jmods/jdk.incubator.jpackage.jmod -d jpackage/win/ unzip -q $JAVA_HOME_WIN/jmods/jdk.incubator.jpackage.jmod -d jpackage/win/
fi fi

@ -8,9 +8,7 @@ import net.i2p.router.RouterContext;
import net.i2p.router.networkdb.kademlia.FloodfillNetworkDatabaseFacade; import net.i2p.router.networkdb.kademlia.FloodfillNetworkDatabaseFacade;
import net.i2p.router.transport.FIFOBandwidthRefiller; import net.i2p.router.transport.FIFOBandwidthRefiller;
import net.i2p.router.transport.TransportUtil; import net.i2p.router.transport.TransportUtil;
import org.json.simple.JSONObject; import org.json.*;
import org.json.simple.parser.JSONParser;
import java.io.File; import java.io.File;
import java.nio.file.Files; import java.nio.file.Files;
import java.nio.file.Path; import java.nio.file.Path;
@ -180,7 +178,7 @@ public class RouterWrapper {
try { try {
File configFile = new File(i2PConfigDir, "config.json"); File configFile = new File(i2PConfigDir, "config.json");
if (configFile.exists()) { if (configFile.exists()) {
JSONObject root = (JSONObject) new JSONParser().parse(Files.readString(configFile.toPath())); JSONObject root = new JSONObject(Files.readString(configFile.toPath()));
return ((Long) root.get("bandwidthLimitKBps")).intValue(); return ((Long) root.get("bandwidthLimitKBps")).intValue();
} else return defaultBandwidthKBps; } else return defaultBandwidthKBps;
} }
@ -229,12 +227,12 @@ public class RouterWrapper {
try { try {
File configFile = new File(i2PConfigDir, "config.json"); File configFile = new File(i2PConfigDir, "config.json");
JSONObject root = new JSONObject();; JSONObject root = new JSONObject();
if (configFile.exists()) { if (configFile.exists()) {
root = (JSONObject) new JSONParser().parse(Files.readString(configFile.toPath())); root = new JSONObject(Files.readString(configFile.toPath()));
} }
root.put("bandwidthLimitKBps", n); root.put("bandwidthLimitKBps", n);
Files.writeString(configFile.toPath(), root.toJSONString()); Files.writeString(configFile.toPath(), root.toString(2));
} }
catch (Exception e) { catch (Exception e) {
throw new RuntimeException(e); throw new RuntimeException(e);

@ -13,9 +13,7 @@ import org.eclipse.jetty.server.*;
import org.eclipse.jetty.server.handler.HandlerList; import org.eclipse.jetty.server.handler.HandlerList;
import org.eclipse.jetty.server.handler.ResourceHandler; import org.eclipse.jetty.server.handler.ResourceHandler;
import org.eclipse.jetty.util.thread.QueuedThreadPool; import org.eclipse.jetty.util.thread.QueuedThreadPool;
import org.json.simple.JSONArray; import org.json.*;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import java.io.*; import java.io.*;
import java.math.BigInteger; import java.math.BigInteger;
@ -77,10 +75,10 @@ public class TunnelControl implements Runnable {
File tunnelControlConfigFile = new File(tunnelControlConfigDir, "tunnels.json"); File tunnelControlConfigFile = new File(tunnelControlConfigDir, "tunnels.json");
if (tunnelControlConfigFile.exists()) { if (tunnelControlConfigFile.exists()) {
tunnels.clear(); tunnels.clear();
JSONObject root = (JSONObject) new JSONParser().parse(Files.readString(tunnelControlConfigFile.toPath())); JSONObject root = new JSONObject(Files.readString(tunnelControlConfigFile.toPath()));
JSONArray list = (JSONArray) root.get("tunnels"); JSONArray list = root.getJSONArray("tunnels");
list.stream().forEach((o)->{ for(int i=0; i<list.length(); i++) {
JSONObject obj = (JSONObject) o; JSONObject obj = list.getJSONObject(i);
String type = (String) obj.get("type"); String type = (String) obj.get("type");
switch (type) { switch (type) {
case "server": case "server":
@ -99,7 +97,7 @@ public class TunnelControl implements Runnable {
tunnels.add(new HttpClientTunnel(Integer.parseInt((String) obj.get("port")), routerWrapper)); tunnels.add(new HttpClientTunnel(Integer.parseInt((String) obj.get("port")), routerWrapper));
break; break;
} }
}); }
fireChangeEvent(); fireChangeEvent();
} }
@ -116,7 +114,7 @@ public class TunnelControl implements Runnable {
JSONObject entry = new JSONObject(); JSONObject entry = new JSONObject();
entry.put("type", t.getType()); entry.put("type", t.getType());
if(includeState) entry.put("state", t.getState()); if(includeState) entry.put("state", t.getState());
tunnelsArray.add(entry); tunnelsArray.put(entry);
switch (t.getType()) { switch (t.getType()) {
case "server": case "server":
case "eepsite": case "eepsite":
@ -145,7 +143,7 @@ public class TunnelControl implements Runnable {
break; break;
} }
} }
return root.toJSONString(); return root.toString(2);
} }
catch (Exception e) { catch (Exception e) {
throw new RuntimeException(e); throw new RuntimeException(e);

Loading…
Cancel
Save