diff --git a/build.gradle b/build.gradle index 92d87639d3..d19aa7bef8 100644 --- a/build.gradle +++ b/build.gradle @@ -459,7 +459,7 @@ dependencies { implementation 'com.google.guava:guava:31.0.1-jre' // compression of messages between client and server implementation 'org.apache.commons:commons-compress:1.22' - implementation 'org.tukaani:xz:1.9' + implementation 'com.github.luben:zstd-jni:1.5.5-3' // intellij forms runtime implementation 'com.jetbrains.intellij.java:java-gui-forms-rt:223.7571.182' // layout for forms created in code diff --git a/src/main/java/net/rptools/clientserver/simple/AbstractConnection.java b/src/main/java/net/rptools/clientserver/simple/AbstractConnection.java index 635d865991..c57208c089 100644 --- a/src/main/java/net/rptools/clientserver/simple/AbstractConnection.java +++ b/src/main/java/net/rptools/clientserver/simple/AbstractConnection.java @@ -26,8 +26,8 @@ import net.rptools.clientserver.ActivityListener; import net.rptools.clientserver.ActivityListener.Direction; import net.rptools.clientserver.ActivityListener.State; -import org.apache.commons.compress.compressors.lzma.LZMACompressorInputStream; -import org.apache.commons.compress.compressors.lzma.LZMACompressorOutputStream; +import org.apache.commons.compress.compressors.zstandard.ZstdCompressorInputStream; +import org.apache.commons.compress.compressors.zstandard.ZstdCompressorOutputStream; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -84,7 +84,7 @@ public synchronized void addMessage(Object channel, byte[] message) { private byte[] compress(byte[] message) { try { ByteArrayOutputStream baos = new ByteArrayOutputStream(message.length); - OutputStream ios = new LZMACompressorOutputStream(baos); + OutputStream ios = new ZstdCompressorOutputStream(baos); ios.write(message); ios.close(); @@ -96,10 +96,9 @@ private byte[] compress(byte[] message) { } private byte[] inflate(byte[] compressedMessage) { - ByteArrayOutputStream baos = new ByteArrayOutputStream(compressedMessage.length); InputStream bytesIn = new ByteArrayInputStream(compressedMessage); try { - InputStream ios = new LZMACompressorInputStream(bytesIn); + InputStream ios = new ZstdCompressorInputStream(bytesIn); var decompressed = ios.readAllBytes(); ios.close(); return decompressed;