package com.yahoo.dtf.plugin;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.jar.Attributes;
import java.util.jar.JarFile;
import java.util.zip.ZipEntry;
public class JarUtil {
public static String getXSDFilename(File jarFile) {
String filename = getXSDPropertyValue(jarFile,
XSDConstants.XSD_FILE_PROPERTY);
if (filename != null)
return filename;
else
return null;
}
public static InputStream getXSDInputStream(File jarFile) {
String filename = getXSDPropertyValue(jarFile,
XSDConstants.XSD_FILE_PROPERTY);
if (filename != null) {
try {
JarFile jarfile = new JarFile(jarFile);
ZipEntry ze = jarfile.getEntry(filename);
if (ze == null) {
return null;
}
return jarfile.getInputStream(ze);
} catch (IOException e) {
return null;
}
} else
return null;
}
public static String getXSDPropertyValue(File jarFile,String property) {
Attributes.Name attributeName = new Attributes.Name(property);
try {
JarFile jarfile = new JarFile(jarFile);
if (jarfile.getManifest() != null ) {
Attributes attributes = jarfile.getManifest().getMainAttributes();
if (attributes.containsKey(attributeName)) {
String filename = attributes.getValue(attributeName);
return filename;
}
}
} catch (IOException e) { }
return null;
}
}