List of usage examples for org.apache.maven.plugin MojoExecution setConfiguration
public void setConfiguration(Xpp3Dom configuration)
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); }