diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0000Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0000Test.java
index 33879bd..8d09882 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0000Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0000Test.java
@@ -15,7 +15,7 @@
         throws Exception
     {
         IntegrationTestRunner itr = createTestRunner();
-        itr.invoke( createInvocationRequest( "package" ) );
+        itr.invoke( "package" );
         itr.assertFilePresent( "target/classes/org/apache/maven/it0000/Person.class" );
         itr.assertFilePresent( "target/test-classes/org/apache/maven/it0000/PersonTest.class" );
         itr.assertFilePresent( "target/maven-it-it0000-1.0.jar" );
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0001Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0001Test.java
index 8dba9eb..27de364 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0001Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0001Test.java
@@ -1,7 +1,5 @@
 package org.apache.maven.integrationtests;
 
-import java.io.File;
-
 import org.apache.maven.it.IntegrationTestRunner;
 
 public class MavenIT0001Test
@@ -16,7 +14,7 @@
         throws Exception
     {
         IntegrationTestRunner itr = createTestRunner();
-        itr.invoke( createInvocationRequest( "package" ) );        
+        itr.invoke( "package" );        
         itr.assertFilePresent( "target/classes/org/apache/maven/it0001/Person.class" );
         itr.assertFilePresent( "target/test-classes/org/apache/maven/it0001/PersonTest.class" );
         itr.assertFilePresent( "target/maven-it-it0001-1.0.jar" );
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0002Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0002Test.java
index 071ed13..91b7b31 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0002Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0002Test.java
@@ -14,7 +14,7 @@
     {
         IntegrationTestRunner itr = createTestRunner();
         itr.deleteArtifact( "org.apache.maven.its", "maven-core-it-support", "1.0", "jar" );
-        itr.invoke( createInvocationRequest( "package" ) );        
+        itr.invoke( "package" );        
         itr.assertFilePresent( "target/classes/org/apache/maven/it0002/Person.class" );
         itr.assertFilePresent( "target/test-classes/org/apache/maven/it0002/PersonTest.class" );
         itr.assertFilePresent( "target/maven-it-it0002-1.0.jar" );
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0003Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0003Test.java
index 0e2dbed..dacc2f3 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0003Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0003Test.java
@@ -1,7 +1,5 @@
 package org.apache.maven.integrationtests;
 
-import java.io.File;
-
 import org.apache.maven.it.IntegrationTestRunner;
 
 public class MavenIT0003Test
@@ -15,10 +13,9 @@
     public void testit0003()
         throws Exception
     {
-        File testDir = extractTestResources( getClass(), "/it0003" );
-        IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
+        IntegrationTestRunner itr = createTestRunner();
         itr.deleteArtifact( "org.apache.maven", "maven-it-it0003", "1.0", "jar" );
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );        
         itr.assertFilePresent( "target/classes/org/apache/maven/it0003/Person.class" );
         itr.assertFilePresent( "target/test-classes/org/apache/maven/it0003/PersonTest.class" );
         itr.assertFilePresent( "target/maven-it-it0003-1.0.jar" );
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0004Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0004Test.java
index 880d481..6612a4a 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0004Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0004Test.java
@@ -1,7 +1,5 @@
 package org.apache.maven.integrationtests;
 
-import java.io.File;
-
 import org.apache.maven.it.IntegrationTestRunner;
 
 public class MavenIT0004Test
@@ -14,15 +12,13 @@
      */
     public void testit0004()
         throws Exception
-    {
-        File testDir = extractTestResources( getClass(), "/it0004" );
-        IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
+    {      
+        IntegrationTestRunner itr = createTestRunner();
         itr.deleteArtifact( "org.apache.maven", "maven-it-it0004", "1.0", "pom" );
-        itr.executeGoal( "install:install" );
+        itr.invoke( "install:install" );
         itr.assertArtifactPresent( "org.apache.maven.its.it0004", "maven-it-it0004", "1.0", "pom" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
-
     }
 }
 
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0005Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0005Test.java
index 62b1197..35927d3 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0005Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0005Test.java
@@ -1,13 +1,10 @@
 package org.apache.maven.integrationtests;
 
-import java.io.File;
-
 import org.apache.maven.it.IntegrationTestRunner;
 
 public class MavenIT0005Test
     extends AbstractMavenIntegrationTestCase
 {
-
     /**
      * The simplest of pom installation. We have a snapshot pom and we install
      * it in local repository.
@@ -15,14 +12,12 @@
     public void testit0005()
         throws Exception
     {
-        File testDir = extractTestResources( getClass(), "/it0005" );
-        IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
+        IntegrationTestRunner itr = createTestRunner();
         itr.deleteArtifact( "org.apache.maven", "maven-it-it0005", "1.0-SNAPSHOT", "pom" );
-        itr.executeGoal( "install:install" );
+        itr.invoke( "install:install" );        
         itr.assertArtifactPresent( "org.apache.maven.its.it0005", "maven-it-it0005", "1.0-SNAPSHOT", "pom" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
-
     }
 }
 
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0006Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0006Test.java
index 00f4b55..c6fa8ad 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0006Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0006Test.java
@@ -1,25 +1,20 @@
 package org.apache.maven.integrationtests;
 
-import java.io.File;
-
 import org.apache.maven.it.IntegrationTestRunner;
 
 public class MavenIT0006Test
     extends AbstractMavenIntegrationTestCase
 {
-
     /**
      * Integration test for the itr plugin.
      */
     public void testit0006()
         throws Exception
     {
-        File testDir = extractTestResources( getClass(), "/it0006" );
-        IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "integration-test" );
+        IntegrationTestRunner itr = createTestRunner();
+        itr.invoke( "integration-test" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
-
     }
 }
 
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0007Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0007Test.java
index a5e2a05..3ea3987 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0007Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0007Test.java
@@ -1,7 +1,5 @@
 package org.apache.maven.integrationtests;
 
-import java.io.File;
-
 import org.apache.maven.it.IntegrationTestRunner;
 
 public class MavenIT0007Test
@@ -15,10 +13,9 @@
     public void testit0007()
         throws Exception
     {
-        File testDir = extractTestResources( getClass(), "/it0007" );
-        IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
+        IntegrationTestRunner itr = createTestRunner();
         itr.deleteArtifact( "org.apache.maven.plugins", "maven-plugin-parent", "2.0", "pom" );
-        itr.executeGoal( "package" );
+        itr.invoke( "package" );
         itr.assertFilePresent( "target/classes/org/apache/maven/it0007/Person.class" );
         itr.assertFilePresent( "target/test-classes/org/apache/maven/it0007/PersonTest.class" );
         itr.assertFilePresent( "target/maven-it-it0007-1.0.jar" );
@@ -26,7 +23,6 @@
         itr.assertArtifactPresent( "org.apache.maven.plugins", "maven-plugin-parent", "2.0", "pom" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
-
     }
 }
 
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0008Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0008Test.java
index bbb23f2..981e974 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0008Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0008Test.java
@@ -1,7 +1,5 @@
 package org.apache.maven.integrationtests;
 
-import java.io.File;
-
 import org.apache.maven.it.IntegrationTestRunner;
 
 public class MavenIT0008Test
@@ -17,15 +15,13 @@
     public void testit0008()
         throws Exception
     {
-        File testDir = extractTestResources( getClass(), "/it0008" );
-        IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
+        IntegrationTestRunner itr = createTestRunner();
         itr.deleteArtifact( "org.apache.maven.its.plugins", "maven-it-plugin-touch", "1.0", "maven-plugin" );
-        itr.executeGoal( "compile" );
+        itr.invoke( "compile" );
         itr.assertFilePresent( "target/touch.txt" );
         itr.assertFilePresent( "target/test-basedir-alignment/touch.txt" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
-
     }
 }
 
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0009Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0009Test.java
index 3583965..9b0c8d4 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0009Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0009Test.java
@@ -1,13 +1,10 @@
 package org.apache.maven.integrationtests;
 
-import java.io.File;
-
 import org.apache.maven.it.IntegrationTestRunner;
 
 public class MavenIT0009Test
     extends AbstractMavenIntegrationTestCase
 {
-
     /**
      * Test plugin configuration and goal configuration that overrides what the
      * mojo has specified.
@@ -15,16 +12,14 @@
     public void testit0009()
         throws Exception
     {
-        File testDir = extractTestResources( getClass(), "/it0009" );
-        IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
+        IntegrationTestRunner itr = createTestRunner();
         itr.deleteArtifact( "org.apache.maven.its.plugins", "maven-it-plugin-touch", "1.0", "maven-plugin" );
-        itr.executeGoal( "generate-resources" );
+        itr.invoke( "generate-resources" );
         itr.assertFilePresent( "target/pluginItem" );
         itr.assertFilePresent( "target/goalItem" );
         itr.assertFileNotPresent( "target/bad-item" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
-
     }
 }
 
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0010Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0010Test.java
index 83cd590..1636541 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0010Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0010Test.java
@@ -1,13 +1,10 @@
 package org.apache.maven.integrationtests;
 
-import java.io.File;
-
 import org.apache.maven.it.IntegrationTestRunner;
 
 public class MavenIT0010Test
     extends AbstractMavenIntegrationTestCase
 {
-
     /**
      * Since the artifact resolution does not use the project builder, we must
      * ensure that the full hierarchy of all dependencies is resolved. This
@@ -20,13 +17,11 @@
     public void testit0010()
         throws Exception
     {
-        File testDir = extractTestResources( getClass(), "/it0010" );
-        IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "compile" );
+        IntegrationTestRunner itr = createTestRunner();
+        itr.invoke( "compile" );
         itr.assertFilePresent( "target/classes/org/apache/maven/it0010/PersonFinder.class" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
-
     }
 }
 
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0011Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0011Test.java
index 6d2259f..01280e2 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0011Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0011Test.java
@@ -16,7 +16,7 @@
     {
         File testDir = extractTestResources( getClass(), "/it0011" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "compile" );
+        itr.invoke( "compile" );
         itr.assertFilePresent( "target/classes/org/apache/maven/it0011/PersonFinder.class" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0012Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0012Test.java
index b59a486..1b51e94 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0012Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0012Test.java
@@ -16,7 +16,7 @@
     {
         File testDir = extractTestResources( getClass(), "/it0012" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "org.apache.maven.its.plugins:maven-it-plugin-touch:touch" );
+        itr.invoke( "org.apache.maven.its.plugins:maven-it-plugin-touch:touch" );
         itr.assertFilePresent( "target/touch-3.8.1.txt" );
         itr.assertFilePresent( "child-project/target/child-touch-3.0.3.txt" );
         itr.verifyErrorFreeLog();
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0013Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0013Test.java
index 0b99101..b7cb266 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0013Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0013Test.java
@@ -19,11 +19,11 @@
         File testDir = extractTestResources( getClass(), "/it0013" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
         itr.deleteArtifact( "org.apache.maven.its.plugins", "maven-it-it0013", "1.0-SNAPSHOT", "maven-plugin" );
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
         itr.assertFilePresent( "target/maven-it-it0013-1.0-SNAPSHOT.jar" );
 
         itr = new IntegrationTestRunner( testDir.getAbsolutePath() );        
-        itr.executeGoal( "org.apache.maven.its.it0013:maven-it-it0013:it0013" );
+        itr.invoke( "org.apache.maven.its.it0013:maven-it-it0013:it0013" );
         itr.assertFilePresent( "target/it0013-verify" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0014Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0014Test.java
index 3ba0d58..d2bcd84 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0014Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0014Test.java
@@ -17,7 +17,7 @@
     {
         File testDir = extractTestResources( getClass(), "/it0014" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "test" );
+        itr.invoke( "test" );
         itr.assertFilePresent( "target/classes/org/apache/maven/it0014/Person.class" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0016Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0016Test.java
index 11f7986..92eb23f 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0016Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0016Test.java
@@ -16,7 +16,7 @@
     {
         File testDir = extractTestResources( getClass(), "/it0016" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "package" );
+        itr.invoke( "package" );
         itr.assertFilePresent( "target/classes/org/apache/maven/it0016/Person.class" );
         itr.assertFilePresent( "target/maven-it-it0016-1.0/index.html" );
         itr.assertFilePresent( "target/maven-it-it0016-1.0/WEB-INF/classes/org/apache/maven/it0016/Person.class" );
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0017Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0017Test.java
index 644bca6..5d21f8a 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0017Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0017Test.java
@@ -16,7 +16,7 @@
     {
         File testDir = extractTestResources( getClass(), "/it0017" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "package" );
+        itr.invoke( "package" );
         itr.assertFilePresent( "target/classes/org/apache/maven/it0017/Person.class" );
         itr.assertFilePresent( "target/maven-it-it0017-1.0.jar" );
         itr.assertFilePresent( "target/maven-it-it0017-1.0.jar!/META-INF/ejb-jar.xml" );
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0018Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0018Test.java
index 3fdb4c7..f1422e2 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0018Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0018Test.java
@@ -19,7 +19,7 @@
         File testDir = extractTestResources( getClass(), "/it0018" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
         itr.deleteArtifact( "commons-logging", "commons-logging", "1.0.3", "jar" );
-        itr.executeGoal( "package" );
+        itr.invoke( "package" );
         itr.assertArtifactPresent( "commons-logging", "commons-logging", "1.0.3", "jar" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0019Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0019Test.java
index 026f5dc..e0dc2e7 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0019Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0019Test.java
@@ -16,7 +16,7 @@
     {
         File testDir = extractTestResources( getClass(), "/it0019" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "compile" );
+        itr.invoke( "compile" );
         itr.assertFilePresent( "target/classes/org/apache/maven/it0019/Person.class" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0020Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0020Test.java
index 21d7072..fbb6a8b 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0020Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0020Test.java
@@ -17,10 +17,10 @@
         File testDir = extractTestResources( getClass(), "/it0020" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
         itr.deleteArtifact( "org.apache.maven.its.plugins", "maven-it-it0020", "1.0-SNAPSHOT", "maven-plugin" );
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
 
         itr = new IntegrationTestRunner( testDir.getAbsolutePath() );        
-        itr.executeGoal( "org.apache.maven.its.it0020:maven-it-it0020:it0020" );
+        itr.invoke( "org.apache.maven.its.it0020:maven-it-it0020:it0020" );
         itr.assertFilePresent( "target/out.txt" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0024Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0024Test.java
index 9128701..bb0170f 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0024Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0024Test.java
@@ -17,7 +17,7 @@
     {
         File testDir = extractTestResources( getClass(), "/it0024" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "generate-sources" );
+        itr.invoke( "generate-sources" );
         itr.assertFilePresent( "target/classes/org/apache/maven/it0024/Person.class" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0025Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0025Test.java
index 83fe1f7..e2f4405 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0025Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0025Test.java
@@ -16,7 +16,7 @@
     {
         File testDir = extractTestResources( getClass(), "/it0025" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "process-sources" );
+        itr.invoke( "process-sources" );
         itr.assertFilePresent( "target/test.txt" );
         itr.assertFilePresent( "target/test2.txt" );
         itr.verifyErrorFreeLog();
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0027Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0027Test.java
index c655416..4dd7ee6 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0027Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0027Test.java
@@ -16,7 +16,7 @@
     {
         File testDir = extractTestResources( getClass(), "/it0027" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "org.apache.maven.its.plugins:maven-it-plugin-fork:fork, org.apache.maven.its.plugins:maven-it-plugin-fork:fork-goal" );
+        itr.invoke( "org.apache.maven.its.plugins:maven-it-plugin-fork:fork, org.apache.maven.its.plugins:maven-it-plugin-fork:fork-goal" );
         itr.assertFilePresent( "target/forked/touch.txt" );
         itr.assertFilePresent( "target/forked2/touch.txt" );
         itr.verifyErrorFreeLog();
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0028Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0028Test.java
index a65a5c1..b33f485 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0028Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0028Test.java
@@ -17,7 +17,7 @@
     {
         File testDir = extractTestResources( getClass(), "/it0028" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "test" );
+        itr.invoke( "test" );
         itr.assertFilePresent( "target/classes/org/apache/maven/it0001/Person.class" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0029Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0029Test.java
index 9655084..3a0871f 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0029Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0029Test.java
@@ -18,7 +18,7 @@
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
         itr.deleteArtifact( "org.apache.maven.it", "maven-it-it0029", "1.0-SNAPSHOT", "jar" );
         itr.deleteArtifact( "org.apache.maven.it", "maven-it-it0029-child", "1.0-SNAPSHOT", "jar" );
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
         itr.assertFilePresent( "child-project/target/classes/org/apache/maven/it0029/Person.class" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0030Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0030Test.java
index 44d3b4a..aa39f64 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0030Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0030Test.java
@@ -21,7 +21,7 @@
         itr.deleteArtifact( "org.apache.maven.it", "maven-it-it0030-child-hierarchy", "1.0-SNAPSHOT", "jar" );
         itr.deleteArtifact( "org.apache.maven.it", "maven-it-it0030-child-project1", "1.0-SNAPSHOT", "jar" );
         itr.deleteArtifact( "org.apache.maven.it", "maven-it-it0030-child-project2", "1.0-SNAPSHOT", "jar" );
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
         itr.assertFilePresent( "child-hierarchy/project2/target/classes/org/apache/maven/it0001/Person.class" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0032Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0032Test.java
index 781c2ac..b50b45e 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0032Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0032Test.java
@@ -16,7 +16,7 @@
     {
         File testDir = extractTestResources( getClass(), "/it0032" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "package" );
+        itr.invoke( "package" );
         itr.assertFilePresent( "target/classes/org/apache/maven/it0032/Person.class" );
         itr.assertFilePresent( "target/test-classes/org/apache/maven/it0032/PersonTest.class" );
         itr.assertFilePresent( "target/maven-it-it0032-1.0.jar" );
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0033Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0033Test.java
index 6acfee3..01da642 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0033Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0033Test.java
@@ -16,7 +16,7 @@
     {
         File testDir = extractTestResources( getClass(), "/it0033" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "package" );
+        itr.invoke( "package" );
         itr.assertFilePresent( "target/maven-it-it0033-1.0.ear" );
         itr.assertFilePresent( "target/maven-it-it0033-1.0.ear!/META-INF/application.xml" );
         itr.assertFilePresent( "target/maven-it-it0033-1.0.ear!/META-INF/appserver-application.xml" );
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0034Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0034Test.java
index 65d4168..d541810 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0034Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0034Test.java
@@ -18,7 +18,7 @@
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
         itr.deleteArtifact( "org.apache.maven", "maven-core-it-support", "1.4", "jar" );
         itr.deleteArtifact( "junit", "junit", "3.8", "jar" );
-        itr.executeGoal( "package" );
+        itr.invoke( "package" );
         itr.assertArtifactPresent( "junit", "junit", "3.8", "jar" );
         itr.assertArtifactPresent( "org.apache.maven", "maven-core-it-support", "1.4", "jar" );
         itr.verifyErrorFreeLog();
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0035Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0035Test.java
index 63606ac..f3a2214 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0035Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0035Test.java
@@ -19,7 +19,7 @@
         itr.deleteArtifact( "org.apache.maven", "maven-core-it-support", "1.1", "jar" );
         itr.deleteArtifact( "org.apache.maven", "maven-core-it-support", "1.1", "pom" );
         itr.deleteArtifact( "org.apache.maven", "maven-core-it-support-old-location", "1.1", "pom" );
-        itr.executeGoal( "package" );
+        itr.invoke( "package" );
         itr.assertArtifactPresent( "org.apache.maven", "maven-core-it-support", "1.1", "jar" );
         itr.assertArtifactPresent( "org.apache.maven", "maven-core-it-support", "1.1", "pom" );
         itr.assertArtifactPresent( "org.apache.maven", "maven-core-it-support-old-location", "1.1", "pom" );
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0036Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0036Test.java
index f97e18e..87ba863 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0036Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0036Test.java
@@ -16,7 +16,7 @@
     {
         File testDir = extractTestResources( getClass(), "/it0036" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "package" );
+        itr.invoke( "package" );
         itr.assertFilePresent( "target/maven-it-it0036-1.0.jar" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0040Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0040Test.java
index 6f98535..1b617d6 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0040Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0040Test.java
@@ -16,7 +16,7 @@
     {
         File testDir = extractTestResources( getClass(), "/it0040" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "package" );
+        itr.invoke( "package" );
         itr.assertFilePresent( "target/maven-it-it0040-1.0-it.jar" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0041Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0041Test.java
index 148a1df..57b1436 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0041Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0041Test.java
@@ -17,7 +17,7 @@
         File testDir = extractTestResources( getClass(), "/it0041" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
         itr.deleteArtifact( "org.apache.maven", "maven-core-it-support", "1.2", "coreit-artifact" );
-        itr.executeGoal( "package" );
+        itr.invoke( "package" );
         itr.assertFilePresent( "target/maven-it-it0041-1.0-SNAPSHOT.jar" );
         itr.assertArtifactPresent( "org.apache.maven", "maven-core-it-support", "1.2", "coreit-artifact" );
         itr.assertArtifactPresent( "org.apache.maven", "maven-core-it-support", "1.2", "pom" );
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0042Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0042Test.java
index 5897606..2554d65 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0042Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0042Test.java
@@ -16,7 +16,7 @@
     {
         File testDir = extractTestResources( getClass(), "/it0042" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "package" );
+        itr.invoke( "package" );
         itr.assertFilePresent( "test-component-a/target/test-component-a-0.1.jar" );
         itr.assertFilePresent( "test-component-b/target/test-component-b-0.1.jar" );
         itr.assertFilePresent( "test-component-c/target/test-component-c-0.1.war" );
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0043Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0043Test.java
index 6af5057..08c0b04 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0043Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0043Test.java
@@ -21,14 +21,14 @@
 
         itr.deleteArtifact( "org.apache.maven.plugins", "maven-help-plugin", "2.0.2", "jar" );
 
-        itr.executeGoal( "org.apache.maven.plugins:maven-help-plugin:2.0.2:effective-pom" );
+        itr.invoke( "org.apache.maven.plugins:maven-help-plugin:2.0.2:effective-pom" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
 
         File child2 = new File( testDir, "child2" );
         itr = new IntegrationTestRunner( child2.getAbsolutePath() );
 
-        itr.executeGoal( "org.apache.maven.plugins:maven-help-plugin:2.0.2:effective-pom" );
+        itr.invoke( "org.apache.maven.plugins:maven-help-plugin:2.0.2:effective-pom" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
 
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0047Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0047Test.java
index 4f49ef7..fc1214f 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0047Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0047Test.java
@@ -17,7 +17,7 @@
     {
         File testDir = extractTestResources( getClass(), "/it0047" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "compile" );
+        itr.invoke( "compile" );
         itr.assertFilePresent( "target/classes/org/apache/maven/it0047/Person.class" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0048Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0048Test.java
index cf62966..c4e30cd 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0048Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0048Test.java
@@ -17,7 +17,7 @@
     {
         File testDir = extractTestResources( getClass(), "/it0048" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "test" );
+        itr.invoke( "test" );
         itr.assertFilePresent( "target/testFileOutput.txt" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0049Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0049Test.java
index c564b2c..47aa857 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0049Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0049Test.java
@@ -18,7 +18,7 @@
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
         //todo: i don't think we need to delete this plugin
         //itr.deleteArtifact( "org.apache.maven.its.plugins", "maven-it-plugin-touch", "1.0", "maven-plugin" );
-        itr.executeGoal( "org.apache.maven.its.plugins:maven-it-plugin-touch:touch" );
+        itr.invoke( "org.apache.maven.its.plugins:maven-it-plugin-touch:touch" );
         itr.assertFilePresent( "target/touchFile.txt" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0050Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0050Test.java
index f04275b..716735e 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0050Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0050Test.java
@@ -16,7 +16,7 @@
     {
         File testDir = extractTestResources( getClass(), "/it0050" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "package" );
+        itr.invoke( "package" );
         itr.assertFilePresent( "target/testTouchFile.txt" );
         itr.assertFilePresent( "target/defaultTestTouchFile.txt" );
         itr.verifyErrorFreeLog();
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0054Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0054Test.java
index 218c82f..87ae795 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0054Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0054Test.java
@@ -16,7 +16,7 @@
     {
         File testDir = extractTestResources( getClass(), "/it0054" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "package" );
+        itr.invoke( "package" );
         itr.assertFilePresent( "target/classes/org/apache/maven/it0054/Person.class" );
         itr.assertFilePresent( "target/test-classes/org/apache/maven/it0054/PersonTest.class" );
         itr.assertFilePresent( "target/maven-it-it0054-1.0.jar" );
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0055Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0055Test.java
index c3ae17e..f0724ee 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0055Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0055Test.java
@@ -17,7 +17,7 @@
     {
         File testDir = extractTestResources( getClass(), "/it0055" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "test-compile" );
+        itr.invoke( "test-compile" );
         itr.assertFilePresent( "target/classes/org/apache/maven/it0055/Person.class" );
         itr.assertFilePresent( "target/test-classes/org/apache/maven/it0055/PersonTest.class" );
         itr.assertFileNotPresent( "target/classes/org/apache/maven/it0055/PersonTwo.class" );
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0056Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0056Test.java
index aca9081..b2a15a3 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0056Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0056Test.java
@@ -17,7 +17,7 @@
     {
         File testDir = extractTestResources( getClass(), "/it0056" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "test-compile" );
+        itr.invoke( "test-compile" );
         itr.assertFilePresent( "target/classes/org/apache/maven/it0056/Person.class" );
         itr.assertFilePresent( "target/classes/org/apache/maven/it0056/PersonTwo.class" );
         itr.assertFilePresent( "target/classes/org/apache/maven/it0056/PersonThree.class" );
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0057Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0057Test.java
index 732ee39..9e01fc0 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0057Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0057Test.java
@@ -16,7 +16,7 @@
     {
         File testDir = extractTestResources( getClass(), "/it0057" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "package" );
+        itr.invoke( "package" );
         itr.assertFilePresent( "target/classes/org/apache/maven/it0057/Person.class" );
         itr.assertFilePresent( "target/test-classes/org/apache/maven/it0057/PersonTest.class" );
         itr.assertFilePresent( "target/maven-it-it0057-1.0.jar" );
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0059Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0059Test.java
index 05ac055..a4a894b 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0059Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0059Test.java
@@ -17,7 +17,7 @@
     {
         File testDir = extractTestResources( getClass(), "/it0059" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "package" );
+        itr.invoke( "package" );
         itr.assertFilePresent( "target/maven-it-it0059-1.0.jar" );
         // don't verify error free log
         itr.resetStreams();
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0060Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0060Test.java
index 9d8fc32..a0bb7fb 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0060Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0060Test.java
@@ -18,7 +18,7 @@
     {
         File testDir = extractTestResources( getClass(), "/it0060" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "test" );
+        itr.invoke( "test" );
         itr.assertFilePresent( "subproject/target/classes/org/apache/maven/it0060/Person.class" );
         itr.assertFilePresent( "subproject/target/test-classes/org/apache/maven/it0060/PersonTest.class" );
         itr.assertFileNotPresent( "subproject/target/test-classes/org/apache/maven/it0060/PersonTwoTest.class" );
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0061Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0061Test.java
index 7a5e158..20961b2 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0061Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0061Test.java
@@ -18,7 +18,7 @@
     {
         File testDir = extractTestResources( getClass(), "/it0061" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "deploy" );
+        itr.invoke( "deploy" );
         itr.assertFilePresent( "target/test-repo/org.apache.maven.its.it0061/jars/maven-it-it0061-1.0.jar" );
         itr.assertFilePresent( "target/test-repo/org.apache.maven.its.it0061/poms/maven-it-it0061-1.0.pom" );
         itr.verifyErrorFreeLog();
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0062Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0062Test.java
index e2de663..b0b1be3 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0062Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0062Test.java
@@ -18,7 +18,7 @@
         File testDir = extractTestResources( getClass(), "/it0062" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
         itr.deleteArtifact( "org.apache.maven", "maven-it-it0062-SNAPSHOT", "1.0", "jar" );
-        itr.executeGoal( "deploy" );
+        itr.invoke( "deploy" );
         itr.assertFilePresent( "target/classes/org/apache/maven/it0062/Person.class" );
         itr.assertFilePresent( "target/maven-it-it0062-1.0-SNAPSHOT.jar" );
         itr.verifyErrorFreeLog();
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0063Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0063Test.java
index 59b5027..d21f1a4 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0063Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0063Test.java
@@ -16,7 +16,7 @@
     {
         File testDir = extractTestResources( getClass(), "/it0063" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "package" );
+        itr.invoke( "package" );
         itr.assertFilePresent( "target/classes/org/apache/maven/it0063/Person.class" );
         itr.assertFilePresent( "target/test-classes/org/apache/maven/it0063/PersonTest.class" );
         itr.assertFilePresent( "target/maven-it-it0063-1.0.jar" );
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0064Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0064Test.java
index 9fd6123..39623c2 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0064Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0064Test.java
@@ -18,7 +18,7 @@
         File testDir = extractTestResources( getClass(), "/it0064" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
         itr.deleteArtifact( "org.apache.maven.its.plugins", "maven-it-plugin-setter", "1.0", "maven-plugin" );
-        itr.executeGoal( "org.apache.maven.its.plugins:maven-it-plugin-setter:setter-touch" );
+        itr.invoke( "org.apache.maven.its.plugins:maven-it-plugin-setter:setter-touch" );
         itr.assertFilePresent( "target/fooValue" );
         itr.assertFilePresent( "target/barValue.baz" );
         itr.verifyErrorFreeLog();
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0065Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0065Test.java
index dea708c..cc8d975 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0065Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0065Test.java
@@ -17,7 +17,7 @@
         File testDir = extractTestResources( getClass(), "/it0065" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
         itr.deleteArtifact( "org.apache.maven.its.it0065", "plugin", "1.0", "maven-plugin" );
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
         itr.assertFilePresent( "subproject/target/child-basedir" );
         itr.assertFilePresent( "parent-basedir" );
         itr.verifyErrorFreeLog();
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0068Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0068Test.java
index 3734d86..f1d284e 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0068Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0068Test.java
@@ -17,7 +17,7 @@
         File testDir = extractTestResources( getClass(), "/it0068" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
         itr.deleteArtifact( "org.codehaus.modello", "modello-core", "1.0-alpha-3", "jar" );
-        itr.executeGoal( "generate-sources" );
+        itr.invoke( "generate-sources" );
         itr.assertFilePresent( "target/generated-sources/modello/org/apache/maven/settings/Settings.java" );
         itr.resetStreams();
     }
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0070Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0070Test.java
index 8c69da5..12c4a39 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0070Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0070Test.java
@@ -16,7 +16,7 @@
     {
         File testDir = extractTestResources( getClass(), "/it0070" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "package" );
+        itr.invoke( "package" );
         itr.assertFilePresent( "target/maven-it-it0070-1.0.rar" );
         itr.assertFilePresent( "target/maven-it-it0070-1.0.rar!/META-INF/ra.xml" );
         itr.assertFilePresent( "target/maven-it-it0070-1.0.rar!/SomeResource.txt" );
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0071Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0071Test.java
index d408d86..b1b8684 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0071Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0071Test.java
@@ -18,7 +18,7 @@
         File testDir = extractTestResources( getClass(), "/it0071" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
         itr.deleteArtifact( "org.apache.maven.plugins", "maven-it-it-plugin", "1.0", "maven-plugin" );
-        itr.executeGoal( "org.apache.maven.its.plugins:maven-it-plugin-touch:touch" );
+        itr.invoke( "org.apache.maven.its.plugins:maven-it-plugin-touch:touch" );
         itr.assertFilePresent( "target/foo2" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0072Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0072Test.java
index b7df69d..a74e0df 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0072Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0072Test.java
@@ -17,7 +17,7 @@
     {
         File testDir = extractTestResources( getClass(), "/it0072" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "package" );
+        itr.invoke( "package" );
         itr.assertFilePresent( "target/maven-it-it0072-1.0-SNAPSHOT.jar" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0073Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0073Test.java
index 69c6af4..3850515 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0073Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0073Test.java
@@ -17,7 +17,7 @@
         File testDir = extractTestResources( getClass(), "/it0073" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
         itr.deleteArtifact( "org.apache.maven.its.plugins", "maven-it-plugin-context-passing", "1.0", "maven-plugin" );
-        itr.executeGoal( "org.apache.maven.its.plugins:maven-it-plugin-context-passing:throw, org.apache.maven.its.plugins:maven-it-plugin-context-passing:catch" );
+        itr.invoke( "org.apache.maven.its.plugins:maven-it-plugin-context-passing:throw, org.apache.maven.its.plugins:maven-it-plugin-context-passing:catch" );
         itr.assertFilePresent( "target/thrown-value" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0074Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0074Test.java
index 37e3547..8743382 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0074Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0074Test.java
@@ -17,7 +17,7 @@
     {
         File testDir = extractTestResources( getClass(), "/it0074" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "eclipse:eclipse" );
+        itr.invoke( "eclipse:eclipse" );
         itr.assertFilePresent( ".classpath" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0076Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0076Test.java
index f12899d..2e967a6 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0076Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0076Test.java
@@ -18,7 +18,7 @@
     {
         File testDir = extractTestResources( getClass(), "/it0076" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
 
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0077Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0077Test.java
index c0a1625..8c71388 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0077Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0077Test.java
@@ -16,7 +16,7 @@
         File testDir = extractTestResources( getClass(), "/it0077" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
         itr.deleteArtifact( "org.apache.maven.its.it0077", "sub1", "1.0", "test-jar" );
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
         itr.assertArtifactPresent( "org.apache.maven.its.it0077", "sub1", "1.0", "test-jar" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0078Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0078Test.java
index e1ab859..723a5c4 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0078Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0078Test.java
@@ -18,7 +18,7 @@
     {
         File testDir = extractTestResources( getClass(), "/it0078" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "compile" );
+        itr.invoke( "compile" );
         itr.assertFileNotPresent( "target/classes/Test.class" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0079Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0079Test.java
index 92a0f46..4b3e540 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0079Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0079Test.java
@@ -17,7 +17,7 @@
     {
         File testDir = extractTestResources( getClass(), "/it0079" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "deploy" );
+        itr.invoke( "deploy" );
         itr.assertFilePresent(
             "target/test-repo/org/apache/maven/its/it0079/maven-it-it0079/SNAPSHOT/maven-it-it0079-*-1.jar" );
         itr.assertFilePresent(
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0080Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0080Test.java
index 2727b5e..5a1d81e 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0080Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0080Test.java
@@ -17,7 +17,7 @@
     {
         File testDir = extractTestResources( getClass(), "/it0080" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "package" );
+        itr.invoke( "package" );
         itr.assertFilePresent( "test-component-a/target/test-component-a-0.1.jar" );
         itr.assertFilePresent( "test-component-b/target/test-component-b-0.1.war" );
         itr.assertFilePresent(
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0081Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0081Test.java
index 72bfeb2..2419a76 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0081Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0081Test.java
@@ -17,7 +17,7 @@
         File testDir = extractTestResources( getClass(), "/it0081" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
         itr.deleteArtifact( "org.apache.maven.its.it0081", "test-plugin", "0.1", "maven-plugin" );
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
         itr.assertFilePresent( "test-component-c/target/org.apache.maven.wagon.providers.ftp.FtpWagon" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0082Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0082Test.java
index 00e4897..3d9aad0 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0082Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0082Test.java
@@ -17,7 +17,7 @@
     {
         File testDir = extractTestResources( getClass(), "/it0082" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "process-sources" );
+        itr.invoke( "process-sources" );
         itr.assertFilePresent( "test-component-c/target/my-test" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0083Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0083Test.java
index e0b52e2..00c4bd6 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0083Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0083Test.java
@@ -16,7 +16,7 @@
     {
         File testDir = extractTestResources( getClass(), "/it0083" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "package" );
+        itr.invoke( "package" );
         itr.assertFilePresent( "test-component-a/target/test-component-a-0.1.jar" );
         itr.assertFilePresent( "test-component-b/target/test-component-b-0.1.jar" );
         itr.assertFilePresent( "test-component-c/target/test-component-c-0.1.war" );
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0084Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0084Test.java
index 4209bba..21ba114 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0084Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0084Test.java
@@ -16,7 +16,7 @@
     {
         File testDir = extractTestResources( getClass(), "/it0084" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "package" );
+        itr.invoke( "package" );
         itr.assertFilePresent( "test-component-a/target/test-component-a-0.1.jar" );
         itr.assertFilePresent( "test-component-b/target/test-component-b-0.1.jar" );
         itr.assertFilePresent( "test-component-c/target/test-component-c-0.1.war" );
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0085Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0085Test.java
index d2df8b6..7f0885c 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0085Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0085Test.java
@@ -19,7 +19,7 @@
     {
         File testDir = extractTestResources( getClass(), "/it0085" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "package" );
+        itr.invoke( "package" );
         itr.assertFileNotPresent( "war/target/war-1.0/WEB-INF/lib/pom.xml" );
         itr.assertFileNotPresent( "war/target/war-1.0/WEB-INF/lib/it0085-dep-1.0.jar" );
         itr.assertFilePresent( "war/target/war-1.0/WEB-INF/lib/junit-3.8.1.jar" );
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0086Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0086Test.java
index b965cfc..09f43ab 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0086Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0086Test.java
@@ -18,7 +18,7 @@
         File testDir = extractTestResources( getClass(), "/it0086" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
         itr.deleteArtifact( "org.apache.maven.plugins", "maven-it-it-plugin", "1.0", "maven-plugin" );
-        itr.executeGoal( "validate" );
+        itr.invoke( "validate" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
 
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0087Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0087Test.java
index bcd7e4a..0deb91b 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0087Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0087Test.java
@@ -18,7 +18,7 @@
         File testDir = extractTestResources( getClass(), "/it0087" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
         itr.deleteArtifact( "org.apache.maven.plugins", "maven-it-it-plugin", "1.0", "maven-plugin" );
-        itr.executeGoal( "validate" );
+        itr.invoke( "validate" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
 
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0088Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0088Test.java
index cc4a621..78e01c2 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0088Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0088Test.java
@@ -16,7 +16,7 @@
     {
         File testDir = extractTestResources( getClass(), "/it0088" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "test" );
+        itr.invoke( "test" );
         itr.assertFilePresent( "target/classes/test.properties" );
         itr.assertFilePresent( "target/mojo-generated.properties" );
         itr.verifyErrorFreeLog();
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0089Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0089Test.java
index 085fb14..424baed 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0089Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0089Test.java
@@ -18,7 +18,7 @@
         File testDir = extractTestResources( getClass(), "/it0089" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
         itr.deleteArtifact( "org.apache.maven.plugins", "maven-it-it-plugin", "1.0", "maven-plugin" );
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
         itr.assertFilePresent( "project/target/output.txt" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0091Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0091Test.java
index 7e69c42..212212c 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0091Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0091Test.java
@@ -21,7 +21,7 @@
     {
         File testDir = extractTestResources( getClass(), "/it0091" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "test" );
+        itr.invoke( "test" );
         itr.assertFilePresent( "target/classes/test.properties" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0092Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0092Test.java
index 784d064..557074b 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0092Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0092Test.java
@@ -23,7 +23,7 @@
         File testDir = extractTestResources( getClass(), "/it0092" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
         itr.deleteArtifact( "org.apache.maven", "maven-core-it-support", "1.0-SNAPSHOT", "jar" );
-        itr.executeGoal( "compile" );
+        itr.invoke( "compile" );
         itr.assertArtifactPresent( "org.apache.maven", "maven-core-it-support", "1.0-SNAPSHOT", "jar" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0094Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0094Test.java
index 9279cab..99a0c8d 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0094Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0094Test.java
@@ -16,7 +16,7 @@
     {
         File testDir = extractTestResources( getClass(), "/it0094" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
 
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0096Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0096Test.java
index f68a2e1..3f8215a 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0096Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0096Test.java
@@ -16,7 +16,7 @@
     {
         File testDir = extractTestResources( getClass(), "/it0096" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "package" );
+        itr.invoke( "package" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
 
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0097Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0097Test.java
index cbe02b7..e68cfa0 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0097Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0097Test.java
@@ -17,7 +17,7 @@
     {
         File testDir = extractTestResources( getClass(), "/it0097" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "package" );
+        itr.invoke( "package" );
         itr.assertFilePresent( "project/project-level2/project-level3/target/it0097.txt" );
         itr.assertFilePresent( "project/project-sibling-level2/target/it0097.txt" );
         itr.verifyErrorFreeLog();
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0099Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0099Test.java
index 3e2e402..d9b0443 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0099Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0099Test.java
@@ -18,7 +18,7 @@
         File testDir = extractTestResources( getClass(), "/it0099" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
         itr.deleteArtifact( "org.apache.maven.it0099", "maven-it-it0099-parent", "1", "pom" );
-        itr.executeGoal( "package" );
+        itr.invoke( "package" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
 
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0103Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0103Test.java
index 9692cc9..09b3b7e 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0103Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0103Test.java
@@ -18,7 +18,7 @@
     {
         File testDir = extractTestResources( getClass(), "/it0103" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "package" );
+        itr.invoke( "package" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
 
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0104Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0104Test.java
index 74b2dff..cb7d2a8 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0104Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0104Test.java
@@ -16,7 +16,7 @@
     {
         File testDir = extractTestResources( getClass(), "/it0104" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "test" );
+        itr.invoke( "test" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
 
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0106Test.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0106Test.java
index 35c0b5b..eb279de 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0106Test.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0106Test.java
@@ -19,7 +19,7 @@
     {
         File testDir = extractTestResources( getClass(), "/it0106" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "clean" );
+        itr.invoke( "clean" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
 
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0108SnapshotUpdateTest.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0108SnapshotUpdateTest.java
index 871c021..70f94d8 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0108SnapshotUpdateTest.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0108SnapshotUpdateTest.java
@@ -68,7 +68,7 @@
     public void testSnapshotUpdated()
         throws Exception
     {
-        itr.executeGoal( "package" );
+        itr.invoke( "package" );
 
         itr.verifyErrorFreeLog();
         itr.resetStreams();
@@ -80,7 +80,7 @@
 
         FileUtils.fileWrite( artifact.getAbsolutePath(), "updatedArtifact" );
 
-        itr.executeGoal( "package" );
+        itr.invoke( "package" );
 
         assertArtifactContents( "updatedArtifact" );
 
@@ -96,7 +96,7 @@
         FileUtils.fileWrite( metadata.getAbsolutePath(),
                              constructMetadata( "1", System.currentTimeMillis() - TIME_OFFSET, true ) );
 
-        itr.executeGoal( "package" );
+        itr.invoke( "package" );
 
         itr.verifyErrorFreeLog();
         itr.resetStreams();
@@ -107,7 +107,7 @@
         metadata = new File( repository, "org/apache/maven/maven-core-it-support/1.0-SNAPSHOT/maven-metadata.xml" );
         FileUtils.fileWrite( metadata.getAbsolutePath(), constructMetadata( "2", System.currentTimeMillis(), true ) );
 
-        itr.executeGoal( "package" );
+        itr.invoke( "package" );
 
         assertArtifactContents( "updatedArtifact" );
 
@@ -129,7 +129,7 @@
         FileUtils.fileWrite( metadata.getAbsolutePath(),
                              constructMetadata( "1", System.currentTimeMillis() - TIME_OFFSET, true ) );
 
-        itr.executeGoal( "package" );
+        itr.invoke( "package" );
 
         itr.verifyErrorFreeLog();
         itr.resetStreams();
@@ -145,7 +145,7 @@
         // update the remote file, but we shouldn't be looking
         artifact.setLastModified( System.currentTimeMillis() );
 
-        itr.executeGoal( "package" );
+        itr.invoke( "package" );
 
         assertArtifactContents( "localArtifact" );
 
@@ -161,7 +161,7 @@
                              constructMetadata( "2", System.currentTimeMillis() - 2000, true ) );
         artifact.setLastModified( System.currentTimeMillis() );
 
-        itr.executeGoal( "package" );
+        itr.invoke( "package" );
 
         assertArtifactContents( "originalArtifact" );
 
@@ -178,7 +178,7 @@
                              constructMetadata( "1", System.currentTimeMillis() - TIME_OFFSET, false ) );
         metadata.setLastModified( System.currentTimeMillis() - TIME_OFFSET );
 
-        itr.executeGoal( "package" );
+        itr.invoke( "package" );
 
         itr.verifyErrorFreeLog();
         itr.resetStreams();
@@ -189,7 +189,7 @@
         metadata = new File( repository, "org/apache/maven/maven-core-it-support/1.0-SNAPSHOT/maven-metadata.xml" );
         FileUtils.fileWrite( metadata.getAbsolutePath(), constructMetadata( "2", System.currentTimeMillis(), false ) );
 
-        itr.executeGoal( "package" );
+        itr.invoke( "package" );
 
         assertArtifactContents( "updatedArtifact" );
 
@@ -206,7 +206,7 @@
         localMetadata.delete();
         assertFalse( localMetadata.exists() );
 
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
 
         itr.verifyErrorFreeLog();
         itr.resetStreams();
@@ -218,7 +218,7 @@
         FileUtils.fileWrite( localMetadata.getAbsolutePath(), constructLocalMetadata(
             "org.apache.maven.its.snapshotUpdate", "maven-it-snapshot-update", cal.getTimeInMillis(), true ) );
 
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
 
         assertLocalMetadataIsToday( localMetadata );
 
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0109ReleaseUpdateTest.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0109ReleaseUpdateTest.java
index c05858a..a2c0e28 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0109ReleaseUpdateTest.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0109ReleaseUpdateTest.java
@@ -69,7 +69,7 @@
         itr.assertArtifactNotPresent( GROUPID, ARTIFACTID, OLD_VERSION, TYPE );
         itr.assertArtifactNotPresent( GROUPID, ARTIFACTID, NEW_VERSION, TYPE );
 
-        itr.executeGoal( "package" );
+        itr.invoke( "package" );
 
         itr.assertArtifactNotPresent( GROUPID, ARTIFACTID, OLD_VERSION, TYPE );
         itr.assertArtifactPresent( GROUPID, ARTIFACTID, NEW_VERSION, TYPE );
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0110PluginDependenciesComeFromPluginReposTest.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0110PluginDependenciesComeFromPluginReposTest.java
index 86e7f82..4237b2d 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0110PluginDependenciesComeFromPluginReposTest.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0110PluginDependenciesComeFromPluginReposTest.java
@@ -14,7 +14,7 @@
             extractTestResources( getClass(), "/it0110-pluginDependenciesComeFromPluginRepos" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
         itr.deleteArtifact( "org.apache.maven.it", "mail", "1.3.2", "jar" );        
-        itr.executeGoal( "clean" );
+        itr.invoke( "clean" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
 
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0111PluginsThatRequireAResourceFromAnExtensionTest.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0111PluginsThatRequireAResourceFromAnExtensionTest.java
index 632db51..bf37b3d 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0111PluginsThatRequireAResourceFromAnExtensionTest.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0111PluginsThatRequireAResourceFromAnExtensionTest.java
@@ -31,19 +31,19 @@
         itr.deleteArtifact( "org.apache.maven.its.it0111", "checkstyle-assembly", "1.0", "jar" );
         List cliOptions = new ArrayList();
         cliOptions.add( "-N" );
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
 
         // Install the extension with the resources required for the test
         itr = new IntegrationTestRunner( new File( testDir.getAbsolutePath(), "checkstyle-assembly" ).getAbsolutePath() );
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
 
         // Run the whole test
         itr = new IntegrationTestRunner( new File( testDir.getAbsolutePath(), "checkstyle-test" ).getAbsolutePath() );
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
     }
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0112ExtensionsThatDragDependencies.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0112ExtensionsThatDragDependencies.java
index a431a0a..68ebd4d 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0112ExtensionsThatDragDependencies.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0112ExtensionsThatDragDependencies.java
@@ -40,13 +40,13 @@
 
         // Install the extension with the resources required for the test
         itr = new IntegrationTestRunner( new File( testDir.getAbsolutePath(), "test-extension" ).getAbsolutePath() );
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
 
         // Run the whole test
         itr = new IntegrationTestRunner( new File( testDir.getAbsolutePath(), "test-project" ).getAbsolutePath() );
-        itr.executeGoal( "org.apache.maven.plugins:maven-project-info-reports-plugin:2.0.1:scm" );
+        itr.invoke( "org.apache.maven.plugins:maven-project-info-reports-plugin:2.0.1:scm" );
         // ommitted because we always get velocity errors that aren't covered by the itr
 //        itr.verifyErrorFreeLog();
         itr.resetStreams();
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0113ServerAuthzAvailableToWagonMgrInPlugin.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0113ServerAuthzAvailableToWagonMgrInPlugin.java
index 46f3d63..da803b3 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0113ServerAuthzAvailableToWagonMgrInPlugin.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0113ServerAuthzAvailableToWagonMgrInPlugin.java
@@ -42,7 +42,7 @@
 
         // Install the plugin to test for Authz info in the WagonManager
         itr = new IntegrationTestRunner( new File( testDir.getAbsolutePath(), "maven-it0113-plugin" ).getAbsolutePath() );
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
 
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0114ExtensionThatProvidesResources.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0114ExtensionThatProvidesResources.java
index 4d2f6e6..1579b26 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0114ExtensionThatProvidesResources.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0114ExtensionThatProvidesResources.java
@@ -32,7 +32,7 @@
         itr.deleteArtifact( "org.apache.maven.its.it0114", "it0114-parent", "1.0", "pom" );
         
         List cliOptions = new ArrayList();        
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
         
@@ -41,7 +41,7 @@
             extractTestResources( getClass(), "/it0114-extensionThatProvidesResources/test-project" );
         itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
         cliOptions = new ArrayList();
-        itr.executeGoal( "verify" );
+        itr.invoke( "verify" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
         
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0115CustomArtifactHandlerAndCustomLifecycleTest.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0115CustomArtifactHandlerAndCustomLifecycleTest.java
index eebbe89..b969c1a 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0115CustomArtifactHandlerAndCustomLifecycleTest.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0115CustomArtifactHandlerAndCustomLifecycleTest.java
@@ -40,14 +40,14 @@
 
         // Install the plugin to test for Authz info in the WagonManager
         itr = new IntegrationTestRunner( new File( testDir.getAbsolutePath(), "test-extension" ).getAbsolutePath() );
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
 
         // Build the test project that uses the plugin.
         File testProject = new File( testDir.getAbsolutePath(), "test-project" );
         itr = new IntegrationTestRunner( testProject.getAbsolutePath() );
-        itr.executeGoal( "package" );
+        itr.invoke( "package" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
 
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0118AttachedArtifactsInReactor.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0118AttachedArtifactsInReactor.java
index e69c039..c3472e7 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0118AttachedArtifactsInReactor.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0118AttachedArtifactsInReactor.java
@@ -15,7 +15,7 @@
         itr.deleteArtifact( "org.apache.maven.its.it0118", "parent", "1.0", "pom" );
         itr.deleteArtifact( "org.apache.maven.its.it0118", "one", "1.0", "jar" );
         itr.deleteArtifact( "org.apache.maven.its.it0118", "two", "1.0", "pom" );
-        itr.executeGoal( "package" );
+        itr.invoke( "package" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
     }
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0119PluginPrefixOrder.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0119PluginPrefixOrder.java
index 78d23bc..6433d6d 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0119PluginPrefixOrder.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0119PluginPrefixOrder.java
@@ -18,7 +18,7 @@
         // Install the parent POM, extension and the plugin
         itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
 
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
         
@@ -26,7 +26,7 @@
         // now run the test. Since we have apache and codehaus, i should get the apache one first
         testDir = extractTestResources( getClass(), "/it0119-pluginprefixorder/test-project" );
         itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "it0119:apache" );
+        itr.invoke( "it0119:apache" );
         itr.verifyErrorFreeLog();
 
         
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0120EjbClientDependency.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0120EjbClientDependency.java
index 2afe598..bac1f45 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0120EjbClientDependency.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0120EjbClientDependency.java
@@ -37,7 +37,7 @@
         itr.deleteArtifact( "org.apache.maven.its.it0120", "model", "1.0-SNAPSHOT", "ejb" );
 
 	/* Not "install" or "higher" goal to repeat the bug */
-        itr.executeGoal( "compile" ); 
+        itr.invoke( "compile" ); 
 
 	itr.verifyErrorFreeLog();
         itr.resetStreams();
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0121TransitiveDepManVersion.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0121TransitiveDepManVersion.java
index 71da55c..89a52e1 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0121TransitiveDepManVersion.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0121TransitiveDepManVersion.java
@@ -45,7 +45,7 @@
         itr.deleteArtifact( "org.apache.maven.its.it0121", "B", "1.0", "jar" );
         itr.deleteArtifact( "org.apache.maven.its.it0121", "C", "1.0", "pom" );
         itr.deleteArtifact( "org.apache.maven.its.it0121", "D", "1.0", "jar" );
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
     }
@@ -57,7 +57,7 @@
         IntegrationTestRunner itrOtherDep = new IntegrationTestRunner( testOtherDepDir.getAbsolutePath() );
         itrOtherDep.deleteArtifact( "org.apache.maven.its.it0121", "D", version, "jar" );
         itrOtherDep.deleteArtifact( "org.apache.maven.its.it0121", "D", version, "pom" );
-        itrOtherDep.executeGoal( "install" );
+        itrOtherDep.invoke( "install" );
         itrOtherDep.verifyErrorFreeLog();
         itrOtherDep.resetStreams();
     }
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0122ReactorDependencyResolutionTest.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0122ReactorDependencyResolutionTest.java
index b7f708d..938e912 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0122ReactorDependencyResolutionTest.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0122ReactorDependencyResolutionTest.java
@@ -16,13 +16,13 @@
     {
         File testDir = extractTestResources( getClass(), "/it0122-reactorDependencyResolution/plugin" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
 
         testDir = extractTestResources( getClass(), "/it0122-reactorDependencyResolution/project" );
         itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "org.apache.maven.its.it0122:maven-it-it0122-plugin:1.0:test" );
+        itr.invoke( "org.apache.maven.its.it0122:maven-it-it0122-plugin:1.0:test" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
     }
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0123SnapshotRangeRepositoryTest.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0123SnapshotRangeRepositoryTest.java
index 1157b3b..381e574 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0123SnapshotRangeRepositoryTest.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0123SnapshotRangeRepositoryTest.java
@@ -17,7 +17,7 @@
     {
         File testDir = extractTestResources( getClass(), "/it0123-snapshotRangeRepository" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "compile" );
+        itr.invoke( "compile" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
     }
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0124PomExtensionComponentOverrideTest.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0124PomExtensionComponentOverrideTest.java
index 14cd12d..4f9ecc4 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0124PomExtensionComponentOverrideTest.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0124PomExtensionComponentOverrideTest.java
@@ -17,19 +17,19 @@
     {
         File testDir = extractTestResources( getClass(), "/it0124-pomExtensionComponentOverride/extension" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
 
         testDir = extractTestResources( getClass(), "/it0124-pomExtensionComponentOverride/plugin" );
         itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
 
         testDir = extractTestResources( getClass(), "/it0124-pomExtensionComponentOverride/project" );
         itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "verify" );
+        itr.invoke( "verify" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
     }
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0125NewestConflictResolverTest.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0125NewestConflictResolverTest.java
index fdc54a1..9463137 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0125NewestConflictResolverTest.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0125NewestConflictResolverTest.java
@@ -17,19 +17,19 @@
     {
         File testDir = extractTestResources( getClass(), "/it0125-newestConflictResolver/dependency" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
 
         testDir = extractTestResources( getClass(), "/it0125-newestConflictResolver/plugin" );
         itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
 
         testDir = extractTestResources( getClass(), "/it0125-newestConflictResolver/project" );
         itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "verify" );
+        itr.invoke( "verify" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
     }
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0126TestJarDependency.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0126TestJarDependency.java
index cb29352..fd471f7 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0126TestJarDependency.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0126TestJarDependency.java
@@ -43,7 +43,7 @@
         itr.deleteArtifact( "org.apache.maven.its.it0126", "model", "1.0-SNAPSHOT", "test-jar" );
         
 	/* Not "install" or "higher" goal to repeat the bug */
-        itr.executeGoal( "compile" ); 
+        itr.invoke( "compile" ); 
         	
 	itr.verifyErrorFreeLog();
         itr.resetStreams();
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0127AntrunDependencies.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0127AntrunDependencies.java
index e51fdc0..5edc283 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0127AntrunDependencies.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0127AntrunDependencies.java
@@ -39,7 +39,7 @@
         itr.deleteArtifact( "org.apache.maven.its.it0127", "parent", "1.0-SNAPSHOT", "pom" );
         itr.deleteArtifact( "org.apache.maven.its.it0127", "a", "1.0-SNAPSHOT", "jar" );
         itr.deleteArtifact( "org.apache.maven.its.it0127", "b",  "1.0-SNAPSHOT", "jar" );
-        itr.executeGoal( "compile" ); 
+        itr.invoke( "compile" ); 
         itr.verifyErrorFreeLog();
         itr.resetStreams();
     }
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0128DistMgmtSiteUrlParentCalculationTest.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0128DistMgmtSiteUrlParentCalculationTest.java
index 9c59ca4..49100da 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0128DistMgmtSiteUrlParentCalculationTest.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0128DistMgmtSiteUrlParentCalculationTest.java
@@ -16,7 +16,7 @@
     {
         File testDir = extractTestResources( getClass(), "/it0128-distMgmtSiteUrlParentCalc" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "integration-test" );
+        itr.invoke( "integration-test" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
 
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0129ResourceProvidedToAPluginAsAPluginDependency.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0129ResourceProvidedToAPluginAsAPluginDependency.java
index 5f56858..d0838c4 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0129ResourceProvidedToAPluginAsAPluginDependency.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0129ResourceProvidedToAPluginAsAPluginDependency.java
@@ -25,7 +25,7 @@
         itr.deleteArtifact( "org.apache.maven.its.it0129", "it0129-parent", "1.0", "pom" );
 
         List cliOptions = new ArrayList();
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
 
@@ -33,7 +33,7 @@
         testDir = extractTestResources( getClass(), "/it0129-resourcesForAPluginProvidedAsAPluginDependency/test-project" );
         itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
         cliOptions = new ArrayList();
-        itr.executeGoal( "verify" );
+        itr.invoke( "verify" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
 
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng1491ReactorArtifactIdCollision.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng1491ReactorArtifactIdCollision.java
index 5187dc0..c3fb7c7 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng1491ReactorArtifactIdCollision.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng1491ReactorArtifactIdCollision.java
@@ -19,7 +19,7 @@
 
         try
         {
-            itr.executeGoal( "initialize" );
+            itr.invoke( "initialize" );
 
             itr.verifyErrorFreeLog();
 
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng1493NonStandardModulePomNames.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng1493NonStandardModulePomNames.java
index c661146..8de04b7 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng1493NonStandardModulePomNames.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng1493NonStandardModulePomNames.java
@@ -23,7 +23,7 @@
 
         itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
 
-        itr.executeGoal( "initialize" );
+        itr.invoke( "initialize" );
 
         /*
          * This is the simplest way to check a build
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng2045testJarDependenciesBrokenInReactorTest.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng2045testJarDependenciesBrokenInReactorTest.java
index 03101d4..6ebbe16 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng2045testJarDependenciesBrokenInReactorTest.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng2045testJarDependenciesBrokenInReactorTest.java
@@ -32,7 +32,7 @@
         itr.deleteArtifact( "testing", "first-project", "1.0-SNAPSHOT", "jar" );
         itr.deleteArtifact( "testing", "second-project", "1.0-SNAPSHOT", "jar" );
 
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
 
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng2068ReactorRelativeParentsTest.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng2068ReactorRelativeParentsTest.java
index 4822091..5a61185 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng2068ReactorRelativeParentsTest.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng2068ReactorRelativeParentsTest.java
@@ -66,7 +66,7 @@
         itr.deleteArtifact( "samplegroup", "frameworks", "0.0.1", "pom" );
         itr.deleteArtifact( "samplegroup", "core", "1.0.0", "pom" );
 
-        itr.executeGoal( "validate" );
+        itr.invoke( "validate" );
 
         /*
          * This is the simplest way to check a build
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng2123VersionRangeDependencyTest.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng2123VersionRangeDependencyTest.java
index b7be56b..ecf0acf 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng2123VersionRangeDependencyTest.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng2123VersionRangeDependencyTest.java
@@ -52,7 +52,7 @@
          */
         List cliOptions = new ArrayList();
         cliOptions.add( "-N" );
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
 
         /*
          * This is the simplest way to check a build
@@ -75,7 +75,7 @@
          * Build the artifact with a fix version of commons-collections
          */
         itr = new IntegrationTestRunner( new File( testDir.getAbsolutePath(), "artifact-fix" ).getAbsolutePath() );
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
 
@@ -83,7 +83,7 @@
          * Build the artifact with a version range of commons-collections
          */
         itr = new IntegrationTestRunner( new File( testDir.getAbsolutePath(), "artifact-range" ).getAbsolutePath() );
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
         
@@ -94,7 +94,7 @@
          * On any version >= 2.0.9 it should work
          */
         itr = new IntegrationTestRunner( new File( testDir.getAbsolutePath(), "artifact-combined" ).getAbsolutePath() );
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
 
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng2254PomEncodingTest.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng2254PomEncodingTest.java
index 06158ed..92be9d1 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng2254PomEncodingTest.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng2254PomEncodingTest.java
@@ -33,7 +33,7 @@
 
         List cliOptions = new ArrayList();
         cliOptions.add( "-N" );
-        itr.executeGoal( "compile" );
+        itr.invoke( "compile" );
 
         itr.verifyErrorFreeLog();
 
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng2277AggregatorAndResolutionPluginsTest.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng2277AggregatorAndResolutionPluginsTest.java
index 9d9427e..f885462 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng2277AggregatorAndResolutionPluginsTest.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng2277AggregatorAndResolutionPluginsTest.java
@@ -51,7 +51,7 @@
          * the local repo here.
          */
         List cliOptions = new ArrayList();
-        itr.executeGoal( "org.apache.maven.its.plugins:maven-it-plugin-all:aggregator-dependencies" );
+        itr.invoke( "org.apache.maven.its.plugins:maven-it-plugin-all:aggregator-dependencies" );
 
         itr.verifyErrorFreeLog();
     }
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng2339BadProjectInterpolationTest.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng2339BadProjectInterpolationTest.java
index b4be658..72a7939 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng2339BadProjectInterpolationTest.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng2339BadProjectInterpolationTest.java
@@ -57,7 +57,7 @@
 
         itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
 
-        itr.executeGoal( "initialize" );
+        itr.invoke( "initialize" );
 
         assertTrue( "Touchfile using ${project.version} for ${version} does not exist.",
                     new File( testDir, "target/touch-1.txt" ).exists() );
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng2562Timestamp.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng2562Timestamp.java
index d775b9c..00f22f2 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng2562Timestamp.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng2562Timestamp.java
@@ -17,7 +17,7 @@
         File testDir = extractTestResources(getClass(),
                 "/mng-2562-timestamp");
         IntegrationTestRunner itr = new IntegrationTestRunner(testDir.getAbsolutePath());
-        itr.executeGoal("verify");
+        itr.invoke("verify");
 
         itr.verifyErrorFreeLog();
         itr.resetStreams();
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng2695OfflinePluginSnapshotsTest.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng2695OfflinePluginSnapshotsTest.java
index 8e6a6a4..3d99cae 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng2695OfflinePluginSnapshotsTest.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng2695OfflinePluginSnapshotsTest.java
@@ -81,7 +81,7 @@
         IntegrationTestRunner itr = new IntegrationTestRunner( testPlugin.getAbsolutePath() );
 
         // Deploy the dependency to the test repository.
-        itr.executeGoal( "deploy" );
+        itr.invoke( "deploy" );
 
         itr.verifyErrorFreeLog();
         itr.resetStreams();
@@ -133,7 +133,7 @@
         // Expected outcome: build success
         try
         {
-            itr.executeGoal( "compile" );
+            itr.invoke( "compile" );
         }
         finally
         {
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng2739RequiredRepositoryElements.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng2739RequiredRepositoryElements.java
index b614e75..4e8ee6b 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng2739RequiredRepositoryElements.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng2739RequiredRepositoryElements.java
@@ -56,7 +56,7 @@
 
         try
         {
-            itr.executeGoal( "validate" );
+            itr.invoke( "validate" );
 
             fail( "POM should NOT validate: repository <id/> element is missing in: "
                   + new File( testDir, "pom.xml" ) );
@@ -95,7 +95,7 @@
 
         try
         {
-            itr.executeGoal( "validate" );
+            itr.invoke( "validate" );
 
             fail( "POM should NOT validate: repository <url/> element is missing in: "
                   + new File( testDir, "pom.xml" ) );
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng2744checksumVerificationTest.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng2744checksumVerificationTest.java
index bb8dd79..4ee3671 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng2744checksumVerificationTest.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng2744checksumVerificationTest.java
@@ -33,7 +33,7 @@
         itr.deleteArtifact( "org.apache.maven.its.mng2744", "b", "1", "pom" );
         itr.deleteArtifact( "org.apache.maven.its.mng2744", "b", "1", "jar" );
 
-        itr.executeGoal( "compile" );
+        itr.invoke( "compile" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
     }
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng2861RelocationsAndRanges.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng2861RelocationsAndRanges.java
index 15e270e..d08b5db 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng2861RelocationsAndRanges.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng2861RelocationsAndRanges.java
@@ -39,7 +39,7 @@
         itr.deleteArtifact( "org.apache.maven.its.mng2861", "B", "1.0-SNAPSHOT", "jar" );
         itr.deleteArtifact( "org.apache.maven.its.mng2861", "C", "1.0-SNAPSHOT", "jar" );
 
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
 
         itr.verifyErrorFreeLog();
 
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng2972OverridePluginDependency.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng2972OverridePluginDependency.java
index 8368718..4f918a6 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng2972OverridePluginDependency.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng2972OverridePluginDependency.java
@@ -39,19 +39,19 @@
         itr.deleteArtifact( "org.apache.maven.its.mng2972", "dep", "2.0", "jar" );
 
         itr = new IntegrationTestRunner( new File( testDir.getAbsolutePath(), "dep1" ).getAbsolutePath() );
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
         itr.verifyErrorFreeLog();
 
         itr = new IntegrationTestRunner( new File( testDir.getAbsolutePath(), "dep2" ).getAbsolutePath() );
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
         itr.verifyErrorFreeLog();
 
         itr = new IntegrationTestRunner( new File( testDir.getAbsolutePath(), "mojo" ).getAbsolutePath() );
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
         itr.verifyErrorFreeLog();
 
         itr = new IntegrationTestRunner( new File( testDir.getAbsolutePath(), "user" ).getAbsolutePath() );
-        itr.executeGoal( "validate" );
+        itr.invoke( "validate" );
         itr.verifyErrorFreeLog();
 
         List lines =
@@ -78,7 +78,7 @@
          */
 
         itr = new IntegrationTestRunner( new File( testDir.getAbsolutePath(), "user" ).getAbsolutePath() );
-        itr.executeGoal( "org.apache.maven.its.mng2972:mojo:0.0.1-SNAPSHOT:test" );
+        itr.invoke( "org.apache.maven.its.mng2972:mojo:0.0.1-SNAPSHOT:test" );
         itr.verifyErrorFreeLog();
 
         lines = itr.loadFile( new File( testDir.getAbsolutePath(), "user" ).getAbsolutePath(), "log.txt", false );
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3099SettingsProfilesWithNoPOM.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3099SettingsProfilesWithNoPOM.java
index 0c07765..6c99e08 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3099SettingsProfilesWithNoPOM.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3099SettingsProfilesWithNoPOM.java
@@ -42,7 +42,7 @@
 
         itr = new IntegrationTestRunner( plugin.getAbsolutePath() );
 
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
 
         /*
          * Reset the streams before executing the itr
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3220ImportScopeTest.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3220ImportScopeTest.java
index c8722c2..487353d 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3220ImportScopeTest.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3220ImportScopeTest.java
@@ -26,7 +26,7 @@
         File dmDir = new File( testDir, "dm-pom" );
         IntegrationTestRunner itr = new IntegrationTestRunner( dmDir.getAbsolutePath() );
 
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
 
         itr.verifyErrorFreeLog();
         itr.resetStreams();
@@ -34,7 +34,7 @@
         File projectDir = new File( testDir, "project" );
         itr = new IntegrationTestRunner( projectDir.getAbsolutePath() );
 
-        itr.executeGoal( "package" );
+        itr.invoke( "package" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
     }
@@ -49,7 +49,7 @@
 
         try
         {
-            itr.executeGoal( "install" );
+            itr.invoke( "install" );
             fail( "Should fail to build with missing junit version." );
         }
         catch ( IntegrationTestException e )
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3221InfiniteForking.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3221InfiniteForking.java
index 47298f2..bf52b10 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3221InfiniteForking.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3221InfiniteForking.java
@@ -33,7 +33,7 @@
 
             itr.deleteArtifact( "tests", "maven-forking-report-plugin", "1", "jar" );
 
-            itr.executeGoal( "install" );
+            itr.invoke( "install" );
             itr.verifyErrorFreeLog();
             itr.resetStreams();
 
@@ -75,7 +75,7 @@
 
             itr.deleteArtifact( "tests", "maven-forking-test-plugin", "1", "jar" );
 
-            itr.executeGoal( "install" );
+            itr.invoke( "install" );
             itr.verifyErrorFreeLog();
             itr.resetStreams();
 
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3259DepsDroppedInMultiModuleBuild.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3259DepsDroppedInMultiModuleBuild.java
index ea1ecb2..cb38160 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3259DepsDroppedInMultiModuleBuild.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3259DepsDroppedInMultiModuleBuild.java
@@ -20,7 +20,7 @@
         itr.verifyErrorFreeLog();
         itr.resetStreams();
         itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
     }
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3284UsingCachedPluginsTest.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3284UsingCachedPluginsTest.java
index f9ebffd..19c06c3 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3284UsingCachedPluginsTest.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3284UsingCachedPluginsTest.java
@@ -35,7 +35,7 @@
          * Build Mojo v1
          */
         itr = new IntegrationTestRunner( new File( testDir.getAbsolutePath(), "mojo" ).getAbsolutePath() );
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
 
@@ -43,7 +43,7 @@
          * Build Mojo v2
          */
         itr = new IntegrationTestRunner( new File( testDir.getAbsolutePath(), "mojo2" ).getAbsolutePath() );
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
 
@@ -51,7 +51,7 @@
          * Run the simple build
          */
         itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
         itr.verifyErrorFreeLog();
 
         List lines = itr.loadFile( testDir.getAbsolutePath(), "log.txt", false );
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3314OfflineSnapshotsTest.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3314OfflineSnapshotsTest.java
index 6fc41a9..7a057ac 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3314OfflineSnapshotsTest.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3314OfflineSnapshotsTest.java
@@ -81,7 +81,7 @@
         IntegrationTestRunner itr = new IntegrationTestRunner( testDep.getAbsolutePath() );
 
         // Deploy the dependency to the test repository.
-        itr.executeGoal( "deploy" );
+        itr.invoke( "deploy" );
 
         itr.verifyErrorFreeLog();
         itr.resetStreams();
@@ -134,7 +134,7 @@
         // Expected outcome: build success
         try
         {
-            itr.executeGoal( "compile" );
+            itr.invoke( "compile" );
         }
         finally
         {
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3331ModulePathNormalization.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3331ModulePathNormalization.java
index 24abf01..d8b6420 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3331ModulePathNormalization.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3331ModulePathNormalization.java
@@ -30,7 +30,7 @@
 
         itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
 
-        itr.executeGoal( "initialize" );
+        itr.invoke( "initialize" );
 
         /*
          * This is the simplest way to check a build
@@ -60,7 +60,7 @@
 
         itr = new IntegrationTestRunner( new File( testDir, "parent" ).getAbsolutePath() );
 
-        itr.executeGoal( "initialize" );
+        itr.invoke( "initialize" );
 
         /*
          * This is the simplest way to check a build
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3372DirectInvocationOfPlugins.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3372DirectInvocationOfPlugins.java
index fdecf60..0b06d36 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3372DirectInvocationOfPlugins.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3372DirectInvocationOfPlugins.java
@@ -4,8 +4,6 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import junit.framework.TestCase;
-
 import org.apache.maven.it.IntegrationTestRunner;
 
 /**
@@ -37,7 +35,7 @@
 
         IntegrationTestRunner itr = new IntegrationTestRunner( plugin.getAbsolutePath() );
         itr.deleteArtifact( "org.apache.maven.its.mng3372", "mng3372-maven-plugin", "1", "jar" );
-        itr.executeGoal( "clean, install" );
+        itr.invoke( "clean, install" );
         itr = new IntegrationTestRunner( project.getAbsolutePath() );
 
         List cliOptions = new ArrayList();
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3380ManagedRelocatedTransdepsTest.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3380ManagedRelocatedTransdepsTest.java
index dafcc9e..c468c7a 100755
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3380ManagedRelocatedTransdepsTest.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3380ManagedRelocatedTransdepsTest.java
@@ -42,7 +42,7 @@
             + "/consumer";
 
         itr = new IntegrationTestRunner( path );
-        itr.executeGoal( "package" );
+        itr.invoke( "package" );
 
         // verify no errors so far
         itr.verifyErrorFreeLog();
@@ -56,37 +56,37 @@
         String path = testDir.getAbsolutePath() //
             + "/other-c";
         IntegrationTestRunner itr = new IntegrationTestRunner( path );
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
 
         path = testDir.getAbsolutePath() //
             + "/other-b";
         itr = new IntegrationTestRunner( path );
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
 
         path = testDir.getAbsolutePath() //
             + "/other-a";
         itr = new IntegrationTestRunner( path );
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
 
         path = testDir.getAbsolutePath() //
             + "/transdep-old";
         itr = new IntegrationTestRunner( path );
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
 
         path = testDir.getAbsolutePath() //
             + "/transdep-new-1";
         itr = new IntegrationTestRunner( path );
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
 
         path = testDir.getAbsolutePath() //
             + "/transdep-new-2";
         itr = new IntegrationTestRunner( path );
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
 
         path = testDir.getAbsolutePath() //
             + "/direct-dep";
         itr = new IntegrationTestRunner( path );
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
     }
 
     private void deleteArtifacts( IntegrationTestRunner itr )
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3391ImportScopeErrorScenariosTest.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3391ImportScopeErrorScenariosTest.java
index 04ed644..41031f4 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3391ImportScopeErrorScenariosTest.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3391ImportScopeErrorScenariosTest.java
@@ -24,7 +24,7 @@
 
         itr.deleteArtifact( "org.apache.maven.its.mng3391.2", "dm-pom", "1", "pom" );
 
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
 
         itr.verifyErrorFreeLog();
 
@@ -42,11 +42,11 @@
         itr.deleteArtifact( "org.apache.maven.its.mng3391.2", "dm-pom", "1", "pom" );
 
         IntegrationTestRunner v2 = new IntegrationTestRunner( new File( testDir, "dm-pom" ).getAbsolutePath() );
-        v2.executeGoal( "install" );
+        v2.invoke( "install" );
         v2.verifyErrorFreeLog();
         v2.resetStreams();
 
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
     }
@@ -61,7 +61,7 @@
 
         itr.deleteArtifact( "org.apache.maven.its.mng3391.1", "dm-pom", "1", "pom" );
 
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
 
         itr.verifyErrorFreeLog();
 
@@ -75,7 +75,7 @@
                                                                  "/mng-3391-importScopeErrorScenarios/depMgmt-importPom-parentCycle" );
 
         IntegrationTestRunner itr = new IntegrationTestRunner( new File( testDir, "dm-pom" ).getAbsolutePath() );
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
     }
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3396DependencyManagementForOverConstrainedRanges.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3396DependencyManagementForOverConstrainedRanges.java
index 1569f3a..ebcc497 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3396DependencyManagementForOverConstrainedRanges.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3396DependencyManagementForOverConstrainedRanges.java
@@ -46,7 +46,7 @@
         itr.deleteArtifact( GROUP_ID, "A", "1.0", "jar" );
         itr.deleteArtifact( GROUP_ID, "B", "1.0", "pom" );
         itr.deleteArtifact( GROUP_ID, "B", "1.0", "jar" );
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
 
@@ -59,7 +59,7 @@
         itr.deleteArtifact( GROUP_ID, "A", "3.0", "jar" );
         itr.deleteArtifact( GROUP_ID, "plugin", "1.0", "pom" );
         itr.deleteArtifact( GROUP_ID, "plugin", "1.0", "jar" );
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
 
@@ -68,7 +68,7 @@
         itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
         itr.deleteArtifact( GROUP_ID, "pluginuser", "1.0", "pom" );
         itr.deleteArtifact( GROUP_ID, "pluginuser", "1.0", "jar" );
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
     }
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3415JunkRepositoryMetadataTest.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3415JunkRepositoryMetadataTest.java
index 86d57f1..b52f4af 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3415JunkRepositoryMetadataTest.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3415JunkRepositoryMetadataTest.java
@@ -105,7 +105,7 @@
 
         setupDummyDependency( testDir, localRepo, true );
 
-        itr.executeGoal( "package" );
+        itr.invoke( "package" );
 
         itr.verifyErrorFreeLog();
         itr.resetStreams();
@@ -186,7 +186,7 @@
 
         setupDummyDependency( testDir, localRepo, false );
 
-        itr.executeGoal( "package" );
+        itr.invoke( "package" );
 
         itr.verifyErrorFreeLog();
         itr.resetStreams();
@@ -288,12 +288,12 @@
 
         itr.deleteArtifact( "org.apache.maven.plugins", "maven-find-local-repo-plugin", "1.0-SNAPSHOT", "jar" );
 
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
 
         itr.verifyErrorFreeLog();
         itr.resetStreams();
 
-        itr.executeGoal( "find-local-repo:find" );
+        itr.invoke( "find-local-repo:find" );
 
         itr.verifyErrorFreeLog();
         itr.resetStreams();
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3428PluginDescriptorArtifactsIncompleteTest.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3428PluginDescriptorArtifactsIncompleteTest.java
index 10c77b8..453f35b 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3428PluginDescriptorArtifactsIncompleteTest.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3428PluginDescriptorArtifactsIncompleteTest.java
@@ -25,7 +25,7 @@
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
 
         // First, build the plugin we'll use to test the PluginDescriptor artifact collection.
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
 
         /*
          * This is the simplest way to check a build
@@ -47,7 +47,7 @@
         // This should only succeed if commons-cli is part of ${plugin.artifacts}. The
         // commons-cli library is part of Maven's core classpath, so if this mojo succeeds
         // it means the PluginDescriptor.getArtifacts() call returns an unfiltered collection.
-        itr.executeGoal( "tests:test-cli-maven-plugin:1:test" );
+        itr.invoke( "tests:test-cli-maven-plugin:1:test" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
     }
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3473PluginReportCrash.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3473PluginReportCrash.java
index 39d9ce5..8392b8f 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3473PluginReportCrash.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3473PluginReportCrash.java
@@ -40,7 +40,7 @@
         logFile.renameTo( new File( testDir, "log-2.4.1-preinstall.txt" ) );
 
         //should succeed with 2.4.1
-        itr.executeGoal( "org.apache.maven.plugins:maven-help-plugin:2.0.2:effective-pom, site" );
+        itr.invoke( "org.apache.maven.plugins:maven-help-plugin:2.0.2:effective-pom, site" );
 
         // NOTE: Velocity prints an [ERROR] line pertaining to an incorrect macro usage when run in 2.1, so this doesn't work.
 //        itr.verifyErrorFreeLog();
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3475BaseAlignedDir.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3475BaseAlignedDir.java
index ccb8957..4232cef 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3475BaseAlignedDir.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3475BaseAlignedDir.java
@@ -24,7 +24,7 @@
         File pluginDir = new File( testDir, "plugin" );
         IntegrationTestRunner itr = new IntegrationTestRunner( pluginDir.getAbsolutePath() );
 
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
 
         itr.verifyErrorFreeLog();
         itr.resetStreams();
@@ -32,7 +32,7 @@
         File projectDir = new File( testDir, "project" );
         itr = new IntegrationTestRunner( projectDir.getAbsolutePath() );
 
-        itr.executeGoal( "validate" );
+        itr.invoke( "validate" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
     }
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3498ForkToOtherMojoTest.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3498ForkToOtherMojoTest.java
index 36611b4..7990601 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3498ForkToOtherMojoTest.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3498ForkToOtherMojoTest.java
@@ -54,14 +54,14 @@
         IntegrationTestRunner itr = new IntegrationTestRunner( pluginDir.getAbsolutePath() );
         itr.deleteArtifact( "org.apache.maven.its.mng3498", "maven-mng3498-plugin", "1", "pom" );
 
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
 
         itr.verifyErrorFreeLog();
         itr.resetStreams();
 
         itr = new IntegrationTestRunner( projectDir.getAbsolutePath() );
 
-        itr.executeGoal( "validate" );
+        itr.invoke( "validate" );
 
         itr.verifyErrorFreeLog();
         itr.resetStreams();
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3503Xpp3ShadingTest.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3503Xpp3ShadingTest.java
index 9521058..a604af3 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3503Xpp3ShadingTest.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3503Xpp3ShadingTest.java
@@ -60,7 +60,7 @@
          */
         itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
 
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
 
         /*
          * This is the simplest way to check a build
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3530DynamicPOMInterpolationTest.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3530DynamicPOMInterpolationTest.java
index 752758d..2ec40ee 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3530DynamicPOMInterpolationTest.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3530DynamicPOMInterpolationTest.java
@@ -56,7 +56,7 @@
         // configuration. Once this is installed, we can run a project build that
         // uses it to see how Maven will respond to a modification in the project build directory.
         IntegrationTestRunner itr = new IntegrationTestRunner( pluginDir.getAbsolutePath() );
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
 
         itr.verifyErrorFreeLog();
         itr.resetStreams();
@@ -65,7 +65,7 @@
         // the update to the project.build.directory, it will fail the build.
         itr = new IntegrationTestRunner( projectDir.getAbsolutePath() );
 
-        itr.executeGoal( "package" );
+        itr.invoke( "package" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
     }
@@ -83,7 +83,7 @@
         // configuration. Once this is installed, we can run a project build that
         // uses it to see how Maven will respond to a modification in the POM property.
         IntegrationTestRunner itr = new IntegrationTestRunner( pluginDir.getAbsolutePath() );
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
 
         itr.verifyErrorFreeLog();
         itr.resetStreams();
@@ -92,7 +92,7 @@
         // the update to the myDirectory, it will fail the build.
         itr = new IntegrationTestRunner( projectDir.getAbsolutePath() );
 
-        itr.executeGoal( "package" );
+        itr.invoke( "package" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
     }
@@ -108,7 +108,7 @@
         // First, install the plugin which validates that all resource directory
         // specifications have been interpolated.
         IntegrationTestRunner itr = new IntegrationTestRunner( pluginDir.getAbsolutePath() );
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
 
         itr.verifyErrorFreeLog();
         itr.resetStreams();
@@ -117,7 +117,7 @@
         // directory, it will fail the build.
         itr = new IntegrationTestRunner( projectDir.getAbsolutePath() );
 
-        itr.executeGoal( "package" );
+        itr.invoke( "package" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
     }
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3536AppendedAbsolutePaths.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3536AppendedAbsolutePaths.java
index 25f21b0..d744b84 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3536AppendedAbsolutePaths.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3536AppendedAbsolutePaths.java
@@ -19,7 +19,7 @@
         File pluginDir = new File( testDir, "plugin" );
         IntegrationTestRunner itr = new IntegrationTestRunner( pluginDir.getAbsolutePath() );
 
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
 
         itr.verifyErrorFreeLog();
         itr.resetStreams();
@@ -27,7 +27,7 @@
         File projectDir = new File( testDir, "project" );
         itr = new IntegrationTestRunner( projectDir.getAbsolutePath() );
 
-        itr.executeGoal( "verify" );
+        itr.invoke( "verify" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
     }
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3581PluginUsesWagonDependency.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3581PluginUsesWagonDependency.java
index 0975dd5..7eda459 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3581PluginUsesWagonDependency.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3581PluginUsesWagonDependency.java
@@ -26,12 +26,12 @@
         File projectDir = new File( testDir, "project" );
 
         IntegrationTestRunner itr = new IntegrationTestRunner( pluginDir.getAbsolutePath() );
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
 
         itr = new IntegrationTestRunner( projectDir.getAbsolutePath() );
-        itr.executeGoal( "validate" );
+        itr.invoke( "validate" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
 
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3642DynamicResourcesTest.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3642DynamicResourcesTest.java
index 4144380..1649193 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3642DynamicResourcesTest.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3642DynamicResourcesTest.java
@@ -68,7 +68,7 @@
          * recurse. We are only installing the parent pom to
          * the local repo here.
          */
-        itr.executeGoal( "process-test-resources" );
+        itr.invoke( "process-test-resources" );
 
         /*
          * This is the simplest way to check a build
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3645POMSyntaxErrorTest.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3645POMSyntaxErrorTest.java
index 5abb8b3..e2b27f7d 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3645POMSyntaxErrorTest.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3645POMSyntaxErrorTest.java
@@ -54,7 +54,7 @@
 
         try
         {
-            itr.executeGoal( "validate" );
+            itr.invoke( "validate" );
 
             fail( "Should fail to validate the POM syntax due to missing dependency element inside dependencyManagement section." );
         }
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3652UserAgentHeader.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3652UserAgentHeader.java
index 181331d..d2932ff 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3652UserAgentHeader.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3652UserAgentHeader.java
@@ -39,7 +39,7 @@
         File projectDir = new File( testDir, "test-project" );
 
         IntegrationTestRunner itr = new IntegrationTestRunner( pluginDir.getAbsolutePath() );
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
 
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3667ResolveDepsWithBadPomVersionTest.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3667ResolveDepsWithBadPomVersionTest.java
index 41ad2bd..66e9198 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3667ResolveDepsWithBadPomVersionTest.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3667ResolveDepsWithBadPomVersionTest.java
@@ -66,7 +66,7 @@
         File localRepoDir = new File( itr.localRepo );
         FileUtils.copyDirectoryStructure( repoDir, localRepoDir );
 
-        itr.executeGoal( "compile" );
+        itr.invoke( "compile" );
 
         /*
          * This is the simplest way to check a build
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3671PluginLevelDepInterpolationTest.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3671PluginLevelDepInterpolationTest.java
index 743ca39..d1e6e05 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3671PluginLevelDepInterpolationTest.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3671PluginLevelDepInterpolationTest.java
@@ -51,7 +51,7 @@
         // file.
         File testDir = extractTestResources( getClass(), "/mng-3671-pluginLevelDepInterpolation" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "compile" );
+        itr.invoke( "compile" );
 
         /*
          * This is the simplest way to check a build
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3679PluginExecIdInterpolationTest.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3679PluginExecIdInterpolationTest.java
index 411f594..fc51316 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3679PluginExecIdInterpolationTest.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3679PluginExecIdInterpolationTest.java
@@ -18,7 +18,7 @@
     {
         File testDir = extractTestResources( getClass(), "/mng-3679-pluginExecIdInterpolation" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "validate" );
+        itr.invoke( "validate" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();       
         assertTrue( new File( testDir, "target/check.txt" ).exists() );
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3680InvalidDependencyPOMTest.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3680InvalidDependencyPOMTest.java
index 9cb0ccd..582064a 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3680InvalidDependencyPOMTest.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3680InvalidDependencyPOMTest.java
@@ -25,7 +25,7 @@
     {
         File testDir = extractTestResources( getClass(), "/mng-3680-invalidDependencyPOM" );
         IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
-        itr.executeGoal( "compile" );
+        itr.invoke( "compile" );
         itr.verifyErrorFreeLog();
         itr.resetStreams();
     }
diff --git a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3684BuildPluginParameterTest.java b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3684BuildPluginParameterTest.java
index 805ed18..04d1fb0 100644
--- a/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3684BuildPluginParameterTest.java
+++ b/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3684BuildPluginParameterTest.java
@@ -28,13 +28,13 @@
         File projectDir = new File( testDir, "project" );
 
         IntegrationTestRunner itr = new IntegrationTestRunner( pluginDir.getAbsolutePath() );
-        itr.executeGoal( "install" );
+        itr.invoke( "install" );
         
         itr.verifyErrorFreeLog();
         itr.resetStreams();
         
         itr = new IntegrationTestRunner( projectDir.getAbsolutePath() );
-        itr.executeGoal( "validate" );
+        itr.invoke( "validate" );
 
         itr.verifyErrorFreeLog();
         itr.resetStreams();
@@ -42,7 +42,7 @@
         File logFile = new File( projectDir, "log.txt" );
         logFile.renameTo( new File( projectDir, "log-validate.txt" ) );
         
-        itr.executeGoal( "site" );
+        itr.invoke( "site" );
 
         itr.verifyErrorFreeLog();
         itr.resetStreams();
