X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=ecomp-portal-BE-common%2Fsrc%2Fmain%2Fjava%2Fjarutil%2FExtractJar.java;h=50059d37394c17a4a647ff55ed635da44271a65e;hb=e427f4a23b209a5ecbf437460a5a68bb79642e26;hp=1cba2d0dc0dde391b705ee493a70931b25318af8;hpb=67b002459f9d728f54a6498bfd6ee1a3031432c9;p=portal.git diff --git a/ecomp-portal-BE-common/src/main/java/jarutil/ExtractJar.java b/ecomp-portal-BE-common/src/main/java/jarutil/ExtractJar.java index 1cba2d0d..50059d37 100644 --- a/ecomp-portal-BE-common/src/main/java/jarutil/ExtractJar.java +++ b/ecomp-portal-BE-common/src/main/java/jarutil/ExtractJar.java @@ -33,7 +33,7 @@ * * ============LICENSE_END============================================ * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. + * */ package jarutil; @@ -45,18 +45,17 @@ import java.io.OutputStream; import java.io.Reader; import java.io.Writer; import java.net.URL; +import java.util.Objects; import java.util.jar.JarEntry; import java.util.jar.JarInputStream; import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; public class ExtractJar { - - public static final int bufferSize = 8192; - public static final String jarFile = "raptor_upgrade.jar"; + private static final int BUFFER_SIZE = 8192; private static final EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(ExtractJar.class); - public static void main(String[] args) throws Exception { + public static void main(String[] args) { if (args.length > 0 && args[0] != null && args[0].length() > 0) extractFilesFromJar(args[0]); else { @@ -66,64 +65,57 @@ public class ExtractJar { } } - public static void extractFilesFromJar(String directory) throws IOException { + @SuppressWarnings("ResultOfMethodCallIgnored") + public static void extractFilesFromJar(String directory) { Class clazz = ExtractJar.class; - String classContainer = clazz.getProtectionDomain().getCodeSource().getLocation().toString(); URL jarUrl = clazz.getProtectionDomain().getCodeSource().getLocation(); - JarInputStream entryStream = new JarInputStream(jarUrl.openStream()); - JarEntry entry; - while (true) { - entry = entryStream.getNextJarEntry(); - if (entry == null) - break; - if (entry.getName().indexOf("jarutil") < 0) { - logger.info(entry.getName()); - File file = new File(directory, entry.getName()); - if (entry.isDirectory()) { - if (!file.exists()) - file.mkdirs(); - } else { - // make directory (some jars don't list dirs) - File dir = new File(file.getParent()); - if (!dir.exists()) - dir.mkdirs(); - if (file.exists()) - file.delete(); - // Make file - FileOutputStream fout = new FileOutputStream(file); - copy(entryStream, fout); - fout.close(); - - // touch the file. - if (entry.getTime() >= 0) - file.setLastModified(entry.getTime()); - } - - } - entryStream.closeEntry(); + try(JarInputStream entryStream = new JarInputStream(jarUrl.openStream())){ + JarEntry entry; + entry = entryStream.getNextJarEntry(); + if (entry == null) + logger.info("Raptor setup complete"); + if (!Objects.requireNonNull(entry).getName().contains("jarutil")) { + logger.info(entry.getName()); + File file = new File(directory, entry.getName()); + if (entry.isDirectory() && !file.exists()) { + file.mkdirs(); + } else { + // make directory (some jars don't list dirs) + File dir = new File(file.getParent()); + if (!dir.exists()) + dir.mkdirs(); + if (file.exists()) + file.delete(); + // Make file + FileOutputStream fos = new FileOutputStream(file); + copy(entryStream, fos); + fos.close(); + + // touch the file. + if (entry.getTime() >= 0) + file.setLastModified(entry.getTime()); + } + + } + entryStream.closeEntry(); + logger.info("Raptor setup complete"); + }catch(Exception e) { + logger.error("Exception in extractFilesFromJar",e); } - entryStream.close(); - System.out.println("************************************************"); - System.out.println("* *"); - System.out.println("* *"); - System.out.println("* RAPTOR SETUP COMPLETE. *"); - System.out.println("* *"); - System.out.println("* Thank you for upgrading. *"); - System.out.println("* *"); - System.out.println("************************************************"); + } public static void copy(InputStream in, OutputStream out, long byteCount) throws IOException { - byte[] buffer = new byte[bufferSize]; - int len = bufferSize; + byte[] buffer = new byte[BUFFER_SIZE]; + int len; if (byteCount >= 0) { while (byteCount > 0) { - if (byteCount < bufferSize) + if (byteCount < BUFFER_SIZE) len = in.read(buffer, 0, (int) byteCount); else - len = in.read(buffer, 0, bufferSize); + len = in.read(buffer, 0, BUFFER_SIZE); if (len == -1) break; @@ -132,7 +124,7 @@ public class ExtractJar { } } else { while (true) { - len = in.read(buffer, 0, bufferSize); + len = in.read(buffer, 0, BUFFER_SIZE); if (len < 0) break; out.write(buffer, 0, len); @@ -145,14 +137,14 @@ public class ExtractJar { * Copy Reader to Writer for byteCount bytes or until EOF or exception. */ public static void copy(Reader in, Writer out, long byteCount) throws IOException { - char[] buffer = new char[bufferSize]; - int len = bufferSize; + char[] buffer = new char[BUFFER_SIZE]; + int len; if (byteCount >= 0) { while (byteCount > 0) { - if (byteCount < bufferSize) + if (byteCount < BUFFER_SIZE) len = in.read(buffer, 0, (int) byteCount); else - len = in.read(buffer, 0, bufferSize); + len = in.read(buffer, 0, BUFFER_SIZE); if (len == -1) break; @@ -161,7 +153,7 @@ public class ExtractJar { } } else { while (true) { - len = in.read(buffer, 0, bufferSize); + len = in.read(buffer, 0, BUFFER_SIZE); if (len == -1) break; out.write(buffer, 0, len); @@ -183,8 +175,9 @@ public class ExtractJar { public static boolean deleteDir(File dir) { if (dir.isDirectory()) { String[] children = dir.list(); - for (int i = 0; i < children.length; i++) { - boolean success = deleteDir(new File(dir, children[i])); + assert children != null; + for (String child : children) { + boolean success = deleteDir(new File(dir, child)); if (!success) { return false; }