You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by be...@apache.org on 2008/07/17 00:33:58 UTC
svn commit: r677452 -
/maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/AbstractEmbedderTestCase.java
Author: bentmann
Date: Wed Jul 16 15:33:58 2008
New Revision: 677452
URL: http://svn.apache.org/viewvc?rev=677452&view=rev
Log:
o Considered file extensions in command search to enable tests for Windows
Modified:
maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/AbstractEmbedderTestCase.java
Modified: maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/AbstractEmbedderTestCase.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/AbstractEmbedderTestCase.java?rev=677452&r1=677451&r2=677452&view=diff
==============================================================================
--- maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/AbstractEmbedderTestCase.java (original)
+++ maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/AbstractEmbedderTestCase.java Wed Jul 16 15:33:58 2008
@@ -16,13 +16,16 @@
*/
import java.io.File;
+import java.util.Arrays;
import java.util.Collections;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
+import java.util.Properties;
import java.util.StringTokenizer;
import org.codehaus.plexus.PlexusTestCase;
+import org.codehaus.plexus.util.Os;
import org.codehaus.plexus.util.StringUtils;
import org.codehaus.plexus.util.cli.CommandLineUtils;
@@ -31,10 +34,13 @@
{
protected MavenEmbedder maven;
- private String defaultPath;
-
private List defaultPathList;
+ /**
+ * The file extensions used to resolve command names to executables. Each extension must have a leading period.
+ */
+ private List commandExtensions;
+
protected void setUp()
throws Exception
{
@@ -51,7 +57,9 @@
// but if they are not present on the machine we don't want tests to fail. Case in point would be using SVN via the SCM plugin. We'll
// run it if we can, pass through gracefully otherwise.
- defaultPath = CommandLineUtils.getSystemEnvVars().getProperty( "PATH" );
+ Properties env = CommandLineUtils.getSystemEnvVars( !Os.isFamily( Os.FAMILY_WINDOWS ) );
+
+ String defaultPath = env.getProperty( "PATH" );
if ( defaultPath == null )
{
@@ -59,9 +67,7 @@
}
else
{
- String separator = System.getProperty( "path.separator" );
-
- StringTokenizer tokenizer = new StringTokenizer( defaultPath, separator );
+ StringTokenizer tokenizer = new StringTokenizer( defaultPath, File.pathSeparator );
defaultPathList = new LinkedList();
@@ -72,6 +78,17 @@
defaultPathList.add( element );
}
}
+
+ String pathExt = env.getProperty( "PATHEXT" );
+
+ if ( pathExt == null )
+ {
+ commandExtensions = Collections.EMPTY_LIST;
+ }
+ else
+ {
+ commandExtensions = Arrays.asList( pathExt.split( "\\" + File.pathSeparatorChar + "+" ) );
+ }
}
protected void tearDown()
@@ -118,12 +135,22 @@
return null;
}
- // TODO: Need to resolve it with defaults extension of system
- // ie. if executable is 'mvn', we must search 'mvn.bat'
for ( Iterator it = path.iterator(); it.hasNext(); )
{
String s = (String) it.next();
+ for ( Iterator ite = commandExtensions.iterator(); ite.hasNext(); )
+ {
+ String ext = (String) ite.next();
+
+ f = new File( s, executable + ext );
+
+ if ( f.isFile() )
+ {
+ return f;
+ }
+ }
+
f = new File( s, executable );
if ( f.isFile() )