use of aQute.bnd.build.Project in project bnd by bndtools.
the class ProjectTest method testSub.
/**
* Tests the handling of the -sub facility
*
* @throws Exception
*/
public void testSub() throws Exception {
Workspace ws = getWorkspace(IO.getFile("testresources/ws"));
Project project = ws.getProject("p4-sub");
File[] files = project.build();
Arrays.sort(files);
System.err.println(Processor.join(project.getErrors(), "\n"));
System.err.println(Processor.join(project.getWarnings(), "\n"));
assertEquals(0, project.getErrors().size());
assertEquals(0, project.getWarnings().size());
assertNotNull(files);
assertEquals(3, files.length);
try (Jar a = new Jar(files[0]);
Jar b = new Jar(files[1])) {
Manifest ma = a.getManifest();
Manifest mb = b.getManifest();
assertEquals("base", ma.getMainAttributes().getValue("Base-Header"));
assertEquals("base", mb.getMainAttributes().getValue("Base-Header"));
assertEquals("a", ma.getMainAttributes().getValue("Sub-Header"));
assertEquals("b", mb.getMainAttributes().getValue("Sub-Header"));
}
}
use of aQute.bnd.build.Project in project bnd by bndtools.
the class ProjectTest method testRunBundlesContainsSelf.
/**
* Test bnd.bnd of project `foo`: `-runbundles: foo;version=latest`
*/
public void testRunBundlesContainsSelf() throws Exception {
Workspace ws = getWorkspace(IO.getFile("testresources/ws"));
Project top = ws.getProject("p1");
top.setDelayRunDependencies(false);
top.setProperty("-runbundles", "p1;version=latest");
top.setChanged();
top.isStale();
Collection<Container> runbundles = top.getRunbundles();
assertTrue(top.check("Circular dependency"));
assertNotNull(runbundles);
assertEquals(0, runbundles.size());
}
use of aQute.bnd.build.Project in project bnd by bndtools.
the class ProjectTest method testSameBsnRunBundles.
/**
* Test 2 equal bsns but diff. versions
*/
public void testSameBsnRunBundles() throws Exception {
Workspace ws = getWorkspace(IO.getFile("testresources/ws"));
Project top = ws.getProject("p1");
top.setProperty("-runbundles", "org.apache.felix.configadmin;version='[1.0.1,1.0.1]',org.apache.felix.configadmin;version='[1.1.0,1.1.0]'");
Collection<Container> runbundles = top.getRunbundles();
assertTrue(top.check());
assertNotNull(runbundles);
assertEquals(2, runbundles.size());
}
use of aQute.bnd.build.Project in project bnd by bndtools.
the class ProjectTest method testOutofDate.
public void testOutofDate() throws Exception {
Workspace ws = getWorkspace(IO.getFile("testresources/ws"));
Project project = ws.getProject("p3");
File bnd = IO.getFile("testresources/ws/p3/bnd.bnd");
assertTrue(bnd.exists());
project.clean();
File pt = project.getTarget();
if (!pt.exists() && !pt.mkdirs()) {
throw new IOException("Could not create directory " + pt);
}
try {
// Now we build it.
File[] files = project.build();
System.err.println(project.getErrors());
System.err.println(project.getWarnings());
assertTrue(project.isOk());
assertNotNull(files);
assertEquals(1, files.length);
// Now we should not rebuild it
long lastTime = files[0].lastModified();
files = project.build();
assertEquals(1, files.length);
assertTrue(files[0].lastModified() == lastTime);
Thread.sleep(2000);
project.updateModified(System.currentTimeMillis(), "Testing");
files = project.build();
assertEquals(1, files.length);
assertTrue("Must have newer files now", files[0].lastModified() > lastTime);
} finally {
project.clean();
}
}
use of aQute.bnd.build.Project in project bnd by bndtools.
the class ProjectTest method testErrorOnVersionIsProjectInRunbundles.
/**
* Check if a project=version, which is illegal on -runbundles, is actually
* reported as an error.
*
* @throws Exception
*/
public void testErrorOnVersionIsProjectInRunbundles() throws Exception {
Workspace ws = getWorkspace(IO.getFile("testresources/ws"));
Project top = ws.getProject("p1");
top.setProperty("-runbundles", "p2;version=project,p3;version=latest");
top.getRunbundles();
assertTrue(top.check("p2 is specified with version=project on -runbundles"));
}
Aggregations