package org.bundlemaker.core.itest.jedit_artifact_model.exporter; import java.io.File; import java.io.IOException; import java.io.InputStreamReader; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Set; import java.util.jar.JarFile; import java.util.zip.ZipEntry; import junit.framework.Assert; import org.bundlemaker.core.exporter.DefaultModuleExporterContext; import org.bundlemaker.core.exporter.IModuleExporterContext; import org.bundlemaker.core.exporter.ITemplateProvider; import org.bundlemaker.core.itest.jedit_artifact_model.core.AbstractJeditTest; import org.bundlemaker.core.modules.IModularizedSystem; import org.bundlemaker.core.modules.IResourceModule; import org.bundlemaker.core.resource.IReadableResource; import org.eclipse.core.runtime.CoreException; import org.eclipse.virgo.bundlor.util.BundleManifestUtils; import org.eclipse.virgo.util.osgi.manifest.BundleManifest; import org.eclipse.virgo.util.osgi.manifest.ExportedPackage; import org.eclipse.virgo.util.osgi.manifest.ImportedPackage; import org.eclipse.virgo.util.parser.manifest.ManifestContents; import org.eclipse.virgo.util.parser.manifest.RecoveringManifestParser; import org.junit.After; import org.junit.Before; /** * <p> * </p> * * @author Gerd Wütherich (gerd@gerd-wuetherich.de) */ public abstract class AbstractExportOsgiBundleTest extends AbstractJeditTest { /** - */ private File _resultDir; /** - */ private IResourceModule _jeditmodule; /** - */ private IModuleExporterContext _exporterContext; /** * {@inheritDoc} */ @Before public void before() throws CoreException { super.before(); // _resultDir = new File(System.getProperty("java.io.tmpdir"), "bm-test"); _resultDir.mkdirs(); // _jeditmodule = getModularizedSystem().getResourceModule("jedit", "1.0.0"); Assert.assertEquals(998, _jeditmodule.getContainedTypes().size()); // _exporterContext = new DefaultModuleExporterContext(getBundleMakerProject(), _resultDir, getModularizedSystem()); } /** * {@inheritDoc} */ @After public void after() throws CoreException { super.after(); _resultDir = null; _jeditmodule = null; _exporterContext = null; } public File getResultDir() { return _resultDir; } public IResourceModule getJeditmodule() { return _jeditmodule; } public IModuleExporterContext getExporterContext() { return _exporterContext; } /** * <p> * </p> * * @param importedPackages */ public static final void sortImportedPackages(List<ImportedPackage> importedPackages) { // Collections.sort(importedPackages, new Comparator<ImportedPackage>() { @Override public int compare(ImportedPackage o1, ImportedPackage o2) { return o1.getPackageName().compareTo(o2.getPackageName()); } }); } /** * <p> * </p> * * @param exportedPackages */ public static final void sortExportedPackages(List<ExportedPackage> exportedPackages) { // Collections.sort(exportedPackages, new Comparator<ExportedPackage>() { @Override public int compare(ExportedPackage o1, ExportedPackage o2) { return o1.getPackageName().compareTo(o2.getPackageName()); } }); } /** * <p> * </p> * * @param resultDir * @param fileName * @return * @throws IOException */ public static final BundleManifest readBundleManifest(File resultDir, String fileName) throws IOException { // File resultFile = new File(resultDir, fileName); Assert.assertTrue(resultFile.isFile()); JarFile jarFile = new JarFile(resultFile); ZipEntry zipEntry = jarFile.getEntry("META-INF/MANIFEST.MF"); ManifestContents result = new RecoveringManifestParser().parse(new InputStreamReader(jarFile .getInputStream(zipEntry))); // BundleManifest bundleManifest = BundleManifestUtils.createBundleManifest(result); // return bundleManifest; } /** * <p> * </p> * * @author Gerd Wütherich (gerd@gerd-wuetherich.de) */ public static class TestTemplateProvider implements ITemplateProvider { /** - */ private ManifestContents _manifestContents; /** * <p> * Creates a new instance of type {@link TestTemplateProvider}. * </p> * * @param manifestContents */ public TestTemplateProvider(ManifestContents manifestContents) { Assert.assertNotNull(manifestContents); _manifestContents = manifestContents; } /** * {@inheritDoc} */ @Override public ManifestContents getTemplate(IResourceModule module, IModularizedSystem modularizedSystem, IModuleExporterContext context) { // return _manifestContents; } /** * {@inheritDoc} */ @Override public Set<IReadableResource> getAdditionalResources(IResourceModule currentModule, IModularizedSystem currentModularizedSystem, IModuleExporterContext currentContext) { // return Collections.emptySet(); } } }