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 19:01:04 UTC
svn commit: r1403055 - in
/maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker:
AbstractInvokerMojo.java SelectorUtils.java
Author: rfscholte
Date: Sun Oct 28 18:01:03 2012
New Revision: 1403055
URL: http://svn.apache.org/viewvc?rev=1403055&view=rev
Log:
First part of MINVOKER-106: invoker.java.version is always evaluated against current JVM instead of JVM running the builds
Now isJreVersion will return true if javaHome is used, since we haven't found a solution yet to discover the actual version.
Modified:
maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/AbstractInvokerMojo.java
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/AbstractInvokerMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/AbstractInvokerMojo.java?rev=1403055&r1=1403054&r2=1403055&view=diff
==============================================================================
--- maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/AbstractInvokerMojo.java (original)
+++ maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/AbstractInvokerMojo.java Sun Oct 28 18:01:03 2012
@@ -579,6 +579,11 @@ public abstract class AbstractInvokerMoj
private String actualMavenVersion;
/**
+ * The version of the JRE which is used to run the builds
+ */
+ private String actualJreVersion;
+
+ /**
* Invokes Maven on the configured test projects.
*
* @throws org.apache.maven.plugin.MojoExecutionException
@@ -1106,8 +1111,6 @@ public abstract class AbstractInvokerMoj
}
final File finalSettingsFile = mergedSettingsFile;
- // @todo calculate JavaVersion and OS here only once...
- // isSelected() retrieves these values for every BuildJob, but they are read over and over again inside SelectorUtils
if ( mavenHome != null )
{
actualMavenVersion = SelectorUtils.getMavenVersion( mavenHome );
@@ -1116,7 +1119,16 @@ public abstract class AbstractInvokerMoj
{
actualMavenVersion = SelectorUtils.getMavenVersion();
}
-
+
+ if ( javaHome != null )
+ {
+ actualJreVersion = SelectorUtils.getJreVersion( javaHome );
+ }
+ else
+ {
+ actualJreVersion = SelectorUtils.getJreVersion();
+ }
+
try
{
if ( isParallelRun() )
@@ -1323,7 +1335,7 @@ public abstract class AbstractInvokerMoj
return false;
}
- if ( !SelectorUtils.isJreVersion( invokerProperties.getJreVersion() ) )
+ if ( !SelectorUtils.isJreVersion( invokerProperties.getJreVersion(), actualJreVersion ) )
{
return false;
}
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=1403055&r1=1403054&r2=1403055&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 18:01:03 2012
@@ -169,17 +169,34 @@ class SelectorUtils
return isJreVersion( mavenVersionList, includes, true ) && !isJreVersion( mavenVersionList, excludes, false );
}
+ static String getJreVersion()
+ {
+ return System.getProperty( "java.version", "" );
+ }
+
+ static String getJreVersion( File javaHome )
+ {
+ //@todo detect actual version
+ return null;
+ }
+
static boolean isJreVersion( String jreSpec )
{
+ return isJreVersion( jreSpec, getJreVersion() );
+ }
+
+ static boolean isJreVersion( String jreSpec, String actualJreVersion )
+ {
List<String> includes = new ArrayList<String>();
List<String> excludes = new ArrayList<String>();
parseList( jreSpec, includes, excludes );
- List<Integer> jreVersion = parseVersion( System.getProperty( "java.version", "" ) );
+ List<Integer> jreVersion = parseVersion( actualJreVersion );
return isJreVersion( jreVersion, includes, true ) && !isJreVersion( jreVersion, excludes, false );
}
+
static boolean isJreVersion( List<Integer> jreVersion, List<String> versionPatterns, boolean defaultMatch )
{
if ( versionPatterns != null && !versionPatterns.isEmpty() )