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/05/31 00:40:42 UTC

svn commit: r661905 - in /maven/shared/trunk/maven-invoker: ./ src/main/java/org/apache/maven/shared/invoker/ src/test/java/org/apache/maven/shared/invoker/ src/test/resources/test-build-should-succeed/ src/test/resources/test-space-local-repo/ src/tes...

Author: bentmann
Date: Fri May 30 15:40:41 2008
New Revision: 661905

URL: http://svn.apache.org/viewvc?rev=661905&view=rev
Log:
[MSHARED-21] Spaces are incorrectly handled on command line

Added:
    maven/shared/trunk/maven-invoker/src/test/resources/test-space-local-repo/
    maven/shared/trunk/maven-invoker/src/test/resources/test-space-local-repo/pom.xml   (with props)
    maven/shared/trunk/maven-invoker/src/test/resources/test-space-local-repo/repo with spaces/
    maven/shared/trunk/maven-invoker/src/test/resources/test-space-local-repo/repo with spaces/readme.txt   (with props)
    maven/shared/trunk/maven-invoker/src/test/resources/test-space-pom/
    maven/shared/trunk/maven-invoker/src/test/resources/test-space-pom/pom with spaces.xml   (with props)
    maven/shared/trunk/maven-invoker/src/test/resources/test-space-properties/
    maven/shared/trunk/maven-invoker/src/test/resources/test-space-properties/pom.xml   (with props)
    maven/shared/trunk/maven-invoker/src/test/resources/test-space-settings/
    maven/shared/trunk/maven-invoker/src/test/resources/test-space-settings/pom.xml   (with props)
    maven/shared/trunk/maven-invoker/src/test/resources/test-space-settings/settings with spaces.xml   (with props)
Modified:
    maven/shared/trunk/maven-invoker/pom.xml
    maven/shared/trunk/maven-invoker/src/main/java/org/apache/maven/shared/invoker/DefaultInvoker.java
    maven/shared/trunk/maven-invoker/src/main/java/org/apache/maven/shared/invoker/MavenCommandLineBuilder.java
    maven/shared/trunk/maven-invoker/src/test/java/org/apache/maven/shared/invoker/DefaultInvokerTest.java
    maven/shared/trunk/maven-invoker/src/test/java/org/apache/maven/shared/invoker/MavenCommandLineBuilderTest.java
    maven/shared/trunk/maven-invoker/src/test/resources/test-build-should-succeed/pom.xml

Modified: maven/shared/trunk/maven-invoker/pom.xml
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-invoker/pom.xml?rev=661905&r1=661904&r2=661905&view=diff
==============================================================================
--- maven/shared/trunk/maven-invoker/pom.xml (original)
+++ maven/shared/trunk/maven-invoker/pom.xml Fri May 30 15:40:41 2008
@@ -31,7 +31,7 @@
     <dependency>
       <groupId>org.codehaus.plexus</groupId>
       <artifactId>plexus-utils</artifactId>
-      <version>1.4.7</version>
+      <version>1.5.1</version>
     </dependency>
     <dependency>
       <groupId>org.apache.maven</groupId>
@@ -41,7 +41,7 @@
     <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
-      <version>3.8.1</version>
+      <version>3.8.2</version>
       <scope>test</scope>
     </dependency>
   </dependencies>
@@ -66,7 +66,7 @@
       <plugin>
         <groupId>org.codehaus.plexus</groupId>
         <artifactId>plexus-maven-plugin</artifactId>
-        <version>1.3.4</version>
+        <version>1.3.8</version>
         <executions>
           <execution>
             <id>create-component-descriptor</id>
@@ -87,7 +87,7 @@
       </plugin>
       <plugin>
         <artifactId>maven-changes-plugin</artifactId>
-        <version>2.0-beta-3</version>
+        <version>2.0</version>
         <configuration>
           <issueLinkTemplate>%URL%/%ISSUE%</issueLinkTemplate>
         </configuration>

Modified: maven/shared/trunk/maven-invoker/src/main/java/org/apache/maven/shared/invoker/DefaultInvoker.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-invoker/src/main/java/org/apache/maven/shared/invoker/DefaultInvoker.java?rev=661905&r1=661904&r2=661905&view=diff
==============================================================================
--- maven/shared/trunk/maven-invoker/src/main/java/org/apache/maven/shared/invoker/DefaultInvoker.java (original)
+++ maven/shared/trunk/maven-invoker/src/main/java/org/apache/maven/shared/invoker/DefaultInvoker.java Fri May 30 15:40:41 2008
@@ -39,12 +39,14 @@
 {
     
     public static final String ROLE_HINT = "default";
-    
+
+    private static final InvokerLogger DEFAULT_LOGGER = new SystemOutLogger();
+
     private static final InvocationOutputHandler DEFAULT_OUTPUT_HANDLER = new SystemOutHandler();
 
     private File localRepositoryDirectory;
 
-    private InvokerLogger logger;
+    private InvokerLogger logger = DEFAULT_LOGGER;
 
     private File workingDirectory;
 
@@ -118,12 +120,16 @@
         InputStream inputStream = request.getInputStream( this.inputStream );
         InvocationOutputHandler outputHandler = request.getOutputHandler( this.outputHandler );
         InvocationOutputHandler errorHandler = request.getErrorHandler( this.errorHandler );
-        
+
+        if ( getLogger().isDebugEnabled() )
+        {
+            getLogger().debug( "Executing: " + cli );
+        }
         if ( request.isInteractive() )
         {
             if ( inputStream == null )
             {
-                logger.warn( "Maven will be executed in interactive mode, but no input stream has been configured for this MavenInvoker instance." );
+                getLogger().warn( "Maven will be executed in interactive mode, but no input stream has been configured for this MavenInvoker instance." );
                 
                 result = CommandLineUtils.executeCommandLine( cli, outputHandler, errorHandler );
             }
@@ -136,7 +142,7 @@
         {
             if ( inputStream != null )
             {
-                logger.info( "Executing in offline mode. The configured input stream will be ignored." );
+                getLogger().info( "Executing in offline mode. The configured input stream will be ignored." );
             }
             
             result = CommandLineUtils.executeCommandLine( cli, outputHandler, errorHandler );

Modified: maven/shared/trunk/maven-invoker/src/main/java/org/apache/maven/shared/invoker/MavenCommandLineBuilder.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-invoker/src/main/java/org/apache/maven/shared/invoker/MavenCommandLineBuilder.java?rev=661905&r1=661904&r2=661905&view=diff
==============================================================================
--- maven/shared/trunk/maven-invoker/src/main/java/org/apache/maven/shared/invoker/MavenCommandLineBuilder.java (original)
+++ maven/shared/trunk/maven-invoker/src/main/java/org/apache/maven/shared/invoker/MavenCommandLineBuilder.java Fri May 30 15:40:41 2008
@@ -141,7 +141,7 @@
             }
 
             cli.createArgument().setValue( "-s" );
-            cli.createArgument().setValue( wrapStringWithQuotes( userSettingsFile.getPath() ) );
+            cli.createArgument().setValue( userSettingsFile.getPath() );
         }
     }
 
@@ -230,7 +230,8 @@
                 String key = (String) entry.getKey();
                 String value = (String) entry.getValue();
 
-                cli.createArgument().setValue( "-D" + wrapStringWithQuotes( key ) + "=" + wrapStringWithQuotes(value) );
+                cli.createArgument().setValue( "-D" );
+                cli.createArgument().setValue( key + '=' + value );
             }
         }
     }
@@ -289,7 +290,8 @@
                 logger
                     .debug( "Specified POM file is not named \'pom.xml\'. Using the \'-f\' command-line option to accommodate non-standard filename..." );
 
-                cli.createArgument().setLine( "-f " + wrapStringWithQuotes(pom.getName()) );
+                cli.createArgument().setValue( "-f" );
+                cli.createArgument().setValue( pom.getName() );
             }
         }
     }
@@ -316,7 +318,7 @@
         {
             workingDirectory = new File( System.getProperty( "user.dir" ) );
         }
-        else if ( !workingDirectory.isDirectory() )
+        else if ( workingDirectory.isFile() )
         {
             logger
                 .warn( "Specified base directory (" + workingDirectory + ") is a file. Using its parent directory..." );
@@ -356,7 +358,8 @@
                     + "\' is NOT a directory." );
             }
 
-            cli.createArgument().setValue( "-Dmaven.repo.local=" + wrapStringWithQuotes(localRepositoryDirectory.getPath()) );
+            cli.createArgument().setValue( "-D" );
+            cli.createArgument().setValue( "maven.repo.local=" + localRepositoryDirectory.getPath() );
         }
     }
 
@@ -497,6 +500,7 @@
      *
      * @param path string to wrap if containing spaces
      * @return quote wrapped string
+     * @deprecated Quoting of command line arguments should be left to the Commandline from plexus-utils.
      */
     public String wrapStringWithQuotes( String path )
     {

Modified: maven/shared/trunk/maven-invoker/src/test/java/org/apache/maven/shared/invoker/DefaultInvokerTest.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-invoker/src/test/java/org/apache/maven/shared/invoker/DefaultInvokerTest.java?rev=661905&r1=661904&r2=661905&view=diff
==============================================================================
--- maven/shared/trunk/maven-invoker/src/test/java/org/apache/maven/shared/invoker/DefaultInvokerTest.java (original)
+++ maven/shared/trunk/maven-invoker/src/test/java/org/apache/maven/shared/invoker/DefaultInvokerTest.java Fri May 30 15:40:41 2008
@@ -42,8 +42,7 @@
     {
         File basedir = getBasedirForBuild();
 
-        Invoker invoker = new DefaultInvoker();
-        invoker.setMavenHome( findMavenHome() );
+        Invoker invoker = newInvoker();
 
         Properties props = new Properties();
 //        props.put( "key with spaces", "value with spaces" );
@@ -70,8 +69,7 @@
     {
         File basedir = getBasedirForBuild();
 
-        Invoker invoker = new DefaultInvoker();
-        invoker.setMavenHome( findMavenHome() );
+        Invoker invoker = newInvoker();
 
         InvocationRequest request = new DefaultInvocationRequest();
         request.setBaseDirectory( basedir );
@@ -89,6 +87,124 @@
         assertEquals( 1, result.getExitCode() );
     }
 
+    public void testSpacePom()
+        throws Exception
+    {
+        logTestStart();
+
+        File basedir = getBasedirForBuild();
+
+        Invoker invoker = newInvoker();
+
+        InvocationRequest request = new DefaultInvocationRequest();
+        request.setBaseDirectory( basedir );
+
+        request.setPomFileName( "pom with spaces.xml" );
+
+        request.setDebug( true );
+
+        List goals = new ArrayList();
+        goals.add( "clean" );
+
+        request.setGoals( goals );
+
+        InvocationResult result = invoker.execute( request );
+
+        assertEquals( 0, result.getExitCode() );
+    }
+
+    public void testSpaceSettings()
+        throws Exception
+    {
+        logTestStart();
+
+        File basedir = getBasedirForBuild();
+
+        Invoker invoker = newInvoker();
+
+        InvocationRequest request = new DefaultInvocationRequest();
+        request.setBaseDirectory( basedir );
+
+        request.setUserSettingsFile( new File( basedir, "settings with spaces.xml" ) );
+
+        request.setDebug( true );
+
+        List goals = new ArrayList();
+        goals.add( "validate" );
+
+        request.setGoals( goals );
+
+        InvocationResult result = invoker.execute( request );
+
+        assertEquals( 0, result.getExitCode() );
+    }
+
+    public void testSpaceLocalRepo()
+        throws Exception
+    {
+        logTestStart();
+
+        File basedir = getBasedirForBuild();
+
+        Invoker invoker = newInvoker();
+
+        InvocationRequest request = new DefaultInvocationRequest();
+        request.setBaseDirectory( basedir );
+
+        request.setLocalRepositoryDirectory( new File( basedir, "repo with spaces" ) );
+
+        request.setDebug( true );
+
+        List goals = new ArrayList();
+        goals.add( "validate" );
+
+        request.setGoals( goals );
+
+        InvocationResult result = invoker.execute( request );
+
+        assertEquals( 0, result.getExitCode() );
+    }
+
+    public void testSpaceProperties()
+        throws Exception
+    {
+        logTestStart();
+
+        File basedir = getBasedirForBuild();
+
+        Invoker invoker = newInvoker();
+
+        InvocationRequest request = new DefaultInvocationRequest();
+        request.setBaseDirectory( basedir );
+
+        Properties props = new Properties();
+        props.setProperty( "key", "value with spaces" );
+        props.setProperty( "key with spaces", "value" );
+        request.setProperties( props );
+
+        request.setDebug( true );
+
+        List goals = new ArrayList();
+        goals.add( "validate" );
+
+        request.setGoals( goals );
+
+        InvocationResult result = invoker.execute( request );
+
+        assertEquals( 0, result.getExitCode() );
+    }
+
+    private Invoker newInvoker()
+        throws IOException
+    {
+        Invoker invoker = new DefaultInvoker();
+        invoker.setMavenHome( findMavenHome() );
+        InvokerLogger logger = new SystemOutLogger();
+        logger.setThreshold( InvokerLogger.DEBUG );
+        invoker.setLogger( logger );
+        return invoker;
+    }
+
     private File findMavenHome()
         throws IOException
     {
@@ -127,4 +243,13 @@
         return new File( new URI( dirResource.toString() ).getPath() );
     }
 
+    // this is just a debugging helper for separating unit test output...
+    private void logTestStart()
+    {
+        NullPointerException npe = new NullPointerException();
+        StackTraceElement element = npe.getStackTrace()[1];
+
+        System.out.println( "Starting: " + element.getMethodName() );
+    }
+
 }

Modified: maven/shared/trunk/maven-invoker/src/test/java/org/apache/maven/shared/invoker/MavenCommandLineBuilderTest.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-invoker/src/test/java/org/apache/maven/shared/invoker/MavenCommandLineBuilderTest.java?rev=661905&r1=661904&r2=661905&view=diff
==============================================================================
--- maven/shared/trunk/maven-invoker/src/test/java/org/apache/maven/shared/invoker/MavenCommandLineBuilderTest.java (original)
+++ maven/shared/trunk/maven-invoker/src/test/java/org/apache/maven/shared/invoker/MavenCommandLineBuilderTest.java Fri May 30 15:40:41 2008
@@ -123,7 +123,7 @@
 
         tcb.setEnvironmentPaths( new DefaultInvocationRequest(), cli );
 
-        assertArgumentsPresent( Collections.singleton( "-Dmaven.repo.local=" + tcb.wrapStringWithQuotes( lrd.getPath()) ), cli );
+        assertArgumentsPresent( Collections.singleton( "maven.repo.local=" + lrd.getPath() ), cli );
     }
 
     public void testShouldSetLocalRepoLocationFromRequest()
@@ -144,7 +144,7 @@
 
         tcb.setEnvironmentPaths( new DefaultInvocationRequest().setLocalRepositoryDirectory( lrd ), cli );
 
-        assertArgumentsPresent( Collections.singleton( "-Dmaven.repo.local=" + tcb.wrapStringWithQuotes(lrd.getPath()) ), cli );
+        assertArgumentsPresent( Collections.singleton( "maven.repo.local=" + lrd.getPath() ), cli );
     }
 
     public void testRequestProvidedLocalRepoLocationShouldOverrideGlobal()
@@ -170,7 +170,7 @@
 
         tcb.setEnvironmentPaths( new DefaultInvocationRequest().setLocalRepositoryDirectory( lrd ), cli );
 
-        assertArgumentsPresent( Collections.singleton( "-Dmaven.repo.local=" + tcb.wrapStringWithQuotes( lrd.getPath()) ), cli );
+        assertArgumentsPresent( Collections.singleton( "maven.repo.local=" + lrd.getPath() ), cli );
     }
 
     public void testShouldSetWorkingDirectoryGlobally()
@@ -713,7 +713,7 @@
 
         Set args = new HashSet();
         args.add( "-s" );
-        args.add( tcb.wrapStringWithQuotes( settingsFile.getCanonicalPath()) );
+        args.add( settingsFile.getCanonicalPath() );
 
         assertArgumentsPresent( args, cli );
     }
@@ -731,7 +731,7 @@
         TestCommandLineBuilder tcb = new TestCommandLineBuilder();
         tcb.setProperties( new DefaultInvocationRequest().setProperties( properties ), cli );
 
-        assertArgumentsPresent( Collections.singleton( "-Dkey=value" ), cli );
+        assertArgumentsPresent( Collections.singleton( "key=value" ), cli );
     }
 
     public void testShouldSpecifyCustomPropertyWithSpacesInValueFromRequest()
@@ -747,7 +747,7 @@
         TestCommandLineBuilder tcb = new TestCommandLineBuilder();
         tcb.setProperties( new DefaultInvocationRequest().setProperties( properties ), cli );
 
-        assertArgumentsPresent( Collections.singleton( "-Dkey=\"value with spaces\"" ), cli );
+        assertArgumentsPresent( Collections.singleton( "key=value with spaces" ), cli );
     }
 
     public void testShouldSpecifyCustomPropertyWithSpacesInKeyFromRequest()
@@ -763,7 +763,7 @@
         TestCommandLineBuilder tcb = new TestCommandLineBuilder();
         tcb.setProperties( new DefaultInvocationRequest().setProperties( properties ), cli );
 
-        assertArgumentsPresent( Collections.singleton( "-D\"key with spaces\"=\"value with spaces\"" ), cli );
+        assertArgumentsPresent( Collections.singleton( "key with spaces=value with spaces" ), cli );
     }
 
     public void testShouldSpecifySingleGoalFromRequest()
@@ -828,7 +828,7 @@
         // this is REALLY bad practice, but since it's just a test...
         properties.setProperty( "maven.tests.skip", "true" );
 
-        expectedArgs.add( "-Dmaven.tests.skip=true" );
+        expectedArgs.add( "maven.tests.skip=true" );
 
         request.setProperties( properties );
 
@@ -967,10 +967,10 @@
     // this is just a debugging helper for separating unit test output...
     private void logTestStart()
     {
-//        NullPointerException npe = new NullPointerException();
-//        StackTraceElement element = npe.getStackTrace()[1];
-//
-//        System.out.println( "Starting: " + element.getMethodName() );
+        NullPointerException npe = new NullPointerException();
+        StackTraceElement element = npe.getStackTrace()[1];
+
+        System.out.println( "Starting: " + element.getMethodName() );
     }
 
     private void assertArgumentsPresentInOrder( List expected, Commandline cli )

Modified: maven/shared/trunk/maven-invoker/src/test/resources/test-build-should-succeed/pom.xml
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-invoker/src/test/resources/test-build-should-succeed/pom.xml?rev=661905&r1=661904&r2=661905&view=diff
==============================================================================
--- maven/shared/trunk/maven-invoker/src/test/resources/test-build-should-succeed/pom.xml (original)
+++ maven/shared/trunk/maven-invoker/src/test/resources/test-build-should-succeed/pom.xml Fri May 30 15:40:41 2008
@@ -9,7 +9,7 @@
     <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
-      <version>3.8.1</version>
+      <version>3.8.2</version>
       <scope>test</scope>
     </dependency>
   </dependencies>

Added: maven/shared/trunk/maven-invoker/src/test/resources/test-space-local-repo/pom.xml
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-invoker/src/test/resources/test-space-local-repo/pom.xml?rev=661905&view=auto
==============================================================================
--- maven/shared/trunk/maven-invoker/src/test/resources/test-space-local-repo/pom.xml (added)
+++ maven/shared/trunk/maven-invoker/src/test/resources/test-space-local-repo/pom.xml Fri May 30 15:40:41 2008
@@ -0,0 +1,8 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.maven.shared.invoker</groupId>
+  <artifactId>test-space-local-repo</artifactId>
+  <packaging>jar</packaging>
+  <version>1</version>
+</project>

Propchange: maven/shared/trunk/maven-invoker/src/test/resources/test-space-local-repo/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/shared/trunk/maven-invoker/src/test/resources/test-space-local-repo/pom.xml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/shared/trunk/maven-invoker/src/test/resources/test-space-local-repo/repo with spaces/readme.txt
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-invoker/src/test/resources/test-space-local-repo/repo%20with%20spaces/readme.txt?rev=661905&view=auto
==============================================================================
--- maven/shared/trunk/maven-invoker/src/test/resources/test-space-local-repo/repo with spaces/readme.txt (added)
+++ maven/shared/trunk/maven-invoker/src/test/resources/test-space-local-repo/repo with spaces/readme.txt Fri May 30 15:40:41 2008
@@ -0,0 +1 @@
+Dummy file used to ensure the repo directory is copied over to target/test-classes.

Propchange: maven/shared/trunk/maven-invoker/src/test/resources/test-space-local-repo/repo with spaces/readme.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/shared/trunk/maven-invoker/src/test/resources/test-space-local-repo/repo with spaces/readme.txt
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/shared/trunk/maven-invoker/src/test/resources/test-space-pom/pom with spaces.xml
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-invoker/src/test/resources/test-space-pom/pom%20with%20spaces.xml?rev=661905&view=auto
==============================================================================
--- maven/shared/trunk/maven-invoker/src/test/resources/test-space-pom/pom with spaces.xml (added)
+++ maven/shared/trunk/maven-invoker/src/test/resources/test-space-pom/pom with spaces.xml Fri May 30 15:40:41 2008
@@ -0,0 +1,8 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.maven.shared.invoker</groupId>
+  <artifactId>test-space-pom</artifactId>
+  <packaging>jar</packaging>
+  <version>1</version>
+</project>

Propchange: maven/shared/trunk/maven-invoker/src/test/resources/test-space-pom/pom with spaces.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/shared/trunk/maven-invoker/src/test/resources/test-space-pom/pom with spaces.xml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/shared/trunk/maven-invoker/src/test/resources/test-space-properties/pom.xml
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-invoker/src/test/resources/test-space-properties/pom.xml?rev=661905&view=auto
==============================================================================
--- maven/shared/trunk/maven-invoker/src/test/resources/test-space-properties/pom.xml (added)
+++ maven/shared/trunk/maven-invoker/src/test/resources/test-space-properties/pom.xml Fri May 30 15:40:41 2008
@@ -0,0 +1,47 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.maven.shared.invoker</groupId>
+  <artifactId>test-space-properties</artifactId>
+  <packaging>jar</packaging>
+  <version>1</version>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-antrun-plugin</artifactId>
+        <version>1.1</version>
+        <configuration>
+          <tasks>
+            <property name="prop0" value="${key}"/>
+            <echo>${prop0}</echo>
+            <property name="prop1" value="${key with spaces}"/>
+            <echo>${prop1}</echo>
+            <fail message="System property 'key' got messed up during forking: '${prop0}'">
+              <condition>
+                <not>
+                  <equals arg1="${prop0}" arg2="value with spaces"/>
+                </not>
+              </condition>
+            </fail>
+            <fail message="System property 'key with spaces' got messed up during forking: '${prop1}'">
+              <condition>
+                <not>
+                  <equals arg1="${prop1}" arg2="value"/>
+                </not>
+              </condition>
+            </fail>
+          </tasks>
+        </configuration>
+        <executions>
+          <execution>
+            <phase>validate</phase>
+            <goals>
+              <goal>run</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+</project>

Propchange: maven/shared/trunk/maven-invoker/src/test/resources/test-space-properties/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/shared/trunk/maven-invoker/src/test/resources/test-space-properties/pom.xml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/shared/trunk/maven-invoker/src/test/resources/test-space-settings/pom.xml
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-invoker/src/test/resources/test-space-settings/pom.xml?rev=661905&view=auto
==============================================================================
--- maven/shared/trunk/maven-invoker/src/test/resources/test-space-settings/pom.xml (added)
+++ maven/shared/trunk/maven-invoker/src/test/resources/test-space-settings/pom.xml Fri May 30 15:40:41 2008
@@ -0,0 +1,8 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.maven.shared.invoker</groupId>
+  <artifactId>test-space-settings</artifactId>
+  <packaging>jar</packaging>
+  <version>1</version>
+</project>

Propchange: maven/shared/trunk/maven-invoker/src/test/resources/test-space-settings/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/shared/trunk/maven-invoker/src/test/resources/test-space-settings/pom.xml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/shared/trunk/maven-invoker/src/test/resources/test-space-settings/settings with spaces.xml
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-invoker/src/test/resources/test-space-settings/settings%20with%20spaces.xml?rev=661905&view=auto
==============================================================================
--- maven/shared/trunk/maven-invoker/src/test/resources/test-space-settings/settings with spaces.xml (added)
+++ maven/shared/trunk/maven-invoker/src/test/resources/test-space-settings/settings with spaces.xml Fri May 30 15:40:41 2008
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<settings>
+</settings>

Propchange: maven/shared/trunk/maven-invoker/src/test/resources/test-space-settings/settings with spaces.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/shared/trunk/maven-invoker/src/test/resources/test-space-settings/settings with spaces.xml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision