/** * Merge a {@link ConfigurationElement} into a {@link Configuration}. If there * is no element in the given configuration with a name matching the given * element, the element is simply added. Otherwise, the two elements will be * recursively merged, with any conflicting values in the configuration being * overwritten. * * @param config * A Maven plugin configuration. * @param configElem * A Maven plugin configuration element. */ protected void mergeConfigurationElement(final Configuration config, final ConfigurationElement configElem) { if (!config.hasConfigurationElement(configElem.getName())) { config.addConfigurationElement(configElem); } else { final ConfigurationElement prev = config.getConfigurationElement(configElem.getName()); config.removeConfigurationElement(configElem.getName()); config.addConfigurationElement(merge(prev, configElem)); } }
private Xpp3Dom parseConfig(final Configuration configuration) { if ((configuration == null) || (!configuration.hasConfigurationElements())) { return null; } try { return Xpp3DomBuilder.build( new ByteArrayInputStream(configuration.toString().getBytes()), "UTF-8"); } catch (Exception ex) { throw new RuntimeException("Exception while parsing configuration", ex); } }
private ConfigurationBuilder(final Configuration existingConfig, final MavenPluginBuilder pluginBuilder) { origin = pluginBuilder; for (ConfigurationElement element : existingConfig.listConfigurationElements()) { mavenPluginConfiguration.addConfigurationElement(element); } }
/** * Check that a {@link Configuration} is consistent with a collection of * {@link ConfigurationElement ConfigurationElements}. * * A configuration is consistent with a collection if for any element in the * collection, {@code elem}, there exists an element in the configuration, * {@code other}, such that * {@link AbstractPluginFacet#isMatchingElement(ConfigurationElement, ConfigurationElement) * isMatchingElement}{@code (elem, matching)} is {@code true}. * * @param config * A Maven plugin configuration. * @param elements * A set of configuration elements for a Maven plugin. * @return True iff the given configuration is consistent with the given * collection of configuration elements. */ protected static boolean isMatchingConfiguration(final Configuration config, final Collection<ConfigurationElement> elements) { for (final ConfigurationElement elem : elements) { if (!config.hasConfigurationElement(elem.getName()) || !isMatchingElement(config.getConfigurationElement(elem.getName()), elem)) return false; } return true; }
if (dominant.getConfig() != null && recessive.getConfig() != null) for (ConfigurationElement e : dominant.getConfig().listConfigurationElements()) for (ConfigurationElement e : recessive.getConfig().listConfigurationElements()) mergedConfiguration.removeConfigurationElement(e.getName()); (Xpp3Dom) pluginExecutionMerged.getConfiguration()); for (ConfigurationElement e : pluginExecutionDominantCfg.listConfigurationElements()) for (ConfigurationElement e : pluginExecutionRecessiveCfg.listConfigurationElements()) pluginExecutionMergedCfg.removeConfigurationElement(e.getName()); if (!pluginExecutionMergedCfg.hasConfigurationElements())
@Override public void apply(Configuration config) { // Main Class config.removeConfigurationElement(MAIN_CLASS_CONFIGURATION_ELEMENT); if (!Strings.isNullOrEmpty(getMainClass()) && !MAIN_CLASS_DEFAULT_VALUE.equals(getMainClass())) { config.addConfigurationElement(ConfigurationElementBuilder.create() .setName(MAIN_CLASS_CONFIGURATION_ELEMENT).setText(getMainClass())); } // Properties ConfigurationElementBuilder properties = ConfigurationElementBuilder.create().setName("properties"); this.properties.forEach((key, value) -> properties.addChild(key).setText(value)); config.removeConfigurationElement("properties"); if (properties.hasChildren()) { config.addConfigurationElement(properties); } } }
public static ConfigurationElement findConfigurationElement(Configuration config, String name) { try { return config.getConfigurationElement(name); } catch (Exception e) { return null; } }
private void modifyCompilerPlugin() { Coordinate compilerDependency = CoordinateBuilder.create() .setGroupId("org.apache.maven.plugins") .setArtifactId("maven-compiler-plugin"); MavenPluginFacet pluginFacet = getFaceted().getFacet(MavenPluginFacet.class); final MavenPluginAdapter compiler; if (pluginFacet.hasPlugin(compilerDependency)) { compiler = new MavenPluginAdapter(pluginFacet.getPlugin(compilerDependency)); } else { compiler = new MavenPluginAdapter(MavenPluginBuilder.create().setCoordinate(compilerDependency)); } Configuration config = compiler.getConfig(); if (!config.hasConfigurationElement("proc")) { ConfigurationElement proc = ConfigurationBuilder.create().createConfigurationElement("proc").setText("none"); config.addConfigurationElement(proc); compiler.setConfig(config); } pluginFacet.updatePlugin(compiler); }
public static ConfigurationElement getOrCreateElement(Configuration config, String name) { ConfigurationElement answer = findConfigurationElement(config, name); if (answer == null) { answer = ConfigurationElementBuilder.create().setName(name); config.addConfigurationElement(answer); } return answer; }
private boolean processorConfigured(MetaModelProvider provider) { CoordinateBuilder dependency = createProcessorCoordinate().setVersion(null); MavenPluginFacet pluginFacet = getFaceted().getFacet(MavenPluginFacet.class); if (pluginFacet.hasPlugin(dependency)) { MavenPlugin plugin = pluginFacet.getPlugin(dependency); if (plugin.listExecutions().size() > 0) { Configuration config = plugin.listExecutions().get(0).getConfig(); if (config.hasConfigurationElement("processors")) { ConfigurationElement element = config.getConfigurationElement("processors").getChildByName("processor"); return element.getText().equals(provider.getProcessor()); } } } return false; }
try mainClassElem = config.getConfigurationElement(MAIN_CLASS_CONFIGURATION_ELEMENT); try propertiesElem = config.getConfigurationElement("properties");
public static String getWarSourceDirectory(final Project project) { final MavenPluginFacet pluginFacet = project.getFacet(MavenPluginFacet.class); final CoordinateBuilder warPluginCoordinate = CoordinateBuilder.create().setGroupId(War.getGroupId()) .setArtifactId(War.getArtifactId()); if (pluginFacet.hasPlugin(warPluginCoordinate)) { final Configuration warConfig = pluginFacet.getPlugin(warPluginCoordinate).getConfig(); if (warConfig.hasConfigurationElement(WarSourceDirectory.getValueName())) { return warConfig.getConfigurationElement(WarSourceDirectory.getValueName()).getText(); } } return WarSourceDirectory.getDefaultValue(); }
@Override protected void init() { final Execution execution = executions.iterator().next(); final ConfigurationElement artifactItems = execution.getConfig().getConfigurationElement("artifactItems"); final ConfigurationElementBuilder artifactItem = (ConfigurationElementBuilder) artifactItems.getChildren().get(0); final VersionFacet versionFacet = getProject().getFacet(VersionFacet.class); artifactItem.addChild(ConfigurationElementBuilder.create().setName("version") .setText(versionFacet.resolveVersion(WildflyDist))); }
private void addMavenPlugin() { MavenPluginFacet pluginFacet = getFaceted().getFacet(MavenPluginFacet.class); MavenPluginBuilder plugin = MavenPluginBuilder .create() .setCoordinate(PLUGIN_COORDINATE) .addExecution( ExecutionBuilder.create().addGoal("package")); // Plugin configuration Configuration builder = ConfigurationBuilder.create(); getConfiguration().apply(builder); if (builder.hasConfigurationElements()) { plugin.setConfiguration(builder); } pluginFacet.addPlugin(plugin); }
@Override public DirectoryResource getWebRootDirectory() { Project project = getFaceted(); MavenPluginFacet mavenPluginFacet = project.getFacet(MavenPluginFacet.class); final String webappFolderName; Coordinate mvnWarPluginDep = CoordinateBuilder.create("org.apache.maven.plugins:maven-war-plugin"); if (mavenPluginFacet.hasPlugin(mvnWarPluginDep)) { MavenPlugin warPlugin = mavenPluginFacet.getPlugin(mvnWarPluginDep); Configuration config = warPlugin.getConfig(); if (config.hasConfigurationElement("warSourceDirectory")) { webappFolderName = config.getConfigurationElement("warSourceDirectory").getText(); } else { webappFolderName = "src" + File.separator + "main" + File.separator + "webapp"; } } else { webappFolderName = "src" + File.separator + "main" + File.separator + "webapp"; } DirectoryResource projectRoot = project.getRoot().reify(DirectoryResource.class); return projectRoot.getChildDirectory(webappFolderName); }