460959 : always use base version when maven-ear-plugin < 2.9

Change-Id: I8b53394fcb5a5c265c5247f891e76aed5ba4191d
Signed-off-by: Fred Bricon <fbricon@gmail.com>
diff --git a/org.eclipse.m2e.wtp/src/org/eclipse/m2e/wtp/EarPluginConfiguration.java b/org.eclipse.m2e.wtp/src/org/eclipse/m2e/wtp/EarPluginConfiguration.java
index 7d85169..4c5626b 100644
--- a/org.eclipse.m2e.wtp/src/org/eclipse/m2e/wtp/EarPluginConfiguration.java
+++ b/org.eclipse.m2e.wtp/src/org/eclipse/m2e/wtp/EarPluginConfiguration.java
@@ -16,6 +16,8 @@
 
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.resolver.filter.ScopeArtifactFilter;
+import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
+import org.apache.maven.artifact.versioning.VersionRange;
 import org.apache.maven.model.Plugin;
 import org.apache.maven.project.MavenProject;
 import org.codehaus.plexus.util.StringUtils;
@@ -77,6 +79,8 @@
 
   private Set<EarModule>  earModules;
   
+  private boolean supportsUseBaseVersion = false;
+  
   public EarPluginConfiguration(MavenProject mavenProject) {
     if(JEEPackaging.EAR != JEEPackaging.getValue(mavenProject.getPackaging())) {
       throw new IllegalArgumentException(Messages.EarPluginConfiguration_Project_Must_Have_ear_Packaging);
@@ -84,6 +88,15 @@
 
     this.mavenProject = mavenProject;
     Plugin plugin = getPlugin();
+    try {
+    	VersionRange ear_2_9 = VersionRange.createFromVersionSpec("[2.9,)"); //$NON-NLS-1$
+    	if(ear_2_9.containsVersion(new DefaultArtifactVersion(plugin.getVersion()))) {
+    		supportsUseBaseVersion = true;
+    	}
+    } catch(Exception ex) {
+        //Can't happen
+    }
+    
     setConfiguration((Xpp3Dom)plugin.getConfiguration());
   }
 
@@ -267,14 +280,16 @@
 
     Xpp3Dom config = getConfiguration();
     FileNameMapping mapping = null;
-    boolean useBaseVersion = false;
+    boolean useBaseVersion = !supportsUseBaseVersion;
     if(config != null) {
 	    Xpp3Dom fileNameMappingDom = config.getChild("fileNameMapping"); //$NON-NLS-1$
 	    if(fileNameMappingDom != null) {
 	      String fileNameMappingName = fileNameMappingDom.getValue().trim();
 	      mapping = FileNameMappingFactory.getFileNameMapping(fileNameMappingName);
 	    }
-	    useBaseVersion = DomUtils.getBooleanChildValue(config, "useBaseVersion", false); //$NON-NLS-1$
+	    if (supportsUseBaseVersion) {// for ear-plugin >= 2.9
+	    	useBaseVersion = DomUtils.getBooleanChildValue(config, "useBaseVersion", false); //$NON-NLS-1$
+	    }
     }
     if (mapping == null) {
     	mapping = FileNameMappingFactory.getDefaultFileNameMapping();