package org.bundlemaker.core.itest.jedit_artifact_model.exporter; import java.io.IOException; import java.util.List; import junit.framework.Assert; import org.bundlemaker.core.analysis.IModuleArtifact; import org.bundlemaker.core.osgi.exporter.bundle.JarFileBundleExporter; import org.bundlemaker.core.osgi.manifest.DefaultManifestCreator; import org.bundlemaker.core.osgi.manifest.DefaultManifestPreferences; import org.bundlemaker.core.osgi.manifest.IBundleManifestCreator; import org.bundlemaker.core.osgi.manifest.IManifestPreferences.DependencyStyle; import org.eclipse.core.runtime.CoreException; import org.eclipse.virgo.util.osgi.manifest.BundleManifest; import org.eclipse.virgo.util.osgi.manifest.ImportedPackage; import org.eclipse.virgo.util.osgi.manifest.RequiredBundle; import org.junit.Test; /** * <p> * </p> * * @author Gerd Wütherich (gerd@gerd-wuetherich.de) */ public class ExportOsgiBundleTest extends AbstractExportOsgiBundleTest { /** * <p> * </p> * * @throws CoreException * @throws IOException */ @Test public void testExportWithImportPackage() throws CoreException, IOException { // JarFileBundleExporter binaryBundleExporter = new JarFileBundleExporter(null, null, new DefaultManifestPreferences(false, DependencyStyle.PREFER_IMPORT_PACKAGE)); // binaryBundleExporter.export(getModularizedSystem(), getJeditmodule(), getExporterContext(), null); // BundleManifest bundleManifest = readBundleManifest(getResultDir(), "jedit_1.0.0.jar"); // List<ImportedPackage> importedPackages = bundleManifest.getImportPackage().getImportedPackages(); sortImportedPackages(importedPackages); for (ImportedPackage importedPackage : importedPackages) { System.out.println(" - " + importedPackage.getPackageName()); } Assert.assertEquals(14, importedPackages.size()); // Assert .assertEquals( "[javax.print.attribute, javax.print.attribute.standard, javax.swing, javax.swing.border, javax.swing.event, javax.swing.filechooser, javax.swing.plaf, javax.swing.plaf.metal, javax.swing.table, javax.swing.text, javax.swing.text.html, javax.swing.tree, org.xml.sax, org.xml.sax.helpers]", importedPackages.toString()); } /** * <p> * </p> * * @throws CoreException * @throws IOException */ @Test public void testExportWithRequiredBundle() throws CoreException, IOException { // JarFileBundleExporter binaryBundleExporter = new JarFileBundleExporter(null, null, new DefaultManifestPreferences(false, DependencyStyle.STRICT_REQUIRE_BUNDLE)); // binaryBundleExporter.export(getModularizedSystem(), getJeditmodule(), getExporterContext(), null); // BundleManifest bundleManifest = readBundleManifest(getResultDir(), "jedit_1.0.0.jar"); // Assert.assertEquals(0, bundleManifest.getImportPackage().getImportedPackages().size()); // List<RequiredBundle> requiredBundles = bundleManifest.getRequireBundle().getRequiredBundles(); Assert.assertEquals(1, requiredBundles.size()); // Assert.assertEquals("[system.bundle]", requiredBundles.toString()); } /** * <p> * </p> * * @throws CoreException * @throws IOException */ @Test public void testCustomizedExport() throws CoreException, IOException { // the manifest creator IBundleManifestCreator manifestCreator = new DefaultManifestCreator() { @Override protected boolean useImportPackage(String packageName, List<IModuleArtifact> exportingModules) { // if (exportingModules.size() == 1) { return getModularizedSystem().getExecutionEnvironment().equals(exportingModules.get(0).getAssociatedModule()) && packageName.startsWith("javax."); } // return false; } }; // JarFileBundleExporter binaryBundleExporter = new JarFileBundleExporter(null, manifestCreator, new DefaultManifestPreferences(false, DependencyStyle.STRICT_REQUIRE_BUNDLE)); // binaryBundleExporter.export(getModularizedSystem(), getJeditmodule(), getExporterContext(), null); // BundleManifest bundleManifest = readBundleManifest(getResultDir(), "jedit_1.0.0.jar"); // // List<ImportedPackage> importedPackages = bundleManifest.getImportPackage().getImportedPackages(); sortImportedPackages(importedPackages); Assert.assertEquals(12, importedPackages.size()); Assert .assertEquals( "[javax.print.attribute, javax.print.attribute.standard, javax.swing, javax.swing.border, javax.swing.event, javax.swing.filechooser, javax.swing.plaf, javax.swing.plaf.metal, javax.swing.table, javax.swing.text, javax.swing.text.html, javax.swing.tree]", importedPackages.toString()); // List<RequiredBundle> requiredBundles = bundleManifest.getRequireBundle().getRequiredBundles(); Assert.assertEquals(1, requiredBundles.size()); Assert.assertEquals("[system.bundle]", requiredBundles.toString()); } }