@Override public PackageSpec getPackageSpec(final String name) throws IOException { final PackageSpec spec = new PackageSpec(); final Manifest manifest = getManifest(); if (manifest == null) { return spec; } final Attributes mainAttribute = manifest.getMainAttributes(); final Attributes entryAttribute = manifest.getAttributes(name); spec.setSpecTitle( getDefinedAttribute(Attributes.Name.SPECIFICATION_TITLE, entryAttribute, mainAttribute)); spec.setSpecVersion( getDefinedAttribute(Attributes.Name.SPECIFICATION_VERSION, entryAttribute, mainAttribute)); spec.setSpecVendor( getDefinedAttribute(Attributes.Name.SPECIFICATION_VENDOR, entryAttribute, mainAttribute)); spec.setImplTitle( getDefinedAttribute(Attributes.Name.IMPLEMENTATION_TITLE, entryAttribute, mainAttribute)); spec.setImplVersion( getDefinedAttribute(Attributes.Name.IMPLEMENTATION_VERSION, entryAttribute, mainAttribute)); spec.setImplVendor( getDefinedAttribute(Attributes.Name.IMPLEMENTATION_VENDOR, entryAttribute, mainAttribute)); return spec; }