Java 类java.util.jar.Attributes.Name 实例源码

项目:tomcat7    文件:WebappClassLoaderBase.java   
/**
 * Returns true if the specified package name is sealed according to the
 * given manifest.
 */
protected boolean isPackageSealed(String name, Manifest man) {

    String path = name.replace('.', '/') + '/';
    Attributes attr = man.getAttributes(path);
    String sealed = null;
    if (attr != null) {
        sealed = attr.getValue(Name.SEALED);
    }
    if (sealed == null) {
        if ((attr = man.getMainAttributes()) != null) {
            sealed = attr.getValue(Name.SEALED);
        }
    }
    return "true".equalsIgnoreCase(sealed);

}
项目:lams    文件:WebappClassLoader.java   
/**
 * Returns true if the specified package name is sealed according to the
 * given manifest.
 */
protected boolean isPackageSealed(String name, Manifest man) {

    String path = name.replace('.', '/') + '/';
    Attributes attr = man.getAttributes(path); 
    String sealed = null;
    if (attr != null) {
        sealed = attr.getValue(Name.SEALED);
    }
    if (sealed == null) {
        if ((attr = man.getMainAttributes()) != null) {
            sealed = attr.getValue(Name.SEALED);
        }
    }
    return "true".equalsIgnoreCase(sealed);

}
项目:javaide    文件:URLClassPath.java   
URL[] getClassPath() throws IOException {
    if (index != null) {
        return null;
    }

    if (metaIndex != null) {
        return null;
    }

    ensureOpen();
    parseExtensionsDependencies();
    if (SharedSecrets.javaUtilJarAccess().jarFileHasClassPathAttribute(jar)) { // Only get manifest when necessary
        Manifest man = jar.getManifest();
        if (man != null) {
            Attributes attr = man.getMainAttributes();
            if (attr != null) {
                String value = attr.getValue(Name.CLASS_PATH);
                if (value != null) {
                    return parseClassPath(csu, value);
                }
            }
        }
    }
    return null;
}
项目:OpenJSharp    文件:URLClassPath.java   
URL[] getClassPath() throws IOException {
    if (index != null) {
        return null;
    }

    if (metaIndex != null) {
        return null;
    }

    ensureOpen();
    parseExtensionsDependencies();

    if (SharedSecrets.javaUtilJarAccess().jarFileHasClassPathAttribute(jar)) { // Only get manifest when necessary
        Manifest man = jar.getManifest();
        if (man != null) {
            Attributes attr = man.getMainAttributes();
            if (attr != null) {
                String value = attr.getValue(Name.CLASS_PATH);
                if (value != null) {
                    return parseClassPath(csu, value);
                }
            }
        }
    }
    return null;
}
项目:jerrydog    文件:WebappClassLoader.java   
/**
 * Returns true if the specified package name is sealed according to the
 * given manifest.
 */
protected boolean isPackageSealed(String name, Manifest man) {

    String path = name + "/";
    Attributes attr = man.getAttributes(path);
    String sealed = null;
    if (attr != null) {
        sealed = attr.getValue(Name.SEALED);
    }
    if (sealed == null) {
        if ((attr = man.getMainAttributes()) != null) {
            sealed = attr.getValue(Name.SEALED);
        }
    }
    return "true".equalsIgnoreCase(sealed);

}
项目:Agent    文件:Agent.java   
public static File createAgent(Class<?> agent, Class<?>... resources) throws IOException {
    File jarFile = File.createTempFile("agent", ".jar");
    jarFile.deleteOnExit();
    Manifest manifest = new Manifest();
    Attributes mainAttributes = manifest.getMainAttributes();
    mainAttributes.put(Name.MANIFEST_VERSION, "1.0");
    mainAttributes.put(new Name("Agent-Class"), agent.getName());
    mainAttributes.put(new Name("Can-Retransform-Classes"), "true");
    mainAttributes.put(new Name("Can-Redefine-Classes"), "true");
    JarOutputStream jos = new JarOutputStream(new FileOutputStream(jarFile), manifest);
    jos.putNextEntry(new JarEntry(agent.getName().replace('.', '/') + ".class"));
    jos.write(getBytesFromStream(agent.getClassLoader().getResourceAsStream(unqualify(agent))));
    jos.closeEntry();
    for (Class<?> clazz : resources) {
        String name = unqualify(clazz);
        jos.putNextEntry(new JarEntry(name));
        jos.write(getBytesFromStream(clazz.getClassLoader().getResourceAsStream(name)));
        jos.closeEntry();
    }

    jos.close();
    return jarFile;
}
项目:apache-tomcat-7.0.73-with-comment    文件:WebappClassLoaderBase.java   
/**
 * Returns true if the specified package name is sealed according to the
 * given manifest.
 */
protected boolean isPackageSealed(String name, Manifest man) {

    String path = name.replace('.', '/') + '/';
    Attributes attr = man.getAttributes(path);
    String sealed = null;
    if (attr != null) {
        sealed = attr.getValue(Name.SEALED);
    }
    if (sealed == null) {
        if ((attr = man.getMainAttributes()) != null) {
            sealed = attr.getValue(Name.SEALED);
        }
    }
    return "true".equalsIgnoreCase(sealed);

}
项目:jdk8u-jdk    文件:URLClassPath.java   
URL[] getClassPath() throws IOException {
    if (index != null) {
        return null;
    }

    if (metaIndex != null) {
        return null;
    }

    ensureOpen();
    parseExtensionsDependencies();

    if (SharedSecrets.javaUtilJarAccess().jarFileHasClassPathAttribute(jar)) { // Only get manifest when necessary
        Manifest man = jar.getManifest();
        if (man != null) {
            Attributes attr = man.getMainAttributes();
            if (attr != null) {
                String value = attr.getValue(Name.CLASS_PATH);
                if (value != null) {
                    return parseClassPath(csu, value);
                }
            }
        }
    }
    return null;
}
项目:openjdk-jdk10    文件:URLClassPath.java   
@Override
URL[] getClassPath() throws IOException {
    if (index != null) {
        return null;
    }

    ensureOpen();

    // Only get manifest when necessary
    if (SharedSecrets.javaUtilJarAccess().jarFileHasClassPathAttribute(jar)) {
        Manifest man = jar.getManifest();
        if (man != null) {
            Attributes attr = man.getMainAttributes();
            if (attr != null) {
                String value = attr.getValue(Name.CLASS_PATH);
                if (value != null) {
                    return parseClassPath(csu, value);
                }
            }
        }
    }
    return null;
}
项目:lazycat    文件:WebappClassLoaderBase.java   
/**
 * Returns true if the specified package name is sealed according to the
 * given manifest.
 */
protected boolean isPackageSealed(String name, Manifest man) {

    String path = name.replace('.', '/') + '/';
    Attributes attr = man.getAttributes(path);
    String sealed = null;
    if (attr != null) {
        sealed = attr.getValue(Name.SEALED);
    }
    if (sealed == null) {
        if ((attr = man.getMainAttributes()) != null) {
            sealed = attr.getValue(Name.SEALED);
        }
    }
    return "true".equalsIgnoreCase(sealed);

}
项目:openjdk9    文件:URLClassPath.java   
URL[] getClassPath() throws IOException {
    if (index != null) {
        return null;
    }

    ensureOpen();

    // Only get manifest when necessary
    if (SharedSecrets.javaUtilJarAccess().jarFileHasClassPathAttribute(jar)) {
        Manifest man = jar.getManifest();
        if (man != null) {
            Attributes attr = man.getMainAttributes();
            if (attr != null) {
                String value = attr.getValue(Name.CLASS_PATH);
                if (value != null) {
                    return parseClassPath(csu, value);
                }
            }
        }
    }
    return null;
}
项目:turing    文件:CloseableURLClassLoader.java   
private void checkForSealedPackage(Package pkg, String packageName, Manifest manifest, URL jarFileURL) {
    if (pkg.isSealed() && !pkg.isSealed(jarFileURL))
        throw new SecurityException("The package '" + packageName + "' was previously loaded and is already sealed."); //$NON-NLS-1$ //$NON-NLS-2$

    String entryPath = packageName.replace('.', '/') + "/"; //$NON-NLS-1$
    Attributes entryAttributes = manifest.getAttributes(entryPath);
    String sealed = null;
    if (entryAttributes != null)
        sealed = entryAttributes.getValue(Name.SEALED);

    if (sealed == null) {
        Attributes mainAttributes = manifest.getMainAttributes();
        if (mainAttributes != null)
            sealed = mainAttributes.getValue(Name.SEALED);
    }
    if (Boolean.valueOf(sealed).booleanValue())
        throw new SecurityException("The package '" + packageName + "' was previously loaded unsealed. Cannot seal package."); //$NON-NLS-1$ //$NON-NLS-2$
}
项目:jdk8u_jdk    文件:URLClassPath.java   
URL[] getClassPath() throws IOException {
    if (index != null) {
        return null;
    }

    if (metaIndex != null) {
        return null;
    }

    ensureOpen();
    parseExtensionsDependencies();

    if (SharedSecrets.javaUtilJarAccess().jarFileHasClassPathAttribute(jar)) { // Only get manifest when necessary
        Manifest man = jar.getManifest();
        if (man != null) {
            Attributes attr = man.getMainAttributes();
            if (attr != null) {
                String value = attr.getValue(Name.CLASS_PATH);
                if (value != null) {
                    return parseClassPath(csu, value);
                }
            }
        }
    }
    return null;
}
项目:lookaside_java-1.8.0-openjdk    文件:URLClassPath.java   
URL[] getClassPath() throws IOException {
    if (index != null) {
        return null;
    }

    if (metaIndex != null) {
        return null;
    }

    ensureOpen();
    parseExtensionsDependencies();

    if (SharedSecrets.javaUtilJarAccess().jarFileHasClassPathAttribute(jar)) { // Only get manifest when necessary
        Manifest man = jar.getManifest();
        if (man != null) {
            Attributes attr = man.getMainAttributes();
            if (attr != null) {
                String value = attr.getValue(Name.CLASS_PATH);
                if (value != null) {
                    return parseClassPath(csu, value);
                }
            }
        }
    }
    return null;
}
项目:javify    文件:JarUtils.java   
/**
 * Pedantic method that requires the next attribute in the Manifest to be the
 * "Manifest-Version". This follows the Manifest spec closely but reject some
 * jar Manifest files out in the wild.
 */
private static void readVersionInfo(Attributes attr, BufferedReader br)
    throws IOException
{
  String version_header = Name.MANIFEST_VERSION.toString();
  try
    {
      String value = expectHeader(version_header, br);
      attr.putValue(MANIFEST_VERSION, value);
    }
  catch (IOException ioe)
    {
      throw new JarException("Manifest should start with a " + version_header
                             + ": " + ioe.getMessage());
    }
}
项目:jvm-stm    文件:JarUtils.java   
/**
 * Pedantic method that requires the next attribute in the Manifest to be the
 * "Manifest-Version". This follows the Manifest spec closely but reject some
 * jar Manifest files out in the wild.
 */
private static void readVersionInfo(Attributes attr, BufferedReader br)
    throws IOException
{
  String version_header = Name.MANIFEST_VERSION.toString();
  try
    {
      String value = expectHeader(version_header, br);
      attr.putValue(MANIFEST_VERSION, value);
    }
  catch (IOException ioe)
    {
      throw new JarException("Manifest should start with a " + version_header
                             + ": " + ioe.getMessage());
    }
}
项目:infobip-open-jdk-8    文件:URLClassPath.java   
URL[] getClassPath() throws IOException {
    if (index != null) {
        return null;
    }

    if (metaIndex != null) {
        return null;
    }

    ensureOpen();
    parseExtensionsDependencies();

    if (SharedSecrets.javaUtilJarAccess().jarFileHasClassPathAttribute(jar)) { // Only get manifest when necessary
        Manifest man = jar.getManifest();
        if (man != null) {
            Attributes attr = man.getMainAttributes();
            if (attr != null) {
                String value = attr.getValue(Name.CLASS_PATH);
                if (value != null) {
                    return parseClassPath(csu, value);
                }
            }
        }
    }
    return null;
}
项目:jdk8u-dev-jdk    文件:URLClassPath.java   
URL[] getClassPath() throws IOException {
    if (index != null) {
        return null;
    }

    if (metaIndex != null) {
        return null;
    }

    ensureOpen();
    parseExtensionsDependencies();

    if (SharedSecrets.javaUtilJarAccess().jarFileHasClassPathAttribute(jar)) { // Only get manifest when necessary
        Manifest man = jar.getManifest();
        if (man != null) {
            Attributes attr = man.getMainAttributes();
            if (attr != null) {
                String value = attr.getValue(Name.CLASS_PATH);
                if (value != null) {
                    return parseClassPath(csu, value);
                }
            }
        }
    }
    return null;
}
项目:Lucee    文件:ManifestUtil.java   
private static void printSection(StringBuilder sb, Attributes attrs, int maxLineSize, Set<String> ignore) {
    Iterator<Entry<Object, Object>> it = attrs.entrySet().iterator();
    Entry<Object, Object> e;
    String name;
    String value;
    while(it.hasNext()){
        e = it.next();
        name=((Name)e.getKey()).toString();
        value=(String)e.getValue();
        if(StringUtil.isEmpty(value)) continue;
        //aprint.e("Export-Package:"+name+":"+("Export-Package".equals(name)));
        if("Import-Package".equals(name) || "Export-Package".equals(name) || "Require-Bundle".equals(name)) {
            value=splitByComma(value);

        }
        else if(value.length()>maxLineSize) value=split(value,maxLineSize);

        if(ignore!=null && ignore.contains(name)) continue;
        add(sb,name,value,null);
    }
}
项目:jdk7-jdk    文件:URLClassPath.java   
URL[] getClassPath() throws IOException {
    if (index != null) {
        return null;
    }

    if (metaIndex != null) {
        return null;
    }

    ensureOpen();
    parseExtensionsDependencies();
    if (SharedSecrets.javaUtilJarAccess().jarFileHasClassPathAttribute(jar)) { // Only get manifest when necessary
        Manifest man = jar.getManifest();
        if (man != null) {
            Attributes attr = man.getMainAttributes();
            if (attr != null) {
                String value = attr.getValue(Name.CLASS_PATH);
                if (value != null) {
                    return parseClassPath(csu, value);
                }
            }
        }
    }
    return null;
}
项目:openjdk-source-code-learn    文件:URLClassPath.java   
URL[] getClassPath() throws IOException {
    if (index != null) {
        return null;
    }

    if (metaIndex != null) {
        return null;
    }

    ensureOpen();
    parseExtensionsDependencies();
    if (SharedSecrets.javaUtilJarAccess().jarFileHasClassPathAttribute(jar)) { // Only get manifest when necessary
        Manifest man = jar.getManifest();
        if (man != null) {
            Attributes attr = man.getMainAttributes();
            if (attr != null) {
                String value = attr.getValue(Name.CLASS_PATH);
                if (value != null) {
                    return parseClassPath(csu, value);
                }
            }
        }
    }
    return null;
}
项目:WeatherDataCollector    文件:WeatherDataCollector.java   
/**
 * Method print all available information from the jar's manifest file. 
 */
private static void logApplicationMetadata() {
    LOG.trace("logApplicationMetadata()");
    InputStream manifestStream;
    String logMessage;
    //
    logMessage = "Application started";
    manifestStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("META-INF/MANIFEST.MF");
    try {
        final Manifest manifest = new Manifest(manifestStream);
        final Attributes attributes = manifest.getMainAttributes();
        final Set<Object> keys = attributes.keySet();
        for (final Object object : keys) {
            if (object instanceof Name) {
                final Name key = (Name) object;
                logMessage += String.format("\n\t\t%s: %s",key,attributes.getValue(key));
            }
        }
        // add heap information
        logMessage += "\n\t\t" + heapSizeInformation();
    }
    catch(final IOException ex) {
        LOG.warn("Error while reading manifest file from application jar file: " + ex.getMessage());
    }
    LOG.info(logMessage);
}
项目:wso2-commons-vfs    文件:VFSClassLoader.java   
/**
 * Reads attributes for the package and defines it.
 */
private Package definePackage(final String name,
                              final Resource res)
    throws FileSystemException
{
    // TODO - check for MANIFEST_ATTRIBUTES capability first
    final String specTitle = res.getPackageAttribute(Name.SPECIFICATION_TITLE);
    final String specVendor = res.getPackageAttribute(Attributes.Name.SPECIFICATION_VENDOR);
    final String specVersion = res.getPackageAttribute(Name.SPECIFICATION_VERSION);
    final String implTitle = res.getPackageAttribute(Name.IMPLEMENTATION_TITLE);
    final String implVendor = res.getPackageAttribute(Name.IMPLEMENTATION_VENDOR);
    final String implVersion = res.getPackageAttribute(Name.IMPLEMENTATION_VERSION);

    final URL sealBase;
    if (isSealed(res))
    {
        sealBase = res.getCodeSourceURL();
    }
    else
    {
        sealBase = null;
    }

    return definePackage(name, specTitle, specVersion, specVendor,
        implTitle, implVersion, implVendor, sealBase);
}
项目:class-guard    文件:WebappClassLoader.java   
/**
 * Returns true if the specified package name is sealed according to the
 * given manifest.
 */
protected boolean isPackageSealed(String name, Manifest man) {

    String path = name.replace('.', '/') + '/';
    Attributes attr = man.getAttributes(path);
    String sealed = null;
    if (attr != null) {
        sealed = attr.getValue(Name.SEALED);
    }
    if (sealed == null) {
        if ((attr = man.getMainAttributes()) != null) {
            sealed = attr.getValue(Name.SEALED);
        }
    }
    return "true".equalsIgnoreCase(sealed);

}
项目:OLD-OpenJDK8    文件:URLClassPath.java   
URL[] getClassPath() throws IOException {
    if (index != null) {
        return null;
    }

    if (metaIndex != null) {
        return null;
    }

    ensureOpen();
    parseExtensionsDependencies();

    if (SharedSecrets.javaUtilJarAccess().jarFileHasClassPathAttribute(jar)) { // Only get manifest when necessary
        Manifest man = jar.getManifest();
        if (man != null) {
            Attributes attr = man.getMainAttributes();
            if (attr != null) {
                String value = attr.getValue(Name.CLASS_PATH);
                if (value != null) {
                    return parseClassPath(csu, value);
                }
            }
        }
    }
    return null;
}
项目:jmockit1    文件:ClassLoadingAndJREMocksTest.java   
String readMainClassAndFileNamesFromJar(File file, List<String> containedFileNames) throws IOException {
   JarFile jarFile = new JarFile(file);

   Manifest manifest = jarFile.getManifest();
   Attributes mainAttributes = manifest.getMainAttributes();
   String mainClassName = mainAttributes.getValue(Name.MAIN_CLASS);

   Enumeration<JarEntry> jarEntries = jarFile.entries();

   while (jarEntries.hasMoreElements()) {
      JarEntry jarEntry = jarEntries.nextElement();
      containedFileNames.add(jarEntry.getName());
   }

   return mainClassName;
}
项目:jmockit1    文件:ClassLoadingAndJREMocksTest.java   
@Test
public void mockJavaUtilJarClasses(
   @Mocked final JarFile mockFile, @Mocked final Manifest mockManifest, @Mocked final Attributes mockAttributes,
   @Mocked final Enumeration<JarEntry> mockEntries, @Mocked final JarEntry mockEntry
) throws Exception {
   File testFile = new File("test.jar");
   final String mainClassName = "test.Main";

   new Expectations() {{
      mockFile.getManifest(); result = mockManifest;
      mockManifest.getMainAttributes(); result = mockAttributes;
      mockAttributes.getValue(Name.MAIN_CLASS); result = mainClassName;
      mockFile.entries(); result = mockEntries;

      mockEntries.hasMoreElements(); returns(true, true, false);
      mockEntries.nextElement(); result = mockEntry;
      mockEntry.getName(); returns("test/Main$Inner.class", "test/Main.class");
   }};

   List<String> fileNames = new ArrayList<String>();
   String mainClassFromJar = readMainClassAndFileNamesFromJar(testFile, fileNames);

   assertEquals(mainClassName, mainClassFromJar);
   assertEquals(asList("test/Main$Inner.class", "test/Main.class"), fileNames);
}
项目:JamVM-PH    文件:JarUtils.java   
/**
 * Pedantic method that requires the next attribute in the Manifest to be the
 * "Manifest-Version". This follows the Manifest spec closely but reject some
 * jar Manifest files out in the wild.
 */
private static void readVersionInfo(Attributes attr, BufferedReader br)
    throws IOException
{
  String version_header = Name.MANIFEST_VERSION.toString();
  try
    {
      String value = expectHeader(version_header, br);
      attr.putValue(MANIFEST_VERSION, value);
    }
  catch (IOException ioe)
    {
      throw new JarException("Manifest should start with a " + version_header
                             + ": " + ioe.getMessage());
    }
}
项目:apache-tomcat-7.0.57    文件:WebappClassLoader.java   
/**
 * Returns true if the specified package name is sealed according to the
 * given manifest.
 */
protected boolean isPackageSealed(String name, Manifest man) {

    String path = name.replace('.', '/') + '/';
    Attributes attr = man.getAttributes(path);
    String sealed = null;
    if (attr != null) {
        sealed = attr.getValue(Name.SEALED);
    }
    if (sealed == null) {
        if ((attr = man.getMainAttributes()) != null) {
            sealed = attr.getValue(Name.SEALED);
        }
    }
    return "true".equalsIgnoreCase(sealed);

}
项目:apache-tomcat-7.0.57    文件:WebappClassLoader.java   
/**
 * Returns true if the specified package name is sealed according to the
 * given manifest.
 */
protected boolean isPackageSealed(String name, Manifest man) {

    String path = name.replace('.', '/') + '/';
    Attributes attr = man.getAttributes(path);
    String sealed = null;
    if (attr != null) {
        sealed = attr.getValue(Name.SEALED);
    }
    if (sealed == null) {
        if ((attr = man.getMainAttributes()) != null) {
            sealed = attr.getValue(Name.SEALED);
        }
    }
    return "true".equalsIgnoreCase(sealed);

}
项目:openjdk-jdk7u-jdk    文件:URLClassPath.java   
URL[] getClassPath() throws IOException {
    if (index != null) {
        return null;
    }

    if (metaIndex != null) {
        return null;
    }

    ensureOpen();
    parseExtensionsDependencies();
    if (SharedSecrets.javaUtilJarAccess().jarFileHasClassPathAttribute(jar)) { // Only get manifest when necessary
        Manifest man = jar.getManifest();
        if (man != null) {
            Attributes attr = man.getMainAttributes();
            if (attr != null) {
                String value = attr.getValue(Name.CLASS_PATH);
                if (value != null) {
                    return parseClassPath(csu, value);
                }
            }
        }
    }
    return null;
}
项目:HowTomcatWorks    文件:WebappClassLoader.java   
/**
 * Returns true if the specified package name is sealed according to the
 * given manifest.
 */
protected boolean isPackageSealed(String name, Manifest man) {

    String path = name + "/";
    Attributes attr = man.getAttributes(path);
    String sealed = null;
    if (attr != null) {
        sealed = attr.getValue(Name.SEALED);
    }
    if (sealed == null) {
        if ((attr = man.getMainAttributes()) != null) {
            sealed = attr.getValue(Name.SEALED);
        }
    }
    return "true".equalsIgnoreCase(sealed);

}
项目:classpath    文件:JarUtils.java   
/**
 * Pedantic method that requires the next attribute in the Manifest to be the
 * "Manifest-Version". This follows the Manifest spec closely but reject some
 * jar Manifest files out in the wild.
 */
private static void readVersionInfo(Attributes attr, BufferedReader br)
    throws IOException
{
  String version_header = Name.MANIFEST_VERSION.toString();
  try
    {
      String value = expectHeader(version_header, br);
      attr.putValue(MANIFEST_VERSION, value);
    }
  catch (IOException ioe)
    {
      throw new JarException("Manifest should start with a " + version_header
                             + ": " + ioe.getMessage());
    }
}
项目:openjdk-icedtea7    文件:URLClassPath.java   
URL[] getClassPath() throws IOException {
    if (index != null) {
        return null;
    }

    if (metaIndex != null) {
        return null;
    }

    ensureOpen();
    parseExtensionsDependencies();
    if (SharedSecrets.javaUtilJarAccess().jarFileHasClassPathAttribute(jar)) { // Only get manifest when necessary
        Manifest man = jar.getManifest();
        if (man != null) {
            Attributes attr = man.getMainAttributes();
            if (attr != null) {
                String value = attr.getValue(Name.CLASS_PATH);
                if (value != null) {
                    return parseClassPath(csu, value);
                }
            }
        }
    }
    return null;
}
项目:WBSAirback    文件:WebappClassLoader.java   
/**
 * Returns true if the specified package name is sealed according to the
 * given manifest.
 */
protected boolean isPackageSealed(String name, Manifest man) {

    String path = name.replace('.', '/') + '/';
    Attributes attr = man.getAttributes(path); 
    String sealed = null;
    if (attr != null) {
        sealed = attr.getValue(Name.SEALED);
    }
    if (sealed == null) {
        if ((attr = man.getMainAttributes()) != null) {
            sealed = attr.getValue(Name.SEALED);
        }
    }
    return "true".equalsIgnoreCase(sealed);

}
项目:pdi-vfs    文件:VFSClassLoader.java   
/**
 * Reads attributes for the package and defines it.
 */
private Package definePackage(final String name,
                              final Resource res)
    throws FileSystemException
{
    // TODO - check for MANIFEST_ATTRIBUTES capability first
    final String specTitle = res.getPackageAttribute(Name.SPECIFICATION_TITLE);
    final String specVendor = res.getPackageAttribute(Attributes.Name.SPECIFICATION_VENDOR);
    final String specVersion = res.getPackageAttribute(Name.SPECIFICATION_VERSION);
    final String implTitle = res.getPackageAttribute(Name.IMPLEMENTATION_TITLE);
    final String implVendor = res.getPackageAttribute(Name.IMPLEMENTATION_VENDOR);
    final String implVersion = res.getPackageAttribute(Name.IMPLEMENTATION_VERSION);

    final URL sealBase;
    if (isSealed(res))
    {
        sealBase = res.getCodeSourceURL();
    }
    else
    {
        sealBase = null;
    }

    return definePackage(name, specTitle, specVersion, specVendor,
        implTitle, implVersion, implVendor, sealBase);
}
项目:ant_modular    文件:ManifestModuleLoader.java   
/**
 * <p>Loads metadata of the module with a given path, not necessarily normalised.
 * If the module metadata cannot be loaded then a {@link ModuleNotLoadedException}
 * is thrown.</p>
 * 
 * <p>Refer to the {@link ManifestModuleLoader class description} for the details about
 * how metadata is stored for a module.</p>
 * 
 * @param path the module path. It is a path relative to the Ant project base directory.
 *      This path is allowed to be a non-normalised module path but must be not {@code null}.
 * 
 * @return a {@link afc.ant.modular.ModuleInfo} object that is initialised
 *      with the module path, dependencies and attributes. It is never {@code null}
 *      and is initialised with the {@link #normalisePath(String) normalised module path}.
 * 
 * @throws NullPointerException if <em>path</em> is {@code null}.
 * @throws ModuleNotLoadedException if the module meta information cannot be loaded.
 */
public ModuleInfo loadModule(final String path) throws ModuleNotLoadedException
{
    final Attributes attributes = readManifestBuildSection(path);
    final ModuleInfo moduleInfo = new ModuleInfo(path, this);

    /* Both addDependencies and addClasspathAttributes remove the dependencies
     * they process from the list of the attributes.
     * 
     * Dependencies must be processed first to ensure that the attribute "Depends"
     * is removed before the classpath attributes are processed. The latter can
     * contain the name "Depends" in some form which must be ignored.
     */
    addDependencies(attributes, moduleInfo);
    addClasspathAttributes(attributes, moduleInfo);

    // Merging the remaining attributes without modification.
    for (final Map.Entry<Object, Object> entry : attributes.entrySet()) {
        final Name key = (Name) entry.getKey();
        moduleInfo.addAttribute(key.toString(), entry.getValue());
    }
    return moduleInfo;
}
项目:RhinoScriptEngine    文件:RhinoScriptEngineFactory.java   
private static synchronized String getEngineVersionFromJar() {
    if (engineVersion == null) {
        URL url = RhinoScriptEngineFactory.class.getResource("/org/mozilla/javascript/Context.class");
        if (url != null && "jar".equals(url.getProtocol())) {
            try {
                JarURLConnection connection = (JarURLConnection) url.openConnection();
                Manifest manifest = connection.getJarFile().getManifest();
                Attributes attributes = manifest.getMainAttributes();
                if (attributes.containsKey(Name.IMPLEMENTATION_VERSION)) {
                    engineVersion = attributes.getValue(Name.IMPLEMENTATION_VERSION);
                }
            } catch (IOException ex) {
            }
        }
        if (engineVersion == null) {
            engineVersion = "Unknown";
        }
    }
    return engineVersion;
}
项目:caoutchouc    文件:CaoutchoucClassLoader.java   
private boolean isSealed(final String path, final Manifest manifest) {
    Attributes attributes = manifest.getAttributes(path);
    String sealed = null;
    if(attributes != null) {
        sealed = attributes.getValue(Name.SEALED);
    }

    if(sealed == null) {
        attributes = manifest.getMainAttributes();
        if(attributes != null) {
            sealed = attributes.getValue(Name.SEALED);
        }
    }
    return "true".equalsIgnoreCase(sealed);
}
项目:incubator-netbeans    文件:ShorterPaths.java   
private String copyExtraLib(File file) throws IOException {
    if (extraLibsDir == null || !extraLibsDir.isDirectory() || !file.isFile()) {
        return null;
    }
    File copy = new File(extraLibsDir, file.getName());
    boolean wasCopied = copyMissing(file, copy);
    // copy Class-Path extensions if available
    if (wasCopied && file.getName().endsWith(".jar")) {
        String cp;
        try {
            try (JarFile jf = new JarFile(file)) {
                Manifest manifest = jf.getManifest();
                cp = manifest != null ? manifest.getMainAttributes().getValue(Name.CLASS_PATH) : null;
            }
        } catch (IOException x) {
            log("Could not parse " + file + " for Class-Path", Project.MSG_WARN);
            cp = null;
        }
        if (cp != null) {
            for (String ext : cp.split(" ")) {
                // copy CP extension with relative path to keep link dependency from manifest
                copyMissing(new File(file.getParentFile(), ext), new File(extraLibsDir, ext));
            }
        }
    }
    return copy.getName();
}