500384: fix support for m-w-p 3.0.0
Change-Id: I4b4d57a06842c313c8b4acf396e54fe9b3bac8d9
Signed-off-by: Fred Bricon <fbricon@gmail.com>
diff --git a/org.eclipse.m2e.wtp/src/org/eclipse/m2e/wtp/WarPluginConfiguration.java b/org.eclipse.m2e.wtp/src/org/eclipse/m2e/wtp/WarPluginConfiguration.java
index 9e5504b..d143d04 100644
--- a/org.eclipse.m2e.wtp/src/org/eclipse/m2e/wtp/WarPluginConfiguration.java
+++ b/org.eclipse.m2e.wtp/src/org/eclipse/m2e/wtp/WarPluginConfiguration.java
@@ -14,6 +14,8 @@
import java.util.Collections;
import java.util.List;
+import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
+import org.apache.maven.artifact.versioning.VersionRange;
import org.apache.maven.model.Plugin;
import org.apache.maven.plugin.war.Overlay;
import org.apache.maven.plugin.war.overlay.InvalidOverlayConfigurationException;
@@ -72,11 +74,14 @@
private static final String FAIL_ON_MISSING_WEB_XML = "failOnMissingWebXml";
+
//Keep backward compat with WTP < Kepler
private static final IProjectFacetVersion WEB_31 = WebFacetUtils.WEB_FACET.hasVersion(WEB_3_1_TEXT)?
WebFacetUtils.WEB_FACET.getVersion(WEB_3_1_TEXT)
:WebFacetUtils.WEB_30;
+ private boolean defaultFailOnMissingWebXml = true;
+
private IProject project;
private MavenProject mavenProject;
@@ -86,6 +91,15 @@
this.mavenProject = mavenProject;
Plugin plugin = getPlugin();
if (plugin != null) {
+ try {
+ VersionRange war_3_0_0 = VersionRange.createFromVersionSpec("[3.0.0,)"); //$NON-NLS-1$
+ if(war_3_0_0.containsVersion(new DefaultArtifactVersion(plugin.getVersion()))) {
+ defaultFailOnMissingWebXml = false;
+ }
+ } catch(Exception ex) {
+ //Can't happen
+ }
+
setConfiguration((Xpp3Dom)plugin.getConfiguration());
}
}
@@ -409,7 +423,7 @@
public boolean isFailOnMissingWebXml() {
Xpp3Dom config = getConfiguration();
- boolean failOnMissingWebXml = true;
+ boolean failOnMissingWebXml = defaultFailOnMissingWebXml;
String fail = null;
if (config != null) {
fail = DomUtils.getChildValue(config, FAIL_ON_MISSING_WEB_XML); //$NON-NLS-1$
diff --git a/org.eclipse.m2e.wtp/src/org/eclipse/m2e/wtp/internal/conversion/WebProjectConverter.java b/org.eclipse.m2e.wtp/src/org/eclipse/m2e/wtp/internal/conversion/WebProjectConverter.java
index 4378bc1..15f4b83 100644
--- a/org.eclipse.m2e.wtp/src/org/eclipse/m2e/wtp/internal/conversion/WebProjectConverter.java
+++ b/org.eclipse.m2e.wtp/src/org/eclipse/m2e/wtp/internal/conversion/WebProjectConverter.java
@@ -10,6 +10,9 @@
import static org.eclipse.m2e.wtp.internal.conversion.MavenPluginUtils.configure;
+import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
+import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
+import org.apache.maven.artifact.versioning.VersionRange;
import org.apache.maven.model.Build;
import org.apache.maven.model.Model;
import org.apache.maven.model.Plugin;
@@ -69,15 +72,24 @@
}
}
- //Set <failOnMissingWebXml>false</failOnMissingWebXml> for web > 2.4
- IFacetedProject fProject = ProjectFacetsManager.create(component.getProject());
- if (fProject != null) {
- IProjectFacetVersion webVersion = fProject.getProjectFacetVersion(IJ2EEFacetConstants.DYNAMIC_WEB_FACET);
- if (webVersion != null && webVersion.compareTo(IJ2EEFacetConstants.DYNAMIC_WEB_24) > 0) {
- configure(warPlugin, FAIL_IF_MISSING_WEBXML_KEY, "false"); //$NON-NLS-1$
- customized = true;
- }
- }
+ try {
+ VersionRange mwp300 = VersionRange.createFromVersionSpec("[3.0.0,)");
+ if (mwp300.containsVersion(new DefaultArtifactVersion(warPluginVersion))){
+ customized = true;//we simply force adding the latest m-w-p without having to add failOnMissingWebXml
+ } else {
+ //Set <failOnMissingWebXml>false</failOnMissingWebXml> for web > 2.4
+ IFacetedProject fProject = ProjectFacetsManager.create(component.getProject());
+ if (fProject != null) {
+ IProjectFacetVersion webVersion = fProject.getProjectFacetVersion(IJ2EEFacetConstants.DYNAMIC_WEB_FACET);
+ if (webVersion != null && webVersion.compareTo(IJ2EEFacetConstants.DYNAMIC_WEB_24) > 0) {
+ configure(warPlugin, FAIL_IF_MISSING_WEBXML_KEY, "false"); //$NON-NLS-1$
+ customized = true;
+ }
+ }
+ }
+ } catch (InvalidVersionSpecificationException ex) {
+ //not possible
+ }
if (customized) {
model.setBuild(build);
@@ -99,7 +111,7 @@
if(version != null) {
return version;
}
- return MavenPluginUtils.getMostRecentPluginVersion("org.apache.maven.plugins", "maven-war-plugin", "2.6"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ return MavenPluginUtils.getMostRecentPluginVersion("org.apache.maven.plugins", "maven-war-plugin", "3.0.0"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
}