You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2012/10/28 13:20:51 UTC
svn commit: r1402983 -
/maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/SelectorUtils.java
Author: rfscholte
Date: Sun Oct 28 12:20:51 2012
New Revision: 1402983
URL: http://svn.apache.org/viewvc?rev=1402983&view=rev
Log:
First part of MINVOKER-126: mavenHome in relationship with invoker.maven.version rule
Get version based on MavenHome
Modified:
maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/SelectorUtils.java
Modified: maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/SelectorUtils.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/SelectorUtils.java?rev=1402983&r1=1402982&r2=1402983&view=diff
==============================================================================
--- maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/SelectorUtils.java (original)
+++ maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/SelectorUtils.java Sun Oct 28 12:20:51 2012
@@ -19,16 +19,21 @@ package org.apache.maven.plugin.invoker;
* under the License.
*/
-import org.apache.maven.project.MavenProject;
-import org.codehaus.plexus.util.Os;
-import org.codehaus.plexus.util.StringUtils;
-
+import java.io.File;
+import java.io.FilenameFilter;
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URL;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.Properties;
+import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.util.Os;
+import org.codehaus.plexus.util.StringUtils;
+
/**
* Provides utility methods for selecting build jobs based on environmental conditions.
*
@@ -107,6 +112,46 @@ class SelectorUtils
return null;
}
}
+
+ static String getMavenVersion( File mavenHome )
+ {
+ File mavenLib = new File( mavenHome, "lib" );
+ File[] jarFiles = mavenLib.listFiles( new FilenameFilter()
+ {
+ public boolean accept( File dir, String name )
+ {
+ return name.endsWith( ".jar" );
+ }
+ } );
+
+ for ( File file : jarFiles )
+ {
+ try
+ {
+ @SuppressWarnings( "deprecation" )
+ URL url =
+ new URL( "jar:" + file.toURL().toExternalForm()
+ + "!/META-INF/maven/org.apache.maven/maven-core/pom.properties" );
+
+ Properties properties = new Properties();
+ properties.load( url.openStream() );
+ String version = StringUtils.trim( properties.getProperty( "version" ) );
+ if ( version != null )
+ {
+ return version;
+ }
+ }
+ catch ( MalformedURLException e )
+ {
+ // ignore
+ }
+ catch ( IOException e )
+ {
+ // ignore
+ }
+ }
+ return null;
+ }
static boolean isMavenVersion( String mavenSpec )
{