Examples of MavenEmbedder


Examples of hudson.maven.MavenEmbedder

                    // the compile or test classpath. As a backup, we do a best-effort lookup in the Maven repository
                    // For transitive dependencies, we could evaluate Plugin-Dependencies transitively.

                    String dependencies = m.getMainAttributes().getValue("Plugin-Dependencies");
                    if(dependencies!=null) {
                        MavenEmbedder embedder = MavenUtil.createEmbedder(new StreamTaskListener(System.out,Charset.defaultCharset()),(File)null,null);
                        for( String dep : dependencies.split(",")) {
                            String[] tokens = dep.split(":");
                            String artifactId = tokens[0];
                            String version = tokens[1];
                            File dependencyJar=resolveDependencyJar(embedder,artifactId,version);

                            File dst = new File(home, "plugins/" + artifactId + ".jpi");
                            if(!dst.exists() || dst.lastModified()!=dependencyJar.lastModified()) {
                                FileUtils.copyFile(dependencyJar, dst);
                            }
                        }
                    }
                }
            }

            private File resolveDependencyJar(MavenEmbedder embedder, String artifactId, String version) throws Exception {
                // try to locate it from manifest
                Enumeration<URL> manifests = getClass().getClassLoader().getResources("META-INF/MANIFEST.MF");
                while (manifests.hasMoreElements()) {
                    URL manifest = manifests.nextElement();
                    InputStream is = manifest.openStream();
                    Manifest m = new Manifest(is);
                    is.close();

                    if (artifactId.equals(m.getMainAttributes().getValue("Short-Name")))
                        return Which.jarFile(manifest);
                }

                // need to search multiple group IDs
                // TODO: extend manifest to include groupID:artifactID:version
                Exception resolutionError=null;
                for (String groupId : new String[]{"org.jvnet.hudson.plugins","org.jvnet.hudson.main"}) {

                    // first try to find it on the classpath.
                    // this takes advantage of Maven POM located in POM
                    URL dependencyPomResource = getClass().getResource("/META-INF/maven/"+groupId+"/"+artifactId+"/pom.xml");
                    if (dependencyPomResource != null) {
                        // found it
                        return Which.jarFile(dependencyPomResource);
                    } else {
                     
                      try {
                        // currently the most of the plugins are still hpi
                            return resolvePluginFile(embedder, artifactId, version, groupId, "hpi");
                      } catch(AbstractArtifactResolutionException x){
                        try {
                          // but also try with the new jpi
                            return resolvePluginFile(embedder, artifactId, version, groupId, "jpi");
                        } catch(AbstractArtifactResolutionException x2){
                                // could be a wrong groupId
                                resolutionError = x;
                        }
                      }
                     
                    }
                }

                throw new Exception("Failed to resolve plugin (tryied with types: 'jpi' and 'hpi'): "+artifactId+" version "+version, resolutionError);
            }

      private File resolvePluginFile(MavenEmbedder embedder, String artifactId, String version, String groupId, String type)
          throws MavenEmbedderException, ComponentLookupException, AbstractArtifactResolutionException {
        final Artifact jpi = embedder.createArtifact(groupId, artifactId, version, "compile"/*doesn't matter*/, type);
        embedder.resolve(jpi, Arrays.asList(embedder.createRepository("http://maven.glassfish.org/content/groups/public/","repo")),embedder.getLocalRepository());
        return jpi.getFile();
       
      }
        });
    }
View Full Code Here

Examples of hudson.maven.MavenEmbedder

        records.add(record);

        new TaskThread(this,ListenerAndText.forFile(logFile,this)) {
            protected void perform(TaskListener listener) throws Exception {
                try {
                    MavenEmbedder embedder = MavenUtil.createEmbedder(listener,getBuild());
                    ArtifactRepositoryLayout layout =
                        embedder.lookup( ArtifactRepositoryLayout.class,"default");
                    ArtifactRepositoryFactory factory =
                        (ArtifactRepositoryFactory) embedder.lookup(ArtifactRepositoryFactory.ROLE);

                    ArtifactRepository repository = factory.createDeploymentArtifactRepository(
                            id, repositoryUrl, layout, uniqueVersion);
                    WrappedArtifactRepository repo = new WrappedArtifactRepository(repository, uniqueVersion);
                    deploy(embedder,repo,listener);
View Full Code Here

Examples of hudson.maven.MavenEmbedder

                    // the compile or test classpath. As a backup, we do a best-effort lookup in the Maven repository
                    // For transitive dependencies, we could evaluate Plugin-Dependencies transitively.

                    String dependencies = m.getMainAttributes().getValue("Plugin-Dependencies");
                    if(dependencies!=null) {
                        MavenEmbedder embedder = MavenUtil
                                .createEmbedder(new StreamTaskListener(System.out, Charset.defaultCharset()),
                                        (File) null, null);
                        for( String dep : dependencies.split(",")) {
                            String[] tokens = dep.split(":");
                            String artifactId = tokens[0];
                            String version = tokens[1];
                            File dependencyJar=resolveDependencyJar(embedder,artifactId,version);

                            File dst = new File(home, "plugins/" + artifactId + ".jpi");
                            if(!dst.exists() || dst.lastModified()!=dependencyJar.lastModified()) {
                                FileUtils.copyFile(dependencyJar, dst);
                            }
                        }
                    }
                }
            }

            private File resolveDependencyJar(MavenEmbedder embedder, String artifactId, String version) throws Exception {
                // try to locate it from manifest
                Enumeration<URL> manifests = getClass().getClassLoader().getResources("META-INF/MANIFEST.MF");
                while (manifests.hasMoreElements()) {
                    URL manifest = manifests.nextElement();
                    InputStream is = manifest.openStream();
                    Manifest m = new Manifest(is);
                    is.close();

                    if (artifactId.equals(m.getMainAttributes().getValue("Short-Name")))
                        return Which.jarFile(manifest);
                }

                // need to search multiple group IDs
                // TODO: extend manifest to include groupID:artifactID:version
                Exception resolutionError=null;
                for (String groupId : new String[]{"org.jvnet.hudson.plugins","org.jvnet.hudson.main"}) {

                    // first try to find it on the classpath.
                    // this takes advantage of Maven POM located in POM
                    URL dependencyPomResource = getClass().getResource("/META-INF/maven/"+groupId+"/"+artifactId+"/pom.xml");
                    if (dependencyPomResource != null) {
                        // found it
                        return Which.jarFile(dependencyPomResource);
                    } else {

                      try {
                        // currently the most of the plugins are still hpi
                            return resolvePluginFile(embedder, artifactId, version, groupId, "hpi");
                      } catch(AbstractArtifactResolutionException x){
                        try {
                          // but also try with the new jpi
                            return resolvePluginFile(embedder, artifactId, version, groupId, "jpi");
                        } catch(AbstractArtifactResolutionException x2){
                                // could be a wrong groupId
                                resolutionError = x;
                        }
                      }

                    }
                }

                throw new Exception("Failed to resolve plugin: "+artifactId+" version "+version,resolutionError);
            }
           
            private File resolvePluginFile(MavenEmbedder embedder, String artifactId, String version, String groupId, String type)
          throws MavenEmbedderException, ComponentLookupException, AbstractArtifactResolutionException {
        final Artifact jpi = embedder.createArtifact(groupId, artifactId, version, "compile"/*doesn't matter*/, type);
        embedder.resolve(jpi, Arrays.asList(embedder.createRepository("http://maven.glassfish.org/content/groups/public/","repo")),embedder.getLocalRepository());
        return jpi.getFile();
       
      }
        });
    }
View Full Code Here

Examples of hudson.maven.MavenEmbedder

                    // the compile or test classpath. As a backup, we do a best-effort lookup in the Maven repository
                    // For transitive dependencies, we could evaluate Plugin-Dependencies transitively.

                    String dependencies = m.getMainAttributes().getValue("Plugin-Dependencies");
                    if(dependencies!=null) {
                        MavenEmbedder embedder = new MavenEmbedder(getClass().getClassLoader(), null);
                        for( String dep : dependencies.split(",")) {
                            String[] tokens = dep.split(":");
                            String artifactId = tokens[0];
                            String version = tokens[1];
                            File dependencyJar=null;
                            // need to search multiple group IDs
                            // TODO: extend manifest to include groupID:artifactID:version
                            Exception resolutionError=null;
                            for (String groupId : new String[]{"org.jvnet.hudson.plugins","org.jvnet.hudson.main"}) {

                                // first try to find it on the classpath.
                                // this takes advantage of Maven POM located in POM
                                URL dependencyPomResource = getClass().getResource("/META-INF/maven/"+groupId+"/"+artifactId+"/pom.xml");
                                if (dependencyPomResource != null) {
                                    // found it
                                    dependencyJar = Which.jarFile(dependencyPomResource);
                                    break;
                                } else {
                                    Artifact a;
                                    a = embedder.createArtifact(groupId, artifactId, version, "compile"/*doesn't matter*/, "hpi");
                                    try {
                                        embedder.resolve(a, Arrays.asList(embedder.createRepository("http://maven.glassfish.org/content/groups/public/","repo")),embedder.getLocalRepository());
                                        dependencyJar = a.getFile();
                                    } catch (AbstractArtifactResolutionException x) {
                                        // could be a wrong groupId
                                        resolutionError = x;
                                    }
View Full Code Here

Examples of org.apache.maven.embedder.MavenEmbedder

    private MavenEmbedder maven;
    private Properties sysProps = System.getProperties();
    private String version;

    protected void setUp() throws Exception {
        maven = new MavenEmbedder();
        maven.setOffline(true);
        ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
        maven.setClassLoader(classLoader);
        MavenEmbedderLogger logger = new MavenEmbedderConsoleLogger();
        //logger.setThreshold(MavenEmbedderLogger.LEVEL_DEBUG);
View Full Code Here

Examples of org.apache.maven.embedder.MavenEmbedder

    private Properties sysProps = System.getProperties();
    private String version;

    @Override
    protected void setUp() throws Exception {
        maven = new MavenEmbedder();
        maven.setOffline(false);
        System.err.println(sysProps.getProperty(MAVEN_REPO_LOCAL));
        if (StringUtils.isNotEmpty(sysProps.getProperty(MAVEN_REPO_LOCAL))) {
            maven.setLocalRepositoryDirectory(new File(sysProps.getProperty(MAVEN_REPO_LOCAL)));
        }
View Full Code Here

Examples of org.apache.maven.embedder.MavenEmbedder

    private MavenEmbedder maven;
    private Properties sysProps = System.getProperties();
    private String version;

    protected void setUp() throws Exception {
        maven = new MavenEmbedder();
        maven.setOffline(false);
        System.err.println(sysProps.getProperty(MAVEN_REPO_LOCAL));
        if (StringUtils.isNotEmpty(sysProps.getProperty(MAVEN_REPO_LOCAL))) {
            maven.setLocalRepositoryDirectory(new File(sysProps.getProperty(MAVEN_REPO_LOCAL)));
        }
View Full Code Here

Examples of org.apache.maven.embedder.MavenEmbedder

    private MavenEmbedder maven;
    private Properties sysProps = System.getProperties();
    private String version;
   
    protected void setUp() throws Exception {
        maven = new MavenEmbedder();
        maven.setOffline(true);
        ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
        maven.setClassLoader(classLoader);
        MavenEmbedderLogger logger = new MavenEmbedderConsoleLogger();
        //logger.setThreshold(MavenEmbedderLogger.LEVEL_DEBUG);
View Full Code Here

Examples of org.apache.maven.embedder.MavenEmbedder

    private MavenEmbedder maven;
    private Properties sysProps = System.getProperties();
    private String version;

    protected void setUp() throws Exception {
        maven = new MavenEmbedder();
        maven.setOffline(false);
        ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
        maven.setClassLoader(classLoader);
        MavenEmbedderLogger logger = new MavenEmbedderConsoleLogger();
        //logger.setThreshold(MavenEmbedderLogger.LEVEL_DEBUG);
View Full Code Here

Examples of org.apache.maven.embedder.MavenEmbedder

    private Properties sysProps = System.getProperties();
    private String version;

    @Override
    protected void setUp() throws Exception {
        maven = new MavenEmbedder();
        maven.setOffline(false);
        System.err.println(sysProps.getProperty(MAVEN_REPO_LOCAL));
        if (StringUtils.isNotEmpty(sysProps.getProperty(MAVEN_REPO_LOCAL))) {
            maven.setLocalRepositoryDirectory(new File(sysProps.getProperty(MAVEN_REPO_LOCAL)));
        }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.