Example usage for org.apache.maven.execution MavenExecutionRequestPopulator populateDefaults

List of usage examples for org.apache.maven.execution MavenExecutionRequestPopulator populateDefaults

Introduction

In this page you can find the example usage for org.apache.maven.execution MavenExecutionRequestPopulator populateDefaults.

Prototype

MavenExecutionRequest populateDefaults(MavenExecutionRequest request)
        throws MavenExecutionRequestPopulationException;

Source Link

Document

Injects default values like plugin groups or repositories into the specified execution request.

Usage

From source file:com.ruleoftech.markdown.page.generator.plugin.BetterAbstractMojoTestCase.java

protected MavenSession newMavenSession() {
    try {/*  w  w  w.j a  v a  2s.  co  m*/
        MavenExecutionRequest request = new DefaultMavenExecutionRequest();
        MavenExecutionResult result = new DefaultMavenExecutionResult();

        // populate sensible defaults, including repository basedir and remote repos
        MavenExecutionRequestPopulator populator;
        populator = getContainer().lookup(MavenExecutionRequestPopulator.class);
        populator.populateDefaults(request);

        // this is needed to allow java profiles to get resolved; i.e. avoid during project builds:
        // [ERROR] Failed to determine Java version for profile java-1.5-detected @ org.apache.commons:commons-parent:22, /Users/alex/.m2/repository/org/apache/commons/commons-parent/22/commons-parent-22.pom, line 909, column 14
        request.setSystemProperties(System.getProperties());

        // and this is needed so that the repo session in the maven session 
        // has a repo manager, and it points at the local repo
        // (cf MavenRepositorySystemUtils.newSession() which is what is otherwise done)
        DefaultMaven maven = (DefaultMaven) getContainer().lookup(Maven.class);
        DefaultRepositorySystemSession repoSession = (DefaultRepositorySystemSession) maven
                .newRepositorySession(request);
        repoSession.setLocalRepositoryManager(new SimpleLocalRepositoryManagerFactory().newInstance(repoSession,
                new LocalRepository(request.getLocalRepository().getBasedir())));

        @SuppressWarnings("deprecation")
        MavenSession session = new MavenSession(getContainer(), repoSession, request, result);
        return session;
    } catch (Exception e) {
        throw new RuntimeException(e);
    }
}

From source file:com.vladsch.flexmark.page.generator.plugin.BetterAbstractMojoTestCase.java

protected MavenSession newMavenSession() {
    try {//from  ww w  . ja va  2  s  .  c o m
        MavenExecutionRequest request = new DefaultMavenExecutionRequest();
        MavenExecutionResult result = new DefaultMavenExecutionResult();

        // populate sensible defaults, including repository basedir and remote repos
        MavenExecutionRequestPopulator populator;
        populator = getContainer().lookup(MavenExecutionRequestPopulator.class);
        populator.populateDefaults(request);

        // this is needed to allow java profiles to get resolved; i.e. avoid during project builds:
        // [ERROR] Failed to determine Java version for profile java-1.5-detected @ org.apache.commons:commons-parent:22, /Users/alex/.m2/repository/org/apache/commons/commons-parent/22/commons-parent-22.pom, line 909, column 14
        request.setSystemProperties(System.getProperties());

        // and this is needed so that the repo session in the maven session
        // has a repo manager, and it points at the local repo
        // (cf MavenRepositorySystemUtils.newSession() which is what is otherwise done)
        DefaultMaven maven = (DefaultMaven) getContainer().lookup(Maven.class);
        DefaultRepositorySystemSession repoSession = (DefaultRepositorySystemSession) maven
                .newRepositorySession(request);
        repoSession.setLocalRepositoryManager(new SimpleLocalRepositoryManagerFactory().newInstance(repoSession,
                new LocalRepository(request.getLocalRepository().getBasedir())));

        @SuppressWarnings("deprecation")
        MavenSession session = new MavenSession(getContainer(), repoSession, request, result);
        return session;
    } catch (Exception e) {
        throw new RuntimeException(e);
    }
}

From source file:info.debatty.sparkpackages.maven.plugin.MojoTestCase.java

License:Open Source License

/**
 * Create an instance of Mojo corresponding to the provided goal.
 * The Mojo will be configured according to values provided in the pom.
 * @param pom/* w w w.  j a  v  a 2 s .c o  m*/
 * @param goal
 * @return
 * @throws Exception if something went wrong...
 */
public final Mojo lookupConfiguredMojo(final File pom, final String goal) throws Exception {

    MavenExecutionRequest request = new DefaultMavenExecutionRequest();
    MavenExecutionResult result = new DefaultMavenExecutionResult();

    // populate default values for (a.o.) repository basedir and
    // remote repos
    MavenExecutionRequestPopulator populator = getContainer().lookup(MavenExecutionRequestPopulator.class);
    populator.populateDefaults(request);

    // this is needed to allow java profiles to get resolved;
    // i.e. avoid during project builds:
    // [ERROR] Failed to determine Java version for profile
    // java-1.5-detected
    request.setSystemProperties(System.getProperties());

    // and this is needed so that the repo session in the maven session
    // has a repo manager, and it points at the local repo
    // (cf MavenRepositorySystemUtils.newSession() which is what is
    // otherwise done)
    DefaultMaven maven = (DefaultMaven) getContainer().lookup(Maven.class);
    DefaultRepositorySystemSession repo_session = (DefaultRepositorySystemSession) maven
            .newRepositorySession(request);
    repo_session.setLocalRepositoryManager(new SimpleLocalRepositoryManagerFactory().newInstance(repo_session,
            new LocalRepository(request.getLocalRepository().getBasedir())));

    @SuppressWarnings("deprecation")
    MavenSession session = new MavenSession(getContainer(), repo_session, request, result);

    ProjectBuildingRequest building_request = session.getProjectBuildingRequest();
    ProjectBuilder project_builder = lookup(ProjectBuilder.class);
    MavenProject project = project_builder.build(pom, building_request).getProject();

    return super.lookupConfiguredMojo(project, goal);

}

From source file:io.takari.maven.testing.Maven30xRuntime.java

License:Open Source License

@SuppressWarnings("deprecation")
protected MavenExecutionRequest newExecutionRequest() throws Exception {

    // system properties
    Properties buildProperties = getMavenBuildProperties();
    String mavenVersion = buildProperties.getProperty("version");
    Properties systemProperties = new Properties();
    systemProperties.putAll(System.getProperties()); // TODO not thread safe
    systemProperties.setProperty("maven.version", mavenVersion);
    systemProperties.setProperty("maven.build.version", mavenVersion);

    // request with initial configuration
    MavenExecutionRequest request = new DefaultMavenExecutionRequest();
    request.setLocalRepositoryPath(properties.getLocalRepository());
    request.setUserSettingsFile(properties.getUserSettings());
    request.setGlobalSettingsFile(properties.getGlobalSettings());
    request.setOffline(properties.getOffline());
    request.setUpdateSnapshots(properties.getUpdateSnapshots());
    request.setSystemProperties(systemProperties);

    // read settings
    SettingsBuildingRequest settingsRequest = new DefaultSettingsBuildingRequest();
    settingsRequest.setGlobalSettingsFile(request.getGlobalSettingsFile());
    settingsRequest.setUserSettingsFile(request.getUserSettingsFile());
    settingsRequest.setSystemProperties(request.getSystemProperties());
    settingsRequest.setUserProperties(request.getUserProperties());
    Settings settings = lookup(SettingsBuilder.class).build(settingsRequest).getEffectiveSettings();

    MavenExecutionRequestPopulator populator = container.lookup(MavenExecutionRequestPopulator.class);
    request = populator.populateFromSettings(request, settings);
    return populator.populateDefaults(request);
}

From source file:org.commonjava.maven.ext.cli.Cli.java

License:Apache License

private void createSession(File target, File settings) {
    try {/*from  ww  w  .jav a2s .  c  o m*/
        final DefaultContainerConfiguration config = new DefaultContainerConfiguration();
        config.setClassPathScanning(PlexusConstants.SCANNING_ON);
        config.setComponentVisibility(PlexusConstants.GLOBAL_VISIBILITY);
        config.setName("PME-CLI");
        PlexusContainer container = new DefaultPlexusContainer(config);

        pomIO = container.lookup(PomIO.class);
        session = container.lookup(ManipulationSession.class);
        manipulationManager = container.lookup(ManipulationManager.class);

        final MavenExecutionRequest req = new DefaultMavenExecutionRequest()
                .setUserProperties(System.getProperties()).setUserProperties(userProps)
                .setRemoteRepositories(Collections.<ArtifactRepository>emptyList());

        ArtifactRepository ar = null;
        if (settings == null) {
            // No, this is not a typo. If current default is null, supply new local and global.
            // This function passes in settings to make it easier to test.
            this.settings = settings = new File(System.getProperty("user.home"), ".m2/settings.xml");

            ar = new MavenArtifactRepository();
            ar.setUrl("file://" + System.getProperty("user.home") + "/.m2/repository");
            req.setLocalRepository(ar);
        }

        req.setUserSettingsFile(settings);
        req.setGlobalSettingsFile(settings);

        MavenExecutionRequestPopulator executionRequestPopulator = container
                .lookup(MavenExecutionRequestPopulator.class);

        executionRequestPopulator.populateFromSettings(req, parseSettings(settings));
        executionRequestPopulator.populateDefaults(req);

        if (ar != null) {
            ar.setUrl("file://" + req.getLocalRepositoryPath());
        }

        if (userProps != null && userProps.containsKey("maven.repo.local")) {
            if (ar == null) {
                ar = new MavenArtifactRepository();
            }
            ar.setUrl("file://" + userProps.getProperty("maven.repo.local"));
            req.setLocalRepository(ar);
        }

        final MavenSession mavenSession = new MavenSession(container, null, req,
                new DefaultMavenExecutionResult());

        mavenSession.getRequest().setPom(target);

        session.setMavenSession(mavenSession);
    } catch (ComponentLookupException e) {
        logger.debug("Caught problem instantiating ", e);
        System.err.println("Unable to start Cli subsystem");
        System.exit(100);
    } catch (PlexusContainerException e) {
        logger.debug("Caught problem instantiating ", e);
        System.err.println("Unable to start Cli subsystem");
        System.exit(100);
    } catch (SettingsBuildingException e) {
        logger.debug("Caught problem parsing settings file ", e);
        System.err.println("Unable to parse settings.xml file");
        System.exit(100);
    } catch (MavenExecutionRequestPopulationException e) {
        logger.debug("Caught problem populating maven request from settings file ", e);
        System.err.println("Unable to create maven execution request from settings.xml file");
        System.exit(100);
    }
}

From source file:org.commonjava.maven.ext.manip.Cli.java

License:Apache License

private void createSession(File target, File settings) {
    try {/*from   ww  w.j a  v a2s .c  o m*/
        PlexusContainer container = new DefaultPlexusContainer();

        final MavenExecutionRequest req = new DefaultMavenExecutionRequest()
                .setUserProperties(System.getProperties()).setUserProperties(userProps)
                .setRemoteRepositories(Collections.<ArtifactRepository>emptyList());

        if (userProps != null && userProps.containsKey("maven.repo.local")) {
            ArtifactRepository ar = new MavenArtifactRepository();
            ar.setUrl("file://" + userProps.getProperty("maven.repo.local"));
            req.setLocalRepository(ar);
        }

        if (settings != null) {
            req.setUserSettingsFile(settings);
            req.setGlobalSettingsFile(settings);

            MavenExecutionRequestPopulator executionRequestPopulator = container
                    .lookup(MavenExecutionRequestPopulator.class);

            executionRequestPopulator.populateFromSettings(req, parseSettings(settings));
            executionRequestPopulator.populateDefaults(req);
        }

        final MavenSession mavenSession = new MavenSession(container, null, req,
                new DefaultMavenExecutionResult());

        mavenSession.getRequest().setPom(target);

        pomIO = container.lookup(PomIO.class);
        session = container.lookup(ManipulationSession.class);
        manipulationManager = container.lookup(ManipulationManager.class);

        session.setMavenSession(mavenSession);
    } catch (ComponentLookupException e) {
        logger.debug("Caught problem instantiating ", e);
        System.err.println("Unable to start Cli subsystem");
        System.exit(100);
        e.printStackTrace();
    } catch (PlexusContainerException e) {
        logger.debug("Caught problem instantiating ", e);
        System.err.println("Unable to start Cli subsystem");
        System.exit(100);
    } catch (SettingsBuildingException e) {
        logger.debug("Caught problem parsing settings file ", e);
        System.err.println("Unable to parse settings.xml file");
        System.exit(100);
    } catch (MavenExecutionRequestPopulationException e) {
        logger.debug("Caught problem populating maven request from settings file ", e);
        System.err.println("Unable to create maven execution request from settings.xml file");
        System.exit(100);
    }
}

From source file:org.echocat.jomon.maven.boot.ArtifactFactory.java

License:Mozilla Public License

private MavenExecutionRequest injectDefaults(MavenExecutionRequest request,
        AtomicReference<PlexusContainer> containerReference, AtomicReference<DefaultMaven> oldMaven,
        DefaultMavenExecutionResult executionResult)
        throws ComponentLookupException, MavenExecutionRequestPopulationException {
    final MavenExecutionRequestPopulator populator = containerReference.get()
            .lookup(MavenExecutionRequestPopulator.class);
    final MavenExecutionRequest resultRequest = populator.populateDefaults(request);

    final RepositorySystemSession repositorySystemSession = oldMaven.get().newRepositorySession(resultRequest);
    resultRequest.getProjectBuildingRequest().setRepositorySession(repositorySystemSession);

    final MavenSession session = new MavenSession(containerReference.get(), repositorySystemSession, request,
            executionResult);/* w  ww  . j  av  a 2s .com*/
    final LegacySupport legacySupport = containerReference.get().lookup(LegacySupport.class);
    legacySupport.setSession(session);
    return resultRequest;
}

From source file:org.echocat.jomon.maven.MavenEnvironmentFactory.java

License:Mozilla Public License

@Nonnull
protected MavenExecutionRequest warpExecutionRequest(@Nonnull MavenExecutionRequest request,
        @Nonnull PlexusContainer container)
        throws ComponentLookupException, MavenExecutionRequestPopulationException {
    final MavenExecutionRequestPopulator populator = container.lookup(MavenExecutionRequestPopulator.class);
    return populator.populateDefaults(request);
}

From source file:org.jboss.forge.addon.maven.projects.MavenBuildManager.java

License:Open Source License

@SuppressWarnings("deprecation")
private ProjectBuildingRequest getProjectBuildingRequest(final boolean offline) {
    ClassLoader cl = Thread.currentThread().getContextClassLoader();
    try {// w  w  w.  j a  va  2  s.c  om
        Settings settings = container.getSettings();
        // TODO this needs to be configurable via .forge
        // TODO this reference to the M2_REPO should probably be centralized

        MavenExecutionRequest executionRequest = new DefaultMavenExecutionRequest();
        MavenExecutionRequestPopulator populator = getPlexus().lookup(MavenExecutionRequestPopulator.class);
        populator.populateFromSettings(executionRequest, container.getSettings());
        populator.populateDefaults(executionRequest);
        RepositorySystem system = getPlexus().lookup(RepositorySystem.class);
        ProjectBuildingRequest request = executionRequest.getProjectBuildingRequest();

        ArtifactRepository localRepository = RepositoryUtils.toArtifactRepository("local",
                new File(settings.getLocalRepository()).toURI().toURL().toString(), null, true, true);
        request.setLocalRepository(localRepository);

        List<ArtifactRepository> settingsRepos = new ArrayList<>(request.getRemoteRepositories());
        List<String> activeProfiles = settings.getActiveProfiles();

        Map<String, Profile> profiles = settings.getProfilesAsMap();

        for (String id : activeProfiles) {
            Profile profile = profiles.get(id);
            if (profile != null) {
                List<Repository> repositories = profile.getRepositories();
                for (Repository repository : repositories) {
                    settingsRepos.add(RepositoryUtils.convertFromMavenSettingsRepository(repository));
                }
            }
        }
        request.setRemoteRepositories(settingsRepos);
        request.setSystemProperties(System.getProperties());

        DefaultRepositorySystemSession repositorySession = MavenRepositorySystemUtils.newSession();
        Proxy activeProxy = settings.getActiveProxy();
        if (activeProxy != null) {
            DefaultProxySelector dps = new DefaultProxySelector();
            dps.add(RepositoryUtils.convertFromMavenProxy(activeProxy), activeProxy.getNonProxyHosts());
            repositorySession.setProxySelector(dps);
        }
        LocalRepository localRepo = new LocalRepository(settings.getLocalRepository());
        repositorySession
                .setLocalRepositoryManager(system.newLocalRepositoryManager(repositorySession, localRepo));
        repositorySession.setOffline(offline);
        List<Mirror> mirrors = executionRequest.getMirrors();
        if (mirrors != null) {
            DefaultMirrorSelector mirrorSelector = new DefaultMirrorSelector();
            for (Mirror mirror : mirrors) {
                mirrorSelector.add(mirror.getId(), mirror.getUrl(), mirror.getLayout(), false,
                        mirror.getMirrorOf(), mirror.getMirrorOfLayouts());
            }
            repositorySession.setMirrorSelector(mirrorSelector);
        }

        request.setRepositorySession(repositorySession);
        request.setProcessPlugins(false);
        request.setResolveDependencies(false);
        return request;
    } catch (RuntimeException e) {
        throw e;
    } catch (Exception e) {
        throw new RuntimeException("Could not create Maven project building request", e);
    } finally {
        /*
         * We reset the classloader to prevent potential modules bugs if Classwords container changes classloaders on
         * us
         */
        Thread.currentThread().setContextClassLoader(cl);
    }
}

From source file:org.jboss.forge.arquillian.maven.ProjectHelper.java

License:Open Source License

private ProjectBuildingRequest getBuildingRequest(PlexusContainer plexus) {
    if (this.request == null) {
        ClassLoader cl = Thread.currentThread().getContextClassLoader();
        try {/*from   w w w  .j a  v a 2s  .  com*/
            Settings settings = mavenContainer.getSettings();
            // TODO this needs to be configurable via .forge
            // TODO this reference to the M2_REPO should probably be centralized
            MavenExecutionRequest executionRequest = new DefaultMavenExecutionRequest();

            RepositorySystem repositorySystem = plexus.lookup(RepositorySystem.class);
            MavenExecutionRequestPopulator requestPopulator = plexus
                    .lookup(MavenExecutionRequestPopulator.class);

            requestPopulator.populateFromSettings(executionRequest, settings);
            requestPopulator.populateDefaults(executionRequest);

            ProjectBuildingRequest request = executionRequest.getProjectBuildingRequest();

            org.apache.maven.artifact.repository.ArtifactRepository localRepository = RepositoryUtils
                    .toArtifactRepository("local",
                            new File(settings.getLocalRepository()).toURI().toURL().toString(), null, true,
                            true);
            request.setLocalRepository(localRepository);

            List<org.apache.maven.artifact.repository.ArtifactRepository> settingsRepos = new ArrayList<org.apache.maven.artifact.repository.ArtifactRepository>(
                    request.getRemoteRepositories());
            List<String> activeProfiles = settings.getActiveProfiles();

            Map<String, Profile> profiles = settings.getProfilesAsMap();

            for (String id : activeProfiles) {
                Profile profile = profiles.get(id);
                if (profile != null) {
                    List<Repository> repositories = profile.getRepositories();
                    for (Repository repository : repositories) {
                        settingsRepos.add(RepositoryUtils.convertFromMavenSettingsRepository(repository));
                    }
                }
            }
            request.setRemoteRepositories(settingsRepos);
            request.setSystemProperties(System.getProperties());

            DefaultRepositorySystemSession repositorySession = MavenRepositorySystemUtils.newSession();
            Proxy activeProxy = settings.getActiveProxy();
            if (activeProxy != null) {
                DefaultProxySelector dps = new DefaultProxySelector();
                dps.add(RepositoryUtils.convertFromMavenProxy(activeProxy), activeProxy.getNonProxyHosts());
                repositorySession.setProxySelector(dps);
            }
            LocalRepository localRepo = new LocalRepository(settings.getLocalRepository());

            repositorySession.setLocalRepositoryManager(
                    repositorySystem.newLocalRepositoryManager(repositorySession, localRepo));
            repositorySession.setOffline(settings.isOffline());
            List<Mirror> mirrors = executionRequest.getMirrors();
            DefaultMirrorSelector mirrorSelector = new DefaultMirrorSelector();
            if (mirrors != null) {
                for (Mirror mirror : mirrors) {
                    mirrorSelector.add(mirror.getId(), mirror.getUrl(), mirror.getLayout(), false,
                            mirror.getMirrorOf(), mirror.getMirrorOfLayouts());
                }
            }
            repositorySession.setMirrorSelector(mirrorSelector);

            LazyAuthenticationSelector authSelector = new LazyAuthenticationSelector(mirrorSelector);
            for (Server server : settings.getServers()) {
                authSelector.add(server.getId(),
                        new AuthenticationBuilder().addUsername(server.getUsername())
                                .addPassword(server.getPassword())
                                .addPrivateKey(server.getPrivateKey(), server.getPassphrase()).build());
            }
            repositorySession.setAuthenticationSelector(authSelector);

            request.setRepositorySession(repositorySession);
            request.setProcessPlugins(false);
            request.setResolveDependencies(false);
            this.request = request;
        } catch (RuntimeException e) {
            throw e;
        } catch (Exception e) {
            throw new RuntimeException("Could not create Maven project building request", e);
        } finally {
            /*
             * We reset the classloader to prevent potential modules bugs if Classwords container changes classloaders
             * on us
             */
            Thread.currentThread().setContextClassLoader(cl);
        }
    }
    return request;
}