List of usage examples for java.util.jar JarOutputStream closeEntry
public void closeEntry() throws IOException
From source file:org.eclipse.smarthome.test.SyntheticBundleInstaller.java
private static void addFileToArchive(Bundle bundle, String bundlePath, String fileInBundle, JarOutputStream jarOutputStream) throws IOException { String filePath = bundlePath + "/" + fileInBundle; URL resource = bundle.getResource(filePath); if (resource == null) { return;//from w w w . jav a2 s . co m } ZipEntry zipEntry = new ZipEntry(fileInBundle); jarOutputStream.putNextEntry(zipEntry); IOUtils.copy(resource.openStream(), jarOutputStream); jarOutputStream.closeEntry(); }
From source file:JarUtil.java
/** * @param entry/*from w w w . j av a2s. c o m*/ * @param in * @param out * @param crc * @param buffer * @throws IOException */ private static void add(JarEntry entry, InputStream in, JarOutputStream out, CRC32 crc, byte[] buffer) throws IOException { out.putNextEntry(entry); int read; long size = 0; while ((read = in.read(buffer)) != -1) { crc.update(buffer, 0, read); out.write(buffer, 0, read); size += read; } entry.setCrc(crc.getValue()); entry.setSize(size); in.close(); out.closeEntry(); crc.reset(); }
From source file:JarUtils.java
/** * This recursive method writes all matching files and directories to * the jar output stream./*from www . j a v a2s. co m*/ */ private static void jar(File src, String prefix, JarInfo info) throws IOException { JarOutputStream jout = info.out; if (src.isDirectory()) { // create / init the zip entry prefix = prefix + src.getName() + "/"; ZipEntry entry = new ZipEntry(prefix); entry.setTime(src.lastModified()); entry.setMethod(JarOutputStream.STORED); entry.setSize(0L); entry.setCrc(0L); jout.putNextEntry(entry); jout.closeEntry(); // process the sub-directories File[] files = src.listFiles(info.filter); for (int i = 0; i < files.length; i++) { jar(files[i], prefix, info); } } else if (src.isFile()) { // get the required info objects byte[] buffer = info.buffer; // create / init the zip entry ZipEntry entry = new ZipEntry(prefix + src.getName()); entry.setTime(src.lastModified()); jout.putNextEntry(entry); // dump the file FileInputStream in = new FileInputStream(src); int len; while ((len = in.read(buffer, 0, buffer.length)) != -1) { jout.write(buffer, 0, len); } in.close(); jout.closeEntry(); } }
From source file:oz.hadoop.yarn.api.utils.JarUtils.java
/** * * @param source/* w w w. j a v a 2 s. co m*/ * @param lengthOfOriginalPath * @param target * @throws IOException */ private static void add(File source, int lengthOfOriginalPath, JarOutputStream target) throws IOException { BufferedInputStream in = null; try { String path = source.getAbsolutePath(); path = path.substring(lengthOfOriginalPath); if (source.isDirectory()) { String name = path.replace("\\", "/"); if (!name.isEmpty()) { if (!name.endsWith("/")) { name += "/"; } JarEntry entry = new JarEntry(name.substring(1)); // avoiding absolute path warning target.putNextEntry(entry); target.closeEntry(); } for (File nestedFile : source.listFiles()) { add(nestedFile, lengthOfOriginalPath, target); } return; } JarEntry entry = new JarEntry(path.replace("\\", "/").substring(1)); // avoiding absolute path warning entry.setTime(source.lastModified()); try { target.putNextEntry(entry); in = new BufferedInputStream(new FileInputStream(source)); byte[] buffer = new byte[1024]; while (true) { int count = in.read(buffer); if (count == -1) { break; } target.write(buffer, 0, count); } target.closeEntry(); } catch (Exception e) { String message = e.getMessage(); if (StringUtils.hasText(message)) { if (!message.toLowerCase().contains("duplicate")) { throw new IllegalStateException(e); } logger.warn(message); } else { throw new IllegalStateException(e); } } } finally { if (in != null) in.close(); } }
From source file:org.apache.hadoop.yarn.util.TestFSDownload.java
static LocalResource createJarFile(FileContext files, Path p, int len, Random r, LocalResourceVisibility vis) throws IOException, URISyntaxException { byte[] bytes = new byte[len]; r.nextBytes(bytes);//from ww w . j ava 2s. c o m File archiveFile = new File(p.toUri().getPath() + ".jar"); archiveFile.createNewFile(); JarOutputStream out = new JarOutputStream(new FileOutputStream(archiveFile)); out.putNextEntry(new JarEntry(p.getName())); out.write(bytes); out.closeEntry(); out.close(); LocalResource ret = recordFactory.newRecordInstance(LocalResource.class); ret.setResource(URL.fromPath(new Path(p.toString() + ".jar"))); ret.setSize(len); ret.setType(LocalResourceType.ARCHIVE); ret.setVisibility(vis); ret.setTimestamp(files.getFileStatus(new Path(p.toString() + ".jar")).getModificationTime()); return ret; }
From source file:org.commonjava.web.test.fixture.JarKnockouts.java
public static File rewriteJar(final File source, final File targetDir, final Set<JarKnockouts> jarKnockouts) throws IOException { final JarKnockouts allKnockouts = new JarKnockouts(); for (final JarKnockouts jk : jarKnockouts) { allKnockouts.knockoutPaths(jk.getKnockedOutPaths()); }//from ww w . j a v a2s. com targetDir.mkdirs(); final File target = new File(targetDir, source.getName()); JarFile in = null; JarOutputStream out = null; try { in = new JarFile(source); final BufferedOutputStream fos = new BufferedOutputStream(new FileOutputStream(target)); out = new JarOutputStream(fos, in.getManifest()); final Enumeration<JarEntry> entries = in.entries(); while (entries.hasMoreElements()) { final JarEntry entry = entries.nextElement(); if (!allKnockouts.knockout(entry.getName())) { final InputStream stream = in.getInputStream(entry); out.putNextEntry(entry); copy(stream, out); out.closeEntry(); } } } finally { closeQuietly(out); if (in != null) { try { in.close(); } catch (final IOException e) { } } } return target; }
From source file:net.ftb.util.FileUtils.java
/** * deletes the META-INF//from w ww. j a v a 2 s. c o m */ public static void killMetaInf() { File inputFile = new File(Settings.getSettings().getInstallPath() + "/" + ModPack.getSelectedPack().getDir() + "/minecraft/bin", "minecraft.jar"); File outputTmpFile = new File(Settings.getSettings().getInstallPath() + "/" + ModPack.getSelectedPack().getDir() + "/minecraft/bin", "minecraft.jar.tmp"); try { JarInputStream input = new JarInputStream(new FileInputStream(inputFile)); JarOutputStream output = new JarOutputStream(new FileOutputStream(outputTmpFile)); JarEntry entry; while ((entry = input.getNextJarEntry()) != null) { if (entry.getName().contains("META-INF")) { continue; } output.putNextEntry(entry); byte buffer[] = new byte[1024]; int amo; while ((amo = input.read(buffer, 0, 1024)) != -1) { output.write(buffer, 0, amo); } output.closeEntry(); } input.close(); output.close(); if (!inputFile.delete()) { Logger.logError("Failed to delete Minecraft.jar."); return; } outputTmpFile.renameTo(inputFile); } catch (FileNotFoundException e) { Logger.logError("Error while killing META-INF", e); } catch (IOException e) { Logger.logError("Error while killing META-INF", e); } }
From source file:io.dstream.tez.utils.ClassPathUtils.java
/** * * @param source//w w w .ja v a 2 s. c om * @param lengthOfOriginalPath * @param target * @throws IOException */ private static void add(File source, int lengthOfOriginalPath, JarOutputStream target) throws IOException { BufferedInputStream in = null; try { String path = source.getAbsolutePath(); path = path.substring(lengthOfOriginalPath); if (source.isDirectory()) { String name = path.replace("\\", "/"); if (!name.isEmpty()) { if (!name.endsWith("/")) { name += "/"; } JarEntry entry = new JarEntry(name.substring(1)); // avoiding absolute path warning target.putNextEntry(entry); target.closeEntry(); } for (File nestedFile : source.listFiles()) { add(nestedFile, lengthOfOriginalPath, target); } return; } JarEntry entry = new JarEntry(path.replace("\\", "/").substring(1)); // avoiding absolute path warning entry.setTime(source.lastModified()); try { target.putNextEntry(entry); in = new BufferedInputStream(new FileInputStream(source)); byte[] buffer = new byte[1024]; while (true) { int count = in.read(buffer); if (count == -1) { break; } target.write(buffer, 0, count); } target.closeEntry(); } catch (Exception e) { String message = e.getMessage(); if (message != null) { if (!message.toLowerCase().contains("duplicate")) { throw new IllegalStateException(e); } logger.warn(message); } else { throw new IllegalStateException(e); } } } finally { if (in != null) in.close(); } }
From source file:gov.nih.nci.restgen.util.GeneratorUtil.java
private static void add(File source, JarOutputStream target) throws IOException { BufferedInputStream in = null; try {//from ww w . j a va2s. co m if (source.isDirectory()) { String name = source.getPath().replace("\\", "/"); if (!name.isEmpty()) { if (!name.endsWith("/")) name += "/"; JarEntry entry = new JarEntry(name); entry.setTime(source.lastModified()); target.putNextEntry(entry); target.closeEntry(); } for (File nestedFile : source.listFiles()) add(nestedFile, target); return; } JarEntry entry = new JarEntry(source.getPath().replace("\\", "/")); entry.setTime(source.lastModified()); target.putNextEntry(entry); in = new BufferedInputStream(new FileInputStream(source)); byte[] buffer = new byte[1024]; while (true) { int count = in.read(buffer); if (count == -1) break; target.write(buffer, 0, count); } target.closeEntry(); } finally { if (in != null) in.close(); } }
From source file:ezbake.frack.submitter.util.JarUtil.java
private static void add(File source, final String prefix, JarOutputStream target) throws IOException { BufferedInputStream in = null; log.debug("Adding file {} to jar", source.getName()); try {// w w w .j a v a 2s . c o m String entryPath = source.getPath().replace("\\", "/").replace(prefix, ""); if (entryPath.startsWith("/")) { entryPath = entryPath.substring(1); } if (source.isDirectory()) { if (!entryPath.isEmpty()) { if (!entryPath.endsWith("/")) { entryPath += "/"; } JarEntry entry = new JarEntry(entryPath); entry.setTime(source.lastModified()); target.putNextEntry(entry); target.closeEntry(); } for (File nestedFile : source.listFiles()) { add(nestedFile, prefix, target); } } else { JarEntry entry = new JarEntry(entryPath); entry.setTime(source.lastModified()); target.putNextEntry(entry); in = new BufferedInputStream(new FileInputStream(source)); byte[] buffer = new byte[BUFFER_SIZE]; int len; while ((len = in.read(buffer)) > 0) { target.write(buffer, 0, len); } target.closeEntry(); } } finally { if (in != null) { in.close(); } } }