blob: 27e1616a968d240934b31f55cd3ac47e457fdcf6 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2006 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
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);
}
}
}