Example usage for org.apache.maven.execution ReactorManager getSortedProjects

List of usage examples for org.apache.maven.execution ReactorManager getSortedProjects

Introduction

In this page you can find the example usage for org.apache.maven.execution ReactorManager getSortedProjects.

Prototype

public List<MavenProject> getSortedProjects() 

Source Link

Usage

From source file:hudson.gridmaven.Maven2Builder.java

License:Open Source License

@Override
void preBuild(MavenSession session, ReactorManager rm, EventDispatcher dispatcher)
        throws BuildFailureException, LifecycleExecutionException, IOException, InterruptedException {
    // set all modules which are not actually being build (in incremental builds) to NOT_BUILD

    List<MavenProject> projects = rm.getSortedProjects();
    Set<ModuleName> buildingProjects = new HashSet<ModuleName>();
    for (MavenProject p : projects) {
        buildingProjects.add(new ModuleName(p));
    }//from  w w  w  . j  a v a 2  s.  c o m

    for (Entry<ModuleName, FilterImpl> e : this.proxies.entrySet()) {
        if (!buildingProjects.contains(e.getKey())) {
            MavenBuildProxy2 proxy = e.getValue();
            proxy.start();
            proxy.setResult(Result.NOT_BUILT);
            proxy.end();
        }
    }
}

From source file:org.maven.ide.eclipse.embedder.BuildPathManager.java

License:Apache License

private MavenProject collectSourceEntries(IProject project, List sourceEntries, Set sources,
        ResolverConfiguration configuration, IProgressMonitor monitor) {
    if (monitor.isCanceled()) {
        throw new OperationCanceledException();
    }//from w  w  w . j  a  va 2s . c om

    Maven2Plugin plugin = Maven2Plugin.getDefault();
    IPreferenceStore preferenceStore = plugin.getPreferenceStore();
    boolean offline = preferenceStore.getBoolean(Maven2PreferenceConstants.P_OFFLINE);
    boolean debug = preferenceStore.getBoolean(Maven2PreferenceConstants.P_DEBUG_OUTPUT);
    String globalSettings = preferenceStore.getString(Maven2PreferenceConstants.P_GLOBAL_SETTINGS_FILE);

    MavenEmbedder mavenEmbedder;
    try {
        // XXX should use project embedder with resolving from workspace?
        mavenEmbedder = EmbedderFactory.createMavenEmbedder(EmbedderFactory.createExecutionCustomizer(),
                new PluginConsoleMavenEmbeddedLogger(console, debug), globalSettings);
    } catch (MavenEmbedderException ex) {
        console.logError("Unable to create embedder; " + ex.toString());
        return null;
    }

    IFile pomResource = project.getFile(Maven2Plugin.POM_FILE_NAME);

    monitor.setTaskName("Reading " + pomResource.getFullPath());
    if (preferenceStore.getBoolean(Maven2PreferenceConstants.P_DEBUG_OUTPUT)) {
        console.logMessage("Reading " + pomResource.getFullPath());
    }

    File pomFile = pomResource.getLocation().toFile();

    MavenProject mavenProject;
    //    try {
    //      mavenProject = mavenEmbedder.readProject(pomFile);
    //    } catch(Exception ex) {
    //      console.logError("Unable to read project " + pomResource.getFullPath() + "; " + ex.toString());
    //      return null;
    //    }

    File basedir = pomResource.getLocation().toFile().getParentFile();
    File projectBaseDir = project.getLocation().toFile();

    monitor.subTask("Generating Sources " + pomResource.getFullPath());
    try {
        console.logMessage("Generating sources " + pomResource.getFullPath());

        MavenExecutionRequest request = EmbedderFactory.createMavenExecutionRequest(mavenEmbedder, offline,
                debug);

        request.setUseReactor(false);
        request.setRecursive(configuration.shouldIncludeModules());

        request.setBaseDirectory(pomFile.getParentFile());
        request.setGoals(Collections.singletonList("process-test-resources"));
        request.addEventMonitor(new PluginConsoleEventMonitor(console));
        request.setTransferListener(new TransferListenerAdapter(monitor, console, indexManager));
        // request.setPomFile(pomFile.getAbsolutePath());
        // request.setGoals(Arrays.asList("generate-sources,generate-resources,generate-test-sources,generate-test-resources".split(",")));
        // request.setProfiles(...);
        // request.setReactorFailureBehavior(MavenExecutionRequest.REACTOR_FAIL_AT_END);

        MavenExecutionResult result = mavenEmbedder.execute(request);

        // TODO optimize project refresh
        monitor.subTask("Refreshing");
        project.refreshLocal(IResource.DEPTH_INFINITE, new SubProgressMonitor(monitor, 1));

        mavenProject = result.getProject();

        ReactorManager reactorManager = result.getReactorManager();
        if (reactorManager != null && reactorManager.getSortedProjects() != null) {
            if (configuration.shouldIncludeModules()) {
                for (Iterator it = reactorManager.getSortedProjects().iterator(); it.hasNext();) {
                    addDirs(project, sources, sourceEntries, (MavenProject) it.next(), basedir, projectBaseDir);
                }
            } else {
                addDirs(project, sources, sourceEntries, //
                        (MavenProject) reactorManager.getSortedProjects().iterator().next(), //
                        basedir, projectBaseDir);
            }
        }

        if (result.hasExceptions()) {
            for (Iterator it = result.getExceptions().iterator(); it.hasNext();) {
                Exception ex = (Exception) it.next();
                console.logError("Build error for " + pomResource.getFullPath() + "; " + ex.toString());
            }
        }

        if (mavenProject == null) {
            try {
                mavenProject = mavenEmbedder.readProject(pomFile);
            } catch (Exception ex2) {
                console.logError("Unable to read project " + pomResource.getFullPath() + "; " + ex2.toString());
                return null;
            }
        }

    } catch (Exception ex) {
        String msg = "Build error for " + pomResource.getFullPath();
        console.logError(msg + "; " + ex.toString());
        Maven2Plugin.log(msg, ex);

        try {
            mavenProject = mavenEmbedder.readProject(pomFile);
        } catch (Exception ex2) {
            console.logError("Unable to read project " + pomResource.getFullPath() + "; " + ex.toString());
            return null;
        }

        addDirs(project, sources, sourceEntries, mavenProject, basedir, projectBaseDir);
    }

    return mavenProject;
}

From source file:org.maven.ide.eclipse.embedder.EclipseLifecycleExecutor.java

License:Apache License

public static List /*java.util.File*/ getAffectedProjects() {
    Object obj = reactorManager.get();
    if (obj instanceof ReactorManager) {
        ReactorManager rm = (ReactorManager) obj;
        List lst = rm.getSortedProjects();
        Iterator it = lst.iterator();
        List toRet = new ArrayList();
        while (it.hasNext()) {
            MavenProject elem = (MavenProject) it.next();
            toRet.add(elem.getFile());// w w w.j av a2 s  . c  om
        }
        return toRet;
    }
    return Collections.EMPTY_LIST;
}