Example usage for org.apache.maven.plugin MojoExecution setConfiguration

List of usage examples for org.apache.maven.plugin MojoExecution setConfiguration

Introduction

In this page you can find the example usage for org.apache.maven.plugin MojoExecution setConfiguration.

Prototype

public void setConfiguration(Xpp3Dom configuration) 

Source Link

Usage

From source file:com.liferay.ide.maven.core.ThemePluginBuildParticipant.java

License:Open Source License

protected IStatus executeThemeMojo(final IMavenProjectFacade facade, final IMavenExecutionContext context,
        final IProgressMonitor monitor) throws CoreException {
    IStatus retval = null;// ww w.j  a va  2  s . c  o m

    final List<String> goals = Collections.singletonList(getGoal());

    final MavenProject mavenProject = facade.getMavenProject(monitor);
    final MavenExecutionPlan plan = maven.calculateExecutionPlan(mavenProject, goals, true, monitor);

    monitor.worked(10);

    final MojoExecution liferayMojoExecution = MavenUtil.getExecution(plan,
            ILiferayMavenConstants.LIFERAY_MAVEN_PLUGIN_ARTIFACT_ID);

    final Xpp3Dom originalConfig = liferayMojoExecution.getConfiguration();

    final Xpp3Dom config = Xpp3DomUtils.mergeXpp3Dom(new Xpp3Dom("configuration"), originalConfig); //$NON-NLS-1$

    configureExecution(facade, config);

    boolean parentHierarchyLoaded = false;

    try {
        parentHierarchyLoaded = MavenUtil.loadParentHierarchy(facade, monitor);

        monitor.worked(10);

        final ResolverConfiguration configuration = facade.getResolverConfiguration();
        configuration.setResolveWorkspaceProjects(true);

        liferayMojoExecution.setConfiguration(config);

        maven.execute(mavenProject, liferayMojoExecution, monitor);

        monitor.worked(50);

        List<Throwable> exceptions = context.getSession().getResult().getExceptions();

        if (exceptions.size() == 1) {
            retval = LiferayMavenCore.createErrorStatus(exceptions.get(0));
        } else if (exceptions.size() > 1) {
            List<IStatus> statuses = new ArrayList<IStatus>();

            for (Throwable t : exceptions) {
                statuses.add(LiferayMavenCore.createErrorStatus(t));
            }

            retval = LiferayMavenCore.createMultiStatus(IStatus.ERROR, statuses.toArray(new IStatus[0]));
        }

        retval = retval == null ? Status.OK_STATUS : retval;
    } catch (CoreException e) {
        retval = LiferayMavenCore.createErrorStatus(e);
    } finally {
        liferayMojoExecution.setConfiguration(originalConfig);

        if (parentHierarchyLoaded) {
            mavenProject.setParent(null);
        }
    }

    return retval;
}

From source file:com.puppetlabs.geppetto.forge.maven.plugin.AbstractForgeTestMojo.java

License:Open Source License

private void finalizeMojoConfiguration(MojoExecution mojoExecution) {
    MojoDescriptor mojoDescriptor = mojoExecution.getMojoDescriptor();
    MavenProject project = getMavenSession().getCurrentProject();
    PluginDescriptor pluginDescriptor = mojoDescriptor.getPluginDescriptor();
    Plugin plugin = project.getPlugin(pluginDescriptor.getPluginLookupKey());
    pluginDescriptor.setPlugin(plugin);/*from   w ww  .  j ava 2s.  c o m*/

    Xpp3Dom executionConfiguration = mojoExecution.getConfiguration();
    if (executionConfiguration == null)
        executionConfiguration = new Xpp3Dom("configuration");

    Xpp3Dom defaultConfiguration = MojoDescriptorCreator.convert(mojoDescriptor);
    Xpp3Dom finalConfiguration = new Xpp3Dom("configuration");

    if (mojoDescriptor.getParameters() != null) {
        for (Parameter parameter : mojoDescriptor.getParameters()) {
            Xpp3Dom parameterConfiguration = executionConfiguration.getChild(parameter.getName());

            if (parameterConfiguration == null)
                parameterConfiguration = executionConfiguration.getChild(parameter.getAlias());

            Xpp3Dom parameterDefaults = defaultConfiguration.getChild(parameter.getName());
            parameterConfiguration = Xpp3Dom.mergeXpp3Dom(parameterConfiguration, parameterDefaults,
                    Boolean.TRUE);

            if (parameterConfiguration != null) {
                parameterConfiguration = new Xpp3Dom(parameterConfiguration, parameter.getName());

                if (StringUtils.isEmpty(parameterConfiguration.getAttribute("implementation"))
                        && StringUtils.isNotEmpty(parameter.getImplementation())) {
                    parameterConfiguration.setAttribute("implementation", parameter.getImplementation());
                }
                finalConfiguration.addChild(parameterConfiguration);
            }
        }
    }

    if (plugin != null) {
        String goal = mojoExecution.getGoal();
        for (PluginExecution pe : plugin.getExecutions()) {
            if (pe.getGoals().contains(goal)) {
                Xpp3Dom execConfig = (Xpp3Dom) pe.getConfiguration();
                if (execConfig != null)
                    finalConfiguration = Xpp3Dom.mergeXpp3Dom(execConfig, finalConfiguration);
                break;
            }
        }
    }
    mojoExecution.setConfiguration(finalConfiguration);
}

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

License:Open Source License

@Override
public MojoExecution newMojoExecution(String goal) {
    MojoDescriptor mojoDescriptor = mojoDescriptors.get(goal);
    assertNotNull(String.format("The MojoDescriptor for the goal %s cannot be null.", goal), mojoDescriptor);
    MojoExecution execution = new MojoExecution(mojoDescriptor);
    execution.setConfiguration(new Xpp3Dom("configuration"));
    return execution;
}

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

License:Open Source License

protected void finalizeMojoConfiguration(MojoExecution mojoExecution) {
    MojoDescriptor mojoDescriptor = mojoExecution.getMojoDescriptor();

    Xpp3Dom executionConfiguration = mojoExecution.getConfiguration();
    if (executionConfiguration == null) {
        executionConfiguration = new Xpp3Dom("configuration");
    }/*www.j a  v a 2s .c  o m*/

    Xpp3Dom defaultConfiguration = MojoDescriptorCreator.convert(mojoDescriptor);

    Xpp3Dom finalConfiguration = new Xpp3Dom("configuration");

    if (mojoDescriptor.getParameters() != null) {
        for (Parameter parameter : mojoDescriptor.getParameters()) {
            Xpp3Dom parameterConfiguration = executionConfiguration.getChild(parameter.getName());

            if (parameterConfiguration == null) {
                parameterConfiguration = executionConfiguration.getChild(parameter.getAlias());
            }

            Xpp3Dom parameterDefaults = defaultConfiguration.getChild(parameter.getName());

            parameterConfiguration = Xpp3Dom.mergeXpp3Dom(parameterConfiguration, parameterDefaults,
                    Boolean.TRUE);

            if (parameterConfiguration != null) {
                parameterConfiguration = new Xpp3Dom(parameterConfiguration, parameter.getName());

                if (StringUtils.isEmpty(parameterConfiguration.getAttribute("implementation"))
                        && StringUtils.isNotEmpty(parameter.getImplementation())) {
                    parameterConfiguration.setAttribute("implementation", parameter.getImplementation());
                }

                finalConfiguration.addChild(parameterConfiguration);
            }
        }
    }

    mojoExecution.setConfiguration(finalConfiguration);
}

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

License:Open Source License

@Override
public Mojo lookupConfiguredMojo(MavenSession session, MojoExecution execution) throws Exception {
    MavenProject project = session.getCurrentProject();
    MojoDescriptor mojoDescriptor = execution.getMojoDescriptor();

    Mojo mojo = container.lookup(Mojo.class, mojoDescriptor.getRoleHint());

    ExpressionEvaluator evaluator = new PluginParameterExpressionEvaluator(session, execution);

    Xpp3Dom configuration = null;/*  w w w  . j a  v  a  2s .c  om*/
    Plugin plugin = project.getPlugin(mojoDescriptor.getPluginDescriptor().getPluginLookupKey());
    if (plugin != null) {
        configuration = (Xpp3Dom) plugin.getConfiguration();
    }
    if (configuration == null) {
        configuration = new Xpp3Dom("configuration");
    }
    configuration = Xpp3Dom.mergeXpp3Dom(configuration, execution.getConfiguration());
    execution.setConfiguration(configuration);
    finalizeMojoConfiguration(execution);

    PlexusConfiguration pluginConfiguration = new XmlPlexusConfiguration(execution.getConfiguration());

    String configuratorHint = "basic";
    if (mojoDescriptor.getComponentConfigurator() != null) {
        configuratorHint = mojoDescriptor.getComponentConfigurator();
    }

    ComponentConfigurator configurator = container.lookup(ComponentConfigurator.class, configuratorHint);

    configurator.configureComponent(mojo, pluginConfiguration, evaluator, container.getContainerRealm());

    return mojo;
}

From source file:io.wcm.maven.plugins.cq.InstallMojo.java

License:Apache License

@Override
public void execute() throws MojoExecutionException, MojoFailureException {

    Plugin plugin = new Plugin();
    plugin.setGroupId("org.apache.sling");
    plugin.setArtifactId("maven-sling-plugin");
    plugin.setVersion(this.slingPluginVersion);

    try {/*w  w w  .j  a  v a  2 s  .co  m*/
        PluginDescriptor pluginDescriptor = pluginManager.getPluginDescriptor(plugin,
                project.getRemotePluginRepositories(), session.getRepositorySession());
        MojoDescriptor mojoDescriptor = pluginDescriptor.getMojo("install");
        MojoExecution mojoExecution = new MojoExecution(pluginDescriptor.getMojo("install"));

        Xpp3Dom config = convertConfiguration(mojoDescriptor.getMojoConfiguration());
        config.getChild("slingUrl").setValue(this.slingConsoleUrl);
        config.getChild("user").setValue(this.slingConsoleUser);
        config.getChild("password").setValue(this.slingConsolePassword);
        config.getChild("mountByFS").setValue("false");
        mojoExecution.setConfiguration(config);

        buildPluginManager.executeMojo(session, mojoExecution);
    } catch (Throwable ex) {
        throw new MojoExecutionException("Faild to execute plugin: " + plugin, ex);
    }

}

From source file:org.codehaus.mojo.sonar.Bootstraper.java

License:Open Source License

private void executeMojo(MavenProject project, MavenSession session) throws MojoExecutionException {
    ClassLoader originalClassLoader = Thread.currentThread().getContextClassLoader();
    try {//from   w  ww.  j  a  v a2 s . c  om

        RepositoryRequest repositoryRequest = new DefaultRepositoryRequest();
        repositoryRequest.setLocalRepository(session.getLocalRepository());
        repositoryRequest.setRemoteRepositories(project.getPluginArtifactRepositories());

        Plugin plugin = createSonarPlugin();

        List<RemoteRepository> remoteRepositories = session.getCurrentProject().getRemotePluginRepositories();

        PluginDescriptor pluginDescriptor = pluginManager.getPluginDescriptor(plugin, remoteRepositories,
                session.getRepositorySession());

        String goal = "sonar";

        MojoDescriptor mojoDescriptor = pluginDescriptor.getMojo(goal);
        if (mojoDescriptor == null) {
            throw new MojoExecutionException("Unknown mojo goal: " + goal);
        }
        MojoExecution mojoExecution = new MojoExecution(plugin, goal, "sonar" + goal);

        mojoExecution.setConfiguration(convert(mojoDescriptor));

        mojoExecution.setMojoDescriptor(mojoDescriptor);

        // olamy : we exclude nothing and import nothing regarding realm import and artifacts

        DependencyFilter artifactFilter = new DependencyFilter() {
            public boolean accept(DependencyNode arg0, List<DependencyNode> arg1) {
                return true;
            }
        };

        pluginManager.setupPluginRealm(pluginDescriptor, session,
                Thread.currentThread().getContextClassLoader(), Collections.<String>emptyList(),
                artifactFilter);

        Mojo mojo = pluginManager.getConfiguredMojo(Mojo.class, session, mojoExecution);
        Thread.currentThread().setContextClassLoader(pluginDescriptor.getClassRealm());
        mojo.execute();

    } catch (Exception e) {
        throw new MojoExecutionException("Can not execute Sonar", e);
    } finally {
        Thread.currentThread().setContextClassLoader(originalClassLoader);
    }
}

From source file:org.eclipse.m2e.core.internal.embedder.MavenImpl.java

License:Open Source License

@SuppressWarnings("deprecation")
public MojoExecution setupMojoExecution(MavenSession session, MavenProject project, MojoExecution execution)
        throws CoreException {
    MojoExecution clone = new MojoExecution(execution.getPlugin(), execution.getGoal(),
            execution.getExecutionId());
    clone.setMojoDescriptor(execution.getMojoDescriptor());
    if (execution.getConfiguration() != null) {
        clone.setConfiguration(new Xpp3Dom(execution.getConfiguration()));
    }// w  ww.ja  v a 2 s.  co  m
    clone.setLifecyclePhase(execution.getLifecyclePhase());
    LifecycleExecutionPlanCalculator executionPlanCalculator = lookup(LifecycleExecutionPlanCalculator.class);
    try {
        executionPlanCalculator.setupMojoExecution(session, project, clone);
    } catch (Exception ex) {
        throw new CoreException(new Status(IStatus.ERROR, IMavenConstants.PLUGIN_ID, -1,
                NLS.bind(Messages.MavenImpl_error_calc_build_plan, ex.getMessage()), ex));
    }
    return clone;
}

From source file:org.eclipse.m2e.wtp.internal.filtering.ResourceFilteringBuildParticipant.java

License:Open Source License

private void executeCopyResources(IMavenProjectFacade facade,
        ResourceFilteringConfiguration filteringConfiguration, IPath targetFolder, List<Xpp3Dom> resources,
        IProgressMonitor monitor) throws CoreException {

    //Create a maven request + session
    ResolverConfiguration resolverConfig = facade.getResolverConfiguration();

    List<String> filters = filteringConfiguration.getFilters();
    IMavenProjectRegistry projectManager = MavenPlugin.getMavenProjectRegistry();
    MavenExecutionRequest request = projectManager.createExecutionRequest(facade.getPom(), resolverConfig,
            monitor);/*from www .  j a  v  a2  s.  c o  m*/
    request.setRecursive(false);
    request.setOffline(true);

    IMaven maven = MavenPlugin.getMaven();
    MavenProject mavenProject = facade.getMavenProject();

    MavenSession session = maven.createSession(request, mavenProject);
    MavenExecutionPlan executionPlan = maven.calculateExecutionPlan(session, mavenProject,
            Collections.singletonList("resources:copy-resources"), true, monitor);

    MojoExecution copyFilteredResourcesMojo = getExecution(executionPlan, "maven-resources-plugin");

    if (copyFilteredResourcesMojo == null)
        return;

    Xpp3Dom originalConfig = copyFilteredResourcesMojo.getConfiguration();
    Xpp3Dom configuration = Xpp3DomUtils.mergeXpp3Dom(new Xpp3Dom("configuration"), originalConfig);
    boolean parentHierarchyLoaded = false;
    try {
        parentHierarchyLoaded = loadParentHierarchy(facade, monitor);

        //Set resource directories to read
        setupResources(configuration, resources);

        //Force overwrite
        setValue(configuration, "overwrite", Boolean.TRUE);

        //Limit placeholder delimiters, otherwise, pages containing @ wouldn't be filtered correctly
        setupDelimiters(configuration);

        //Set output directory to the m2eclipse-wtp webresources directory
        setValue(configuration, "outputDirectory", targetFolder.toPortableString());

        setValue(configuration, "escapeString", filteringConfiguration.getEscapeString());

        setNonfilteredExtensions(configuration, filteringConfiguration.getNonfilteredExtensions());

        //Setup filters
        setupFilters(configuration, filters);

        //Create a maven request + session
        request.setRecursive(false);
        request.setOffline(true);

        //Execute our modified mojo 
        copyFilteredResourcesMojo.setConfiguration(configuration);
        copyFilteredResourcesMojo.getMojoDescriptor().setGoal("copy-resources");

        maven.execute(session, copyFilteredResourcesMojo, monitor);

        if (session.getResult().hasExceptions()) {

            MavenPluginActivator.getDefault().getMavenMarkerManager().addMarker(facade.getProject(),
                    IMavenConstants.MARKER_CONFIGURATION_ID, "An error occurred while filtering resources", -1,
                    IMarker.SEVERITY_ERROR);
            //move exceptions up to the original session, so they can be handled by the maven builder
            //XXX current exceptions refer to maven-resource-plugin (since that's what we used), we should probably 
            // throw a new exception instead to indicate the problem(s) come(s) from web resource filtering
            for (Throwable t : session.getResult().getExceptions()) {
                getSession().getResult().addException(t);
            }
        }

    } finally {
        //Restore original configuration
        copyFilteredResourcesMojo.setConfiguration(originalConfig);
        if (parentHierarchyLoaded) {
            mavenProject.setParent(null);
        }
    }
}

From source file:org.eclipse.m2e.wtp.MavenDeploymentDescriptorManagement.java

License:Open Source License

/**
 * Executes ear:generate-application-xml goal to generate application.xml (and jboss-app.xml if needed). Existing
 * files will be overwritten.//from  ww  w  .  jav a  2 s  .com
 * 
 * @throws CoreException
 */

public void updateConfiguration(IProject project, MavenProject mavenProject, EarPluginConfiguration plugin,
        boolean useBuildDirectory, IProgressMonitor monitor) throws CoreException {

    IMavenProjectRegistry projectManager = MavenPlugin.getMavenProjectRegistry();
    IMavenProjectFacade mavenFacade = projectManager.getProject(project);
    IMaven maven = MavenPlugin.getMaven();
    //Create a maven request + session
    IFile pomResource = project.getFile(IMavenConstants.POM_FILE_NAME);
    MavenExecutionRequest request = projectManager.createExecutionRequest(pomResource,
            mavenFacade.getResolverConfiguration(), monitor);
    MavenSession session = maven.createSession(request, mavenProject);

    MavenExecutionPlan executionPlan = maven.calculateExecutionPlan(session, mavenProject,
            Collections.singletonList("ear:generate-application-xml"), true, monitor);
    MojoExecution genConfigMojo = getExecution(executionPlan, "maven-ear-plugin", "generate-application-xml");
    if (genConfigMojo == null) {
        //TODO Better error management
        return;
    }

    //Let's force the generated config files location
    Xpp3Dom configuration = genConfigMojo.getConfiguration();
    if (configuration == null) {
        configuration = new Xpp3Dom("configuration");
        genConfigMojo.setConfiguration(configuration);
    }

    File tempDirectory;
    try {
        tempDirectory = getTempDirectory();
    } catch (IOException ex) {
        IStatus status = new Status(IStatus.ERROR, MavenWtpPlugin.ID, ex.getLocalizedMessage(), ex);
        throw new CoreException(status);
    }

    // Some old maven-ear-plugin have a dependency on an old plexus-util version that prevents
    // using workdirectory == generatedDescriptorLocation, so we keep them separated 
    File generatedDescriptorLocation = new File(tempDirectory, "generatedDescriptorLocation");
    File workDirectory = new File(tempDirectory, "workDirectory");

    Xpp3Dom workDirectoryDom = configuration.getChild("workDirectory");
    if (workDirectoryDom == null) {
        workDirectoryDom = new Xpp3Dom("workDirectory");
        configuration.addChild(workDirectoryDom);
    }
    workDirectoryDom.setValue(workDirectory.getAbsolutePath());

    Xpp3Dom genDescriptorLocationDom = configuration.getChild("generatedDescriptorLocation");
    if (genDescriptorLocationDom == null) {
        genDescriptorLocationDom = new Xpp3Dom("generatedDescriptorLocation");
        configuration.addChild(genDescriptorLocationDom);
    }
    genDescriptorLocationDom.setValue(generatedDescriptorLocation.getAbsolutePath());

    // Fix for http://jira.codehaus.org/browse/MEAR-116?focusedCommentId=232316&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#action_232316
    // affecting maven-ear-plugin version < 2.4.3
    if (!VALID_EAR_PLUGIN_RANGE.containsVersion(new DefaultArtifactVersion(genConfigMojo.getVersion()))) {
        //System.err.println("overriding modules for ear plugin "+genConfigMojo.getVersion());
        overrideModules(configuration, plugin.getAllEarModules());
    }

    //Execute our modified mojo
    maven.execute(session, genConfigMojo, monitor);

    if (session.getResult().hasExceptions()) {
        IMavenMarkerManager markerManager = MavenPluginActivator.getDefault().getMavenMarkerManager();
        markerManager.addMarkers(mavenFacade.getPom(),
                MavenWtpConstants.WTP_MARKER_GENERATE_APPLICATIONXML_ERROR, session.getResult());
    }

    //Copy generated files to their final location
    File[] files = generatedDescriptorLocation.listFiles();

    //MECLIPSEWTP-56 : application.xml should not be generated in the source directory

    IFolder targetFolder;
    IFolder earResourcesFolder = getEarResourcesDir(project, mavenProject, monitor);
    if (useBuildDirectory) {
        targetFolder = earResourcesFolder;
    } else {
        targetFolder = project.getFolder(plugin.getEarContentDirectory(project));

        if (earResourcesFolder.exists() && earResourcesFolder.isAccessible()) {
            earResourcesFolder.delete(true, monitor);
        }
    }

    IFolder metaInfFolder = targetFolder.getFolder("/META-INF/");

    if (files != null && files.length > 0) {
        //We generated something
        try {
            ImportOperation op = new ImportOperation(metaInfFolder.getFullPath(), generatedDescriptorLocation,
                    new FileSystemStructureProvider(), OVERWRITE_ALL_QUERY, Arrays.asList(files));
            op.setCreateContainerStructure(false);
            op.setOverwriteResources(true);

            op.run(monitor);

        } catch (InvocationTargetException ex) {
            IStatus status = new Status(IStatus.ERROR, MavenWtpPlugin.ID, IStatus.ERROR, ex.getMessage(), ex);
            throw new CoreException(status);
        } catch (InterruptedException ex) {
            throw new OperationCanceledException(ex.getMessage());
        }
    }
    targetFolder.refreshLocal(IResource.DEPTH_INFINITE, monitor);

    deleteDirectory(generatedDescriptorLocation);

}