Search in sources :

Example 1 with Maven

use of aQute.bnd.maven.support.Maven in project bnd by bndtools.

the class MavenTest method testMavenRepo.

/**
	 * See if we can create a maven repostory as a plugin
	 * 
	 * @throws Exception
	 */
public static void testMavenRepo() throws Exception {
    Workspace ws = Workspace.getWorkspace(cwd.getParentFile());
    Maven maven = ws.getMaven();
    Processor processor = new Processor(ws);
    processor.setProperty(Constants.PLUGIN, "aQute.bnd.maven.support.MavenRemoteRepository;repositories=testresources/ws/maven1/m2");
    MavenRemoteRepository mr = processor.getPlugin(MavenRemoteRepository.class);
    assertNotNull(mr);
    assertEquals(maven, mr.getMaven());
    // Cleanup the maven cache so we do not get random results
    MavenEntry me = maven.getEntry("org.apache.commons", "com.springsource.org.apache.commons.beanutils", "1.6.1");
    assertNotNull(me);
    me.remove();
    Map<String, String> map = MAP.$("groupId", "org.apache.commons");
    File file = mr.get("com.springsource.org.apache.commons.beanutils", "1.6.1", Strategy.LOWEST, map);
    assertNotNull(file);
    assertEquals("com.springsource.org.apache.commons.beanutils-1.6.1.jar", file.getName());
    assertTrue(file.isFile());
    Map<String, String> map2 = MAP.$("groupId", "org.apache.commons").$("scope", "compile");
    file = mr.get("com.springsource.org.apache.commons.beanutils", "1.6.1", Strategy.LOWEST, map2);
    assertNotNull(file);
    assertTrue(file.isFile());
    assertEquals("compile.lib", file.getName());
    String lib = IO.collect(file);
    System.err.println(lib);
    lib = lib.replaceAll("org.apache.commons\\+com.springsource.org.apache.commons.beanutils;version=\"1.6.1\"", "1");
    lib = lib.replaceAll("org.apache.commons\\+com.springsource.org.apache.commons.collections;version=\"2.1.1\"", "2");
    lib = lib.replaceAll("org.apache.commons\\+com.springsource.org.apache.commons.logging;version=\"1.0.4\"", "3");
    assertEquals("1\n2\n3\n", lib);
}
Also used : Maven(aQute.bnd.maven.support.Maven) Processor(aQute.bnd.osgi.Processor) MavenRemoteRepository(aQute.bnd.maven.support.MavenRemoteRepository) MavenEntry(aQute.bnd.maven.support.MavenEntry) File(java.io.File) Workspace(aQute.bnd.build.Workspace)

Example 2 with Maven

use of aQute.bnd.maven.support.Maven in project bnd by bndtools.

the class MavenTest method testMavenRepo1.

/**
	 * Test the maven remote repository
	 */
public static void testMavenRepo1() throws Exception {
    Maven maven = new Maven(null);
    MavenRemoteRepository mr = new MavenRemoteRepository();
    mr.setMaven(maven);
    MavenEntry me = maven.getEntry("org.apache.commons", "com.springsource.org.apache.commons.beanutils", "1.6.1");
    me.remove();
    me = maven.getEntry("org.apache.commons", "com.springsource.org.apache.commons.collections", "2.1.1");
    me.remove();
    me = maven.getEntry("org.apache.commons", "com.springsource.org.apache.commons.logging", "1.0.4");
    me.remove();
    mr.setRepositories(new URI[] { IO.getFile(new File("").getAbsoluteFile(), "testresources/ws/maven1/m2").toURI() });
    Map<String, String> map = new HashMap<String, String>();
    map.put("scope", "compile");
    File file = mr.get("org.apache.commons+com.springsource.org.apache.commons.beanutils", "1.6.1", Strategy.LOWEST, map);
    assertNotNull(file);
    assertTrue(file.isFile());
    assertEquals("org.apache.commons+com.springsource.org.apache.commons.beanutils;version=\"1.6.1\"\n" + "org.apache.commons+com.springsource.org.apache.commons.collections;version=\"2.1.1\"\n" + "org.apache.commons+com.springsource.org.apache.commons.logging;version=\"1.0.4\"\n", IO.collect(file));
    file = mr.get("org.apache.commons+com.springsource.org.apache.commons.beanutils", "1.6.1", Strategy.LOWEST, null);
    assertEquals("com.springsource.org.apache.commons.beanutils-1.6.1.jar", file.getName());
}
Also used : Maven(aQute.bnd.maven.support.Maven) HashMap(java.util.HashMap) MavenRemoteRepository(aQute.bnd.maven.support.MavenRemoteRepository) MavenEntry(aQute.bnd.maven.support.MavenEntry) File(java.io.File)

Example 3 with Maven

use of aQute.bnd.maven.support.Maven in project bnd by bndtools.

the class MavenTest method testProjectPom.

/**
	 * Test parsing a project pom
	 * 
	 * @throws Exception
	 */
public static void testProjectPom() throws Exception {
    Maven maven = new Maven(null);
    ProjectPom pom = maven.createProjectModel(IO.getFile(cwd, "testresources/ws/maven1/testpom.xml"));
    assertEquals("artifact", pom.getArtifactId());
    assertEquals("group-parent", pom.getGroupId());
    assertEquals("1.0.0", pom.getVersion());
    assertEquals("Artifact", pom.getName());
    assertEquals("Parent Description\n\nDescription artifact", pom.getDescription());
    List<Dependency> dependencies = pom.getDependencies();
    // dep1
    boolean dep1 = false;
    // artifact (after macro)
    boolean dep2 = false;
    // junit
    boolean dep3 = false;
    // easymock
    boolean dep4 = false;
    for (Dependency dep : dependencies) {
        String artifactId = dep.getArtifactId();
        if ("dep1".equals(artifactId)) {
            assertFalse(dep1);
            dep1 = true;
            assertEquals("xyz", dep.getGroupId());
            assertEquals("1.0.1", dep.getVersion());
            assertEquals(Pom.Scope.valueOf("compile"), dep.getScope());
        } else if ("artifact".equals(artifactId)) {
            assertFalse(dep2);
            dep2 = true;
            assertEquals("group-parent", dep.getGroupId());
            assertEquals("1.0.2", dep.getVersion());
            assertEquals(Pom.Scope.valueOf("compile"), dep.getScope());
        } else if ("junit".equals(artifactId)) {
            assertFalse(dep3);
            dep3 = true;
            assertEquals("junit", dep.getGroupId());
            assertEquals("4.0", dep.getVersion());
            assertEquals(Pom.Scope.valueOf("test"), dep.getScope());
        } else if ("easymock".equals(artifactId)) {
            assertFalse(dep4);
            dep4 = true;
            assertEquals("org.easymock", dep.getGroupId());
            assertEquals("2.4", dep.getVersion());
            assertEquals(Pom.Scope.valueOf("compile"), dep.getScope());
        } else
            fail("'" + artifactId + "'");
    }
    assertTrue(dep1 && dep2 && dep3 && dep4);
    assertEquals("aa", pom.getProperty("a"));
    assertEquals("b from parent", pom.getProperty("b"));
    assertEquals("aab from parentartifact", pom.getProperty("c"));
}
Also used : Maven(aQute.bnd.maven.support.Maven) ProjectPom(aQute.bnd.maven.support.ProjectPom) Dependency(aQute.bnd.maven.support.Pom.Dependency)

Example 4 with Maven

use of aQute.bnd.maven.support.Maven in project bnd by bndtools.

the class MavenCommand method view.

void view(String[] args, int i) throws Exception {
    Maven maven = new Maven(executor);
    OutputStream out = System.err;
    List<URI> urls = new ArrayList<URI>();
    while (i < args.length && args[i].startsWith("-")) {
        if ("-r".equals(args[i])) {
            URI uri = new URI(args[++i]);
            urls.add(uri);
            System.err.println("URI for repo " + uri);
        } else if ("-o".equals(args[i])) {
            out = IO.outputStream(Paths.get(args[++i]));
        } else
            throw new IllegalArgumentException("Unknown option: " + args[i]);
        i++;
    }
    URI[] urls2 = urls.toArray(new URI[0]);
    PrintWriter pw = IO.writer(out);
    while (i < args.length) {
        String ref = args[i++];
        pw.println("Ref " + ref);
        Matcher matcher = GROUP_ARTIFACT_VERSION.matcher(ref);
        if (matcher.matches()) {
            String group = matcher.group(1);
            String artifact = matcher.group(2);
            String version = matcher.group(3);
            CachedPom pom = maven.getPom(group, artifact, version, urls2);
            Builder a = new Builder();
            a.setProperty(Constants.PRIVATEPACKAGE, "*");
            Set<Pom> dependencies = pom.getDependencies(Scope.compile, urls2);
            for (Pom dep : dependencies) {
                System.err.printf("%20s %-20s %10s%n", dep.getGroupId(), dep.getArtifactId(), dep.getVersion());
                a.addClasspath(dep.getArtifact());
            }
            pw.println(a.getClasspath());
            a.build();
            TreeSet<PackageRef> sorted = new TreeSet<PackageRef>(a.getImports().keySet());
            for (PackageRef p : sorted) {
                pw.printf("%-40s\n", p);
            }
            // for ( Map.Entry<String, Set<String>> entry :
            // a.getUses().entrySet()) {
            // String from = entry.getKey();
            // for ( String uses : entry.getValue()) {
            // System.err.printf("%40s %s\n", from, uses);
            // from = "";
            // }
            // }
            a.close();
        } else
            System.err.println("Wrong, must look like group+artifact+version, is " + ref);
    }
}
Also used : Maven(aQute.bnd.maven.support.Maven) Matcher(java.util.regex.Matcher) OutputStream(java.io.OutputStream) Builder(aQute.bnd.osgi.Builder) ArrayList(java.util.ArrayList) URI(java.net.URI) CachedPom(aQute.bnd.maven.support.CachedPom) Pom(aQute.bnd.maven.support.Pom) CachedPom(aQute.bnd.maven.support.CachedPom) TreeSet(java.util.TreeSet) PackageRef(aQute.bnd.osgi.Descriptors.PackageRef) PrintWriter(java.io.PrintWriter)

Example 5 with Maven

use of aQute.bnd.maven.support.Maven in project bnd by bndtools.

the class MavenTest method testMavenx.

public static void testMavenx() throws Exception {
    Maven maven = new Maven(null);
    CachedPom pom = maven.getPom("javax.xml.bind", "com.springsource.javax.xml.bind", "2.2.0", new URI("http://repository.springsource.com/maven/bundles/release"), new URI("http://repository.springsource.com/maven/bundles/external"));
    // Pom pom = maven.getPom("javax.xml.ws",
    // "com.springsource.javax.xml.ws", "2.1.1", new
    // URL("http://repository.springsource.com/maven/bundles/release"), new
    // URL("http://repository.springsource.com/maven/bundles/external"));
    System.err.println(pom.getGroupId() + " + " + pom.getArtifactId() + "-" + pom.getVersion());
    System.err.println(pom.getDependencies(Pom.Scope.compile));
    File artifact = pom.getArtifact();
    System.err.println(artifact);
}
Also used : Maven(aQute.bnd.maven.support.Maven) CachedPom(aQute.bnd.maven.support.CachedPom) URI(java.net.URI) File(java.io.File)

Aggregations

Maven (aQute.bnd.maven.support.Maven)6 File (java.io.File)4 CachedPom (aQute.bnd.maven.support.CachedPom)2 MavenEntry (aQute.bnd.maven.support.MavenEntry)2 MavenRemoteRepository (aQute.bnd.maven.support.MavenRemoteRepository)2 ProjectPom (aQute.bnd.maven.support.ProjectPom)2 URI (java.net.URI)2 Workspace (aQute.bnd.build.Workspace)1 Pom (aQute.bnd.maven.support.Pom)1 Dependency (aQute.bnd.maven.support.Pom.Dependency)1 Builder (aQute.bnd.osgi.Builder)1 PackageRef (aQute.bnd.osgi.Descriptors.PackageRef)1 Processor (aQute.bnd.osgi.Processor)1 OutputStream (java.io.OutputStream)1 PrintWriter (java.io.PrintWriter)1 ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1 TreeSet (java.util.TreeSet)1 Matcher (java.util.regex.Matcher)1 IFile (org.eclipse.core.resources.IFile)1