Search in sources :

Example 36 with Project

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"));
    }
}
Also used : Project(aQute.bnd.build.Project) Jar(aQute.bnd.osgi.Jar) Manifest(java.util.jar.Manifest) File(java.io.File) Workspace(aQute.bnd.build.Workspace)

Example 37 with Project

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());
}
Also used : Project(aQute.bnd.build.Project) Container(aQute.bnd.build.Container) Workspace(aQute.bnd.build.Workspace)

Example 38 with Project

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());
}
Also used : Project(aQute.bnd.build.Project) Container(aQute.bnd.build.Container) Workspace(aQute.bnd.build.Workspace)

Example 39 with Project

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();
    }
}
Also used : Project(aQute.bnd.build.Project) IOException(java.io.IOException) File(java.io.File) Workspace(aQute.bnd.build.Workspace)

Example 40 with Project

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"));
}
Also used : Project(aQute.bnd.build.Project) Workspace(aQute.bnd.build.Workspace)

Aggregations

Project (aQute.bnd.build.Project)140 Workspace (aQute.bnd.build.Workspace)70 File (java.io.File)45 ArrayList (java.util.ArrayList)22 IProject (org.eclipse.core.resources.IProject)21 Container (aQute.bnd.build.Container)19 IOException (java.io.IOException)17 ProjectLauncher (aQute.bnd.build.ProjectLauncher)15 Version (aQute.bnd.version.Version)12 Description (aQute.lib.getopt.Description)12 Jar (aQute.bnd.osgi.Jar)11 Builder (aQute.bnd.osgi.Builder)10 RepositoryPlugin (aQute.bnd.service.RepositoryPlugin)10 IJavaProject (org.eclipse.jdt.core.IJavaProject)9 Run (aQute.bnd.build.Run)8 BuildException (org.apache.tools.ant.BuildException)8 CoreException (org.eclipse.core.runtime.CoreException)8 IFile (org.eclipse.core.resources.IFile)7 ProjectBuilder (aQute.bnd.build.ProjectBuilder)6 ProjectTester (aQute.bnd.build.ProjectTester)5