/** * Test if we can select * * @throws Exception */ public void testSelect() throws Exception { Jar bjara = getContractExporter("atest", "2.5", "${exports}"); Jar bjarb = getContractExporter("btest", "2.5", "${exports}"); Builder a = newBuilder(); a.setTrace(true); a.addClasspath(bjara); // 1x a.addClasspath(bjarb); // 2x a.setProperty(Constants.CONTRACT, "atest;alpha=1"); a.setImportPackage("org.osgi.service.cm,*"); a.setProperty("Export-Package", "test.refer"); Jar ajar = a.build(); assertTrue(a.check()); ajar.getManifest().write(System.out); Domain domain = Domain.domain(ajar.getManifest()); Parameters p = domain.getRequireCapability(); p.remove("osgi.ee"); assertNotNull(p); assertEquals(1, p.size()); Attrs attrs = p.get("osgi.contract"); String alpha = attrs.get("alpha"); assertEquals("1", alpha); assertEquals("(&(osgi.contract=atest)(version=2.5.0))", attrs.get("filter:")); }
/** * Test if we can detect an overlap, and then if we can control the overlap * * @throws Exception */ public void testOverlap() throws Exception { Jar bjar = getContractExporter("test", "2.5", "${exports}"); Builder a = newBuilder(); a.setTrace(true); a.addClasspath(bjar); // 1x a.addClasspath(bjar); // 2x a.setProperty(Constants.CONTRACT, "*"); a.setImportPackage("org.osgi.service.cm,*"); a.setProperty("Export-Package", "test.refer"); Jar ajar = a.build(); assertTrue( a.check( "Contracts \\[Contract \\[name=test;version=2.5.0;from=biz.aQute.bndlib.tests\\], Contract \\[name=test;version=2.5.0")); }
/** * Make sure we do not add a contract if not used * * @throws Exception */ public void testUnused() throws Exception { Jar bjara = getContractExporter("atest", "2.5", "${exports}"); Builder a = newBuilder(); a.setTrace(true); a.addClasspath(bjara); a.setProperty(Constants.CONTRACT, "*"); a.setImportPackage("test.packageinfo,*"); a.setProperty("Export-Package", "test.refer"); Jar ajar = a.build(); assertTrue(a.check()); Domain domain = Domain.domain(ajar.getManifest()); Parameters p = domain.getRequireCapability(); p.remove("osgi.ee"); assertEquals(0, p.size()); }
/** * Test the warnings that we have no no version * * @throws Exception */ public void testWarningVersion() throws Exception { Jar bjara = getContractExporter("abc", null, "${exports}"); Builder a = newBuilder(); a.setTrace(true); a.addClasspath(bjara); a.setProperty(Constants.CONTRACT, "*"); a.setImportPackage("test.packageinfo,*"); a.setProperty("Export-Package", "test.refer"); Jar ajar = a.build(); assertTrue( a.check( "Contract \\[name=abc;version=0.0.0;from=biz.aQute.bndlib.tests] does not declare a version")); Domain domain = Domain.domain(ajar.getManifest()); Parameters p = domain.getRequireCapability(); p.remove("osgi.ee"); assertEquals(0, p.size()); }
public void testSimple() throws Exception { Jar bjar = getContractExporter("test", "2.5", "${exports}"); Builder a = newBuilder(); a.setTrace(true); a.addClasspath(bjar); a.setProperty(Constants.CONTRACT, "*"); a.setImportPackage("org.osgi.service.cm,*"); a.setProperty("Export-Package", "test.refer"); Jar ajar = a.build(); assertTrue(a.check()); Domain domain = Domain.domain(ajar.getManifest()); Parameters rc = domain.getRequireCapability(); rc.remove("osgi.ee"); System.out.println(rc); assertEquals(1, rc.size()); Packages ps = a.getImports(); assertTrue(ps.containsFQN("org.osgi.service.cm")); Attrs attrs = ps.getByFQN("org.osgi.service.cm"); assertNotNull(attrs); assertNull(attrs.getVersion()); }