List of usage examples for org.apache.commons.compress.archivers.jar JarArchiveOutputStream finish
public void finish() throws IOException
From source file:com.ikon.util.ArchiveUtils.java
/** * Recursively create JAR archive from directory *///from ww w .ja v a 2 s .co m public static void createJar(File path, String root, OutputStream os) throws IOException { log.debug("createJar({}, {}, {})", new Object[] { path, root, os }); if (path.exists() && path.canRead()) { JarArchiveOutputStream jaos = new JarArchiveOutputStream(os); jaos.setComment("Generated by openkm"); jaos.setCreateUnicodeExtraFields(UnicodeExtraFieldPolicy.ALWAYS); jaos.setUseLanguageEncodingFlag(true); jaos.setFallbackToUTF8(true); jaos.setEncoding("UTF-8"); // Prevents java.util.jar.JarException: JAR file must have at least one entry JarArchiveEntry jae = new JarArchiveEntry(root + "/"); jaos.putArchiveEntry(jae); jaos.closeArchiveEntry(); createJarHelper(path, jaos, root); jaos.flush(); jaos.finish(); jaos.close(); } else { throw new IOException("Can't access " + path); } log.debug("createJar: void"); }
From source file:com.openkm.util.ArchiveUtils.java
/** * Recursively create JAR archive from directory *//*from www.jav a2s . c o m*/ public static void createJar(File path, String root, OutputStream os) throws IOException { log.debug("createJar({}, {}, {})", new Object[] { path, root, os }); if (path.exists() && path.canRead()) { JarArchiveOutputStream jaos = new JarArchiveOutputStream(os); jaos.setComment("Generated by OpenKM"); jaos.setCreateUnicodeExtraFields(UnicodeExtraFieldPolicy.ALWAYS); jaos.setUseLanguageEncodingFlag(true); jaos.setFallbackToUTF8(true); jaos.setEncoding("UTF-8"); // Prevents java.util.jar.JarException: JAR file must have at least one entry JarArchiveEntry jae = new JarArchiveEntry(root + "/"); jaos.putArchiveEntry(jae); jaos.closeArchiveEntry(); createJarHelper(path, jaos, root); jaos.flush(); jaos.finish(); jaos.close(); } else { throw new IOException("Can't access " + path); } log.debug("createJar: void"); }
From source file:org.apache.hadoop.hive.ql.processors.CompileProcessor.java
@VisibleForTesting /**//from ww w. j a v a 2 s . c om * Method converts statement into a file, compiles the file and then packages the file. * @param ss * @return Response code of 0 for success 1 for failure * @throws CompileProcessorException */ CommandProcessorResponse compile(SessionState ss) throws CompileProcessorException { Project proj = new Project(); String ioTempDir = System.getProperty(IO_TMP_DIR); File ioTempFile = new File(ioTempDir); if (!ioTempFile.exists()) { throw new CompileProcessorException(ioTempDir + " does not exists"); } if (!ioTempFile.isDirectory() || !ioTempFile.canWrite()) { throw new CompileProcessorException(ioTempDir + " is not a writable directory"); } Groovyc g = new Groovyc(); long runStamp = System.currentTimeMillis(); String jarId = myId + "_" + runStamp; g.setProject(proj); Path sourcePath = new Path(proj); File destination = new File(ioTempFile, jarId + "out"); g.setDestdir(destination); File input = new File(ioTempFile, jarId + "in"); sourcePath.setLocation(input); g.setSrcdir(sourcePath); input.mkdir(); File fileToWrite = new File(input, this.named); try { Files.write(this.code, fileToWrite, Charset.forName("UTF-8")); } catch (IOException e1) { throw new CompileProcessorException("writing file", e1); } destination.mkdir(); try { g.execute(); } catch (BuildException ex) { throw new CompileProcessorException("Problem compiling", ex); } File testArchive = new File(ioTempFile, jarId + ".jar"); JarArchiveOutputStream out = null; try { out = new JarArchiveOutputStream(new FileOutputStream(testArchive)); for (File f : destination.listFiles()) { JarArchiveEntry jentry = new JarArchiveEntry(f.getName()); FileInputStream fis = new FileInputStream(f); out.putArchiveEntry(jentry); IOUtils.copy(fis, out); fis.close(); out.closeArchiveEntry(); } out.finish(); } catch (IOException e) { throw new CompileProcessorException("Exception while writing jar", e); } finally { if (out != null) { try { out.close(); } catch (IOException WhatCanYouDo) { } } } if (ss != null) { ss.add_resource(ResourceType.JAR, testArchive.getAbsolutePath()); } CommandProcessorResponse good = new CommandProcessorResponse(0, testArchive.getAbsolutePath(), null); return good; }