List of usage examples for java.util.jar JarFile MANIFEST_NAME
String MANIFEST_NAME
To view the source code for java.util.jar JarFile MANIFEST_NAME.
Click Source Link
From source file:com.arrow.acs.ManifestUtils.java
public static Manifest readManifest(Class<?> clazz) { String method = "readManifest"; String jarFile = null;//from w ww. j av a2 s.c o m String path = clazz.getProtectionDomain().getCodeSource().getLocation().toString(); for (String token : path.split("/")) { token = token.replace("!", "").toLowerCase().trim(); if (token.endsWith(".jar")) { jarFile = token; break; } } LOGGER.logInfo(method, "className: %s, path: %s, jarFile: %s", clazz.getName(), path, jarFile); InputStream is = null; try { if (!StringUtils.isEmpty(jarFile)) { Enumeration<URL> enumeration = Thread.currentThread().getContextClassLoader() .getResources(JarFile.MANIFEST_NAME); while (enumeration.hasMoreElements()) { URL url = enumeration.nextElement(); for (String token : url.toString().split("/")) { token = token.replace("!", "").toLowerCase(); if (token.equals(jarFile)) { LOGGER.logInfo(method, "loading manifest from: %s", url.toString()); return new Manifest(is = url.openStream()); } } } } else { URL url = new URL(path + "/META-INF/MANIFEST.MF"); LOGGER.logInfo(method, "loading manifest from: %s", url.toString()); return new Manifest(is = url.openStream()); } } catch (IOException e) { } finally { IOUtils.closeQuietly(is); } LOGGER.logError(method, "manifest file not found for: %s", clazz.getName()); return null; }
From source file:edu.cornell.med.icb.util.VersionUtils.java
/** * Gets the Implementation-Version attribute from the manifest of the jar file a class * is loaded from.//from www . j a va2s .c o m * @param clazz The class to get the version for * @return The value of the Implementation-Version attribute or "UNKNOWN" if the * jar file cannot be read. */ public static String getImplementationVersion(final Class<?> clazz) { String version; try { final String classContainer = clazz.getProtectionDomain().getCodeSource().getLocation().toString(); final URL manifestUrl = new URL("jar:" + classContainer + "!/" + JarFile.MANIFEST_NAME); final Manifest manifest = new Manifest(manifestUrl.openStream()); final Attributes attributes = manifest.getMainAttributes(); version = attributes.getValue(Attributes.Name.IMPLEMENTATION_VERSION); } catch (Exception e) { // pretty much any error here is ok since we may not even have a jar to read from version = "UNKNOWN"; } if (LOG.isDebugEnabled()) { LOG.debug(Attributes.Name.IMPLEMENTATION_VERSION + ": " + version); } return StringUtils.defaultString(version); }
From source file:adalid.util.info.JavaInfo.java
public static void printManifestInfo(String extension, boolean details) { ClassLoader loader;//from w w w . j a va 2 s . co m Enumeration<URL> resources; try { // loader = ClassLoader.getSystemClassLoader(); loader = Thread.currentThread().getContextClassLoader(); resources = loader.getResources(JarFile.MANIFEST_NAME); printManifestInfo(extension, details, resources); } catch (IOException ex) { logger.fatal(ex); } }
From source file:com.headwire.aem.tooling.intellij.eclipse.stub.JarBuilder.java
public InputStream buildJar(final IFolder sourceDir) throws CoreException { ByteArrayOutputStream store = new ByteArrayOutputStream(); JarOutputStream zos = null;//ww w . j ava2s . c o m InputStream manifestInput = null; try { IResource manifestResource = sourceDir.findMember(JarFile.MANIFEST_NAME); if (manifestResource == null || manifestResource.getType() != IResource.FILE) { throw new CoreException(new Status(IStatus.ERROR, Activator.PLUGIN_ID, "No file named " + JarFile.MANIFEST_NAME + " found under " + sourceDir)); } manifestInput = ((IFile) manifestResource).getContents(); Manifest manifest = new Manifest(manifestInput); zos = new JarOutputStream(store); zos.setLevel(Deflater.NO_COMPRESSION); // manifest first final ZipEntry anEntry = new ZipEntry(JarFile.MANIFEST_NAME); zos.putNextEntry(anEntry); manifest.write(zos); zos.closeEntry(); zipDir(sourceDir, zos, ""); } catch (IOException e) { throw new CoreException(new Status(IStatus.ERROR, Activator.PLUGIN_ID, e.getMessage(), e)); } finally { IOUtils.closeQuietly(zos); IOUtils.closeQuietly(manifestInput); } return new ByteArrayInputStream(store.toByteArray()); }
From source file:com.ericsson.eiffel.remrem.generate.EiffelRemremControllerIntegrationTest.java
public static String getMessagingVersion() { Enumeration resEnum;//from ww w. j a v a 2s . co m try { resEnum = Thread.currentThread().getContextClassLoader().getResources(JarFile.MANIFEST_NAME); while (resEnum.hasMoreElements()) { try { URL url = (URL) resEnum.nextElement(); if (url.getPath().contains("eiffel-remrem-semantics")) { InputStream is = url.openStream(); if (is != null) { Manifest manifest = new Manifest(is); Attributes mainAttribs = manifest.getMainAttributes(); String version = mainAttribs.getValue("semanticsVersion"); if (version != null) { return version; } } } } catch (Exception e) { // Silently ignore wrong manifests on classpath? } } } catch (IOException e1) { // Silently ignore wrong manifests on classpath? } return null; }
From source file:adalid.util.info.JavaInfo.java
public static void printManifestInfo(String extension, boolean details, URL url) throws IOException { InputStream stream = url.openStream(); if (stream == null) { return;/* w w w .j a va 2 s . c o m*/ } // String file = url.getFile(); String path = StringUtils.removeEndIgnoreCase(url.getPath(), "!/" + JarFile.MANIFEST_NAME); String name = StringUtils.substringAfterLast(path, "/"); Manifest manifest = new Manifest(stream); if (!extensionNameMatches(manifest, extension)) { return; } // out.println(file); printManifestInfo(path, name, details, manifest); }
From source file:com.commercehub.dropwizard.BuildInfoServlet.java
@Override public void init(ServletConfig config) { objectWriter = new ObjectMapper().writer(); cacheControl = new CacheControl(); cacheControl.setMustRevalidate(true); cacheControl.setNoCache(true);/* ww w .ja v a 2 s . co m*/ cacheControl.setNoStore(true); // cache build information manifestAttributes = new Properties(); ImmutableSet<String> attributeBlacklist = getAttributeBlacklist(config); try { Enumeration<URL> resources = getClass().getClassLoader().getResources(JarFile.MANIFEST_NAME); if (resources != null) { while (resources.hasMoreElements()) { Manifest manifest = new Manifest(resources.nextElement().openStream()); Attributes attributes = manifest.getMainAttributes(); for (Object key : attributes.keySet()) { Attributes.Name attrName = (Attributes.Name) key; if (!attributeBlacklist.contains(attrName.toString())) { manifestAttributes.setProperty(attrName.toString(), attributes.getValue(attrName)); } } } } } catch (IOException e) { log.warn("Unable to retrieve build info", e); } }
From source file:com.headwire.aem.tooling.intellij.eclipse.stub.JarBuilder.java
private void zipDir(final IFolder sourceDir, final ZipOutputStream zos, final String path) throws CoreException, IOException { for (final IResource f : sourceDir.members()) { if (f.getType() == IResource.FOLDER) { final String prefix = path + f.getName() + "/"; zos.putNextEntry(new ZipEntry(prefix)); zipDir((IFolder) f, zos, prefix); } else if (f.getType() == IResource.FILE) { final String entry = path + f.getName(); if (JarFile.MANIFEST_NAME.equals(entry)) { continue; }/*from w ww.jav a 2 s . c o m*/ final InputStream fis = ((IFile) f).getContents(); try { final byte[] readBuffer = new byte[8192]; int bytesIn = 0; final ZipEntry anEntry = new ZipEntry(entry); zos.putNextEntry(anEntry); while ((bytesIn = fis.read(readBuffer)) != -1) { zos.write(readBuffer, 0, bytesIn); } } finally { IOUtils.closeQuietly(fis); } } } }
From source file:com.jrummyapps.busybox.utils.ZipSigner.java
/** * Tool to sign JAR files (including APKs and OTA updates) in a way compatible with the mincrypt verifier, using * SHA1 and RSA keys.//from w ww. jav a2s. c o m * * @param unsignedZip * The path to the APK, ZIP, JAR to sign * @param destination * The output file * @return true if successfully signed the file */ public static boolean signZip(File unsignedZip, File destination) { final AssetManager am = App.getContext().getAssets(); JarArchiveOutputStream outputJar = null; JarFile inputJar = null; try { X509Certificate publicKey = readPublicKey(am.open(PUBLIC_KEY)); PrivateKey privateKey = readPrivateKey(am.open(PRIVATE_KEY)); // Assume the certificate is valid for at least an hour. long timestamp = publicKey.getNotBefore().getTime() + 3600L * 1000; inputJar = new JarFile(unsignedZip, false); // Don't verify. FileOutputStream stream = new FileOutputStream(destination); outputJar = new JarArchiveOutputStream(stream); outputJar.setLevel(9); // MANIFEST.MF Manifest manifest = addDigestsToManifest(inputJar); JarArchiveEntry je = new JarArchiveEntry(JarFile.MANIFEST_NAME); je.setTime(timestamp); outputJar.putArchiveEntry(je); manifest.write(outputJar); ZipSignature signature1 = new ZipSignature(); signature1.initSign(privateKey); ByteArrayOutputStream out = new ByteArrayOutputStream(); writeSignatureFile(manifest, out); // CERT.SF Signature signature = Signature.getInstance("SHA1withRSA"); signature.initSign(privateKey); je = new JarArchiveEntry(CERT_SF_NAME); je.setTime(timestamp); outputJar.putArchiveEntry(je); byte[] sfBytes = writeSignatureFile(manifest, new SignatureOutputStream(outputJar, signature)); signature1.update(sfBytes); byte[] signatureBytes = signature1.sign(); // CERT.RSA je = new JarArchiveEntry(CERT_RSA_NAME); je.setTime(timestamp); outputJar.putArchiveEntry(je); outputJar.write(readContentAsBytes(am.open(TEST_KEY))); outputJar.write(signatureBytes); copyFiles(manifest, inputJar, outputJar, timestamp); } catch (Exception e) { Crashlytics.logException(e); return false; } finally { IoUtils.closeQuietly(inputJar); IoUtils.closeQuietly(outputJar); } return true; }
From source file:com.jrummyapps.busybox.signing.ZipSigner.java
/** * Tool to sign JAR files (including APKs and OTA updates) in a way compatible with the mincrypt verifier, using * SHA1 and RSA keys.//from w ww .ja v a 2 s.c o m * * @param unsignedZip * The path to the APK, ZIP, JAR to sign * @param destination * The output file * @return true if successfully signed the file */ public static boolean signZip(File unsignedZip, File destination) { final AssetManager am = App.getContext().getAssets(); JarArchiveOutputStream outputJar = null; JarFile inputJar = null; try { X509Certificate publicKey = readPublicKey(am.open(PUBLIC_KEY)); PrivateKey privateKey = readPrivateKey(am.open(PRIVATE_KEY)); // Assume the certificate is valid for at least an hour. long timestamp = publicKey.getNotBefore().getTime() + 3600L * 1000; inputJar = new JarFile(unsignedZip, false); // Don't verify. FileOutputStream stream = new FileOutputStream(destination); outputJar = new JarArchiveOutputStream(stream); outputJar.setLevel(9); // MANIFEST.MF Manifest manifest = addDigestsToManifest(inputJar); JarArchiveEntry je = new JarArchiveEntry(JarFile.MANIFEST_NAME); je.setTime(timestamp); outputJar.putArchiveEntry(je); manifest.write(outputJar); ZipSignature signature1 = new ZipSignature(); signature1.initSign(privateKey); ByteArrayOutputStream out = new ByteArrayOutputStream(); writeSignatureFile(manifest, out); // CERT.SF Signature signature = Signature.getInstance("SHA1withRSA"); signature.initSign(privateKey); je = new JarArchiveEntry(CERT_SF_NAME); je.setTime(timestamp); outputJar.putArchiveEntry(je); byte[] sfBytes = writeSignatureFile(manifest, new SignatureOutputStream(outputJar, signature)); signature1.update(sfBytes); byte[] signatureBytes = signature1.sign(); // CERT.RSA je = new JarArchiveEntry(CERT_RSA_NAME); je.setTime(timestamp); outputJar.putArchiveEntry(je); outputJar.write(readContentAsBytes(am.open(TEST_KEY))); outputJar.write(signatureBytes); copyFiles(manifest, inputJar, outputJar, timestamp); } catch (Exception e) { Crashlytics.logException(e); return false; } finally { IOUtils.closeQuietly(inputJar); IOUtils.closeQuietly(outputJar); } return true; }