From 1d9a1231b1739e25241c5c84b5ee70a0d9d24c9a Mon Sep 17 00:00:00 2001 From: Graham Date: Fri, 23 Aug 2019 20:41:22 +0100 Subject: [PATCH] Remove reliance on java.util.jar.Pack200 This class is going to be removed in a future version of the JDK. --- .../org/apache/harmony/pack200/Pack200.java | 66 +++++++++++++++++++ .../harmony/pack200/Pack200PackerAdapter.java | 3 +- .../unpack200/Pack200UnpackerAdapter.java | 2 +- 3 files changed, 69 insertions(+), 2 deletions(-) create mode 100644 src/main/java/org/apache/harmony/pack200/Pack200.java diff --git a/src/main/java/org/apache/harmony/pack200/Pack200.java b/src/main/java/org/apache/harmony/pack200/Pack200.java new file mode 100644 index 0000000..fdee311 --- /dev/null +++ b/src/main/java/org/apache/harmony/pack200/Pack200.java @@ -0,0 +1,66 @@ +package org.apache.harmony.pack200; + +import org.apache.harmony.unpack200.Pack200UnpackerAdapter; + +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.util.SortedMap; +import java.util.jar.JarFile; +import java.util.jar.JarInputStream; +import java.util.jar.JarOutputStream; + +public final class Pack200 { + public static Packer newPacker() { + return new Pack200PackerAdapter(); + } + + public static Unpacker newUnpacker() { + return new Pack200UnpackerAdapter(); + } + + public interface Packer { + String SEGMENT_LIMIT = "pack.segment.limit"; + String KEEP_FILE_ORDER = "pack.keep.file.order"; + String EFFORT = "pack.effort"; + String DEFLATE_HINT = "pack.deflate.hint"; + String MODIFICATION_TIME = "pack.modification.time"; + String PASS_FILE_PFX = "pack.pass.file."; + String UNKNOWN_ATTRIBUTE = "pack.unknown.attribute"; + String CLASS_ATTRIBUTE_PFX = "pack.class.attribute."; + String FIELD_ATTRIBUTE_PFX = "pack.field.attribute."; + String METHOD_ATTRIBUTE_PFX = "pack.method.attribute."; + String CODE_ATTRIBUTE_PFX = "pack.code.attribute."; + String PROGRESS = "pack.progress"; + + String KEEP = "keep"; + String PASS = "pass"; + String STRIP = "strip"; + String ERROR = "error"; + String TRUE = "true"; + String FALSE = "false"; + String LATEST = "latest"; + + SortedMap properties(); + void pack(JarFile in, OutputStream out) throws IOException; + void pack(JarInputStream in, OutputStream out) throws IOException ; + } + + public interface Unpacker { + String DEFLATE_HINT = "unpack.deflate.hint"; + String PROGRESS = "unpack.progress"; + + String KEEP = "keep"; + String TRUE = "true"; + String FALSE = "false"; + + SortedMap properties(); + void unpack(InputStream in, JarOutputStream out) throws IOException; + void unpack(File in, JarOutputStream out) throws IOException; + } + + private Pack200() { + /* empty */ + } +} diff --git a/src/main/java/org/apache/harmony/pack200/Pack200PackerAdapter.java b/src/main/java/org/apache/harmony/pack200/Pack200PackerAdapter.java index 7059a3f..f17f50b 100644 --- a/src/main/java/org/apache/harmony/pack200/Pack200PackerAdapter.java +++ b/src/main/java/org/apache/harmony/pack200/Pack200PackerAdapter.java @@ -20,7 +20,8 @@ import java.io.IOException; import java.io.OutputStream; import java.util.jar.JarFile; import java.util.jar.JarInputStream; -import java.util.jar.Pack200.Packer; + +import org.apache.harmony.pack200.Pack200.Packer; /** diff --git a/src/main/java/org/apache/harmony/unpack200/Pack200UnpackerAdapter.java b/src/main/java/org/apache/harmony/unpack200/Pack200UnpackerAdapter.java index b51bd85..b0c9434 100644 --- a/src/main/java/org/apache/harmony/unpack200/Pack200UnpackerAdapter.java +++ b/src/main/java/org/apache/harmony/unpack200/Pack200UnpackerAdapter.java @@ -22,8 +22,8 @@ import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.jar.JarOutputStream; -import java.util.jar.Pack200.Unpacker; +import org.apache.harmony.pack200.Pack200.Unpacker; import org.apache.harmony.pack200.Pack200Adapter; import org.apache.harmony.pack200.Pack200Exception;