Remove Pack200 from Spark
Fixes
*/
package org.jivesoftware.launcher;
-import java.io.BufferedInputStream;
-import java.io.BufferedOutputStream;
import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.InputStream;
import java.lang.reflect.Method;
-import java.util.jar.JarOutputStream;
-import java.util.jar.Pack200;
/**
*/
@@ -62,12 +55,6 @@ public class Startup {
File pluginDir = new File(libDir.getParentFile(), "plugins");
- // Unpack any pack files in lib.
- unpackArchives(libDir, true);
-
- // Unpack plugins.
- unpackArchives(pluginDir, true);
-
// Load them into the classloader
final ClassLoader loader = new JiveClassLoader(parent, libDir);
@@ -108,59 +95,4 @@ public class Startup {
return parent;
}
- /**
- * Converts any pack files in a directory into standard JAR files. Each
- * pack file will be deleted after being converted to a JAR. If no
- * pack files are found, this method does nothing.
- *
- * @param libDir the directory containing pack files.
- * @param printStatus true if status ellipses should be printed when unpacking.
- */
- private void unpackArchives(File libDir, boolean printStatus) {
- // Get a list of all packed files in the lib directory.
- File[] packedFiles = libDir.listFiles( ( dir, name ) -> name.endsWith(".pack"));
-
- if (packedFiles == null) {
- // Do nothing since no .pack files were found
- return;
- }
-
- // Unpack each.
- boolean unpacked = false;
- for (File packedFile : packedFiles) {
- try {
- String jarName = packedFile.getName().substring(0,
- packedFile.getName().length() - ".pack".length());
- // Delete JAR file with same name if it exists (could be due to upgrade
- // from old Wildfire release).
- File jarFile = new File(libDir, jarName);
- if (jarFile.exists()) {
- jarFile.delete();
- }
-
- InputStream in = new BufferedInputStream(new FileInputStream(packedFile));
- JarOutputStream out = new JarOutputStream(new BufferedOutputStream(
- new FileOutputStream(new File(libDir, jarName))));
- Pack200.Unpacker unpacker = Pack200.newUnpacker();
- // Print something so the user knows something is happening.
- if (printStatus) {
- System.out.print(".");
- }
- // Call the unpacker
- unpacker.unpack(in, out);
-
- in.close();
- out.close();
- packedFile.delete();
- unpacked = true;
- }
- catch (Exception e) {
- e.printStackTrace();
- }
- }
- // Print newline if unpacking happened.
- if (unpacked && printStatus) {
- System.out.println();
- }
- }
}
