package test; import java.util.Properties; import java.util.jar.Manifest; import aQute.bnd.osgi.Builder; import aQute.bnd.osgi.Jar; import aQute.lib.io.IO; import junit.framework.TestCase; @SuppressWarnings("resource") public class ClasspathTest extends TestCase { /** * Test if we can refer to the jars on the classpath by their file name ( * ignoring the path) * * @throws Exception */ public static void testBundleClasspath() throws Exception { Builder b = new Builder(); b.setProperty("Include-Resource", "bin=bin"); b.setProperty("Bundle-Classpath", "bin"); Jar jar = b.build(); assertNotNull(jar.getResource("bin/test/activator/Activator.class")); // from // test.jar } /** * Test if we can refer to the jars on the classpath by their file name ( * ignoring the path) * * @throws Exception */ public static void testFindJarOnClasspath() throws Exception { Properties p = new Properties(); p.put("Include-Resource", "tb1.jar, @test.jar"); Builder b = new Builder(); b.setClasspath(new String[] { "src", "src/test/test.jar", "src/test/tb1.jar" }); b.setProperties(p); Jar jar = b.build(); assertNotNull(jar.getResource("aQute/lib/aim/AIM.class")); // from // test.jar assertNotNull(jar.getResource("tb1.jar")); } /** * Test if we can use URLs on the classpath * * @throws Exception */ public static void testSimple() throws Exception { Properties p = new Properties(); p.put("-classpath", IO.getFile("jar/osgi.jar").toURI().toURL().toString()); p.put("Export-Package", "org.osgi.service.event"); p.put("Private-Package", "test.refer"); Builder b = new Builder(); b.setClasspath(new String[] { "bin" }); b.setProperties(p); Jar jar = b.build(); Manifest m = jar.getManifest(); String importPackage = m.getMainAttributes().getValue("Import-Package"); assertTrue(importPackage.contains("org.osgi.framework;version=\"[1.3,2)\"")); assertTrue(importPackage.contains("org.osgi.service.event;version=\"[1.0,2)\"")); } }