* ============LICENSE_START==========================================
* ONAP Portal
* ===================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
* ===================================================================
*
* Unless otherwise specified, all software contained herein is licensed
- * under the Apache License, Version 2.0 (the “License”);
+ * under the Apache License, Version 2.0 (the "License");
* you may not use this software except in compliance with the License.
* You may obtain a copy of the License at
*
* limitations under the License.
*
* Unless otherwise specified, all documentation contained herein is licensed
- * under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
* you may not use this documentation except in compliance with the License.
* You may obtain a copy of the License at
*
*
* ============LICENSE_END============================================
*
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ *
*/
package jarutil;
import java.io.File;
-import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
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 int bufferSize = 8192;
- public static String JARFILE = "raptor_upgrade.jar";
+public class ExtractJar {
+ 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 {
- System.out.println("Current Directory is taken as webapp path");
+ logger.info("Current Directory is taken as webapp path");
String currentDir = new File(".").getAbsolutePath();
extractFilesFromJar(currentDir);
}
}
- public static void extractFilesFromJar(String directory) throws IOException {
- // JarFile jar = new JarFile(jarFile);
+ @SuppressWarnings("ResultOfMethodCallIgnored")
+ public static void extractFilesFromJar(String directory) {
+
Class clazz = ExtractJar.class;
- String classContainer = clazz.getProtectionDomain().getCodeSource().getLocation().toString();
- // System.out.println("classContainer ---------> " + classContainer);
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) {
- System.out.println(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;
}
} 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);
* 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;
}
} 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);
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;
}