Search in sources :

Example 21 with Project

use of aQute.bnd.build.Project in project bnd by bndtools.

the class ProjectTest method testHashVersionWithAlgorithm.

public void testHashVersionWithAlgorithm() throws Exception {
    Workspace ws = getWorkspace(IO.getFile("testresources/ws-versionhash"));
    Project project = ws.getProject("p1");
    assertNotNull(project);
    project.setProperty("-buildpath", "tmp; version=hash; hash=SHA-256:7fe83bfd5999fa4ef9cec40282d5d67dd0ff3303bac6b8c7b0e8be80a821441c");
    ArrayList<Container> buildpath = new ArrayList<Container>(project.getBuildpath());
    assertEquals(1, buildpath.size());
    assertEquals("bar", buildpath.get(0).getManifest().getMainAttributes().getValue("Prints"));
}
Also used : Project(aQute.bnd.build.Project) Container(aQute.bnd.build.Container) ArrayList(java.util.ArrayList) Workspace(aQute.bnd.build.Workspace)

Example 22 with Project

use of aQute.bnd.build.Project in project bnd by bndtools.

the class ProjectTest method testLastModified.

/**
	 * Two subsequent builds should not change the last modified if none of the
	 * source inputs have been modified.
	 *
	 * @throws Exception
	 */
public void testLastModified() throws Exception {
    Workspace ws = getWorkspace("testresources/ws");
    Project project = ws.getProject("p6");
    File bnd = IO.getFile("testresources/ws/p6/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();
        assertTrue(project.check());
        assertNotNull(files);
        assertEquals(1, files.length);
        byte[] olderDigest;
        try (Jar older = new Jar(files[0])) {
            olderDigest = older.getTimelessDigest();
        }
        System.out.println();
        // Ensure system time granularity is < than
        Thread.sleep(3000);
        // wait
        files[0].delete();
        project.build();
        assertTrue(project.check());
        assertNotNull(files);
        assertEquals(1, files.length);
        byte[] newerDigest;
        try (Jar newer = new Jar(files[0])) {
            newerDigest = newer.getTimelessDigest();
        }
        assertTrue(Arrays.equals(olderDigest, newerDigest));
    } finally {
        project.clean();
    }
}
Also used : Project(aQute.bnd.build.Project) Jar(aQute.bnd.osgi.Jar) IOException(java.io.IOException) File(java.io.File) Workspace(aQute.bnd.build.Workspace)

Example 23 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 24 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 25 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)

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