blob: 0354034d0e0f7d6ac16fe2af13e8d0aea39d8eb7 [file] [log] [blame]
package org.eclipse.update.internal.core;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.jar.JarFile;
import java.util.zip.ZipEntry;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.update.core.JarContentReference;
import org.eclipse.update.core.model.FeatureModel;
import org.xml.sax.SAXException;
public class Digest {
private URL source;
private File localSource;
private JarFile digestJar;
private InputStream inputStream;
public Digest(URL source){
this.source = source;
}
public FeatureModel[] parseDigest() throws IOException, CoreException, SAXException {
DigestContentProvider digestContentProvider = new DigestContentProvider(source);
localSource = digestContentProvider.asLocalReference(new JarContentReference( null, source), null).asFile();
digestJar = new JarFile(localSource);
ZipEntry digestEntry = digestJar.getEntry("digest.xml"); //$NON-NLS-1$
if (digestEntry != null) {
inputStream = digestJar.getInputStream(digestEntry);
DigestParser digest = new DigestParser();
digest.init(new LiteFeatureFactory());
return digest.parse(inputStream);
} else {
throw new CoreException(null);
}
}
}