Example usage for org.apache.maven.execution MavenSession getProjectBuildingRequest

List of usage examples for org.apache.maven.execution MavenSession getProjectBuildingRequest

Introduction

In this page you can find the example usage for org.apache.maven.execution MavenSession getProjectBuildingRequest.

Prototype

public ProjectBuildingRequest getProjectBuildingRequest() 

Source Link

Usage

From source file:fr.fastconnect.factory.tibco.bw.maven.BWLifecycleParticipant.java

License:Apache License

private List<MavenProject> prepareProjects(List<MavenProject> projects, MavenSession session)
        throws MavenExecutionException {
    List<MavenProject> result = new ArrayList<MavenProject>();

    ProjectBuildingRequest projectBuildingRequest = session.getProjectBuildingRequest();

    for (MavenProject mavenProject : projects) {
        logger.debug("project: " + mavenProject.getGroupId() + ":" + mavenProject.getArtifactId());

        List<String> oldActiveProfileIds = projectBuildingRequest.getActiveProfileIds();
        try {//from  w  ww.  ja  va 2s  . c  o m
            List<String> activeProfileIds = activateProfilesWithProperties(mavenProject, oldActiveProfileIds);
            if (activeProfileIds.size() != oldActiveProfileIds.size()) {
                projectBuildingRequest.setActiveProfileIds(activeProfileIds);
                if (mavenProject.getFile() != null) {
                    List<File> files = new ArrayList<File>();
                    files.add(mavenProject.getFile());
                    List<ProjectBuildingResult> results = null;
                    try {
                        results = projectBuilder.build(files, true, projectBuildingRequest);
                    } catch (ProjectBuildingException e) {
                    }

                    for (ProjectBuildingResult projectBuildingResult : results) {
                        mavenProject = projectBuildingResult.getProject();
                    }
                }
            }
        } finally {
            projectBuildingRequest.setActiveProfileIds(oldActiveProfileIds);
        }

        if (mavenProject.getPackaging().startsWith(AbstractBWMojo.BWEAR_TYPE)
                || "true".equals(propertiesManager.getPropertyValue("enableBWLifecycle"))) {
            addTIBCODependenciesToPlugin(mavenProject, logger);
        }
        result.add(mavenProject);
    }

    return result;
}

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/*from   w  ww.  j a  va2  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:info.ronjenkins.maven.rtr.steps.release.RebuildReleaseReactor.java

License:Apache License

@Override
protected void releaseExecute(final MavenSession session, final RTRComponents components)
        throws MavenExecutionException {
    final List<MavenProject> reactor = session.getProjects();
    final List<MavenProject> newReactor = new ArrayList<>(reactor.size());
    final ProjectBuilder projectBuilder = components.getProjectBuilder();
    File pomFile;//  ww  w  .j  a va2 s.c  o m
    ProjectBuildingResult result;
    MavenProject newProject;
    for (final MavenProject project : reactor) {
        pomFile = project.getFile();
        try {
            result = projectBuilder.build(pomFile, session.getProjectBuildingRequest());
        } catch (final ProjectBuildingException e) {
            this.logger.error("");
            throw new SmartReactorReleaseException(e);
        }
        newProject = result.getProject();
        if (project.isExecutionRoot()) {
            newProject.setExecutionRoot(true);
        }
        newReactor.add(newProject);
    }
    // Set the new list of projects, but don't replace the actual list
    // object.
    session.getProjects().clear();
    session.getProjects().addAll(newReactor);
}

From source file:org.debian.dependency.DefaultDependencyCollection.java

License:Apache License

private MavenProject buildProject(final String groupId, final String artifactId, final String version,
        final MavenSession session) throws DependencyResolutionException {
    Artifact artifact = repositorySystem.createProjectArtifact(groupId, artifactId, version);

    ProjectBuildingRequest request = new DefaultProjectBuildingRequest(session.getProjectBuildingRequest());
    request.setActiveProfileIds(null);//from  w  w w  .  j  a  va 2 s  .  co  m
    request.setInactiveProfileIds(null);
    request.setProfiles(null);
    request.setResolveDependencies(false); // we may filter them out
    request.setUserProperties(null);
    request.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL);

    try {
        ProjectBuildingResult result = projectBuilder.build(artifact, request);
        return result.getProject();
    } catch (ProjectBuildingException e) {
        throw new DependencyResolutionException(e);
    }
}

From source file:org.debian.dependency.sources.SCMSourceRetrieval.java

License:Apache License

private MavenProject constructProject(final Artifact artifact, final MavenSession session)
        throws SourceRetrievalException {
    try {/*from   ww  w  . ja  v  a2 s.c o  m*/
        // pom files are not set up in projects which are not in the workspace, we add them in manually since they are needed
        Artifact pomArtifact = repositorySystem.createProjectArtifact(artifact.getGroupId(),
                artifact.getArtifactId(), artifact.getVersion());
        pomArtifact = resolveArtifact(pomArtifact, session);

        ProjectBuildingRequest request = new DefaultProjectBuildingRequest(session.getProjectBuildingRequest());
        request.setActiveProfileIds(null);
        request.setInactiveProfileIds(null);
        request.setUserProperties(null);

        ProjectBuildingResult result = projectBuilder.build(artifact, request);

        MavenProject mavenProject = result.getProject();
        mavenProject.setArtifact(resolveArtifact(mavenProject.getArtifact(), session));
        mavenProject.setFile(pomArtifact.getFile());
        return mavenProject;
    } catch (ProjectBuildingException e) {
        throw new SourceRetrievalException(e);
    }
}

From source file:org.phenotips.tool.utils.MavenUtils.java

License:Open Source License

/**
 * Resolve a Maven artifact into a project object.
 *
 * @param artifact the coordinates of the project to resolve
 * @param session the current Maven session
 * @param projectBuilder the project builder active in this session
 * @return the project object, if successfully resolved
 * @throws MojoExecutionException if the project couldn't be resolved
 *//*from  w ww  .  j a va2s. com*/
public static MavenProject getMavenProject(Artifact artifact, MavenSession session,
        ProjectBuilder projectBuilder) throws MojoExecutionException {
    try {
        ProjectBuildingRequest request = new DefaultProjectBuildingRequest(session.getProjectBuildingRequest())
                // We don't want to execute any plugin here
                .setProcessPlugins(false)
                // It's not this plugin job to validate this pom.xml
                .setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL)
                // Use the repositories configured for the built project instead of the global Maven ones
                .setRemoteRepositories(session.getCurrentProject().getRemoteArtifactRepositories());
        // Note: build() will automatically get the POM artifact corresponding to the passed artifact.
        ProjectBuildingResult result = projectBuilder.build(artifact, request);
        return result.getProject();
    } catch (ProjectBuildingException e) {
        throw new MojoExecutionException(String.format("Failed to build project for [%s]", artifact), e);
    }
}

From source file:org.phpmaven.project.impl.DependencyHelper.java

License:Apache License

public static Iterable<IAction> getDependencyActions(Artifact dep, IDependencyConfiguration depConfig,
        RepositorySystem reposSystem, MavenSession session, ProjectBuilder projectBuilder,
        IComponentFactory factory) throws MojoExecutionException {
    final List<IAction> actions = new ArrayList<IAction>();
    boolean hasClassic = true;

    // try to find dependency configuration
    for (final IDependency depCfg : depConfig.getDependencies()) {
        if (depCfg.getGroupId().equals(dep.getGroupId())
                && depCfg.getArtifactId().equals(dep.getArtifactId())) {
            hasClassic = false;//from  w  w  w  . j a  v a  2  s.co m
            for (final IAction action : depCfg.getActions()) {
                if (action.getType() == ActionType.ACTION_CLASSIC) {
                    hasClassic = true;
                } else {
                    actions.add(action);
                }
            }
            break;
        }
    }

    if (hasClassic) {
        // try to resolve project defaults
        final Artifact artifact = resolveArtifact(dep.getGroupId(), dep.getArtifactId(), dep.getVersion(),
                "pom", null, reposSystem, session);
        final File pomFile = artifact.getFile();
        final ProjectBuildingRequest pbr = new DefaultProjectBuildingRequest(
                session.getProjectBuildingRequest());
        pbr.setProcessPlugins(false);
        ProjectBuildingResult pbres;
        try {
            pbres = projectBuilder.build(pomFile, pbr);
        } catch (ProjectBuildingException e) {
            throw new MojoExecutionException("Error building project", e);
        }
        final MavenProject project = pbres.getProject();
        final Xpp3Dom pluginConfig = factory.getBuildConfig(project, "org.phpmaven", "maven-php-dependency");
        if (pluginConfig != null) {
            final Xpp3Dom defaultConfig = pluginConfig.getChild("defaults");
            if (defaultConfig != null) {
                // filter the other nodes to prevent from broken configs on future versions
                while (pluginConfig.getChildCount() > 0)
                    pluginConfig.removeChild(0);
                pluginConfig.addChild(defaultConfig);
                IDependencyConfiguration defCfg;
                try {
                    defCfg = factory.lookup(IDependencyConfiguration.class, pluginConfig, null);
                } catch (ComponentLookupException e) {
                    throw new MojoExecutionException("error receiving default config", e);
                } catch (PlexusConfigurationException e) {
                    throw new MojoExecutionException("error receiving default config", e);
                }
                for (final IAction action : defCfg.getDefaults()) {
                    actions.add(action);
                }
                hasClassic = false;
            }
        }

        // if hasClassic is still true we did not find any default config
        if (hasClassic) {
            actions.add(new Classic());
        }
    }
    return actions;
}

From source file:org.sourcepit.maven.bootstrap.core.AbstractBootstrapper.java

License:Apache License

private List<MavenProject> buildBootstrapProjects(MavenSession session, Collection<File> descriptors) {
    final ProjectBuildingRequest request = new DefaultProjectBuildingRequest(
            session.getProjectBuildingRequest());
    request.setRemoteRepositories(filterArtifactRepositories(request.getRemoteRepositories()));

    final List<ProjectBuildingResult> results;
    try {/*from w w  w.j a  va 2s  .  co  m*/
        results = projectBuilder.build(new ArrayList<File>(descriptors), false, request);
    } catch (ProjectBuildingException e) {
        throw new IllegalStateException("Cannot build bootstrapper project for " + e.getPomFile(), e);
    }

    final List<MavenProject> projects = new ArrayList<MavenProject>(results.size());
    for (ProjectBuildingResult result : results) {
        final MavenProject project = result.getProject();
        project.setRemoteArtifactRepositories(
                filterArtifactRepositories(project.getRemoteArtifactRepositories()));
        project.setPluginArtifactRepositories(
                filterArtifactRepositories(project.getPluginArtifactRepositories()));
        projects.add(project);
    }

    final ProjectSorter projectSorter;
    try {
        // HACK: Constructor arg changed with Maven 3.2 from List to Collection which made it binary incompatible
        projectSorter = (ProjectSorter) ProjectSorter.class.getConstructors()[0].newInstance(projects);
    } catch (InstantiationException e) {
        throw new IllegalStateException(e);
    } catch (IllegalAccessException e) {
        throw new IllegalStateException(e);
    } catch (InvocationTargetException e) {
        throw new IllegalStateException(e.getTargetException());
    }

    return projectSorter.getSortedProjects();
}