List of usage examples for java.util.jar JarEntry JarEntry
public JarEntry(JarEntry je)
JarEntry
with fields taken from the specified JarEntry
object. From source file:com.hellblazer.process.JavaProcessTest.java
protected void copyTestJarFile() throws Exception { String classFileName = HelloWorld.class.getCanonicalName().replace('.', '/') + ".class"; URL classFile = getClass().getResource("/" + classFileName); assertNotNull(classFile);//from w ww .j a va2 s .c o m Manifest manifest = new Manifest(); Attributes attributes = manifest.getMainAttributes(); attributes.putValue("Manifest-Version", "1.0"); attributes.putValue("Main-Class", HelloWorld.class.getCanonicalName()); FileOutputStream fos = new FileOutputStream(new File(testDir, TEST_JAR)); JarOutputStream jar = new JarOutputStream(fos, manifest); JarEntry entry = new JarEntry(classFileName); jar.putNextEntry(entry); InputStream in = classFile.openStream(); byte[] buffer = new byte[1024]; for (int read = in.read(buffer); read != -1; read = in.read(buffer)) { jar.write(buffer, 0, read); } in.close(); jar.closeEntry(); jar.close(); }
From source file:com.francetelecom.clara.cloud.mvn.consumer.maven.MavenDeployer.java
private File populateJarArchive(File archive, List<FileRef> fileset) throws IOException { archive.getParentFile().mkdirs();//from ww w . java2 s . c o m JarOutputStream target = new JarOutputStream(new FileOutputStream(archive)); for (FileRef fileRef : fileset) { JarEntry jarAdd = new JarEntry(fileRef.getRelativeLocation()); target.putNextEntry(jarAdd); target.write(fileRef.getContent().getBytes()); } target.close(); return archive; }
From source file:com.buglabs.bug.ws.program.ProgramServlet.java
/** * Code from forum board for creating a Jar. * // w w w.j av a 2s . co m * @param archiveFile * @param tobeJared * @param rootDir * @throws IOException */ protected void createJarArchive(File archiveFile, File[] tobeJared, File rootDir) throws IOException { byte buffer[] = new byte[BUFFER_SIZE]; // Open archive file FileOutputStream stream = new FileOutputStream(archiveFile); JarOutputStream out = new JarOutputStream(stream, new Manifest(new FileInputStream( rootDir.getAbsolutePath() + File.separator + "META-INF" + File.separator + MANIFEST_FILENAME))); for (int i = 0; i < tobeJared.length; i++) { if (tobeJared[i] == null || !tobeJared[i].exists() || tobeJared[i].isDirectory()) continue; // Just in case... String relPath = getRelPath(rootDir.getAbsolutePath(), tobeJared[i].getAbsolutePath()); // Add archive entry JarEntry jarAdd = new JarEntry(relPath); jarAdd.setTime(tobeJared[i].lastModified()); out.putNextEntry(jarAdd); // Write file to archive FileInputStream in = new FileInputStream(tobeJared[i]); while (true) { int nRead = in.read(buffer, 0, buffer.length); if (nRead <= 0) break; out.write(buffer, 0, nRead); } in.close(); } out.close(); stream.close(); }
From source file:cern.jarrace.controller.rest.controller.AgentContainerControllerTest.java
private File writeToZip(String entry, String data) throws IOException { File tmpFile = File.createTempFile("test", null); try (FileOutputStream fileOutput = new FileOutputStream(tmpFile); ZipOutputStream zipOutput = new ZipOutputStream(fileOutput)) { ZipEntry zipEntry = new JarEntry(entry); zipOutput.putNextEntry(zipEntry); zipOutput.write(data.getBytes()); }/* w w w.j a v a2 s.c om*/ return tmpFile; }
From source file:com.streamsets.pipeline.maven.rbgen.RBGenMojo.java
private void addFile(String path, File file, JarOutputStream jar) throws IOException { try (BufferedInputStream in = new BufferedInputStream(new FileInputStream(file))) { JarEntry entry = new JarEntry(path); entry.setTime(file.lastModified()); jar.putNextEntry(entry);// w ww. j a v a2 s. c o m IOUtils.copy(in, jar); jar.closeEntry(); } }
From source file:com.glaf.core.util.ZipUtils.java
private static void recurseFiles(JarOutputStream jos, File file, String s) throws IOException, FileNotFoundException { if (file.isDirectory()) { s = s + file.getName() + "/"; jos.putNextEntry(new JarEntry(s)); String as[] = file.list(); if (as != null) { for (int i = 0; i < as.length; i++) recurseFiles(jos, new File(file, as[i]), s); }// w w w.j a va 2 s .com } else { if (file.getName().endsWith("MANIFEST.MF") || file.getName().endsWith("META-INF/MANIFEST.MF")) { return; } JarEntry jarentry = new JarEntry(s + file.getName()); FileInputStream fileinputstream = new FileInputStream(file); BufferedInputStream bufferedinputstream = new BufferedInputStream(fileinputstream); jos.putNextEntry(jarentry); while ((len = bufferedinputstream.read(buf)) >= 0) { jos.write(buf, 0, len); } bufferedinputstream.close(); jos.closeEntry(); } }
From source file:com.migratebird.script.repository.impl.ArchiveScriptLocation.java
/** * Writes the entry with the given name and content to the given {@link JarOutputStream} * * @param jarOutputStream {@link OutputStream} to the jar file * @param name Name of the jar file entry * @param timestamp Last modification date of the entry * @param entryContentReader Reader giving access to the content of the jar entry * @throws IOException In case of disk IO problems *///from ww w . j a v a 2s .c o m protected void writeJarEntry(JarOutputStream jarOutputStream, String name, long timestamp, Reader entryContentReader) throws IOException { JarEntry jarEntry = new JarEntry(name); jarEntry.setTime(timestamp); jarOutputStream.putNextEntry(jarEntry); InputStream scriptInputStream = new ReaderInputStream(entryContentReader); byte[] buffer = new byte[1024]; int len; while ((len = scriptInputStream.read(buffer, 0, buffer.length)) > -1) { jarOutputStream.write(buffer, 0, len); } scriptInputStream.close(); jarOutputStream.closeEntry(); }
From source file:com.threerings.media.tile.bundle.tools.TileSetBundler.java
/** * Create a tileset bundle jar file./* w ww . ja v a2s . co m*/ * * @param target the tileset bundle file that will be created. * @param bundle contains the tilesets we'd like to save out to the bundle. * @param improv the image provider. * @param imageBase the base directory for getting images for non-ObjectTileSet tilesets. * @param keepOriginalPngs bundle up the original PNGs as PNGs instead of converting to the * FastImageIO raw format */ public static boolean createBundleJar(File target, TileSetBundle bundle, ImageProvider improv, String imageBase, boolean keepOriginalPngs, boolean uncompressed) throws IOException { // now we have to create the actual bundle file FileOutputStream fout = new FileOutputStream(target); Manifest manifest = new Manifest(); JarOutputStream jar = new JarOutputStream(fout, manifest); jar.setLevel(uncompressed ? Deflater.NO_COMPRESSION : Deflater.BEST_COMPRESSION); try { // write all of the image files to the bundle, converting the // tilesets to trimmed tilesets in the process Iterator<Integer> iditer = bundle.enumerateTileSetIds(); // Store off the updated TileSets in a separate Map so we can wait to change the // bundle till we're done iterating. HashIntMap<TileSet> toUpdate = new HashIntMap<TileSet>(); while (iditer.hasNext()) { int tileSetId = iditer.next().intValue(); TileSet set = bundle.getTileSet(tileSetId); String imagePath = set.getImagePath(); // sanity checks if (imagePath == null) { log.warning("Tileset contains no image path " + "[set=" + set + "]. It ain't gonna work."); continue; } // if this is an object tileset, trim it if (!keepOriginalPngs && (set instanceof ObjectTileSet)) { // set the tileset up with an image provider; we // need to do this so that we can trim it! set.setImageProvider(improv); // we're going to trim it, so adjust the path imagePath = adjustImagePath(imagePath); jar.putNextEntry(new JarEntry(imagePath)); try { // create a trimmed object tileset, which will // write the trimmed tileset image to the jar // output stream TrimmedObjectTileSet tset = TrimmedObjectTileSet.trimObjectTileSet((ObjectTileSet) set, jar); tset.setImagePath(imagePath); // replace the original set with the trimmed // tileset in the tileset bundle toUpdate.put(tileSetId, tset); } catch (Exception e) { e.printStackTrace(System.err); String msg = "Error adding tileset to bundle " + imagePath + ", " + set.getName() + ": " + e; throw (IOException) new IOException(msg).initCause(e); } } else { // read the image file and convert it to our custom // format in the bundle File ifile = new File(imageBase, imagePath); try { BufferedImage image = ImageIO.read(ifile); if (!keepOriginalPngs && FastImageIO.canWrite(image)) { imagePath = adjustImagePath(imagePath); jar.putNextEntry(new JarEntry(imagePath)); set.setImagePath(imagePath); FastImageIO.write(image, jar); } else { jar.putNextEntry(new JarEntry(imagePath)); FileInputStream imgin = new FileInputStream(ifile); StreamUtil.copy(imgin, jar); } } catch (Exception e) { String msg = "Failure bundling image " + ifile + ": " + e; throw (IOException) new IOException(msg).initCause(e); } } } bundle.putAll(toUpdate); // now write a serialized representation of the tileset bundle // object to the bundle jar file JarEntry entry = new JarEntry(BundleUtil.METADATA_PATH); jar.putNextEntry(entry); ObjectOutputStream oout = new ObjectOutputStream(jar); oout.writeObject(bundle); oout.flush(); // finally close up the jar file and call ourself done jar.close(); return true; } catch (Exception e) { // remove the incomplete jar file and rethrow the exception jar.close(); if (!target.delete()) { log.warning("Failed to close botched bundle '" + target + "'."); } String errmsg = "Failed to create bundle " + target + ": " + e; throw (IOException) new IOException(errmsg).initCause(e); } }
From source file:com.hortonworks.streamline.streams.runtime.splitjoin.SplitJoinTest.java
private JarInputStream createJarInputStream(String... classNames) throws Exception { final File tempFile = Files.createTempFile(UUID.randomUUID().toString(), ".jar").toFile(); tempFile.deleteOnExit();/*from ww w .ja v a 2 s . com*/ try (JarOutputStream jarOutputStream = new JarOutputStream(new FileOutputStream(tempFile))) { for (String className : classNames) { final String classFileName = className.replace(".", "/") + ".class"; try (InputStream classInputStream = this.getClass().getResourceAsStream("/" + classFileName)) { jarOutputStream.putNextEntry(new JarEntry(classFileName)); IOUtils.copy(classInputStream, jarOutputStream); } } } return new JarInputStream(new FileInputStream(tempFile)); }
From source file:com.glaf.core.util.ZipUtils.java
public static byte[] toZipBytes(Map<String, byte[]> zipMap) { byte[] bytes = null; InputStream inputStream = null; BufferedInputStream bis = null; ByteArrayOutputStream baos = null; BufferedOutputStream bos = null; JarOutputStream jos = null;/*from w w w . j av a 2 s .c o m*/ try { baos = new ByteArrayOutputStream(); bos = new BufferedOutputStream(baos); jos = new JarOutputStream(bos); if (zipMap != null) { Set<Entry<String, byte[]>> entrySet = zipMap.entrySet(); for (Entry<String, byte[]> entry : entrySet) { String name = entry.getKey(); byte[] x_bytes = entry.getValue(); inputStream = new ByteArrayInputStream(x_bytes); if (name != null && inputStream != null) { bis = new BufferedInputStream(inputStream); JarEntry jarEntry = new JarEntry(name); jos.putNextEntry(jarEntry); while ((len = bis.read(buf)) >= 0) { jos.write(buf, 0, len); } IOUtils.closeStream(bis); jos.closeEntry(); } IOUtils.closeStream(inputStream); } } jos.flush(); jos.close(); bytes = baos.toByteArray(); IOUtils.closeStream(baos); IOUtils.closeStream(bos); return bytes; } catch (Exception ex) { throw new RuntimeException(ex); } finally { IOUtils.closeStream(inputStream); IOUtils.closeStream(baos); IOUtils.closeStream(bos); } }