use of org.codehaus.plexus.util.xml.Xpp3Dom in project tycho by eclipse.
the class DefaultTargetPlatformConfigurationReader method readDependencyResolutionConfiguration.
private void readDependencyResolutionConfiguration(TargetPlatformConfiguration result, Xpp3Dom configuration) {
Xpp3Dom resolverDom = configuration.getChild("dependency-resolution");
if (resolverDom == null) {
return;
}
setOptionalDependencies(result, resolverDom);
readExtraRequirements(result, resolverDom);
readProfileProperties(result, resolverDom);
}
use of org.codehaus.plexus.util.xml.Xpp3Dom in project tycho by eclipse.
the class TargetPlatformFilterConfigurationReader method parseFilter.
private void parseFilter(Xpp3Dom filterDom, List<TargetPlatformFilter> result) {
CapabilityPattern scopePattern = parseScopePattern(filterDom);
Xpp3Dom restrictToDom = getComplexValue(filterDom, "restrictTo");
Xpp3Dom removeAllDom = getMarker(filterDom, "removeAll");
if (removeAllDom == null && restrictToDom == null) {
throw new TargetPlatformFilterSyntaxException("Filter action is required: specify either 'filters.filter.removeAll' or 'filters.filter.restrictTo'");
} else if (removeAllDom != null && restrictToDom != null) {
throw new TargetPlatformFilterSyntaxException("Only one filter action may be specified: either 'filters.filter.removeAll' or 'filters.filter.restrictTo'");
}
final TargetPlatformFilter filter;
if (removeAllDom != null) {
filter = TargetPlatformFilter.removeAllFilter(scopePattern);
} else {
CapabilityPattern restrictionPattern = parseRestrictionPattern(restrictToDom);
filter = TargetPlatformFilter.restrictionFilter(scopePattern, restrictionPattern);
}
result.add(filter);
}
use of org.codehaus.plexus.util.xml.Xpp3Dom in project mule by mulesoft.
the class MavenUtils method addSharedLibraryDependency.
/**
* Adds a shared library to the pom model. If the plugin does not exists yet in the model then it will create it.
*
* @param model the pom model
* @param dependency the descriptor of the dependency
*/
public static void addSharedLibraryDependency(Model model, Dependency dependency) {
Build build = model.getBuild();
if (build == null) {
build = new Build();
model.setBuild(build);
}
List<Plugin> plugins = build.getPlugins();
if (plugins == null) {
plugins = new ArrayList<>();
build.setPlugins(plugins);
}
Optional<Plugin> pluginOptional = plugins.stream().filter(plugin -> plugin.getGroupId().equals(MULE_MAVEN_PLUGIN_GROUP_ID) && plugin.getArtifactId().equals(MULE_MAVEN_PLUGIN_ARTIFACT_ID)).findFirst();
List<Plugin> finalPlugins = plugins;
Plugin plugin = pluginOptional.orElseGet(() -> {
Plugin muleMavenPlugin = new Plugin();
muleMavenPlugin.setGroupId(MULE_MAVEN_PLUGIN_GROUP_ID);
muleMavenPlugin.setArtifactId(MULE_MAVEN_PLUGIN_ARTIFACT_ID);
finalPlugins.add(muleMavenPlugin);
return muleMavenPlugin;
});
Xpp3Dom configuration = (Xpp3Dom) plugin.getConfiguration();
if (configuration == null) {
configuration = new Xpp3Dom("configuration");
plugin.setConfiguration(configuration);
}
Xpp3Dom sharedLibrariesDom = configuration.getChild(SHARED_LIBRARIES_ELEMENT);
if (sharedLibrariesDom == null) {
sharedLibrariesDom = new Xpp3Dom(SHARED_LIBRARIES_ELEMENT);
configuration.addChild(sharedLibrariesDom);
}
Xpp3Dom sharedLibraryDom = new Xpp3Dom("sharedLibrary");
sharedLibrariesDom.addChild(sharedLibraryDom);
Xpp3Dom groupIdDom = new Xpp3Dom("groupId");
groupIdDom.setValue(dependency.getGroupId());
sharedLibraryDom.addChild(groupIdDom);
Xpp3Dom artifactIdDom = new Xpp3Dom("artifactId");
artifactIdDom.setValue(dependency.getArtifactId());
sharedLibraryDom.addChild(artifactIdDom);
}
use of org.codehaus.plexus.util.xml.Xpp3Dom in project wildfly-swarm by wildfly-swarm.
the class MultiStartMojo method startProject.
@SuppressWarnings("unchecked")
protected void startProject(MavenProject project, String executionId, XmlPlexusConfiguration process) throws InvalidPluginDescriptorException, PluginResolutionException, PluginDescriptorParsingException, PluginNotFoundException, PluginConfigurationException, MojoFailureException, MojoExecutionException, PluginManagerException {
Plugin plugin = this.project.getPlugin("org.wildfly.swarm:wildfly-swarm-plugin");
Xpp3Dom config = getConfiguration(project, executionId);
Xpp3Dom processConfig = getProcessConfiguration(process);
Xpp3Dom globalConfig = getGlobalConfig();
Xpp3Dom mergedConfig = Xpp3DomUtils.mergeXpp3Dom(processConfig, config);
mergedConfig = Xpp3DomUtils.mergeXpp3Dom(mergedConfig, globalConfig);
PluginDescriptor pluginDescriptor = this.pluginManager.loadPlugin(plugin, project.getRemotePluginRepositories(), this.repositorySystemSession);
MojoDescriptor mojoDescriptor = pluginDescriptor.getMojo("start");
MojoExecution mojoExecution = new MojoExecution(mojoDescriptor, mergedConfig);
mavenSession.setCurrentProject(project);
this.pluginManager.executeMojo(mavenSession, mojoExecution);
List<SwarmProcess> launched = (List<SwarmProcess>) mavenSession.getPluginContext(pluginDescriptor, project).get(SWARM_PROCESS);
List<SwarmProcess> procs = (List<SwarmProcess>) getPluginContext().get(SWARM_PROCESS);
if (procs == null) {
procs = new ArrayList<>();
getPluginContext().put(SWARM_PROCESS, procs);
}
procs.addAll(launched);
mavenSession.setCurrentProject(this.project);
}
use of org.codehaus.plexus.util.xml.Xpp3Dom in project pom-manipulation-ext by release-engineering.
the class PluginInjectingManipulator method applyChanges.
/**
* If enabled, grab the execution root pom (which will be the topmost POM in terms of directory structure). Check for the
* presence of the project-sources-maven-plugin in the base build (/project/build/plugins/). Inject a new plugin execution for creating project
* sources if this plugin has not already been declared in the base build section.
*/
@Override
public Set<Project> applyChanges(final List<Project> projects) throws ManipulationException {
final PluginInjectingState state = session.getState(PluginInjectingState.class);
// This manipulator will only run if its enabled *and* at least one other manipulator is enabled.
if (state.isEnabled() && session.anyStateEnabled(State.activeByDefault)) {
for (final Project project : projects) {
if (project.isExecutionRoot()) {
logger.info("Examining {} to apply sources/metadata plugins.", project);
final Model model = project.getModel();
Build build = model.getBuild();
if (build == null) {
build = new Build();
model.setBuild(build);
}
boolean changed = false;
final Map<String, Plugin> pluginMap = build.getPluginsAsMap();
if (state.isProjectSourcesPluginEnabled() && !pluginMap.containsKey(PROJECT_SOURCES_COORD)) {
final PluginExecution execution = new PluginExecution();
execution.setId(PROJECT_SOURCES_EXEC_ID);
execution.setPhase(INITIALIZE_PHASE);
execution.setGoals(Collections.singletonList(PROJECT_SOURCES_GOAL));
final Plugin plugin = new Plugin();
plugin.setGroupId(PROJECT_SOURCES_GID);
plugin.setArtifactId(PROJECT_SOURCES_AID);
plugin.setVersion(state.getProjectSourcesPluginVersion());
plugin.addExecution(execution);
build.addPlugin(plugin);
changed = true;
}
if (state.isBuildMetadataPluginEnabled() && !pluginMap.containsKey(BMMP_COORD)) {
final PluginExecution execution = new PluginExecution();
execution.setId(BMMP_EXEC_ID);
execution.setPhase(INITIALIZE_PHASE);
execution.setGoals(Collections.singletonList(BMMP_GOAL));
final Xpp3Dom xml = new Xpp3Dom("configuration");
final Map<String, Object> config = new HashMap<>();
config.put("createPropertiesReport", true);
config.put("hideCommandLineInfo", false);
config.put("hideJavaOptsInfo", false);
config.put("activateOutputFileMapping", true);
config.put("addJavaRuntimeInfo", true);
// Default name is build.properties but we currently prefer build.metadata.
config.put("propertiesOutputFile", "build.metadata");
// Deactivate features we don't want.
config.put("createXmlReport", false);
config.put("addLocallyModifiedTagToFullVersion", false);
config.put("addToGeneratedSources", false);
config.put("validateCheckout", false);
config.put("forceNewProperties", true);
config.put("addBuildDateToFullVersion", false);
config.put("addHostInfo", false);
config.put("addBuildDateInfo", false);
config.put("addOsInfo", false);
config.put("addMavenExecutionInfo", false);
config.put("addToFilters", false);
final Xpp3Dom additionalLocations = new Xpp3Dom("addToLocations");
final Xpp3Dom additionalLocation = new Xpp3Dom("addToLocation");
xml.addChild(additionalLocations);
additionalLocations.addChild(additionalLocation);
additionalLocation.setValue("${session.executionRootDirectory}");
for (final Map.Entry<String, Object> entry : config.entrySet()) {
final Xpp3Dom child = new Xpp3Dom(entry.getKey());
if (entry.getValue() != null) {
child.setValue(entry.getValue().toString());
}
xml.addChild(child);
}
execution.setConfiguration(xml);
final Plugin plugin = new Plugin();
plugin.setGroupId(BMMP_GID);
plugin.setArtifactId(BMMP_AID);
plugin.setVersion(state.getBuildMetadataPluginVersion());
plugin.addExecution(execution);
build.addPlugin(plugin);
changed = true;
}
if (changed) {
return Collections.singleton(project);
}
}
}
}
return Collections.emptySet();
}
Aggregations