diff --git a/core-it-suite/src/test/java/org/apache/maven/it/ItUtils.java b/core-it-suite/src/test/java/org/apache/maven/it/ItUtils.java
index 3409467..845c63d 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/ItUtils.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/ItUtils.java
@@ -19,7 +19,6 @@
  * under the License.
  */
 
-import org.junit.jupiter.api.Test;
 import java.io.File;
 import java.io.FileInputStream;
 import java.security.DigestInputStream;
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0008SimplePluginTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0008SimplePluginTest.java
index 790aa7c..98d7f38 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0008SimplePluginTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0008SimplePluginTest.java
@@ -56,7 +56,6 @@
         verifier.verifyFilePresent( "target/touch.txt" );
         verifier.verifyFilePresent( "target/test-basedir-alignment/touch.txt" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0009GoalConfigurationTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0009GoalConfigurationTest.java
index 326fe0f..7b4c483 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0009GoalConfigurationTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0009GoalConfigurationTest.java
@@ -57,7 +57,6 @@
         verifier.verifyFilePresent( "target/goalItem" );
         verifier.verifyFileNotPresent( "target/bad-item" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0010DependencyClosureResolutionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0010DependencyClosureResolutionTest.java
index ed6812d..3ff4d8e 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0010DependencyClosureResolutionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0010DependencyClosureResolutionTest.java
@@ -57,7 +57,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyArtifactPresent( "org.apache.maven.its.it0010", "a", "0.1", "jar" );
         verifier.verifyArtifactPresent( "org.apache.maven.its.it0010", "b", "0.2", "jar" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0011DefaultVersionByDependencyManagementTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0011DefaultVersionByDependencyManagementTest.java
index bdf8287..a7da9c1 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0011DefaultVersionByDependencyManagementTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0011DefaultVersionByDependencyManagementTest.java
@@ -54,7 +54,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> artifacts = verifier.loadLines( "target/compile.txt", "UTF-8" );
         assertTrue( artifacts.toString(), artifacts.contains( "org.apache.maven.its.it0011:a:jar:0.1" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0012PomInterpolationTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0012PomInterpolationTest.java
index 8261b74..281f28c 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0012PomInterpolationTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0012PomInterpolationTest.java
@@ -52,7 +52,6 @@
         verifier.verifyFilePresent( "target/touch-3.8.1.txt" );
         verifier.verifyFilePresent( "child-project/target/child-touch-3.0.3.txt" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0018DependencyManagementTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0018DependencyManagementTest.java
index a776c44..60d0585 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0018DependencyManagementTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0018DependencyManagementTest.java
@@ -55,7 +55,6 @@
         verifier.executeGoal( "org.apache.maven.its.plugins:maven-it-plugin-dependency-resolution:2.1-SNAPSHOT:compile" );
         verifier.verifyArtifactPresent( "org.apache.maven.its.it0018", "managed-dep", "1.0.3", "jar" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0019PluginVersionMgmtBySuperPomTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0019PluginVersionMgmtBySuperPomTest.java
index 7a2550a..aaaaa8f 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0019PluginVersionMgmtBySuperPomTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0019PluginVersionMgmtBySuperPomTest.java
@@ -50,7 +50,6 @@
         verifier.executeGoal( "process-resources" );
         verifier.verifyFilePresent( "target/classes/test.txt" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0021PomProfileTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0021PomProfileTest.java
index 6b00dc8..31c0b2d 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0021PomProfileTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0021PomProfileTest.java
@@ -56,7 +56,6 @@
         verifier.addCliOption( "-Pprofile-2" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyArtifactPresent( "org.apache.maven.its.it0021", "a", "0.1", "jar" );
         verifier.verifyArtifactPresent( "org.apache.maven.its.it0021", "b", "0.1", "jar" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0023SettingsProfileTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0023SettingsProfileTest.java
index 4c11376..1f62116 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0023SettingsProfileTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0023SettingsProfileTest.java
@@ -53,7 +53,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "org.apache.maven.its.plugins:maven-it-plugin-touch:touch" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/test.txt" );
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0024MultipleGoalExecutionsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0024MultipleGoalExecutionsTest.java
index 0b697dc..15b7fdb 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0024MultipleGoalExecutionsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0024MultipleGoalExecutionsTest.java
@@ -57,7 +57,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "initialize" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/plugin-exec-configuration.txt" );
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0025MultipleExecutionLevelConfigsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0025MultipleExecutionLevelConfigsTest.java
index 5156718..2b0ceae 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0025MultipleExecutionLevelConfigsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0025MultipleExecutionLevelConfigsTest.java
@@ -56,7 +56,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/test.txt" );
         verifier.verifyFilePresent( "target/test2.txt" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0030DepPomDepMgmtInheritanceTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0030DepPomDepMgmtInheritanceTest.java
index 85a1167..02dbea6 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0030DepPomDepMgmtInheritanceTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0030DepPomDepMgmtInheritanceTest.java
@@ -53,7 +53,6 @@
         verifier.executeGoal( "install" );
         verifier.verifyFilePresent( "child-hierarchy/project2/target/classes/org/apache/maven/it0001/Person.class" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
     }
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0032MavenPrerequisiteTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0032MavenPrerequisiteTest.java
index 0ea4503..7f6aae2 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0032MavenPrerequisiteTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0032MavenPrerequisiteTest.java
@@ -49,7 +49,6 @@
         verifier.setAutoclean( false );
         verifier.executeGoal( "initialize" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0037AlternatePomFileSameDirTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0037AlternatePomFileSameDirTest.java
index f86f33a..8f4a46b 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0037AlternatePomFileSameDirTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0037AlternatePomFileSameDirTest.java
@@ -58,7 +58,6 @@
         verifier.addCliOption( "pom2.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/passed.log" );
         verifier.verifyFileNotPresent( "target/failed.log" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0038AlternatePomFileDifferentDirTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0038AlternatePomFileDifferentDirTest.java
index 5c4022d..a66bec5 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0038AlternatePomFileDifferentDirTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0038AlternatePomFileDifferentDirTest.java
@@ -58,7 +58,6 @@
         verifier.addCliOption( "project/pom2.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "project/target/passed.log" );
         verifier.verifyFileNotPresent( "target/failed.log" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0040PackagingFromPluginExtensionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0040PackagingFromPluginExtensionTest.java
index 35f0130..9d0359a 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0040PackagingFromPluginExtensionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0040PackagingFromPluginExtensionTest.java
@@ -57,7 +57,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "package" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/maven-it-it0040-1.0-it.jar" );
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0041ArtifactTypeFromPluginExtensionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0041ArtifactTypeFromPluginExtensionTest.java
index 2327cca..71cce3d 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0041ArtifactTypeFromPluginExtensionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0041ArtifactTypeFromPluginExtensionTest.java
@@ -58,7 +58,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyArtifactPresent( "org.apache.maven", "maven-core-it-support", "1.2", "coreit-artifact" );
         verifier.verifyArtifactPresent( "org.apache.maven", "maven-core-it-support", "1.2", "pom" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0051ReleaseProfileTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0051ReleaseProfileTest.java
index 49150a6..2733c66 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0051ReleaseProfileTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0051ReleaseProfileTest.java
@@ -52,7 +52,6 @@
         verifier.addCliOption( "-DperformRelease=true" );
         verifier.executeGoal( "package" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/source-jar.txt" );
         verifier.verifyFilePresent( "target/javadoc-jar.txt" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0052ReleaseProfileTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0052ReleaseProfileTest.java
index bf7a9a4..1436ce5 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0052ReleaseProfileTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0052ReleaseProfileTest.java
@@ -51,7 +51,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "package" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/jar-jar.txt" );
         verifier.verifyFileNotPresent( "target/source-jar.txt" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0056MultipleGoalExecutionsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0056MultipleGoalExecutionsTest.java
index 369917f..356136e 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0056MultipleGoalExecutionsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0056MultipleGoalExecutionsTest.java
@@ -51,7 +51,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "initialize" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/first-exec.txt" );
         verifier.verifyFilePresent( "target/second-exec.txt" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0063SystemScopeDependencyTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0063SystemScopeDependencyTest.java
index 48134b4..83c7f47 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0063SystemScopeDependencyTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0063SystemScopeDependencyTest.java
@@ -52,7 +52,6 @@
         verifier.getSystemProperties().setProperty( "jre.home", new File( testDir, "jdk/jre" ).getPath() );
         verifier.executeGoal( "org.apache.maven.its.plugins:maven-it-plugin-dependency-resolution:2.1-SNAPSHOT:compile" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> lines = verifier.loadLines( "target/compile.txt", "UTF-8" );
         assertEquals( 2, lines.size() );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0064MojoConfigViaSettersTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0064MojoConfigViaSettersTest.java
index 180d868..7798304 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0064MojoConfigViaSettersTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0064MojoConfigViaSettersTest.java
@@ -51,7 +51,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "org.apache.maven.its.plugins:maven-it-plugin-setter:setter-touch" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/fooValue" );
         verifier.verifyFilePresent( "target/barValue.baz" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0071PluginConfigWithDottedPropertyTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0071PluginConfigWithDottedPropertyTest.java
index 0a175ec..c6d6334 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0071PluginConfigWithDottedPropertyTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0071PluginConfigWithDottedPropertyTest.java
@@ -57,7 +57,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "org.apache.maven.its.plugins:maven-it-plugin-touch:touch" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/foo2" );
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0072InterpolationWithDottedPropertyTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0072InterpolationWithDottedPropertyTest.java
index d2d12bc..6206698 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0072InterpolationWithDottedPropertyTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0072InterpolationWithDottedPropertyTest.java
@@ -58,7 +58,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/pom.properties" );
         assertEquals( "1.0-SNAPSHOT", props.getProperty( "project.version" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0085TransitiveSystemScopeTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0085TransitiveSystemScopeTest.java
index 52efc10..f1d20d2 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0085TransitiveSystemScopeTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0085TransitiveSystemScopeTest.java
@@ -59,7 +59,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Collection<String> lines = verifier.loadLines( "target/test.txt", "UTF-8" );
         assertTrue( lines.toString(), lines.contains( "system.jar" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0086PluginRealmTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0086PluginRealmTest.java
index 85e36dc..55c3381 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0086PluginRealmTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0086PluginRealmTest.java
@@ -58,7 +58,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties pclProps = verifier.loadProperties( "target/pcl.properties" );
         assertNotNull( pclProps.getProperty( "org.apache.maven.plugin.coreit.ClassA" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0087PluginRealmWithProjectLevelDepsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0087PluginRealmWithProjectLevelDepsTest.java
index 8464276..7083199 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0087PluginRealmWithProjectLevelDepsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0087PluginRealmWithProjectLevelDepsTest.java
@@ -62,7 +62,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties pclProps = verifier.loadProperties( "target/pcl.properties" );
         assertNotNull( pclProps.getProperty( "org.apache.maven.plugin.coreit.ClassA" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0090EnvVarInterpolationTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0090EnvVarInterpolationTest.java
index 7d3dde4..1da4728 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0090EnvVarInterpolationTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0090EnvVarInterpolationTest.java
@@ -56,7 +56,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate", envVars );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/env.properties" );
         assertEquals( "MAVEN_TEST_ENVAR_VALUE", props.getProperty( "stringParam" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0108SnapshotUpdateTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0108SnapshotUpdateTest.java
index 69cce4d..d417431 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0108SnapshotUpdateTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0108SnapshotUpdateTest.java
@@ -86,7 +86,6 @@
         verifier.executeGoal( "package" );
 
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifyArtifactContent( "originalArtifact" );
 
@@ -100,7 +99,6 @@
         verifyArtifactContent( "updatedArtifact" );
 
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
     @Test
@@ -115,7 +113,6 @@
         verifier.executeGoal( "package" );
 
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifyArtifactContent( "originalArtifact" );
 
@@ -128,7 +125,6 @@
         verifyArtifactContent( "updatedArtifact" );
 
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
     @Test
@@ -149,7 +145,6 @@
         verifier.executeGoal( "package" );
 
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifyArtifactContent( "originalArtifact" );
         assertFalse( localMetadata.exists() );
@@ -167,7 +162,6 @@
         verifyArtifactContent( "localArtifact" );
 
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Calendar cal = Calendar.getInstance();
         cal.add( Calendar.YEAR, -1 );
@@ -183,7 +177,6 @@
         verifyArtifactContent( "originalArtifact" );
 
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
     @Test
@@ -199,7 +192,6 @@
         verifier.executeGoal( "package" );
 
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifyArtifactContent( "originalArtifact" );
 
@@ -212,7 +204,6 @@
         verifyArtifactContent( "updatedArtifact" );
 
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
     private File getMetadataFile( String groupId, String artifactId, String version )
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0113ServerAuthzAvailableToWagonMgrInPluginTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0113ServerAuthzAvailableToWagonMgrInPluginTest.java
index b834581..4975ead 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0113ServerAuthzAvailableToWagonMgrInPluginTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0113ServerAuthzAvailableToWagonMgrInPluginTest.java
@@ -54,7 +54,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/auth.properties" );
         assertEquals( "testuser", props.getProperty( "test.username" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0130CleanLifecycleTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0130CleanLifecycleTest.java
index 4ba7274..cf40dd8 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0130CleanLifecycleTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0130CleanLifecycleTest.java
@@ -57,7 +57,6 @@
         verifier.executeGoal( "clean" );
         verifier.verifyFilePresent( "target/clean-clean.txt" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0131SiteLifecycleTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0131SiteLifecycleTest.java
index f12cf86..e793ab5 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0131SiteLifecycleTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0131SiteLifecycleTest.java
@@ -58,7 +58,6 @@
         verifier.verifyFilePresent( "target/site-site.txt" );
         verifier.verifyFilePresent( "target/site-deploy.txt" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0132PomLifecycleTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0132PomLifecycleTest.java
index 428c705..c5fd648 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0132PomLifecycleTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0132PomLifecycleTest.java
@@ -62,7 +62,6 @@
         verifier.verifyFilePresent( "target/install-install.txt" );
         verifier.verifyFilePresent( "target/deploy-deploy.txt" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0133JarLifecycleTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0133JarLifecycleTest.java
index 7368f76..e0efd3d 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0133JarLifecycleTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0133JarLifecycleTest.java
@@ -64,7 +64,6 @@
         verifier.verifyFilePresent( "target/install-install.txt" );
         verifier.verifyFilePresent( "target/deploy-deploy.txt" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0134WarLifecycleTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0134WarLifecycleTest.java
index aba379d..e5925fb 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0134WarLifecycleTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0134WarLifecycleTest.java
@@ -64,7 +64,6 @@
         verifier.verifyFilePresent( "target/install-install.txt" );
         verifier.verifyFilePresent( "target/deploy-deploy.txt" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0135EjbLifecycleTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0135EjbLifecycleTest.java
index b84c3ed..55232a7 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0135EjbLifecycleTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0135EjbLifecycleTest.java
@@ -64,7 +64,6 @@
         verifier.verifyFilePresent( "target/install-install.txt" );
         verifier.verifyFilePresent( "target/deploy-deploy.txt" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0136RarLifecycleTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0136RarLifecycleTest.java
index 408825c..e4119c7 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0136RarLifecycleTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0136RarLifecycleTest.java
@@ -64,7 +64,6 @@
         verifier.verifyFilePresent( "target/install-install.txt" );
         verifier.verifyFilePresent( "target/deploy-deploy.txt" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0137EarLifecycleTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0137EarLifecycleTest.java
index d07ae6d..f6b7d25 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0137EarLifecycleTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0137EarLifecycleTest.java
@@ -61,7 +61,6 @@
         verifier.verifyFilePresent( "target/install-install.txt" );
         verifier.verifyFilePresent( "target/deploy-deploy.txt" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0138PluginLifecycleTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0138PluginLifecycleTest.java
index f6061ba..f166a47 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0138PluginLifecycleTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0138PluginLifecycleTest.java
@@ -70,7 +70,6 @@
         }
         verifier.verifyFilePresent( "target/deploy-deploy.txt" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0139InterpolationWithProjectPrefixTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0139InterpolationWithProjectPrefixTest.java
index 231263f..93d48b7 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0139InterpolationWithProjectPrefixTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0139InterpolationWithProjectPrefixTest.java
@@ -57,7 +57,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "initialize" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/interpolated.properties" );
         String prefix = "project.properties.";
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0140InterpolationWithPomPrefixTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0140InterpolationWithPomPrefixTest.java
index b9a4e2c..2599d45 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0140InterpolationWithPomPrefixTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0140InterpolationWithPomPrefixTest.java
@@ -59,7 +59,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "initialize" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/interpolated.properties" );
         String prefix = "project.properties.";
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0142DirectDependencyScopesTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0142DirectDependencyScopesTest.java
index 25fe1a6..53d7a2d 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0142DirectDependencyScopesTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0142DirectDependencyScopesTest.java
@@ -68,7 +68,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> compileArtifacts = verifier.loadLines( "target/compile-artifacts.txt", "UTF-8" );
         assertTrue( compileArtifacts.toString(), compileArtifacts.contains( "org.apache.maven.its.it0142:system:jar:0.1" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0143TransitiveDependencyScopesTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0143TransitiveDependencyScopesTest.java
index 9274e85..a3ae6b3 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0143TransitiveDependencyScopesTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0143TransitiveDependencyScopesTest.java
@@ -259,7 +259,6 @@
         verifier.setLogFileName( "log-" + scope + ".txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         return verifier;
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0144LifecycleExecutionOrderTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0144LifecycleExecutionOrderTest.java
index e0ea701..fcb7835 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0144LifecycleExecutionOrderTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0144LifecycleExecutionOrderTest.java
@@ -58,7 +58,6 @@
         verifier.setAutoclean( false );
         verifier.executeGoals( Arrays.asList( new String[]{ "post-clean", "deploy", "site-deploy" } ) );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> expected = new ArrayList<>();
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0146InstallerSnapshotNaming.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0146InstallerSnapshotNaming.java
index c6d81ff..9edf1d7 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0146InstallerSnapshotNaming.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0146InstallerSnapshotNaming.java
@@ -108,7 +108,6 @@
 
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/appassembler/repo/dep-0.1-20110726.105319-1.jar" );
     }
@@ -127,7 +126,6 @@
 
         verifier.executeGoal( "install" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier = newVerifier( testDir.getAbsolutePath() );
 
@@ -148,7 +146,6 @@
 
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/appassembler/repo/dep-0.1-SNAPSHOT.jar" );
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0199CyclicImportScopeTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0199CyclicImportScopeTest.java
index 7032cad..647fc4f 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0199CyclicImportScopeTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0199CyclicImportScopeTest.java
@@ -55,7 +55,6 @@
             verifier.verifyFilePresent(expectedArtifact);
         }
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITBootstrapTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITBootstrapTest.java
index 322f07b..c3e1082 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITBootstrapTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITBootstrapTest.java
@@ -59,7 +59,6 @@
         verifier.addCliOption( "-Dbootstrap=" + getClass().getResource( "/bootstrap.txt" ).toURI().getPath() );
         verifier.executeGoal( "install" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0095ReactorFailureBehaviorTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0095ReactorFailureBehaviorTest.java
index d0666c4..f1c7f06 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0095ReactorFailureBehaviorTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0095ReactorFailureBehaviorTest.java
@@ -70,7 +70,6 @@
         {
             // expected
         }
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/touch.txt" );
         verifier.verifyFileNotPresent( "subproject1/target/touch.txt" );
@@ -99,7 +98,6 @@
         verifier.addCliOption( "--fail-never" );
         verifier.setLogFileName( "log-fn.txt" );
         verifier.executeGoal( "org.apache.maven.its.plugins:maven-it-plugin-touch:touch" );
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/touch.txt" );
         verifier.verifyFileNotPresent( "subproject1/target/touch.txt" );
@@ -137,7 +135,6 @@
         {
             // expected
         }
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/touch.txt" );
         verifier.verifyFileNotPresent( "subproject1/target/touch.txt" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0187CollectedProjectsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0187CollectedProjectsTest.java
index 50396c5..d6ec278 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0187CollectedProjectsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0187CollectedProjectsTest.java
@@ -64,7 +64,6 @@
         verifier.deleteDirectory( "sub-1/sub-2/target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props;
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0249ResolveDepsFromReactorTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0249ResolveDepsFromReactorTest.java
index 078a404..fe8315a 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0249ResolveDepsFromReactorTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0249ResolveDepsFromReactorTest.java
@@ -56,7 +56,6 @@
         verifier.setAutoclean( false );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> ccp = verifier.loadLines( "test-component-c/target/compile.txt", "UTF-8" );
         assertTrue( ccp.toString(), ccp.contains( "test-component-c/classes" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0282NonReactorExecWhenProjectIndependentTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0282NonReactorExecWhenProjectIndependentTest.java
index 654167e..67875c6 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0282NonReactorExecWhenProjectIndependentTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0282NonReactorExecWhenProjectIndependentTest.java
@@ -59,7 +59,6 @@
         verifier.verifyFilePresent( "target/touch.txt" );
         verifier.verifyFileNotPresent( "subproject/target/touch.txt" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0294MergeGlobalAndUserSettingsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0294MergeGlobalAndUserSettingsTest.java
index 4c098b8..613e86a 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0294MergeGlobalAndUserSettingsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0294MergeGlobalAndUserSettingsTest.java
@@ -62,7 +62,6 @@
         verifier.addCliOption( "global-settings.xml" );
         verifier.executeGoal( "org.apache.maven.its.plugins:maven-it-plugin-touch:touch" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/test.txt" );
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0377PluginLookupFromPrefixTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0377PluginLookupFromPrefixTest.java
index 7b4ad8c..837b590 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0377PluginLookupFromPrefixTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0377PluginLookupFromPrefixTest.java
@@ -62,7 +62,6 @@
         verifier.addCliArgument( "-Dtouch.outputFile=target/file.txt" );
         verifier.executeGoal( "itprefix:touch" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/file.txt" );
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0449PluginVersionResolutionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0449PluginVersionResolutionTest.java
index 534d26f..59bdd36 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0449PluginVersionResolutionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0449PluginVersionResolutionTest.java
@@ -70,7 +70,6 @@
         verifier.filterFile( "../settings-template.xml", "settings.xml", "UTF-8", verifier.newDefaultFilterProperties() );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         // Maven 3.x prefers RELEASE over LATEST (see MNG-4206)
         if ( matchesVersionRange( "(,3.0-alpha-3)" ) )
@@ -115,7 +114,6 @@
         verifier.filterFile( "../settings-template.xml", "settings.xml", "UTF-8", verifier.newDefaultFilterProperties() );
         verifier.executeGoal( "org.apache.maven.its.mng0449:maven-it-plugin-a:touch" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         // Maven 3.x prefers RELEASE over LATEST (see MNG-4206)
         if ( matchesVersionRange( "(,3.0-alpha-3)" ) )
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0461TolerateMissingDependencyPomTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0461TolerateMissingDependencyPomTest.java
index cbce7fb..be00b8e 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0461TolerateMissingDependencyPomTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0461TolerateMissingDependencyPomTest.java
@@ -61,7 +61,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> classpath = verifier.loadLines( "target/classpath.txt", "UTF-8" );
         assertTrue( classpath.toString(), classpath.contains( "dep-0.1.jar" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0469ReportConfigTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0469ReportConfigTest.java
index 5328c88..cb8f703 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0469ReportConfigTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0469ReportConfigTest.java
@@ -60,7 +60,6 @@
         verifier.verifyFilePresent( "target/build.txt" );
         verifier.verifyFileNotPresent( "target/reporting.txt" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
     /**
@@ -90,7 +89,6 @@
             assertNotEquals( "fail.properties", props.getProperty( "project.reporting.plugins.0.configuration.children.infoFile.0.value" ) );
         }
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0471CustomLifecycleTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0471CustomLifecycleTest.java
index 3423e75..49515e1 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0471CustomLifecycleTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0471CustomLifecycleTest.java
@@ -60,7 +60,6 @@
             "org.apache.maven.its.plugins:maven-it-plugin-fork:fork-goal"} );
         verifier.executeGoals( goals );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/forked/touch.txt" );
         verifier.verifyFilePresent( "target/forked2/touch.txt" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0479OverrideCentralRepoTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0479OverrideCentralRepoTest.java
index 4a5f0d6..067c84d 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0479OverrideCentralRepoTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0479OverrideCentralRepoTest.java
@@ -61,7 +61,6 @@
 
         verifier.executeGoal( "org.apache.maven.its.plugins:maven-it-plugin-expression:2.1-SNAPSHOT:eval" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         // Phase 2: Now run the test
         File child2 = new File( testDir, "test" );
@@ -74,7 +73,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "org.apache.maven.its.plugins:maven-it-plugin-expression:2.1-SNAPSHOT:eval" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/expression.properties" );
         Properties props = verifier.loadProperties( "target/expression.properties" );
@@ -139,7 +137,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/touch.txt" );
         verifier.verifyArtifactPresent( "org.apache.maven.its.mng0479", "parent", "0.1-SNAPSHOT", "pom" );
@@ -165,7 +162,6 @@
         {
             // expected
         }
-        verifier.resetStreams();
 
         verifier.verifyArtifactNotPresent( "org.apache.maven.its.mng0479", "parent", "0.1", "pom" );
 
@@ -185,7 +181,6 @@
         {
             // expected
         }
-        verifier.resetStreams();
 
         verifier.verifyArtifactNotPresent( "org.apache.maven.its.mng0479", "a", "0.1", "jar" );
         verifier.verifyArtifactNotPresent( "org.apache.maven.its.mng0479", "a", "0.1", "pom" );
@@ -206,7 +201,6 @@
         {
             // expected
         }
-        verifier.resetStreams();
 
         verifier.verifyArtifactNotPresent( "org.apache.maven.its.mng0479", "b", "0.1", "jar" );
         verifier.verifyArtifactNotPresent( "org.apache.maven.its.mng0479", "b", "0.1", "pom" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0496IgnoreUnknownPluginParametersTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0496IgnoreUnknownPluginParametersTest.java
index 38e9a7a..9e9dc5e 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0496IgnoreUnknownPluginParametersTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0496IgnoreUnknownPluginParametersTest.java
@@ -58,7 +58,6 @@
         verifier.executeGoal( "org.apache.maven.its.plugins:maven-it-plugin-log-file:2.1-SNAPSHOT:reset" );
         verifier.verifyFilePresent( "target/file.txt" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0505VersionRangeTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0505VersionRangeTest.java
index 79a89ac..67eb551 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0505VersionRangeTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0505VersionRangeTest.java
@@ -65,7 +65,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Collection<String> artifacts = verifier.loadLines( "target/artifacts.txt", "UTF-8" );
         assertEquals( 4, artifacts.size() );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0507ArtifactRelocationTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0507ArtifactRelocationTest.java
index 41c6b36..673158a 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0507ArtifactRelocationTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0507ArtifactRelocationTest.java
@@ -61,7 +61,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyArtifactPresent( "org.apache.maven", "maven-core-it-support", "1.1", "jar" );
         verifier.verifyArtifactPresent( "org.apache.maven", "maven-core-it-support", "1.1", "pom" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0522InheritedPluginMgmtConfigTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0522InheritedPluginMgmtConfigTest.java
index a598471..6c7802d 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0522InheritedPluginMgmtConfigTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0522InheritedPluginMgmtConfigTest.java
@@ -56,7 +56,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "process-resources" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/plugin-mngt-config-1.txt" );
         verifier.verifyFilePresent( "target/plugin-mngt-config-2.txt" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0553SettingsAuthzEncryptionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0553SettingsAuthzEncryptionTest.java
index 9d39dda..446b335 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0553SettingsAuthzEncryptionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0553SettingsAuthzEncryptionTest.java
@@ -141,7 +141,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyArtifactPresent( "org.apache.maven.its.mng0553", "a", "0.1-SNAPSHOT", "jar" );
     }
@@ -179,7 +178,6 @@
         verifier.setEnvironmentVariable( "MAVEN_OPTS", "-Dsettings.security=" + new File( testDir, "settings~security.xml" ).getAbsolutePath() + " -Duser.language=tr" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyArtifactPresent( "org.apache.maven.its.mng0553", "a", "0.1-SNAPSHOT", "jar" );
     }
@@ -205,7 +203,6 @@
         verifier.setLogFileName( "log-emp.txt" );
         verifier.executeGoal( "-e" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> log = verifier.loadLines( verifier.getLogFileName(), null );
         assertNotNull( findPassword( log ) );
@@ -218,7 +215,6 @@
         verifier.setLogFileName( "log-ep.txt" );
         verifier.executeGoal( "-e" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         log = verifier.loadLines( verifier.getLogFileName(), null );
         assertNotNull( findPassword( log ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0557UserSettingsCliOptionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0557UserSettingsCliOptionTest.java
index 0917560..b945ea6 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0557UserSettingsCliOptionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0557UserSettingsCliOptionTest.java
@@ -58,7 +58,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "org.apache.maven.its.plugins:maven-it-plugin-touch:touch" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/test.txt" );
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0612NewestConflictResolverTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0612NewestConflictResolverTest.java
index 3e6bf43..8b111fa 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0612NewestConflictResolverTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0612NewestConflictResolverTest.java
@@ -55,18 +55,15 @@
         Verifier verifier = newVerifier( testDir.getAbsolutePath() );
         verifier.executeGoal( "install" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         testDir = ResourceExtractor.simpleExtractResources( getClass(), "/mng-0612/plugin" );
         verifier = newVerifier( testDir.getAbsolutePath() );
         verifier.executeGoal( "install" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         testDir = ResourceExtractor.simpleExtractResources( getClass(), "/mng-0612/project" );
         verifier = newVerifier( testDir.getAbsolutePath() );
         verifier.executeGoal( "verify" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0666IgnoreLegacyPomTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0666IgnoreLegacyPomTest.java
index 30d2e7a..a6db0b9 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0666IgnoreLegacyPomTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0666IgnoreLegacyPomTest.java
@@ -62,7 +62,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         // don't verify error free log
-        verifier.resetStreams();
 
         verifier.verifyArtifactPresent( "org.apache.maven.its.it0059", "test", "3.8.1", "jar" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0674PluginParameterAliasTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0674PluginParameterAliasTest.java
index 9988d05..9afa937 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0674PluginParameterAliasTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0674PluginParameterAliasTest.java
@@ -60,7 +60,6 @@
         verifier.setLogFileName( "log-lifecycle.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/config.properties" );
         assertEquals( "MNG-674-1", props.getProperty( "aliasParam" ) );
@@ -85,7 +84,6 @@
         verifier.setLogFileName( "log-cli.txt" );
         verifier.executeGoal( "org.apache.maven.its.plugins:maven-it-plugin-configuration:config" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/config.properties" );
         assertEquals( "MNG-674-1", props.getProperty( "aliasParam" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0680ParentBasedirTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0680ParentBasedirTest.java
index f3bd2d6..8860d6f 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0680ParentBasedirTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0680ParentBasedirTest.java
@@ -61,7 +61,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/basedir.properties" );
         assertEquals( subDir, new File( props.getProperty( "project.basedir" ) ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0761MissingSnapshotDistRepoTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0761MissingSnapshotDistRepoTest.java
index 1154368..267c1b2 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0761MissingSnapshotDistRepoTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0761MissingSnapshotDistRepoTest.java
@@ -59,7 +59,6 @@
         verifier.deleteArtifacts( "org.apache.maven.its.mng0761" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/repo/org/apache/maven/its/mng0761/test/1.0-SNAPSHOT/test-1.0-*.jar" );
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0768OfflineModeTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0768OfflineModeTest.java
index 6868c30..b651053 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0768OfflineModeTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0768OfflineModeTest.java
@@ -133,7 +133,6 @@
                 verifier.executeGoal( "org.apache.maven.its.plugins:maven-it-plugin-dependency-resolution:2.1-SNAPSHOT:compile" );
                 verifier.verifyFilePresent( "target/compile.txt" );
                 verifier.verifyErrorFreeLog();
-                verifier.resetStreams();
             }
 
             requestedUris.clear();
@@ -150,7 +149,6 @@
                 verifier.executeGoal( "org.apache.maven.its.plugins:maven-it-plugin-dependency-resolution:2.1-SNAPSHOT:compile" );
                 verifier.verifyFilePresent( "target/compile.txt" );
                 verifier.verifyErrorFreeLog();
-                verifier.resetStreams();
             }
 
             assertTrue( requestedUris.toString(), requestedUris.isEmpty() );
@@ -176,7 +174,6 @@
                 {
                     // expected, should fail
                 }
-                verifier.resetStreams();
             }
 
             System.out.println( "Bound server socket to the port " + port );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0773SettingsProfileReactorPollutionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0773SettingsProfileReactorPollutionTest.java
index b1669ad..9f54106 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0773SettingsProfileReactorPollutionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0773SettingsProfileReactorPollutionTest.java
@@ -57,7 +57,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0781PluginConfigVsExecConfigTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0781PluginConfigVsExecConfigTest.java
index 2a4e6d5..edfdf22 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0781PluginConfigVsExecConfigTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0781PluginConfigVsExecConfigTest.java
@@ -57,7 +57,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "process-resources" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/exec-level.txt" );
         verifier.verifyFilePresent( "target/resources-resources.txt" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0786ProfileAwareReactorTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0786ProfileAwareReactorTest.java
index 6e3a3e0..2a42d32 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0786ProfileAwareReactorTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0786ProfileAwareReactorTest.java
@@ -62,7 +62,6 @@
         verifier.verifyFilePresent( "sub1/target/expression.properties" );
         verifier.verifyFilePresent( "sub2/target/expression.properties" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0814ExplicitProfileActivationTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0814ExplicitProfileActivationTest.java
index f569417..45b3939 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0814ExplicitProfileActivationTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0814ExplicitProfileActivationTest.java
@@ -59,7 +59,6 @@
         verifier.addCliOption( "test-profile" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/profile.properties" );
         assertEquals( "PASSED", props.getProperty( "project.properties.testProp" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0818WarDepsNotTransitiveTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0818WarDepsNotTransitiveTest.java
index ecc35bd..9a8d23a 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0818WarDepsNotTransitiveTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0818WarDepsNotTransitiveTest.java
@@ -62,7 +62,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Collection<String> artifacts = verifier.loadLines( "target/artifacts.txt", "UTF-8" );
         assertEquals( Collections.singletonList( "org.apache.maven.its.it0080:war:war:0.1" ), artifacts );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0820ConflictResolutionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0820ConflictResolutionTest.java
index 05d9006..320ae88 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0820ConflictResolutionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0820ConflictResolutionTest.java
@@ -61,7 +61,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Collection<String> artifacts = verifier.loadLines( "target/artifacts.txt", "UTF-8" );
         assertEquals( 3, artifacts.size() );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0823MojoContextPassingTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0823MojoContextPassingTest.java
index 5862965..7552c37 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0823MojoContextPassingTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0823MojoContextPassingTest.java
@@ -61,7 +61,6 @@
         verifier.executeGoals( goals );
         verifier.verifyFilePresent( "target/thrown-value" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0828PluginConfigValuesInDebugTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0828PluginConfigValuesInDebugTest.java
index 2b1a1b7..7f8e239 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0828PluginConfigValuesInDebugTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0828PluginConfigValuesInDebugTest.java
@@ -63,7 +63,6 @@
         verifier.setMavenDebug( true );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         String log = FileUtils.fileRead( new File( verifier.getBasedir(), verifier.getLogFileName() ) );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0836PluginParentResolutionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0836PluginParentResolutionTest.java
index 94eb60d..b196067 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0836PluginParentResolutionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0836PluginParentResolutionTest.java
@@ -66,7 +66,6 @@
         {
             verifier.executeGoal( "validate" );
             verifier.verifyErrorFreeLog();
-            verifier.resetStreams();
         }
         else
         {
@@ -79,7 +78,6 @@
             catch ( VerificationException e )
             {
                 // expected
-                verifier.resetStreams();
             }
         }
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0848UserPropertyOverridesDefaultValueTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0848UserPropertyOverridesDefaultValueTest.java
index d4295ce..06148b4 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0848UserPropertyOverridesDefaultValueTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0848UserPropertyOverridesDefaultValueTest.java
@@ -59,7 +59,6 @@
         verifier.addCliArgument( "-Dconfig.aliasDefaultExpressionParam=PASSED" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties configProps = verifier.loadProperties( "target/config.properties" );
         assertEquals( "maven-core-it", configProps.getProperty( "defaultParam" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0866EvaluateDefaultValueTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0866EvaluateDefaultValueTest.java
index 2d948b7..4e55755 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0866EvaluateDefaultValueTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0866EvaluateDefaultValueTest.java
@@ -59,7 +59,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties configProps = verifier.loadProperties( "target/config.properties" );
         assertEquals( "maven-core-it", configProps.getProperty( "defaultParam" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0870ReactorAwarePluginDiscoveryTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0870ReactorAwarePluginDiscoveryTest.java
index e24b7f5..9c4afb4 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0870ReactorAwarePluginDiscoveryTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0870ReactorAwarePluginDiscoveryTest.java
@@ -62,7 +62,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "initialize" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "project/target/touch.txt" );
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0947OptionalDependencyTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0947OptionalDependencyTest.java
index 74ffb8e..d4a6c66 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0947OptionalDependencyTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0947OptionalDependencyTest.java
@@ -64,7 +64,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> compile = verifier.loadLines( "target/compile.txt", "UTF-8" );
         assertTrue( compile.toString(), compile.contains( "org.apache.maven.its.mng0947:d:jar:0.1 (optional)" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0956ComponentInjectionViaProjectLevelPluginDepTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0956ComponentInjectionViaProjectLevelPluginDepTest.java
index 38a5bdd..9b0c980 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0956ComponentInjectionViaProjectLevelPluginDepTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0956ComponentInjectionViaProjectLevelPluginDepTest.java
@@ -60,7 +60,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties apiProps = verifier.loadProperties( "target/component.properties" );
         assertEquals( "true", apiProps.getProperty( "org.apache.maven.plugin.coreit.DefaultComponent" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0985NonExecutedPluginMgmtGoalsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0985NonExecutedPluginMgmtGoalsTest.java
index 8838424..6548905 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0985NonExecutedPluginMgmtGoalsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0985NonExecutedPluginMgmtGoalsTest.java
@@ -58,7 +58,6 @@
         verifier.executeGoal( "initialize" );
         verifier.verifyFileNotPresent( "target/unexpected.txt" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1021EqualAttachmentBuildNumberTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1021EqualAttachmentBuildNumberTest.java
index 296007a..587625f 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1021EqualAttachmentBuildNumberTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1021EqualAttachmentBuildNumberTest.java
@@ -57,7 +57,6 @@
         verifier.deleteArtifacts( "org.apache.maven.its.mng1021" );
         verifier.executeGoal( "initialize" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyArtifactPresent( "org.apache.maven.its.mng1021", "test", "1-SNAPSHOT", "pom" );
         verifier.verifyArtifactPresent( "org.apache.maven.its.mng1021", "test", "1-SNAPSHOT", "jar" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1052PluginMgmtConfigTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1052PluginMgmtConfigTest.java
index af90731..92db8b7 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1052PluginMgmtConfigTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1052PluginMgmtConfigTest.java
@@ -59,7 +59,6 @@
         verifier.verifyFilePresent( "target/plugin-management.txt" );
         verifier.verifyFileNotPresent( "target/resources-resources.txt" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1073AggregatorForksReactorTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1073AggregatorForksReactorTest.java
index d4f3ac0..02477ef 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1073AggregatorForksReactorTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1073AggregatorForksReactorTest.java
@@ -62,7 +62,6 @@
         verifier.setLogFileName( "log-lifecycle.txt" );
         verifier.executeGoal( "org.apache.maven.its.plugins:maven-it-plugin-fork:2.1-SNAPSHOT:fork-lifecycle-aggregator" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/forked/touch.txt" );
         verifier.verifyFilePresent( "sub-1/target/forked/touch.txt" );
@@ -88,7 +87,6 @@
         verifier.setLogFileName( "log-goal.txt" );
         verifier.executeGoal( "org.apache.maven.its.plugins:maven-it-plugin-fork:2.1-SNAPSHOT:fork-goal-aggregator" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/touch.txt" );
         verifier.verifyFilePresent( "sub-1/target/touch.txt" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1088ReactorPluginResolutionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1088ReactorPluginResolutionTest.java
index 60e308a..57430ae 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1088ReactorPluginResolutionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1088ReactorPluginResolutionTest.java
@@ -64,7 +64,6 @@
         // NOTE: It's essential part of the test to invoke a phase before "compile"
         verifier.executeGoal( "initialize" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "client/target/touch.txt" );
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1142VersionRangeIntersectionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1142VersionRangeIntersectionTest.java
index cb166ec..30d7315 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1142VersionRangeIntersectionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1142VersionRangeIntersectionTest.java
@@ -81,7 +81,6 @@
         verifier.filterFile( "../settings-template.xml", "settings.xml", "UTF-8", verifier.newDefaultFilterProperties() );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> classpath = verifier.loadLines( "target/classpath.txt", "UTF-8" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1144MultipleDefaultGoalsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1144MultipleDefaultGoalsTest.java
index b0fd79a..9d0b582 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1144MultipleDefaultGoalsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1144MultipleDefaultGoalsTest.java
@@ -57,7 +57,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoals( Collections.<String> emptyList() );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/clean-clean.txt" );
         verifier.verifyFilePresent( "target/resources-resources.txt" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1233WarDepWithProvidedScopeTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1233WarDepWithProvidedScopeTest.java
index 994e13e..8cd8a39 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1233WarDepWithProvidedScopeTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1233WarDepWithProvidedScopeTest.java
@@ -61,7 +61,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Collection<String> compileArtifacts = verifier.loadLines( "target/compile.txt", "UTF-8" );
         assertTrue( compileArtifacts.toString(),
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1323AntrunDependenciesTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1323AntrunDependenciesTest.java
index ec710cf..d93d594 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1323AntrunDependenciesTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1323AntrunDependenciesTest.java
@@ -66,7 +66,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties pclProps;
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1349ChecksumFormatsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1349ChecksumFormatsTest.java
index 973c9d2..a197dec 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1349ChecksumFormatsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1349ChecksumFormatsTest.java
@@ -60,7 +60,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyArtifactPresent( "org.apache.maven.its.mng1349", "md5-a", "0.1", "jar" );
         verifier.verifyArtifactPresent( "org.apache.maven.its.mng1349", "md5-a", "0.1", "pom" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1412DependenciesOrderTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1412DependenciesOrderTest.java
index 37dfb45..3d7f666 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1412DependenciesOrderTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1412DependenciesOrderTest.java
@@ -58,7 +58,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> compileArtifacts = verifier.loadLines( "target/compile-artifacts.txt", "UTF-8" );
         assertArtifactOrder( compileArtifacts );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1415QuotedSystemPropertiesTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1415QuotedSystemPropertiesTest.java
index 210a03d..4ae1220 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1415QuotedSystemPropertiesTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1415QuotedSystemPropertiesTest.java
@@ -57,7 +57,6 @@
         verifier.addCliOption( "-Dtest.property=Test Property" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/cli.properties" );
         assertEquals( "Test Property", props.getProperty( "stringParam" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1701DuplicatePluginTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1701DuplicatePluginTest.java
index 4b26509..2d61b92 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1701DuplicatePluginTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1701DuplicatePluginTest.java
@@ -62,7 +62,6 @@
         {
             // expected with Maven 4+
         }
-        verifier.resetStreams();
 
         String logLevel;
         if ( matchesVersionRange( "(,4.0.0-alpha-1)" ) )
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1703PluginMgmtDepInheritanceTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1703PluginMgmtDepInheritanceTest.java
index 8a9a775..d055ce5 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1703PluginMgmtDepInheritanceTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1703PluginMgmtDepInheritanceTest.java
@@ -63,7 +63,6 @@
         verifier.deleteArtifacts( "org.apache.maven.its.mng1703" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties pclProps = verifier.loadProperties( "target/pcl.properties" );
         assertNotNull( pclProps.getProperty( "org.apache.maven.plugin.coreit.ClassA" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1751ForcedMetadataUpdateDuringDeploymentTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1751ForcedMetadataUpdateDuringDeploymentTest.java
index 16ba788..98cfa1d 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1751ForcedMetadataUpdateDuringDeploymentTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1751ForcedMetadataUpdateDuringDeploymentTest.java
@@ -67,7 +67,6 @@
         verifier.deleteArtifacts( "org.apache.maven.its.mng1751" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         // phase 2: resolve snapshot, if the previous deployment didn't update the metadata, we get the wrong file
         verifier = newVerifier( new File( testDir, "test" ).getAbsolutePath() );
@@ -78,7 +77,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties checksums = verifier.loadProperties( "target/checksum.properties" );
         String sha1 = checksums.getProperty( "dep-0.1-SNAPSHOT.jar", "" ).toLowerCase( java.util.Locale.ENGLISH );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1803PomValidationErrorIncludesLineNumberTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1803PomValidationErrorIncludesLineNumberTest.java
index bfd53c8..71712df 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1803PomValidationErrorIncludesLineNumberTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1803PomValidationErrorIncludesLineNumberTest.java
@@ -62,10 +62,6 @@
         {
             // expected
         }
-        finally
-        {
-            verifier.resetStreams();
-        }
 
         boolean foundError = false;
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1895ScopeConflictResolutionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1895ScopeConflictResolutionTest.java
index 62a817b..4926634 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1895ScopeConflictResolutionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1895ScopeConflictResolutionTest.java
@@ -63,7 +63,6 @@
         verifier.filterFile( "settings-template.xml", "settings.xml", "UTF-8", verifier.newDefaultFilterProperties() );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> compile = verifier.loadLines( "target/compile.txt", "UTF-8" );
         assertTrue( compile.toString(), compile.contains( "a-0.1.jar" ) );
@@ -249,7 +248,6 @@
         verifier.setLogFileName( "log-" + scopeB + "-vs-" + scopeA + ".txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         return verifier;
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1957JdkActivationWithVersionRangeTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1957JdkActivationWithVersionRangeTest.java
index d5111e2..2f86130 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1957JdkActivationWithVersionRangeTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1957JdkActivationWithVersionRangeTest.java
@@ -58,7 +58,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/jdk.properties" );
         assertEquals( "PASSED", props.getProperty( "project.properties.jdkProperty1" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1992SystemPropOverridesPomPropTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1992SystemPropOverridesPomPropTest.java
index 5e2f376..31ff1ce 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1992SystemPropOverridesPomPropTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1992SystemPropOverridesPomPropTest.java
@@ -61,7 +61,6 @@
         verifier.getSystemProperties().setProperty( "config.stringParam", "PASSED" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties configProps = verifier.loadProperties( "target/config.properties" );
         assertEquals( "PASSED", configProps.getProperty( "stringParam" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1995InterpolateBooleanModelElementsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1995InterpolateBooleanModelElementsTest.java
index a0842b0..a946d9b 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1995InterpolateBooleanModelElementsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng1995InterpolateBooleanModelElementsTest.java
@@ -58,7 +58,6 @@
 
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/expression.properties" );
         assertEquals( "true", props.getProperty( "project.build.resources.0.filtering" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2006ChildPathAwareUrlInheritanceTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2006ChildPathAwareUrlInheritanceTest.java
index e20a92e..0fcda61 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2006ChildPathAwareUrlInheritanceTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2006ChildPathAwareUrlInheritanceTest.java
@@ -59,7 +59,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/pom.properties" );
         assertEquals( "http://project.url/child", props.getProperty( "project.url" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2045testJarDependenciesBrokenInReactorTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2045testJarDependenciesBrokenInReactorTest.java
index 1bb6e21..be85759 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2045testJarDependenciesBrokenInReactorTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2045testJarDependenciesBrokenInReactorTest.java
@@ -57,7 +57,6 @@
         verifier.deleteArtifacts( "org.apache.maven.its.mng2045" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> compile = verifier.loadLines( "test-user/target/compile.txt", "UTF-8" );
         assertTestClasses( compile );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2052InterpolateWithSettingsProfilePropertiesTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2052InterpolateWithSettingsProfilePropertiesTest.java
index 5098ea5..afab3b9 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2052InterpolateWithSettingsProfilePropertiesTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2052InterpolateWithSettingsProfilePropertiesTest.java
@@ -58,7 +58,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2054PluginExecutionInheritanceTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2054PluginExecutionInheritanceTest.java
index 739bf1d..d8a880b 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2054PluginExecutionInheritanceTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2054PluginExecutionInheritanceTest.java
@@ -57,7 +57,6 @@
         verifier.deleteDirectory( "project/project-level2/project-level3/project-jar/target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> executions =
             verifier.loadLines( "project/project-level2/project-level3/project-jar/target/exec.log", "UTF-8" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2068ReactorRelativeParentsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2068ReactorRelativeParentsTest.java
index b517508..666074a 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2068ReactorRelativeParentsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2068ReactorRelativeParentsTest.java
@@ -62,7 +62,6 @@
         verifier.deleteArtifacts( "org.apache.maven.its.mng2068" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
     /**
@@ -82,7 +81,6 @@
         verifier.deleteArtifacts( "org.apache.maven.its.mng2068" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
     /**
@@ -102,7 +100,6 @@
         verifier.deleteArtifacts( "org.apache.maven.its.mng2068" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2098VersionRangeSatisfiedFromWrongRepoTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2098VersionRangeSatisfiedFromWrongRepoTest.java
index 4dd7fb1..b8ed25a 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2098VersionRangeSatisfiedFromWrongRepoTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2098VersionRangeSatisfiedFromWrongRepoTest.java
@@ -62,7 +62,6 @@
         verifier.filterFile( "settings-template.xml", "settings.xml", "UTF-8", verifier.newDefaultFilterProperties() );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyArtifactPresent( "org.apache.maven.its.mng2098", "dep", "0.1", "jar" );
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2103PluginExecutionInheritanceTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2103PluginExecutionInheritanceTest.java
index 68f7216..4833840 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2103PluginExecutionInheritanceTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2103PluginExecutionInheritanceTest.java
@@ -59,7 +59,6 @@
         verifier.deleteDirectory( "child-2/target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> execs = verifier.loadLines( "child-1/target/log.txt", "UTF-8" );
         assertEquals( Arrays.asList( new String[] { "inherited" } ), execs );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2123VersionRangeDependencyTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2123VersionRangeDependencyTest.java
index 40af8da..eb86785 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2123VersionRangeDependencyTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2123VersionRangeDependencyTest.java
@@ -54,7 +54,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> artifacts = verifier.loadLines( "target/artifacts.txt", "UTF-8" );
         assertTrue( artifacts.toString(), artifacts.contains( "org.apache.maven.its.mng2123:fixed:jar:0.1" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2124PomInterpolationWithParentValuesTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2124PomInterpolationWithParentValuesTest.java
index 911d9af..9b78bb6 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2124PomInterpolationWithParentValuesTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2124PomInterpolationWithParentValuesTest.java
@@ -55,7 +55,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "initialize" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/parent.properties" );
         assertEquals( "parent, child", props.getProperty( "project.description" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2130ParentLookupFromReactorCacheTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2130ParentLookupFromReactorCacheTest.java
index 85103cc..e94124e 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2130ParentLookupFromReactorCacheTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2130ParentLookupFromReactorCacheTest.java
@@ -54,7 +54,6 @@
         verifier.deleteArtifacts( "org.apache.maven.mng2130" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2135PluginBuildInReactorTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2135PluginBuildInReactorTest.java
index 2be7375..d901b31 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2135PluginBuildInReactorTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2135PluginBuildInReactorTest.java
@@ -58,7 +58,6 @@
         verifier.deleteArtifacts( "org.apache.maven.its.mng2135" );
         verifier.executeGoal( "package" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "project/target/touch.txt" );
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2136ActiveByDefaultProfileTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2136ActiveByDefaultProfileTest.java
index ef28895..ba67e98 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2136ActiveByDefaultProfileTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2136ActiveByDefaultProfileTest.java
@@ -62,7 +62,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "org.apache.maven.its.plugins:maven-it-plugin-expression:2.1-SNAPSHOT:eval" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/expression.properties" );
         Properties props = verifier.loadProperties( "target/expression.properties" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2140ReactorAwareDepResolutionWhenForkTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2140ReactorAwareDepResolutionWhenForkTest.java
index a203386..db58efa 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2140ReactorAwareDepResolutionWhenForkTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2140ReactorAwareDepResolutionWhenForkTest.java
@@ -57,7 +57,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> artifacts = verifier.loadLines( "project/target/test.txt", "UTF-8" );
         assertTrue( artifacts.toString(), artifacts.contains( "dependency/pom.xml" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2174PluginDepsManagedByParentProfileTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2174PluginDepsManagedByParentProfileTest.java
index dc768f2..d0a3bf5 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2174PluginDepsManagedByParentProfileTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2174PluginDepsManagedByParentProfileTest.java
@@ -63,7 +63,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/pcl.properties" );
         assertEquals( "1", props.getProperty( "mng-2174.properties.count" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2196ParentResolutionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2196ParentResolutionTest.java
index f8dfa5c..b8acabb 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2196ParentResolutionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2196ParentResolutionTest.java
@@ -60,7 +60,6 @@
         {
             verifier.executeGoal( "validate" );
             verifier.verifyErrorFreeLog();
-            verifier.resetStreams();
         }
         else
         {
@@ -73,7 +72,6 @@
             catch ( VerificationException e )
             {
                 // expected
-                verifier.resetStreams();
             }
         }
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2199ParentVersionRangeTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2199ParentVersionRangeTest.java
index 49a88aa..a1a87d8 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2199ParentVersionRangeTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2199ParentVersionRangeTest.java
@@ -44,30 +44,19 @@
             ResourceExtractor.simpleExtractResources( getClass(),
                                                       "/mng-2199-parent-version-range/valid-inclusive-upper-bound" );
 
-        try
-        {
-            verifier = newVerifier( testDir.getAbsolutePath(), "remote" );
-            verifier.addCliOption( "-U" );
-            verifier.setAutoclean( false );
+        verifier = newVerifier( testDir.getAbsolutePath(), "remote" );
+        verifier.addCliOption( "-U" );
+        verifier.setAutoclean( false );
 
-            verifier.executeGoal( "verify" );
-            verifier.verifyErrorFreeLog();
+        verifier.executeGoal( "verify" );
+        verifier.verifyErrorFreeLog();
 
-            // All Maven versions not supporting remote parent version ranges will log a warning message whenever
-            // building a parent fails. The build succeeds without any parent. If that warning message appears in the
-            // log, parent resolution failed.
-            final List<String> lines = verifier.loadFile( new File( testDir, "log.txt" ), false );
-            assertFalse( "Unexpected error message found.",
-                         indexOf( lines, ".*Failed to build parent project.*" ) >= 0 );
-
-        }
-        finally
-        {
-            if ( verifier != null )
-            {
-                verifier.resetStreams();
-            }
-        }
+        // All Maven versions not supporting remote parent version ranges will log a warning message whenever
+        // building a parent fails. The build succeeds without any parent. If that warning message appears in the
+        // log, parent resolution failed.
+        final List<String> lines = verifier.loadFile( new File( testDir, "log.txt" ), false );
+        assertFalse( "Unexpected error message found.",
+                     indexOf( lines, ".*Failed to build parent project.*" ) >= 0 );
     }
 
     @Test
@@ -79,30 +68,20 @@
         File testDir = ResourceExtractor.simpleExtractResources(
             getClass(), "/mng-2199-parent-version-range/valid-exclusive-upper-bound" );
 
-        try
-        {
-            verifier = newVerifier( testDir.getAbsolutePath(), "remote" );
-            verifier.addCliOption( "-U" );
-            verifier.setAutoclean( false );
 
-            verifier.executeGoal( "verify" );
-            verifier.verifyErrorFreeLog();
+        verifier = newVerifier( testDir.getAbsolutePath(), "remote" );
+        verifier.addCliOption( "-U" );
+        verifier.setAutoclean( false );
 
-            // All Maven versions not supporting remote parent version ranges will log a warning message whenever
-            // building a parent fails. The build succeeds without any parent. If that warning message appears in the
-            // log, parent resolution failed.
-            final List<String> lines = verifier.loadFile( new File( testDir, "log.txt" ), false );
-            assertFalse( "Unexpected error message found.",
-                         indexOf( lines, ".*Failed to build parent project.*" ) >= 0 );
+        verifier.executeGoal( "verify" );
+        verifier.verifyErrorFreeLog();
 
-        }
-        finally
-        {
-            if ( verifier != null )
-            {
-                verifier.resetStreams();
-            }
-        }
+        // All Maven versions not supporting remote parent version ranges will log a warning message whenever
+        // building a parent fails. The build succeeds without any parent. If that warning message appears in the
+        // log, parent resolution failed.
+        final List<String> lines = verifier.loadFile( new File( testDir, "log.txt" ), false );
+        assertFalse( "Unexpected error message found.",
+                     indexOf( lines, ".*Failed to build parent project.*" ) >= 0 );
     }
 
     @Test
@@ -128,13 +107,6 @@
                         indexOf( lines, ".*(parent)? version range.*does not specify an upper bound.*" ) >= 0 );
 
         }
-        finally
-        {
-            if ( verifier != null )
-            {
-                verifier.resetStreams();
-            }
-        }
     }
 
     @Test
@@ -160,13 +132,6 @@
             int msg = indexOf( lines, ".*Version must be a constant.*org.apache.maven.its.mng2199:expression.*" );
             assertTrue( "Expected error message not found.", msg >= 0 );
         }
-        finally
-        {
-            if ( verifier != null )
-            {
-                verifier.resetStreams();
-            }
-        }
     }
 
     @Test
@@ -192,13 +157,6 @@
             int msg = indexOf( lines, ".*Version must be a constant.*org.apache.maven.its.mng2199:inherited.*" );
             assertTrue( "Expected error message not found.", msg >= 0 );
         }
-        finally
-        {
-            if ( verifier != null )
-            {
-                verifier.resetStreams();
-            }
-        }
     }
 
     @Test
@@ -210,29 +168,19 @@
         File testDir = ResourceExtractor.simpleExtractResources(
             getClass(), "/mng-2199-parent-version-range/valid-local/child" );
 
-        try
-        {
-            verifier = newVerifier( testDir.getAbsolutePath() );
-            verifier.executeGoal( "verify" );
-            verifier.verifyErrorFreeLog();
 
-            // All Maven versions not supporting remote parent version ranges will log a warning message whenever
-            // building a parent fails. The build succeeds without any parent. If that warning message appears in the
-            // log, parent resolution failed. For this test, this really just tests the project on disk getting tested
-            // is not corrupt. It's expected to find the local parent and not fall back to remote resolution. If it
-            // falls back to remote resolution, this just catches the test project to be broken.
-            final List<String> lines = verifier.loadFile( new File( testDir, "log.txt" ), false );
-            assertFalse( "Unexpected error message found.",
-                         indexOf( lines, ".*Failed to build parent project.*" ) >= 0 );
+        verifier = newVerifier( testDir.getAbsolutePath() );
+        verifier.executeGoal( "verify" );
+        verifier.verifyErrorFreeLog();
 
-        }
-        finally
-        {
-            if ( verifier != null )
-            {
-                verifier.resetStreams();
-            }
-        }
+        // All Maven versions not supporting remote parent version ranges will log a warning message whenever
+        // building a parent fails. The build succeeds without any parent. If that warning message appears in the
+        // log, parent resolution failed. For this test, this really just tests the project on disk getting tested
+        // is not corrupt. It's expected to find the local parent and not fall back to remote resolution. If it
+        // falls back to remote resolution, this just catches the test project to be broken.
+        final List<String> lines = verifier.loadFile( new File( testDir, "log.txt" ), false );
+        assertFalse( "Unexpected error message found.",
+                     indexOf( lines, ".*Failed to build parent project.*" ) >= 0 );
     }
 
     @Test
@@ -259,13 +207,6 @@
                                ".*Non-resolvable parent POM org.apache.maven.its.mng2199:local-parent:\\[2,3\\].*" );
             assertTrue( "Expected error message not found.", msg >= 0 );
         }
-        finally
-        {
-            if ( verifier != null )
-            {
-                verifier.resetStreams();
-            }
-        }
     }
 
     @Test
@@ -277,29 +218,18 @@
         File testDir = ResourceExtractor.simpleExtractResources(
             getClass(), "/mng-2199-parent-version-range/local-fallback-to-remote/child" );
 
-        try
-        {
-            verifier = newVerifier( testDir.getAbsolutePath(), "remote" );
-            verifier.executeGoal( "verify" );
-            verifier.verifyErrorFreeLog();
+        verifier = newVerifier( testDir.getAbsolutePath(), "remote" );
+        verifier.executeGoal( "verify" );
+        verifier.verifyErrorFreeLog();
 
-            // All Maven versions not supporting remote parent version ranges will log a warning message whenever
-            // building a parent fails. The build succeeds without any parent. If that warning message appears in the
-            // log, parent resolution failed. For this test, local parent resolution falls back to remote parent
-            // resolution with a version range in use. If the warning message is in the logs, that remote parent
-            // resolution failed unexpectedly.
-            final List<String> lines = verifier.loadFile( new File( testDir, "log.txt" ), false );
-            assertFalse( "Unexpected error message found.",
-                         indexOf( lines, ".*Failed to build parent project.*" ) >= 0 );
-
-        }
-        finally
-        {
-            if ( verifier != null )
-            {
-                verifier.resetStreams();
-            }
-        }
+        // All Maven versions not supporting remote parent version ranges will log a warning message whenever
+        // building a parent fails. The build succeeds without any parent. If that warning message appears in the
+        // log, parent resolution failed. For this test, local parent resolution falls back to remote parent
+        // resolution with a version range in use. If the warning message is in the logs, that remote parent
+        // resolution failed unexpectedly.
+        final List<String> lines = verifier.loadFile( new File( testDir, "log.txt" ), false );
+        assertFalse( "Unexpected error message found.",
+                     indexOf( lines, ".*Failed to build parent project.*" ) >= 0 );
     }
 
     @Test
@@ -324,13 +254,6 @@
             int msg = indexOf( lines, ".*Version must be a constant.*org.apache.maven.its.mng2199:expression.*" );
             assertTrue( "Expected error message not found.", msg >= 0 );
         }
-        finally
-        {
-            if ( verifier != null )
-            {
-                verifier.resetStreams();
-            }
-        }
     }
 
     @Test
@@ -355,13 +278,6 @@
             int msg = indexOf( lines, ".*Version must be a constant.*org.apache.maven.its.mng2199:inherited.*" );
             assertTrue( "Expected error message not found.", msg >= 0 );
         }
-        finally
-        {
-            if ( verifier != null )
-            {
-                verifier.resetStreams();
-            }
-        }
     }
 
     private static int indexOf( final List<String> logLines, final String regex )
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2201PluginConfigInterpolationTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2201PluginConfigInterpolationTest.java
index b1ef275..2d459f9 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2201PluginConfigInterpolationTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2201PluginConfigInterpolationTest.java
@@ -56,7 +56,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/config.properties" );
         assertCanonicalFileEquals( new File( testDir, "target" ), new File( props.getProperty( "stringParam" ) ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2222OutputDirectoryReactorResolutionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2222OutputDirectoryReactorResolutionTest.java
index 31ec297..faa50f2 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2222OutputDirectoryReactorResolutionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2222OutputDirectoryReactorResolutionTest.java
@@ -61,7 +61,6 @@
         verifier.deleteArtifacts( "org.apache.maven.its.mng2222" );
         verifier.executeGoal( "compile" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> classpath = verifier.loadLines( "mod-b/target/compile.txt", "UTF-8" );
         assertTrue( classpath.toString(), classpath.contains( "mod-a/target/classes" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2228ComponentInjectionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2228ComponentInjectionTest.java
index 3319100..2c5d7b0 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2228ComponentInjectionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2228ComponentInjectionTest.java
@@ -62,7 +62,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties apiProps = verifier.loadProperties( "target/api.properties" );
         assertEquals( "true", apiProps.getProperty( "org.apache.maven.its.mng2228.DefaultComponent" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2234ActiveProfilesFromSettingsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2234ActiveProfilesFromSettingsTest.java
index 9084bd4..f60b3fb 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2234ActiveProfilesFromSettingsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2234ActiveProfilesFromSettingsTest.java
@@ -58,7 +58,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/touch.txt" );
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2254PomEncodingTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2254PomEncodingTest.java
index 8256143..95bfc15 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2254PomEncodingTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2254PomEncodingTest.java
@@ -60,7 +60,6 @@
         verifier.deleteDirectory( "latin-1/target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties utf8 = verifier.loadProperties( "utf-8/target/pom.properties" );
         assertEquals( "TEST-CHARS: \u00DF\u0131\u03A3\u042F\u05D0\u20AC", utf8.getProperty( "project.description" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2276ProfileActivationBySettingsPropertyTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2276ProfileActivationBySettingsPropertyTest.java
index 6f04cff..a96d398 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2276ProfileActivationBySettingsPropertyTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2276ProfileActivationBySettingsPropertyTest.java
@@ -60,7 +60,6 @@
         verifier.setLogFileName( "log-1.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/profile.properties" );
         assertEquals( "settings", props.getProperty( "project.properties.settingsProperty" ) );
@@ -87,7 +86,6 @@
         verifier.setLogFileName( "log-2.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/profile.properties" );
         assertEquals( "settings", props.getProperty( "project.properties.settingsProperty" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2293CustomPluginParamImplTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2293CustomPluginParamImplTest.java
index b71130a..ace5906 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2293CustomPluginParamImplTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2293CustomPluginParamImplTest.java
@@ -57,7 +57,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/param.properties" );
         assertEquals( "org.apache.maven.plugin.coreit.sub.AnImplementation-foobar", props.getProperty( "theParameter.string" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2305MultipleProxiesTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2305MultipleProxiesTest.java
index 4910157..22f5633 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2305MultipleProxiesTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2305MultipleProxiesTest.java
@@ -116,7 +116,6 @@
             verifier.addCliArgument( "-Dmaven.artifact.threads=1" );
             verifier.executeGoal( "validate" );
             verifier.verifyErrorFreeLog();
-            verifier.resetStreams();
         }
         finally
         {
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2309ProfileInjectionOrderTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2309ProfileInjectionOrderTest.java
index 80547df..bf45fd1 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2309ProfileInjectionOrderTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2309ProfileInjectionOrderTest.java
@@ -72,7 +72,6 @@
         }
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/pom.properties" );
         assertEquals( "e", props.getProperty( "project.properties.pomProperty" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2318LocalParentResolutionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2318LocalParentResolutionTest.java
index 7b690b7..e8f9a4a 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2318LocalParentResolutionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2318LocalParentResolutionTest.java
@@ -55,7 +55,6 @@
         verifier.setAutoclean( false );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2339BadProjectInterpolationTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2339BadProjectInterpolationTest.java
index 52e1609..00c8ae8 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2339BadProjectInterpolationTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2339BadProjectInterpolationTest.java
@@ -52,7 +52,6 @@
         verifier.executeGoal( "validate" );
 
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
     // test that -Dversion=1.0 is still available for interpolation.
@@ -76,7 +75,6 @@
                     new File( testDir, "target/touch-1.txt" ).exists() );
 
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier = newVerifier( testDir.getAbsolutePath() );
         verifier.setAutoclean( false );
@@ -87,7 +85,6 @@
         verifier.executeGoal( "initialize" );
 
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         assertTrue( "Touchfile using CLI-specified ${version} does not exist.",
                     new File( testDir, "target/touch-2.txt" ).exists() );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2362DeployedPomEncodingTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2362DeployedPomEncodingTest.java
index 6e5fda4..d5c857f 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2362DeployedPomEncodingTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2362DeployedPomEncodingTest.java
@@ -60,7 +60,6 @@
         verifier.deleteArtifacts( "org.apache.maven.its.mng2362" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         File pomFile;
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2363BasedirAwareFileActivatorTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2363BasedirAwareFileActivatorTest.java
index 8556031..482a07e 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2363BasedirAwareFileActivatorTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2363BasedirAwareFileActivatorTest.java
@@ -59,7 +59,6 @@
         verifier.deleteDirectory( "sub-b/target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/parent1.txt" );
         verifier.verifyFilePresent( "target/parent2.txt" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2387InactiveProxyTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2387InactiveProxyTest.java
index 0a5c1e1..3513d21 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2387InactiveProxyTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2387InactiveProxyTest.java
@@ -138,7 +138,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyArtifactPresent( "org.apache.maven.its.mng2387", "a", "0.1", "jar" );
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2432PluginPrefixOrderTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2432PluginPrefixOrderTest.java
index 4a4e402..ad3e1de 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2432PluginPrefixOrderTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2432PluginPrefixOrderTest.java
@@ -63,7 +63,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "it:touch" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFileNotPresent( "target/touch-settings.txt" );
         verifier.verifyFilePresent( "target/touch-pom.txt" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2486TimestampedDependencyVersionInterpolationTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2486TimestampedDependencyVersionInterpolationTest.java
index 1ddb952..0b05362 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2486TimestampedDependencyVersionInterpolationTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2486TimestampedDependencyVersionInterpolationTest.java
@@ -62,21 +62,18 @@
         verifier.deleteArtifacts( "org.apache.maven.its.mng2486" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier = newVerifier( new File( testDir, "parent" ).getAbsolutePath() );
         verifier.setAutoclean( false );
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier = newVerifier( new File( testDir, "dep-b" ).getAbsolutePath() );
         verifier.setAutoclean( false );
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier = newVerifier( new File( testDir, "test" ).getAbsolutePath() );
         verifier.setAutoclean( false );
@@ -88,7 +85,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> files = verifier.loadLines( "target/classpath.txt", "UTF-8" );
         assertTrue( files.toString(), files.contains( "dep-a-0.1-SNAPSHOT.jar" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2562Timestamp322Test.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2562Timestamp322Test.java
index 30c6e38..bfa2724 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2562Timestamp322Test.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2562Timestamp322Test.java
@@ -52,7 +52,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Date now = new Date();
 
@@ -78,7 +77,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Date now = new Date();
 
@@ -103,7 +101,6 @@
         verifier.deleteDirectory( "child-3/target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/pom.properties" );
         String timestamp = props.getProperty( "project.properties.timestamp", "" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2576MakeLikeReactorTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2576MakeLikeReactorTest.java
index c466e6f..252ff0c 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2576MakeLikeReactorTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2576MakeLikeReactorTest.java
@@ -69,7 +69,6 @@
         verifier.setLogFileName( "log-only.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFileNotPresent( "target/touch.txt" );
         verifier.verifyFileNotPresent( "sub-a/target/touch.txt" );
@@ -98,7 +97,6 @@
         verifier.setLogFileName( "log-upstream.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/touch.txt" );
         verifier.verifyFilePresent( "sub-a/target/touch.txt" );
@@ -127,7 +125,6 @@
         verifier.setLogFileName( "log-downstream.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFileNotPresent( "target/touch.txt" );
         verifier.verifyFileNotPresent( "sub-a/target/touch.txt" );
@@ -157,7 +154,6 @@
         verifier.setLogFileName( "log-both.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/touch.txt" );
         verifier.verifyFilePresent( "sub-a/target/touch.txt" );
@@ -186,7 +182,6 @@
         verifier.setLogFileName( "log-basedir.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFileNotPresent( "target/touch.txt" );
         verifier.verifyFileNotPresent( "sub-a/target/touch.txt" );
@@ -218,7 +213,6 @@
         verifier.setLogFileName( "log-basedir-plus.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFileNotPresent( "target/touch.txt" );
         verifier.verifyFileNotPresent( "sub-a/target/touch.txt" );
@@ -245,7 +239,6 @@
         verifier.setLogFileName( "log-id.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFileNotPresent( "target/touch.txt" );
         verifier.verifyFileNotPresent( "sub-a/target/touch.txt" );
@@ -276,7 +269,6 @@
         verifier.setLogFileName( "log-artifact-id.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFileNotPresent( "target/touch.txt" );
         verifier.verifyFileNotPresent( "sub-a/target/touch.txt" );
@@ -304,7 +296,6 @@
         verifier.setLogFileName( "log-resume.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFileNotPresent( "target/touch.txt" );
         verifier.verifyFileNotPresent( "sub-a/target/touch.txt" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2577SettingsXmlInterpolationTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2577SettingsXmlInterpolationTest.java
index fa8c397..007e259 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2577SettingsXmlInterpolationTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2577SettingsXmlInterpolationTest.java
@@ -61,7 +61,6 @@
         verifier.setLogFileName( "log-env.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/settings.properties" );
         assertEquals( "env-var-test", props.getProperty( "settings.servers.0.username" ) );
@@ -89,7 +88,6 @@
         verifier.setLogFileName( "log-sys.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/settings.properties" );
         assertEquals( "usr-prop-test", props.getProperty( "settings.servers.0.username" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2591MergeInheritedPluginConfigTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2591MergeInheritedPluginConfigTest.java
index acb3b4e..d6f9ece 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2591MergeInheritedPluginConfigTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2591MergeInheritedPluginConfigTest.java
@@ -77,7 +77,6 @@
         verifier.deleteDirectory( "subproject/target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "subproject/target/config.properties" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2605BogusProfileActivationTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2605BogusProfileActivationTest.java
index fd29251..03d7298 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2605BogusProfileActivationTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2605BogusProfileActivationTest.java
@@ -61,7 +61,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/profile.properties" );
         assertNull( props.getProperty( "project.properties.pomProperty" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2668UsePluginDependenciesForSortingTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2668UsePluginDependenciesForSortingTest.java
index 12f91b0..60b447e 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2668UsePluginDependenciesForSortingTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2668UsePluginDependenciesForSortingTest.java
@@ -51,7 +51,6 @@
         verifier.deleteArtifacts( "org.apache.maven.its.mng2668" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyArtifactPresent( "org.apache.maven.its.mng2668", "project", "1.0-SNAPSHOT", "jar" );
         verifier.verifyArtifactPresent( "org.apache.maven.its.mng2668", "tools", "1.0-SNAPSHOT", "jar" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2690MojoLoadingErrorsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2690MojoLoadingErrorsTest.java
index b82a3ce..064cdb8 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2690MojoLoadingErrorsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2690MojoLoadingErrorsTest.java
@@ -67,10 +67,6 @@
         {
             // expected...it'd be nice if we could get the specifics of the exception right here...
         }
-        finally
-        {
-            verifier.resetStreams();
-        }
 
         List<String> lines = verifier.loadFile( new File( testDir, "log.txt" ), false );
 
@@ -100,10 +96,6 @@
         {
             // expected...it'd be nice if we could get the specifics of the exception right here...
         }
-        finally
-        {
-            verifier.resetStreams();
-        }
 
         List<String> lines = verifier.loadFile( new File( testDir, "log.txt" ), false );
 
@@ -133,10 +125,6 @@
         {
             // expected...it'd be nice if we could get the specifics of the exception right here...
         }
-        finally
-        {
-            verifier.resetStreams();
-        }
 
         List<String> lines = verifier.loadFile( new File( testDir, "log.txt" ), false );
 
@@ -166,10 +154,6 @@
         {
             // expected...it'd be nice if we could get the specifics of the exception right here...
         }
-        finally
-        {
-            verifier.resetStreams();
-        }
 
         List<String> lines = verifier.loadFile( new File( testDir, "log.txt" ), false );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2693SitePluginRealmTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2693SitePluginRealmTest.java
index 2a0dc99..bd1feff 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2693SitePluginRealmTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2693SitePluginRealmTest.java
@@ -56,7 +56,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "pre-site" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties pclProps = verifier.loadProperties( "target/pcl.properties" );
         assertNotNull( pclProps.getProperty( "org.apache.maven.plugin.coreit.ClassA" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2695OfflinePluginSnapshotsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2695OfflinePluginSnapshotsTest.java
index 1baef67..378b9d2 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2695OfflinePluginSnapshotsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2695OfflinePluginSnapshotsTest.java
@@ -68,7 +68,6 @@
             verifier.verifyFilePresent( "target/a.txt" );
             verifier.verifyFilePresent( "target/b.txt" );
             verifier.verifyErrorFreeLog();
-            verifier.resetStreams();
         }
 
         {
@@ -84,7 +83,6 @@
             verifier.verifyFilePresent( "target/a.txt" );
             verifier.verifyFilePresent( "target/b.txt" );
             verifier.verifyErrorFreeLog();
-            verifier.resetStreams();
         }
     }
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2720SiblingClasspathArtifactsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2720SiblingClasspathArtifactsTest.java
index a06c2e4..2033af4 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2720SiblingClasspathArtifactsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2720SiblingClasspathArtifactsTest.java
@@ -61,7 +61,6 @@
         verifier.deleteDirectory( "child3/target" );
         verifier.executeGoal( "initialize" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> classPath;
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2738ProfileIdCollidesWithCliOptionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2738ProfileIdCollidesWithCliOptionTest.java
index 4ae70fb..270b1a3 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2738ProfileIdCollidesWithCliOptionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2738ProfileIdCollidesWithCliOptionTest.java
@@ -58,7 +58,6 @@
         verifier.addCliOption( "-Pe" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/touch.txt" );
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2739RequiredRepositoryElementsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2739RequiredRepositoryElementsTest.java
index f2e388b..9146362 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2739RequiredRepositoryElementsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2739RequiredRepositoryElementsTest.java
@@ -66,7 +66,6 @@
             // expected
         }
 
-        verifier.resetStreams();
 
         List<String> listing = verifier.loadFile( new File( testDir, "log.txt" ), false );
         boolean foundNpe = false;
@@ -107,7 +106,6 @@
             // expected
         }
 
-        verifier.resetStreams();
 
         List<String> listing = verifier.loadFile( new File( testDir, "log.txt" ), false );
         boolean foundNpe = false;
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2741PluginMetadataResolutionErrorMessageTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2741PluginMetadataResolutionErrorMessageTest.java
index 8faafc6..2c0b038 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2741PluginMetadataResolutionErrorMessageTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2741PluginMetadataResolutionErrorMessageTest.java
@@ -107,10 +107,6 @@
             }
             assertTrue( "Transfer error cause was not found: " +  sb, foundCause );
         }
-        finally
-        {
-            verifier.resetStreams();
-        }
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2744checksumVerificationTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2744checksumVerificationTest.java
index 85662dc..bf32f52 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2744checksumVerificationTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2744checksumVerificationTest.java
@@ -60,7 +60,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyArtifactPresent( "org.apache.maven.its.mng2744", "a", "1", "jar" );
         verifier.verifyArtifactPresent( "org.apache.maven.its.mng2744", "a", "1", "pom" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2749ExtensionAvailableToPluginTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2749ExtensionAvailableToPluginTest.java
index 70fb842..e3fe02e 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2749ExtensionAvailableToPluginTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2749ExtensionAvailableToPluginTest.java
@@ -61,7 +61,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties pclProps = verifier.loadProperties( "target/pcl.properties" );
         assertNotNull( pclProps.getProperty( "org.apache.maven.its.mng2749.ExtensionClass" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2771PomExtensionComponentOverrideTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2771PomExtensionComponentOverrideTest.java
index 0f98641..325b0b5 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2771PomExtensionComponentOverrideTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2771PomExtensionComponentOverrideTest.java
@@ -55,18 +55,15 @@
         Verifier verifier = newVerifier( testDir.getAbsolutePath() );
         verifier.executeGoal( "install" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         testDir = ResourceExtractor.simpleExtractResources( getClass(), "/mng-2771/plugin" );
         verifier = newVerifier( testDir.getAbsolutePath() );
         verifier.executeGoal( "install" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         testDir = ResourceExtractor.simpleExtractResources( getClass(), "/mng-2771/project" );
         verifier = newVerifier( testDir.getAbsolutePath() );
         verifier.executeGoal( "verify" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2790LastUpdatedMetadataTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2790LastUpdatedMetadataTest.java
index 2365034..9892719 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2790LastUpdatedMetadataTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2790LastUpdatedMetadataTest.java
@@ -66,7 +66,6 @@
         verifier.setAutoclean( false );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         File metadataArtifactVersionFile =
             new File( verifier.getArtifactMetadataPath( "org.apache.maven.its.mng2790", "project", "1.0-SNAPSHOT" ) );
@@ -92,7 +91,6 @@
         verifier.setAutoclean( false );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Date artifactVersionLastUpdated2 = getLastUpdated( metadataArtifactVersionFile );
         Date artifactLastUpdated2 = getLastUpdated( metadataArtifactFile );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2820PomCommentsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2820PomCommentsTest.java
index 2f40d9e..da391ec 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2820PomCommentsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2820PomCommentsTest.java
@@ -58,7 +58,6 @@
         verifier.deleteArtifacts( "org.apache.maven.its.mng2820" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         File installed = new File( verifier.getArtifactPath( "org.apache.maven.its.mng2820", "test", "0.1", "pom" ) );
         assertPomComments( installed );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2831CustomArtifactHandlerAndCustomLifecycleTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2831CustomArtifactHandlerAndCustomLifecycleTest.java
index 9a853ed..e7ef516 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2831CustomArtifactHandlerAndCustomLifecycleTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2831CustomArtifactHandlerAndCustomLifecycleTest.java
@@ -56,7 +56,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "package" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/test-1.0-it.jar" );
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2843PluginConfigPropertiesInjectionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2843PluginConfigPropertiesInjectionTest.java
index c978c35..601342f 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2843PluginConfigPropertiesInjectionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2843PluginConfigPropertiesInjectionTest.java
@@ -58,7 +58,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/project.properties" );
         assertEquals( "PASSED", props.getProperty( "key" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2848ProfileActivationByEnvironmentVariableTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2848ProfileActivationByEnvironmentVariableTest.java
index fad915c..1af4b8b 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2848ProfileActivationByEnvironmentVariableTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2848ProfileActivationByEnvironmentVariableTest.java
@@ -58,7 +58,6 @@
         verifier.setEnvironmentVariable( "MNG2848", "GO" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/profile.properties" );
         assertEquals( "PASSED", props.getProperty( "project.properties.testProp" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2865MirrorWildcardTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2865MirrorWildcardTest.java
index 6650086..2ef896f 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2865MirrorWildcardTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2865MirrorWildcardTest.java
@@ -104,7 +104,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyArtifactPresent( "org.apache.maven.its.mng2865", "a", "0.1", "jar" );
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2871PrePackageSubartifactResolutionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2871PrePackageSubartifactResolutionTest.java
index 51170c5..c8d7fef 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2871PrePackageSubartifactResolutionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2871PrePackageSubartifactResolutionTest.java
@@ -58,7 +58,6 @@
         verifier.deleteDirectory( "consumer/target" );
         verifier.executeGoal( "compile" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> compileClassPath = verifier.loadLines( "consumer/target/compile.txt", "UTF-8" );
         assertEquals( 2, compileClassPath.size() );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2892HideCorePlexusUtilsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2892HideCorePlexusUtilsTest.java
index 93d20e8..b546391 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2892HideCorePlexusUtilsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2892HideCorePlexusUtilsTest.java
@@ -63,7 +63,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties pclProps = verifier.loadProperties( "target/pcl.properties" );
         assertEquals( "methodStub", pclProps.getProperty( "org.codehaus.plexus.util.StringUtils.methods" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2921ActiveAttachedArtifactsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2921ActiveAttachedArtifactsTest.java
index 182dabd..c4ab48e 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2921ActiveAttachedArtifactsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2921ActiveAttachedArtifactsTest.java
@@ -64,7 +64,6 @@
         verifier.deleteDirectory( "consumer/target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Collection<String> compileArtifacts = verifier.loadLines( "consumer/target/compile.txt", "UTF-8" );
         assertTrue( compileArtifacts.toString(),
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2926PluginPrefixOrderTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2926PluginPrefixOrderTest.java
index b99f11b..6be0f77 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2926PluginPrefixOrderTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2926PluginPrefixOrderTest.java
@@ -65,7 +65,6 @@
         verifier.deleteArtifacts( "org.codehaus.mojo", "mng-2926", "0.1" );
         new File( verifier.getArtifactMetadataPath( "org.codehaus.mojo", null, null, "maven-metadata-maven-core-it.xml" ) ).delete();
         new File( verifier.getArtifactMetadataPath( "org.codehaus.mojo", null, null, "resolver-status.properties" ) ).delete();
-        verifier.resetStreams();
 
         verifier = newVerifier( testDir.getAbsolutePath() );
         verifier.setAutoclean( false );
@@ -76,7 +75,6 @@
         verifier.addCliOption( "settings-default.xml" );
         verifier.executeGoal( "mng-2926:apache" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier = newVerifier( testDir.getAbsolutePath() );
         verifier.setAutoclean( false );
@@ -87,7 +85,6 @@
         verifier.addCliOption( "settings-custom.xml" );
         verifier.executeGoal( "mng-2926:custom" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2972OverridePluginDependencyTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2972OverridePluginDependencyTest.java
index d11d3cc..68c6731 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2972OverridePluginDependencyTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2972OverridePluginDependencyTest.java
@@ -61,7 +61,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties pclProps = verifier.loadProperties( "target/pcl.properties" );
         verify( pclProps );
@@ -93,7 +92,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "org.apache.maven.its.plugins:maven-it-plugin-class-loader:2.1-SNAPSHOT:load" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties pclProps = verifier.loadProperties( "target/pcl.properties" );
         verify( pclProps );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2994SnapshotRangeRepositoryTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2994SnapshotRangeRepositoryTest.java
index 3ca34ae..ec101cd 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2994SnapshotRangeRepositoryTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2994SnapshotRangeRepositoryTest.java
@@ -58,7 +58,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3004ReactorFailureBehaviorMultithreadedTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3004ReactorFailureBehaviorMultithreadedTest.java
index fea6cdf..31980ab 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3004ReactorFailureBehaviorMultithreadedTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3004ReactorFailureBehaviorMultithreadedTest.java
@@ -72,7 +72,6 @@
         {
             // expected
         }
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/touch.txt" );
         verifier.verifyFileNotPresent( "subproject1/target/touch.txt" );
@@ -102,7 +101,6 @@
         verifier.setLogFileName( "log-fn-mt1.txt" );
         verifier.addCliArgument( "-Dmaven.threads.experimental=1" );
         verifier.executeGoal( "org.apache.maven.its.plugins:maven-it-plugin-touch:touch" );
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/touch.txt" );
         verifier.verifyFileNotPresent( "subproject1/target/touch.txt" );
@@ -141,7 +139,6 @@
         {
             // expected
         }
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/touch.txt" );
         verifier.verifyFileNotPresent( "subproject1/target/touch.txt" );
@@ -171,7 +168,6 @@
         verifier.setLogFileName( "log-fn-mt2.txt" );
         verifier.addCliArgument( "-Dmaven.threads.experimental=2" );
         verifier.executeGoal( "org.apache.maven.its.plugins:maven-it-plugin-touch:touch" );
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/touch.txt" );
         verifier.verifyFileNotPresent( "subproject1/target/touch.txt" );
@@ -210,7 +206,6 @@
         {
             // expected
         }
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/touch.txt" );
         verifier.verifyFileNotPresent( "subproject1/target/touch.txt" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3012CoreClassImportTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3012CoreClassImportTest.java
index f82f2b8..eee07e0 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3012CoreClassImportTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3012CoreClassImportTest.java
@@ -62,7 +62,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties xpp3domProps = verifier.loadProperties( "target/xpp3dom.properties" );
         assertEquals( "true", xpp3domProps.getProperty( "project.reporting.plugins.0.configuration" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3023ReactorDependencyResolutionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3023ReactorDependencyResolutionTest.java
index 45d36b2..851f687 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3023ReactorDependencyResolutionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3023ReactorDependencyResolutionTest.java
@@ -76,10 +76,6 @@
         {
             // expected.
         }
-        finally
-        {
-            verifier.resetStreams();
-        }
     }
 
     /**
@@ -108,7 +104,6 @@
 
         verifier.executeGoal( "initialize" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> compileClassPath = verifier.loadLines( "consumer/target/compile.classpath", "UTF-8" );
         assertTrue( compileClassPath.toString(), compileClassPath.contains( "dependency-classes" ) );
@@ -144,7 +139,6 @@
         verifier.setLogFileName( "log-c-1.txt" );
         verifier.executeGoal( "generate-sources" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> compileClassPath = verifier.loadLines( "consumer/target/compile.classpath", "UTF-8" );
         assertTrue( compileClassPath.toString(), compileClassPath.contains( "dependency-1.jar" ) );
@@ -155,7 +149,6 @@
         verifier.setLogFileName( "log-c-2.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         compileClassPath = verifier.loadLines( "consumer/target/compile.classpath", "UTF-8" );
         assertTrue( compileClassPath.toString(), compileClassPath.contains( "dependency-1.jar" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3038TransitiveDepManVersionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3038TransitiveDepManVersionTest.java
index 1485ceb..574bd48 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3038TransitiveDepManVersionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3038TransitiveDepManVersionTest.java
@@ -64,7 +64,6 @@
         verifier.deleteArtifact( "org.apache.maven.its.it0121", "D", "1.0", "jar" );
         verifier.executeGoal( "install" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
     private void compileDDep( File testDirBase, String projectDDepDir, String version )
@@ -76,6 +75,5 @@
         verifierOtherDep.deleteArtifact( "org.apache.maven.its.it0121", "D", version, "pom" );
         verifierOtherDep.executeGoal( "install" );
         verifierOtherDep.verifyErrorFreeLog();
-        verifierOtherDep.resetStreams();
     }
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3043BestEffortReactorResolutionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3043BestEffortReactorResolutionTest.java
index 5c8f7b1..90bbe8d 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3043BestEffortReactorResolutionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3043BestEffortReactorResolutionTest.java
@@ -63,7 +63,6 @@
         verifier.setLogFileName( "log-test.txt" );
         verifier.executeGoal( "test" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> classpath;
 
@@ -120,7 +119,6 @@
         verifier.setLogFileName( "log-package.txt" );
         verifier.executeGoal( "package" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> classpath;
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3052DepRepoAggregationTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3052DepRepoAggregationTest.java
index 3944417..b81cd46 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3052DepRepoAggregationTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3052DepRepoAggregationTest.java
@@ -68,7 +68,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyArtifactPresent( "org.apache.maven.its.mng3052", "direct", "0.1-SNAPSHOT", "jar" );
         verifier.verifyArtifactPresent( "org.apache.maven.its.mng3052", "trans", "0.1-SNAPSHOT", "jar" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3092SnapshotsExcludedFromVersionRangeTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3092SnapshotsExcludedFromVersionRangeTest.java
index c4d2bf9..628b33b 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3092SnapshotsExcludedFromVersionRangeTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3092SnapshotsExcludedFromVersionRangeTest.java
@@ -64,7 +64,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> classpath = verifier.loadLines( "target/classpath.txt", "UTF-8" );
         assertTrue( classpath.toString(), classpath.contains( "a-1.1.jar" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3099SettingsProfilesWithNoPomTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3099SettingsProfilesWithNoPomTest.java
index 4b932cc..cc66c0c 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3099SettingsProfilesWithNoPomTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3099SettingsProfilesWithNoPomTest.java
@@ -62,7 +62,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "org.apache.maven.its.mng3099:maven-mng3099-plugin:0.1:touch" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/PASSED.txt" );
         verifier.verifyFileNotPresent( "target/touch.txt" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3118TestClassPathOrderTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3118TestClassPathOrderTest.java
index 4058759..782fad1 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3118TestClassPathOrderTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3118TestClassPathOrderTest.java
@@ -58,7 +58,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> testClassPath = verifier.loadLines( "target/test-classpath.txt", "UTF-8" );
         assertEquals( Arrays.asList( new String[] { "test-classes", "classes" } ), testClassPath );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3122ActiveProfilesNoDuplicatesTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3122ActiveProfilesNoDuplicatesTest.java
index 162522e..e4e39b8 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3122ActiveProfilesNoDuplicatesTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3122ActiveProfilesNoDuplicatesTest.java
@@ -61,7 +61,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/profile.properties" );
         int count = 0;
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3133UrlNormalizationNotBeforeInterpolationTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3133UrlNormalizationNotBeforeInterpolationTest.java
index 041cba3..dc1d372 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3133UrlNormalizationNotBeforeInterpolationTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3133UrlNormalizationNotBeforeInterpolationTest.java
@@ -58,7 +58,6 @@
         verifier.setAutoclean( false );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/url.properties" );
         String url;
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3139UseCachedMetadataOfBlacklistedRepoTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3139UseCachedMetadataOfBlacklistedRepoTest.java
index 9349b7f..8d9289a 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3139UseCachedMetadataOfBlacklistedRepoTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3139UseCachedMetadataOfBlacklistedRepoTest.java
@@ -65,7 +65,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         // phase 2: trigger blacklisting of repo (by invalid URL) and check previously downloaded metadata is still used
 
@@ -79,7 +78,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3183LoggingToFileTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3183LoggingToFileTest.java
index b5ed931..3cfaf70 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3183LoggingToFileTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3183LoggingToFileTest.java
@@ -63,7 +63,6 @@
         new File( testDir, "maven.log" ).delete();
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> stdout = verifier.loadLines( "stdout.txt", "UTF-8" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3203DefaultLifecycleExecIdTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3203DefaultLifecycleExecIdTest.java
index 2fd76da..1b48bbd 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3203DefaultLifecycleExecIdTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3203DefaultLifecycleExecIdTest.java
@@ -56,6 +56,5 @@
 
         verifier.executeGoal( "compile" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3208ProfileAwareReactorSortingTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3208ProfileAwareReactorSortingTest.java
index 073b4f4..b1ed386 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3208ProfileAwareReactorSortingTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3208ProfileAwareReactorSortingTest.java
@@ -59,7 +59,6 @@
         verifier.addCliOption( "-Pmng3208" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> order = verifier.loadLines( "target/order.txt", "UTF-8" );
         assertEquals( Arrays.asList( new String[] { "mod-b", "mod-a" } ), order );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3217InterPluginDependencyTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3217InterPluginDependencyTest.java
index c0b5ea6..9159f14 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3217InterPluginDependencyTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3217InterPluginDependencyTest.java
@@ -63,7 +63,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "sub-1/target/touch-1.txt" );
         verifier.verifyFilePresent( "sub-2/target/touch-2.txt" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3220ImportScopeTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3220ImportScopeTest.java
index db8dc52..c19a0b3 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3220ImportScopeTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3220ImportScopeTest.java
@@ -59,7 +59,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
     @Test
@@ -90,7 +89,6 @@
             // expected
         }
 
-        verifier.resetStreams();
 
         List<String> lines = verifier.loadFile( new File( testDir, "log.txt" ), false );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3259DepsDroppedInMultiModuleBuildTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3259DepsDroppedInMultiModuleBuildTest.java
index f2ef938..424ae42 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3259DepsDroppedInMultiModuleBuildTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3259DepsDroppedInMultiModuleBuildTest.java
@@ -58,13 +58,11 @@
 
         verifier.verifyErrorFreeLog();
 
-        verifier.resetStreams();
 
         verifier = newVerifier( testDir.getAbsolutePath(), "remote" );
 
         verifier.executeGoal( "install" );
 
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3268MultipleHyphenPCommandLineTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3268MultipleHyphenPCommandLineTest.java
index 9caafd1..1781405 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3268MultipleHyphenPCommandLineTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3268MultipleHyphenPCommandLineTest.java
@@ -61,7 +61,6 @@
         verifier.verifyFilePresent( "target/profile2/touch.txt" );
         verifier.verifyFilePresent( "target/profile3/touch.txt" );
         verifier.verifyFilePresent( "target/profile4/touch.txt" );
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3284UsingCachedPluginsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3284UsingCachedPluginsTest.java
index 009fe2d..858694b 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3284UsingCachedPluginsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3284UsingCachedPluginsTest.java
@@ -65,7 +65,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         /*
          * Phase 2: Now that the plugin versions have been downloaded to the local repo, run the actual test.
@@ -78,7 +77,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "mod-a/target/version-0.1.txt" );
         verifier.verifyFileNotPresent( "mod-a/target/version-0.2.txt" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3288SystemScopeDirTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3288SystemScopeDirTest.java
index ee29d6f..f38d2d6 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3288SystemScopeDirTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3288SystemScopeDirTest.java
@@ -62,7 +62,6 @@
         {
             // expected, <systemPath> of a system-scoped dependency should be a file, not a directory
         }
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3297DependenciesNotLeakedToMojoTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3297DependenciesNotLeakedToMojoTest.java
index 9f1e018..a3c8cf9 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3297DependenciesNotLeakedToMojoTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3297DependenciesNotLeakedToMojoTest.java
@@ -59,7 +59,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "initialize" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> artifacts = verifier.loadLines( "target/artifacts.txt", "UTF-8" );
         assertEquals( artifacts.toString(), 1, artifacts.size() );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3314OfflineSnapshotsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3314OfflineSnapshotsTest.java
index d6e8c88..23b8691 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3314OfflineSnapshotsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3314OfflineSnapshotsTest.java
@@ -65,7 +65,6 @@
             verifier.executeGoal( "validate" );
             verifier.verifyFilePresent( "target/compile.txt" );
             verifier.verifyErrorFreeLog();
-            verifier.resetStreams();
         }
 
         {
@@ -78,7 +77,6 @@
             verifier.executeGoal( "validate" );
             verifier.verifyFilePresent( "target/compile.txt" );
             verifier.verifyErrorFreeLog();
-            verifier.resetStreams();
         }
     }
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3331ModulePathNormalizationTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3331ModulePathNormalizationTest.java
index 8f7aa0b..dbf34da 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3331ModulePathNormalizationTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3331ModulePathNormalizationTest.java
@@ -63,12 +63,6 @@
          * http://maven.apache.org/shared/maven-verifier/apidocs/index.html
          */
         verifier.verifyErrorFreeLog();
-
-        /*
-         * Reset the streams before executing the verifier
-         * again.
-         */
-        verifier.resetStreams();
     }
 
     @Test
@@ -94,12 +88,6 @@
          * http://maven.apache.org/shared/maven-verifier/apidocs/index.html
          */
         verifier.verifyErrorFreeLog();
-
-        /*
-         * Reset the streams before executing the verifier
-         * again.
-         */
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3355TranslatedPathInterpolationTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3355TranslatedPathInterpolationTest.java
index fbde79f..3ba6ae2 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3355TranslatedPathInterpolationTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3355TranslatedPathInterpolationTest.java
@@ -53,7 +53,6 @@
         verifier.executeGoal( "validate" );
 
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3372DirectInvocationOfPluginsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3372DirectInvocationOfPluginsTest.java
index 2a8a69a..5227923 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3372DirectInvocationOfPluginsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3372DirectInvocationOfPluginsTest.java
@@ -68,8 +68,6 @@
         verifier.executeGoal( "mng3372:test" );
 
         verifier.verifyErrorFreeLog();
-
-        verifier.resetStreams();
     }
 
     @Test
@@ -87,7 +85,5 @@
         verifier.executeGoal( "dependency:tree" );
 
         verifier.verifyErrorFreeLog();
-
-        verifier.resetStreams();
     }
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3379ParallelArtifactDownloadsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3379ParallelArtifactDownloadsTest.java
index 0f8678b..4ace11c 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3379ParallelArtifactDownloadsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3379ParallelArtifactDownloadsTest.java
@@ -65,7 +65,6 @@
         verifier.addCliArgument( "-Dmaven.artifact.threads=16" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         String gid = "org.apache.maven.its.mng3379.";
         assertArtifact( verifier, gid + "a", "x", "0.2-SNAPSHOT", "", "jar",
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3380ManagedRelocatedTransdepsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3380ManagedRelocatedTransdepsTest.java
index a9dad14..2e238a7 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3380ManagedRelocatedTransdepsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3380ManagedRelocatedTransdepsTest.java
@@ -68,7 +68,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> artifacts = verifier.loadLines( "target/artifacts.txt", "UTF-8" );
         assertEquals( 4, artifacts.size() );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3394POMPluginVersionDominanceTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3394POMPluginVersionDominanceTest.java
index 614c207..fc5fb50 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3394POMPluginVersionDominanceTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3394POMPluginVersionDominanceTest.java
@@ -57,7 +57,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "process-resources" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/resources-resources.txt" );
     }
@@ -75,7 +74,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "clean" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/clean-clean.txt" );
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3396DependencyManagementForOverConstrainedRangesTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3396DependencyManagementForOverConstrainedRangesTest.java
index 301b63d..0b4b185 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3396DependencyManagementForOverConstrainedRangesTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3396DependencyManagementForOverConstrainedRangesTest.java
@@ -55,7 +55,6 @@
         verifier.deleteArtifact( GROUP_ID, "B", "1.0", "jar" );
         verifier.executeGoal( "install" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         testDir = ResourceExtractor.simpleExtractResources( getClass(), baseDir + "/plugin" );
 
@@ -68,7 +67,6 @@
         verifier.deleteArtifact( GROUP_ID, "plugin", "1.0", "jar" );
         verifier.executeGoal( "install" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         testDir = ResourceExtractor.simpleExtractResources( getClass(), baseDir + "/pluginuser" );
 
@@ -77,6 +75,5 @@
         verifier.deleteArtifact( GROUP_ID, "pluginuser", "1.0", "jar" );
         verifier.executeGoal( "install" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3401CLIDefaultExecIdTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3401CLIDefaultExecIdTest.java
index a20568b..3317a49 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3401CLIDefaultExecIdTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3401CLIDefaultExecIdTest.java
@@ -78,7 +78,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "org.apache.maven.its.plugins:maven-it-plugin-configuration:2.1-SNAPSHOT:config" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/config.properties" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3415JunkRepositoryMetadataTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3415JunkRepositoryMetadataTest.java
index c1fd01b..61ae180 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3415JunkRepositoryMetadataTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3415JunkRepositoryMetadataTest.java
@@ -118,7 +118,6 @@
         verifier.executeGoal( "validate" );
 
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         assertMetadataMissing( verifier );
     }
@@ -228,7 +227,6 @@
             verifier.executeGoal( "validate" );
 
             verifier.verifyErrorFreeLog();
-            verifier.resetStreams();
 
             assertFalse( requestUris.toString(), requestUris.contains(
                 "/org/apache/maven/its/mng3415/missing/1.0-SNAPSHOT/maven-metadata.xml" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3422ActiveComponentCollectionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3422ActiveComponentCollectionTest.java
index e802779..258f38f 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3422ActiveComponentCollectionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3422ActiveComponentCollectionTest.java
@@ -58,7 +58,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/layout.properties" );
         assertNotEquals( "0", props.getProperty( "layouts", "0" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3441MetadataUpdatedFromDeploymentRepositoryTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3441MetadataUpdatedFromDeploymentRepositoryTest.java
index 8dde60d..33992e0 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3441MetadataUpdatedFromDeploymentRepositoryTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3441MetadataUpdatedFromDeploymentRepositoryTest.java
@@ -75,7 +75,6 @@
         assertEquals( "other-plugin", plugins[0].getChild( "prefix" ).getValue() );
         assertEquals( "test-artifact", plugins[1].getChild( "prefix" ).getValue() );
 
-        verifier.resetStreams();
     }
 
     private Xpp3Dom readDom( File file )
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3461MirrorMatchingTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3461MirrorMatchingTest.java
index f10b72e..0ed77dd 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3461MirrorMatchingTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3461MirrorMatchingTest.java
@@ -72,7 +72,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyArtifactPresent( "org.apache.maven.its.mng3461", "a", "0.1", "jar" );
     }
@@ -147,7 +146,6 @@
             verifier.addCliOption( "settings.xml" );
             verifier.executeGoal( "validate" );
             verifier.verifyErrorFreeLog();
-            verifier.resetStreams();
         }
         finally
         {
@@ -181,7 +179,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyArtifactPresent( "org.apache.maven.its.mng3461", "a", "0.1", "jar" );
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3470StrictChecksumVerificationOfDependencyPomTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3470StrictChecksumVerificationOfDependencyPomTest.java
index 589de15..946533a 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3470StrictChecksumVerificationOfDependencyPomTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3470StrictChecksumVerificationOfDependencyPomTest.java
@@ -59,36 +59,30 @@
         verifier.filterFile( "settings-template.xml", "settings.xml", "UTF-8", verifier.newDefaultFilterProperties() );
         verifier.addCliOption( "--settings" );
         verifier.addCliOption( "settings.xml" );
+
         try
         {
-            try
-            {
-                verifier.setLogFileName( "log-1.txt" );
-                verifier.executeGoal( "validate" );
-                verifier.verifyErrorFreeLog();
-                fail( "Build did not fail despite broken checksum of dependency POM." );
-            }
-            catch ( VerificationException e )
-            {
-                // expected
-            }
-
-            // NOTE: This second try is to make sure the state caching in the local repo properly replays the error
-            try
-            {
-                verifier.setLogFileName( "log-2.txt" );
-                verifier.executeGoal( "validate" );
-                verifier.verifyErrorFreeLog();
-                fail( "Build did not fail despite broken checksum of dependency POM." );
-            }
-            catch ( VerificationException e )
-            {
-                // expected
-            }
+            verifier.setLogFileName( "log-1.txt" );
+            verifier.executeGoal( "validate" );
+            verifier.verifyErrorFreeLog();
+            fail( "Build did not fail despite broken checksum of dependency POM." );
         }
-        finally
+        catch ( VerificationException e )
         {
-            verifier.resetStreams();
+            // expected
+        }
+
+        // NOTE: This second try is to make sure the state caching in the local repo properly replays the error
+        try
+        {
+            verifier.setLogFileName( "log-2.txt" );
+            verifier.executeGoal( "validate" );
+            verifier.verifyErrorFreeLog();
+            fail( "Build did not fail despite broken checksum of dependency POM." );
+        }
+        catch ( VerificationException e )
+        {
+            // expected
         }
     }
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3475BaseAlignedDirTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3475BaseAlignedDirTest.java
index 3c9c5dc..7456429 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3475BaseAlignedDirTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3475BaseAlignedDirTest.java
@@ -60,7 +60,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties configProps = verifier.loadProperties( "target/config.properties" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3477DependencyResolutionErrorMessageTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3477DependencyResolutionErrorMessageTest.java
index f7b1bab..21e5cdf 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3477DependencyResolutionErrorMessageTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3477DependencyResolutionErrorMessageTest.java
@@ -75,10 +75,6 @@
             }
             assertTrue( "Transfer error cause was not found", foundCause );
         }
-        finally
-        {
-            verifier.resetStreams();
-        }
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3482DependencyPomInterpolationTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3482DependencyPomInterpolationTest.java
index 3925659..aef3e4b 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3482DependencyPomInterpolationTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3482DependencyPomInterpolationTest.java
@@ -57,7 +57,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> classpath = verifier.loadLines( "target/classpath.txt", "UTF-8" );
         assertTrue( classpath.toString(), classpath.contains( "dep2-1.jar" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3485OverrideWagonExtensionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3485OverrideWagonExtensionTest.java
index 847f928..bbdf453 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3485OverrideWagonExtensionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3485OverrideWagonExtensionTest.java
@@ -54,6 +54,5 @@
         verifier.verifyFilePresent( "target/wagon.properties" );
         verifier.verifyErrorFreeLog();
 
-        verifier.resetStreams();
     }
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3498ForkToOtherMojoTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3498ForkToOtherMojoTest.java
index d6bc3de..d81cc02 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3498ForkToOtherMojoTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3498ForkToOtherMojoTest.java
@@ -60,13 +60,11 @@
         verifier.executeGoal( "install" );
 
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier = newVerifier( projectDir.getAbsolutePath() );
 
         verifier.executeGoal( "validate" );
 
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3503Xpp3ShadingTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3503Xpp3ShadingTest.java
index 283227e..d57c5e2 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3503Xpp3ShadingTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3503Xpp3ShadingTest.java
@@ -55,7 +55,6 @@
 
         verifier.verifyErrorFreeLog();
 
-        verifier.resetStreams();
 
         assertEquals( "<root />", FileUtils.fileRead( new File( dir, "target/serialized.xml" ), "UTF-8" ) );
     }
@@ -72,7 +71,6 @@
 
         verifier.verifyErrorFreeLog();
 
-        verifier.resetStreams();
 
         assertEquals( "root", FileUtils.fileRead( new File( dir, "target/serialized.xml" ), "UTF-8" ) );
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3506ArtifactHandlersFromPluginsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3506ArtifactHandlersFromPluginsTest.java
index 478eb40..31aed01 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3506ArtifactHandlersFromPluginsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3506ArtifactHandlersFromPluginsTest.java
@@ -63,7 +63,6 @@
         verifier.executeGoal( "install" );
 
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         // Now, if everything worked, we have .pom and a .jar in the local repo for each child, and a pom for the parent.
         // IF IT DIDN'T, we have a .pom and a .coreit-1 for child 1 AND/OR .pom and .coreit-2 for child 2 in the local repo...
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3529QuotedCliArgTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3529QuotedCliArgTest.java
index cbe967e..c127e17 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3529QuotedCliArgTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3529QuotedCliArgTest.java
@@ -59,7 +59,6 @@
         verifier.addCliOption( "-Dtest.a=  " );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/pom.properties" );
         assertEquals( "-  -", props.getProperty( "project.properties.propA" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3535SelfReferentialPropertiesTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3535SelfReferentialPropertiesTest.java
index 53c8a13..48e5612 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3535SelfReferentialPropertiesTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3535SelfReferentialPropertiesTest.java
@@ -55,7 +55,6 @@
         verifier.executeGoal( "verify" );
 
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
     @Test
@@ -82,7 +81,5 @@
         {
             // should fail this verification, because there truly is a self-referential property.
         }
-
-        verifier.resetStreams();
     }
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3536AppendedAbsolutePathsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3536AppendedAbsolutePathsTest.java
index 892fef9..e9ce054 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3536AppendedAbsolutePathsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3536AppendedAbsolutePathsTest.java
@@ -52,13 +52,11 @@
         verifier.executeGoal( "install" );
 
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         File projectDir = new File( testDir, "project" );
         verifier = newVerifier( projectDir.getAbsolutePath() );
 
         verifier.executeGoal( "verify" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3545ProfileDeactivationTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3545ProfileDeactivationTest.java
index 10a985b..cb2d72a 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3545ProfileDeactivationTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3545ProfileDeactivationTest.java
@@ -65,7 +65,6 @@
         verifier.verifyFileNotPresent( "target/profile3/touch.txt" );
         verifier.verifyFileNotPresent( "target/profile4/touch.txt" );
         verifier.verifyFileNotPresent( "target/profile5/touch.txt" );
-        verifier.resetStreams();
     }
 
     /**
@@ -94,7 +93,6 @@
         verifier.verifyErrorFreeLog();
         verifier.verifyFileNotPresent( "target/profile1/touch.txt" );
         verifier.verifyFileNotPresent( "target/profile2/touch.txt" );
-        verifier.resetStreams();
     }
 
     @Test
@@ -118,7 +116,6 @@
         verifier.verifyErrorFreeLog();
         verifier.verifyFileNotPresent( "target/profile1/touch.txt" );
         verifier.verifyFileNotPresent( "target/profile2/touch.txt" );
-        verifier.resetStreams();
     }
 
     /**
@@ -150,7 +147,6 @@
         verifier.verifyFileNotPresent( "target/profile3/touch.txt" );
         verifier.verifyFileNotPresent( "target/profile4/touch.txt" );
         verifier.verifyFileNotPresent( "target/profile5/touch.txt" );
-        verifier.resetStreams();
     }
 
     /**
@@ -182,7 +178,6 @@
         verifier.verifyFileNotPresent( "target/profile3/touch.txt" );
         verifier.verifyFileNotPresent( "target/profile4/touch.txt" );
         verifier.verifyFileNotPresent( "target/profile5/touch.txt" );
-        verifier.resetStreams();
     }
 
     /**
@@ -213,7 +208,6 @@
         verifier.verifyFileNotPresent( "target/profile3/touch.txt" );
         verifier.verifyFilePresent( "target/profile4/touch.txt" );
         verifier.verifyFileNotPresent( "target/profile5/touch.txt" );
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3575HexadecimalOctalPluginParameterConfigTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3575HexadecimalOctalPluginParameterConfigTest.java
index bbe1f2f..f6ffdc3 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3575HexadecimalOctalPluginParameterConfigTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3575HexadecimalOctalPluginParameterConfigTest.java
@@ -55,7 +55,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/config.properties" );
         assertEquals( "64", props.getProperty( "byteParam" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3581PluginUsesWagonDependencyTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3581PluginUsesWagonDependencyTest.java
index 466b55e..fd55a1e 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3581PluginUsesWagonDependencyTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3581PluginUsesWagonDependencyTest.java
@@ -57,7 +57,6 @@
         verifier.executeGoal( "initialize" );
         verifier.addCliOption( "-B" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3586SystemScopePluginDependencyTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3586SystemScopePluginDependencyTest.java
index df12d5d..cc80a3f 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3586SystemScopePluginDependencyTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3586SystemScopePluginDependencyTest.java
@@ -64,7 +64,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/it.properties" );
         assertEquals( "PASSED", props.getProperty( "test" ) );
@@ -88,7 +87,6 @@
         verifier.getSystemProperties().setProperty( "test.home", testDir.getAbsolutePath() );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/pcl.properties" );
         assertEquals( "1", props.getProperty( "maven-core-it.properties.count" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3599useHttpProxyForWebDAVMk2Test.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3599useHttpProxyForWebDAVMk2Test.java
index 1ae1897..a9c43d4 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3599useHttpProxyForWebDAVMk2Test.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3599useHttpProxyForWebDAVMk2Test.java
@@ -170,7 +170,6 @@
         Verifier verifier = newVerifier( testDir.getAbsolutePath() );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         String settings = FileUtils.fileRead( new File( testDir, "settings-template.xml" ) );
         settings = StringUtils.replace( settings, "@port@", Integer.toString( port ) );
@@ -189,7 +188,6 @@
         verifier.setLogFileName( "logHttp.txt" );
         verifier.executeGoal( "compile" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyArtifactPresent( "org.apache.maven.its.mng3599", "test-dependency", "1.0", "jar" );
         verifier.verifyArtifactContent( "org.apache.maven.its.mng3599", "test-dependency", "1.0", "jar",
@@ -215,7 +213,6 @@
         Verifier verifier = newVerifier( testDir.getAbsolutePath() );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         String settings = FileUtils.fileRead( new File( testDir, "settings-template.xml" ) );
         settings = StringUtils.replace( settings, "@port@", Integer.toString( port ) );
@@ -234,7 +231,6 @@
         verifier.setLogFileName( "logDAV.txt" );
         verifier.executeGoal( "compile" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyArtifactPresent( "org.apache.maven.its.mng3599", "test-dependency", "1.0", "jar" );
         verifier.verifyArtifactContent( "org.apache.maven.its.mng3599", "test-dependency", "1.0", "jar",
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3600DeploymentModeDefaultsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3600DeploymentModeDefaultsTest.java
index 3eaa8a1..2942bfc 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3600DeploymentModeDefaultsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3600DeploymentModeDefaultsTest.java
@@ -53,7 +53,6 @@
         verifier.setLogFileName( "log-no-settings.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "wagon.properties" );
         Properties props = verifier.loadProperties( "wagon.properties" );
@@ -75,7 +74,6 @@
         verifier.setLogFileName( "log-server-defaults.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "wagon.properties" );
         Properties props = verifier.loadProperties( "wagon.properties" );
@@ -97,7 +95,6 @@
         verifier.setLogFileName( "log-modes-set.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "wagon.properties" );
         Properties props = verifier.loadProperties( "wagon.properties" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3607ClassLoadersUseValidUrlsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3607ClassLoadersUseValidUrlsTest.java
index 35875a5..df0f16c 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3607ClassLoadersUseValidUrlsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3607ClassLoadersUseValidUrlsTest.java
@@ -60,7 +60,6 @@
         verifier.getSystemProperties().setProperty( "test.home", testDir.getAbsolutePath() );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/pcl.properties" );
         String url = props.getProperty( "maven-core-it.properties" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3621UNCInheritedPathsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3621UNCInheritedPathsTest.java
index 02e82ca..fa4288c 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3621UNCInheritedPathsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3621UNCInheritedPathsTest.java
@@ -58,7 +58,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/pom.properties" );
         assertEquals( "file:////host/site/test-child", props.getProperty( "project.distributionManagement.site.url" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3641ProfileActivationWarningTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3641ProfileActivationWarningTest.java
index eb8a047..86a83e9 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3641ProfileActivationWarningTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3641ProfileActivationWarningTest.java
@@ -60,7 +60,6 @@
         verifier.setLogFileName( "log-1.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> logFile = verifier.loadFile( verifier.getBasedir(), verifier.getLogFileName(), false );
         assertNull( findWarning( logFile, "mng-3641-it-provided-profile" ) );
@@ -72,7 +71,6 @@
         verifier.setLogFileName( "log-2.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         logFile = verifier.loadFile( verifier.getBasedir(), verifier.getLogFileName(), false );
         assertNotNull( findWarning( logFile, "mng-3641-TWlzdGVyIFQgd2FzIGhlcmUuICheX14p" ) );
@@ -85,7 +83,6 @@
         verifier.setLogFileName( "log-3.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         logFile = verifier.loadFile( verifier.getBasedir(), verifier.getLogFileName(), false );
         assertNull( findWarning( logFile, "mng-3641-it-provided-profile" ) );
@@ -98,7 +95,6 @@
         verifier.setLogFileName( "log-4.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         logFile = verifier.loadFile( verifier.getBasedir(), verifier.getLogFileName(), false );
         assertNull( findWarning( logFile, "mng-3641-it-provided-profile-child" ) );
@@ -110,7 +106,6 @@
         verifier.setLogFileName( "log-5.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         logFile = verifier.loadFile( verifier.getBasedir(), verifier.getLogFileName(), false );
         assertNull( findWarning( logFile, "mng-3641-it-provided-profile-child" ) );
@@ -122,7 +117,6 @@
         verifier.setLogFileName( "log-6.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         logFile = verifier.loadFile( verifier.getBasedir(), verifier.getLogFileName(), false );
         assertNull( findWarning( logFile, "mng-3641-it-provided-profile" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3642DynamicResourcesTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3642DynamicResourcesTest.java
index 96b9a01..f10feb7 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3642DynamicResourcesTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3642DynamicResourcesTest.java
@@ -83,12 +83,6 @@
          */
         verifier.verifyErrorFreeLog();
 
-        /*
-         * Reset the streams before executing the verifier
-         * again.
-         */
-        verifier.resetStreams();
-
         File first = new File( testDir, "target/test-classes/one.txt" );
         assertTrue( "First resource file was not present: " + first, first.exists() );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3645POMSyntaxErrorTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3645POMSyntaxErrorTest.java
index 475f60c..ae1e582 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3645POMSyntaxErrorTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3645POMSyntaxErrorTest.java
@@ -70,10 +70,6 @@
         {
             // expect this.
         }
-        finally
-        {
-            verifier.resetStreams();
-        }
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3652UserAgentHeaderTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3652UserAgentHeaderTest.java
index b757598..0ca3c5b 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3652UserAgentHeaderTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3652UserAgentHeaderTest.java
@@ -123,7 +123,6 @@
         Verifier verifier = newVerifier( pluginDir.getAbsolutePath(), "remote" );
         verifier.executeGoal( "install" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier = newVerifier( projectDir.getAbsolutePath(), "remote" );
 
@@ -133,7 +132,6 @@
         verifier.setLogFileName( "log-unConfiguredHttp.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         String userAgent = this.userAgent;
         assertNotNull( userAgent );
@@ -166,7 +164,6 @@
         Verifier verifier = newVerifier( pluginDir.getAbsolutePath(), "remote" );
         verifier.executeGoal( "install" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier = newVerifier( projectDir.getAbsolutePath(), "remote" );
 
@@ -178,7 +175,6 @@
         verifier.setLogFileName( "log-unConfiguredDAV.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         File touchFile = new File( projectDir, "target/touch.txt" );
         assertTrue( touchFile.exists() );
@@ -211,7 +207,6 @@
         Verifier verifier = newVerifier( pluginDir.getAbsolutePath(), "remote" );
         verifier.executeGoal( "install" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier = newVerifier( projectDir.getAbsolutePath(), "remote" );
 
@@ -225,7 +220,6 @@
         verifier.setLogFileName( "log-configWithoutUserAgent.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         File touchFile = new File( projectDir, "target/touch.txt" );
         assertTrue( touchFile.exists() );
@@ -258,7 +252,6 @@
         Verifier verifier = newVerifier( pluginDir.getAbsolutePath(), "remote" );
         verifier.executeGoal( "install" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier = newVerifier( projectDir.getAbsolutePath(), "remote" );
 
@@ -272,7 +265,6 @@
         verifier.setLogFileName( "log-configWithUserAgent.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         String userAgent = this.userAgent;
         assertNotNull( userAgent );
@@ -292,7 +284,6 @@
         Verifier verifier = newVerifier( pluginDir.getAbsolutePath(), "remote" );
         verifier.executeGoal( "install" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier = newVerifier( projectDir.getAbsolutePath(), "remote" );
 
@@ -306,7 +297,6 @@
         verifier.setLogFileName( "log-configWithUserAgent.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         String userAgent = this.userAgent;
         assertNotNull( userAgent );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3667ResolveDepsWithBadPomVersionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3667ResolveDepsWithBadPomVersionTest.java
index a3428f6..583f8bd 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3667ResolveDepsWithBadPomVersionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3667ResolveDepsWithBadPomVersionTest.java
@@ -64,7 +64,6 @@
         verifier.filterFile( "settings-template.xml", "settings.xml", "UTF-8", verifier.newDefaultFilterProperties() );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> cp = verifier.loadLines( "target/classpath.txt", "UTF-8" );
         assertTrue( cp.toString(), cp.contains( "dep-0.1.jar" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3671PluginLevelDepInterpolationTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3671PluginLevelDepInterpolationTest.java
index 4fb45a7..16cbe71 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3671PluginLevelDepInterpolationTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3671PluginLevelDepInterpolationTest.java
@@ -67,11 +67,5 @@
          * http://maven.apache.org/shared/maven-verifier/apidocs/index.html
          */
         verifier.verifyErrorFreeLog();
-
-        /*
-         * Reset the streams before executing the verifier
-         * again.
-         */
-        verifier.resetStreams();
     }
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3679PluginExecIdInterpolationTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3679PluginExecIdInterpolationTest.java
index 7f7925e..a11d5a0 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3679PluginExecIdInterpolationTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3679PluginExecIdInterpolationTest.java
@@ -53,7 +53,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/check.txt" );
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3680InvalidDependencyPOMTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3680InvalidDependencyPOMTest.java
index 2405914..97ff72b 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3680InvalidDependencyPOMTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3680InvalidDependencyPOMTest.java
@@ -61,7 +61,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> artifacts = verifier.loadLines( "target/artifacts.txt", "UTF-8" );
         assertTrue( artifacts.toString(), artifacts.contains( "org.apache.maven.its.mng3680:direct:jar:0.1" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3684BuildPluginParameterTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3684BuildPluginParameterTest.java
index 171e779..cecc803 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3684BuildPluginParameterTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3684BuildPluginParameterTest.java
@@ -53,19 +53,16 @@
         verifier.executeGoal( "install" );
 
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier = newVerifier( projectDir.getAbsolutePath(), "remote" );
         verifier.setLogFileName( "log-validate.txt" );
         verifier.executeGoal( "validate" );
 
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.setLogFileName( "log-site.txt" );
         verifier.executeGoal( "site" );
 
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3693PomFileBasedirChangeTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3693PomFileBasedirChangeTest.java
index 0c595d7..d3ecf53 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3693PomFileBasedirChangeTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3693PomFileBasedirChangeTest.java
@@ -58,7 +58,6 @@
         verifier.executeGoal( "install" );
 
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         String depPath = verifier.getArtifactPath( "org.apache.maven.its.mng3693", "dep", "1", "pom" );
 
@@ -73,7 +72,6 @@
         verifier.executeGoal( "package" );
 
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
     }
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3694ReactorProjectsDynamismTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3694ReactorProjectsDynamismTest.java
index fe4889f..182c22a 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3694ReactorProjectsDynamismTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3694ReactorProjectsDynamismTest.java
@@ -54,12 +54,10 @@
 
         verifier.executeGoal( "install" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier = newVerifier( projectDir.getAbsolutePath() );
 
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3701ImplicitProfileIdTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3701ImplicitProfileIdTest.java
index 43999a3..8ae2fe5 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3701ImplicitProfileIdTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3701ImplicitProfileIdTest.java
@@ -59,7 +59,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3703ExecutionProjectWithRelativePathsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3703ExecutionProjectWithRelativePathsTest.java
index 35c2503..f6a1118 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3703ExecutionProjectWithRelativePathsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3703ExecutionProjectWithRelativePathsTest.java
@@ -57,7 +57,6 @@
         verifier.executeGoal( "install" );
 
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier = newVerifier( projectDir.getAbsolutePath() );
         verifier.setLogFileName( "log-mojo.txt" );
@@ -65,7 +64,6 @@
         verifier.executeGoal( "package" );
 
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
     @Test
@@ -83,7 +81,6 @@
         verifier.executeGoal( "install" );
 
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier = newVerifier( projectDir.getAbsolutePath() );
         verifier.setLogFileName( "log-report.txt" );
@@ -91,6 +88,5 @@
         verifier.executeGoal( "site" );
 
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3710PollutedClonedPluginsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3710PollutedClonedPluginsTest.java
index db6816e..91be6d6 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3710PollutedClonedPluginsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3710PollutedClonedPluginsTest.java
@@ -59,13 +59,11 @@
         verifier.executeGoal( "install" );
 
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier = newVerifier( projectsDir.getAbsolutePath() );
         verifier.executeGoal( "validate" );
 
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         File topLevelTouchFile = new File( projectsDir, "target/touch.txt" );
         assertFalse( "Top-level touch file should NOT be created in projects tree.", topLevelTouchFile.exists() );
@@ -92,7 +90,6 @@
         verifier.executeGoal( "install" );
 
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier = newVerifier( projectDir.getAbsolutePath() );
 
@@ -103,6 +100,5 @@
         verifier.executeGoals( goals );
 
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3714ToolchainsCliOptionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3714ToolchainsCliOptionTest.java
index 5bfc156..54088c2 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3714ToolchainsCliOptionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3714ToolchainsCliOptionTest.java
@@ -70,7 +70,6 @@
         verifier.addCliOption( "toolchains.xml" );
         verifier.executeGoal( "initialize" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/toolchains.properties" );
         Properties results = verifier.loadProperties( "target/toolchains.properties" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3716AggregatorForkingTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3716AggregatorForkingTest.java
index 97953cf..b0dbdd9 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3716AggregatorForkingTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3716AggregatorForkingTest.java
@@ -57,12 +57,10 @@
         verifier.executeGoal( "install" );
 
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier = newVerifier( projectsDir.getAbsolutePath() );
         verifier.executeGoal( "org.apache.maven.its.mng3716:mavenit-mng3716-plugin:1:run" );
 
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3719PomExecutionOrderingTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3719PomExecutionOrderingTest.java
index 98b8447..c66c48f 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3719PomExecutionOrderingTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3719PomExecutionOrderingTest.java
@@ -60,7 +60,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Pattern pattern = Pattern.compile( ".*step-([0-9])\\.properties.*" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3723ConcreteParentProjectTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3723ConcreteParentProjectTest.java
index 89c0e4b..fd44c86 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3723ConcreteParentProjectTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3723ConcreteParentProjectTest.java
@@ -62,12 +62,10 @@
 
         verifier.executeGoal( "install" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier = newVerifier( projectDir.getAbsolutePath() );
 
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3724ExecutionProjectSyncTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3724ExecutionProjectSyncTest.java
index e1fc2d9..ac27d0e 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3724ExecutionProjectSyncTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3724ExecutionProjectSyncTest.java
@@ -57,12 +57,10 @@
 
         verifier.executeGoal( "install" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier = newVerifier( projectDir.getAbsolutePath() );
 
         verifier.executeGoal( "package" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3729MultiForkAggregatorsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3729MultiForkAggregatorsTest.java
index 34f5480..7234218 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3729MultiForkAggregatorsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3729MultiForkAggregatorsTest.java
@@ -71,12 +71,10 @@
 
         verifier.executeGoal( "install" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier = newVerifier( projectDir.getAbsolutePath() );
 
         verifier.executeGoal( "package" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3732ActiveProfilesTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3732ActiveProfilesTest.java
index a865531..fd7e320 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3732ActiveProfilesTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3732ActiveProfilesTest.java
@@ -71,7 +71,6 @@
         }
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/profile.properties" );
         List<String> ids = new ArrayList<>();
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3740SelfReferentialReactorProjectsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3740SelfReferentialReactorProjectsTest.java
index 5ad9fa7..2072565 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3740SelfReferentialReactorProjectsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3740SelfReferentialReactorProjectsTest.java
@@ -58,12 +58,10 @@
         verifier = newVerifier( v1.getAbsolutePath(), "remote" );
         verifier.executeGoal( "install" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier = newVerifier( v2.getAbsolutePath() );
         verifier.executeGoal( "package" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
     }
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3746POMPropertyOverrideTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3746POMPropertyOverrideTest.java
index e1fc4ec..70f6428 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3746POMPropertyOverrideTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3746POMPropertyOverrideTest.java
@@ -58,13 +58,11 @@
         verifier.setLogFileName( "log-sys.txt" );
         verifier.executeGoal( "install" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier = newVerifier( projectDir.getAbsolutePath() );
         verifier.setLogFileName( "log-sys.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
     @Test
@@ -83,7 +81,6 @@
         verifier.setLogFileName( "log-cli.txt" );
         verifier.executeGoal( "install" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier = newVerifier( projectDir.getAbsolutePath() );
         verifier.setLogFileName( "log-cli.txt" );
@@ -94,6 +91,5 @@
 
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3747PrefixedPathExpressionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3747PrefixedPathExpressionTest.java
index 40d03b5..98cc0df 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3747PrefixedPathExpressionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3747PrefixedPathExpressionTest.java
@@ -55,7 +55,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/config.properties" );
         assertEquals( "path is: " + new File( testDir, "relative" ).getCanonicalPath() + "/somepath",
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3748BadSettingsXmlTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3748BadSettingsXmlTest.java
index 435a3c2..3f97b20 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3748BadSettingsXmlTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3748BadSettingsXmlTest.java
@@ -89,8 +89,6 @@
             }
             assertTrue( foundWarning );
         }
-
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3766ToolchainsFromExtensionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3766ToolchainsFromExtensionTest.java
index 50a55cb..9e5ebe5 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3766ToolchainsFromExtensionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3766ToolchainsFromExtensionTest.java
@@ -59,7 +59,6 @@
         verifier.addCliOption( "toolchains.xml" );
         verifier.executeGoal( "initialize" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/tool.properties" );
         Properties toolProps = verifier.loadProperties( "target/tool.properties" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3769ExclusionRelocatedTransdepsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3769ExclusionRelocatedTransdepsTest.java
index 68d0005..05cbe77 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3769ExclusionRelocatedTransdepsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3769ExclusionRelocatedTransdepsTest.java
@@ -63,7 +63,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> artifacts = verifier.loadLines( "target/artifacts.txt", "UTF-8" );
         assertEquals( Collections.singletonList( "org.apache.maven.its.mng3769:dependency:jar:1.0" ), artifacts );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3775ConflictResolutionBacktrackingTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3775ConflictResolutionBacktrackingTest.java
index 5a52a15..753cb15 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3775ConflictResolutionBacktrackingTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3775ConflictResolutionBacktrackingTest.java
@@ -102,7 +102,6 @@
         verifier.filterFile( "../settings-template.xml", "settings.xml", "UTF-8", verifier.newDefaultFilterProperties() );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> test = verifier.loadLines( "target/test.txt", "UTF-8" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3796ClassImportInconsistencyTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3796ClassImportInconsistencyTest.java
index c9d8eae..b3771dc 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3796ClassImportInconsistencyTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3796ClassImportInconsistencyTest.java
@@ -57,7 +57,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties pclProps = verifier.loadProperties( "target/pcl.properties" );
         assertNotNull( pclProps.getProperty( "org.codehaus.plexus.util.xml.Xpp3Dom" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3805ExtensionClassPathOrderingTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3805ExtensionClassPathOrderingTest.java
index 41e0e25..bca5683 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3805ExtensionClassPathOrderingTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3805ExtensionClassPathOrderingTest.java
@@ -62,7 +62,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties wclProps = verifier.loadProperties( "target/wcl.properties" );
         String prefix = "org/apache/maven/its/mng3805/a.properties.";
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3807PluginConfigExpressionEvaluationTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3807PluginConfigExpressionEvaluationTest.java
index 986634c..9afcdfc 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3807PluginConfigExpressionEvaluationTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3807PluginConfigExpressionEvaluationTest.java
@@ -57,7 +57,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/config.properties" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3808ReportInheritanceOrderingTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3808ReportInheritanceOrderingTest.java
index 6c02a9f..3b6f985 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3808ReportInheritanceOrderingTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3808ReportInheritanceOrderingTest.java
@@ -59,7 +59,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/model.properties" );
         Properties props = verifier.loadProperties( "target/model.properties" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3810BadProfileActivationTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3810BadProfileActivationTest.java
index caaa5c4..9737e6c 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3810BadProfileActivationTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3810BadProfileActivationTest.java
@@ -59,7 +59,6 @@
         {
             verifier.verifyTextInLog( "The property name is required to activate the profile" );
         }
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3811ReportingPluginConfigurationInheritanceTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3811ReportingPluginConfigurationInheritanceTest.java
index bfaa916..2008dc7 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3811ReportingPluginConfigurationInheritanceTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3811ReportingPluginConfigurationInheritanceTest.java
@@ -58,7 +58,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/config.properties" );
         String p = "project.reporting.plugins.0.configuration.children.";
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3813PluginClassPathOrderingTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3813PluginClassPathOrderingTest.java
index 3f9acd8..4c0e989 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3813PluginClassPathOrderingTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3813PluginClassPathOrderingTest.java
@@ -62,7 +62,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties pclProps = verifier.loadProperties( "target/pcl.properties" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3814BogusProjectCycleTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3814BogusProjectCycleTest.java
index 2790dd7..8d6a951 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3814BogusProjectCycleTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3814BogusProjectCycleTest.java
@@ -60,7 +60,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3821EqualPluginExecIdsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3821EqualPluginExecIdsTest.java
index e8e1487..8653dfb 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3821EqualPluginExecIdsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3821EqualPluginExecIdsTest.java
@@ -58,7 +58,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3822BasedirAlignedInterpolationTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3822BasedirAlignedInterpolationTest.java
index 15251c5..51dda81 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3822BasedirAlignedInterpolationTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3822BasedirAlignedInterpolationTest.java
@@ -58,7 +58,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "initialize" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties pomProps = verifier.loadProperties( "target/interpolated.properties" );
         assertEquals( testDir, "src/main/java", pomProps.getProperty( "project.properties.buildMainSrc" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3827PluginConfigTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3827PluginConfigTest.java
index 2e5c7da..bf54161 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3827PluginConfigTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3827PluginConfigTest.java
@@ -58,7 +58,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/plugin-config.properties" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3831PomInterpolationTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3831PomInterpolationTest.java
index 3756d69..94f4186 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3831PomInterpolationTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3831PomInterpolationTest.java
@@ -57,7 +57,6 @@
         Verifier verifier = newVerifier( child.getAbsolutePath() );
         verifier.executeGoal( "initialize" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/interpolated.properties" );
         String prefix = "project.properties.";
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3833PomInterpolationDataFlowChainTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3833PomInterpolationDataFlowChainTest.java
index c0a0e56..497d1b8 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3833PomInterpolationDataFlowChainTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3833PomInterpolationDataFlowChainTest.java
@@ -59,7 +59,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/interpolated.properties" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3836PluginConfigInheritanceTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3836PluginConfigInheritanceTest.java
index 0186ac3..3e4dbf1 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3836PluginConfigInheritanceTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3836PluginConfigInheritanceTest.java
@@ -58,7 +58,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/plugin-config.properties" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3838EqualPluginDepsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3838EqualPluginDepsTest.java
index 57da30a..71e6326 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3838EqualPluginDepsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3838EqualPluginDepsTest.java
@@ -55,7 +55,6 @@
         verifier.setAutoclean( false );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3839PomParsingCoalesceTextTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3839PomParsingCoalesceTextTest.java
index 22d1abc..e51e782 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3839PomParsingCoalesceTextTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3839PomParsingCoalesceTextTest.java
@@ -58,7 +58,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/xml.properties" );
         assertEquals( "A  Test  Project Property", props.getProperty( "project.properties.prop0" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3843PomInheritanceTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3843PomInheritanceTest.java
index d34b921..707d866 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3843PomInheritanceTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3843PomInheritanceTest.java
@@ -68,7 +68,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props;
         File basedir;
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3845LimitedPomInheritanceTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3845LimitedPomInheritanceTest.java
index 6c78434..303872a 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3845LimitedPomInheritanceTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3845LimitedPomInheritanceTest.java
@@ -58,7 +58,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/pom.properties" );
         assertEquals( "child-org", props.getProperty( "project.organization.name", "" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3846PomInheritanceUrlAdjustmentTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3846PomInheritanceUrlAdjustmentTest.java
index f91c335..7a89c7e 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3846PomInheritanceUrlAdjustmentTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3846PomInheritanceUrlAdjustmentTest.java
@@ -58,7 +58,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/pom.properties" );
         assertEquals( "http://parent.url/child", props.getProperty( "project.url" ) );
@@ -92,7 +91,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/pom.properties" );
         assertEquals( "http://parent.url/ap/child", props.getProperty( "project.url" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3852PluginConfigWithHeterogeneousListTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3852PluginConfigWithHeterogeneousListTest.java
index 0d6cb1b..73c1848 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3852PluginConfigWithHeterogeneousListTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3852PluginConfigWithHeterogeneousListTest.java
@@ -59,7 +59,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/plugin-config.properties" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3853ProfileInjectedDistReposTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3853ProfileInjectedDistReposTest.java
index 7359722..9011952 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3853ProfileInjectedDistReposTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3853ProfileInjectedDistReposTest.java
@@ -63,7 +63,6 @@
         verifier.addCliOption( "-Pcoreit" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/dist.properties" );
         assertEquals( "1", props.getProperty( "listParam" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3863AutoPluginGroupIdTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3863AutoPluginGroupIdTest.java
index e7d49c8..7206257 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3863AutoPluginGroupIdTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3863AutoPluginGroupIdTest.java
@@ -66,7 +66,6 @@
         {
             // expected
         }
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3864PerExecPluginConfigTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3864PerExecPluginConfigTest.java
index 2c0b537..bd2a0cc 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3864PerExecPluginConfigTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3864PerExecPluginConfigTest.java
@@ -58,7 +58,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/plugin-config.properties" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3866PluginConfigInheritanceTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3866PluginConfigInheritanceTest.java
index 15101c7..03e21c1 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3866PluginConfigInheritanceTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3866PluginConfigInheritanceTest.java
@@ -59,7 +59,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/plugin-config.properties" );
         assertEquals( "PASSED", props.getProperty( "stringParam" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3872ProfileActivationInRelocatedPomTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3872ProfileActivationInRelocatedPomTest.java
index bd7b2c6..a993ad2 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3872ProfileActivationInRelocatedPomTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3872ProfileActivationInRelocatedPomTest.java
@@ -63,7 +63,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> compileClassPath = verifier.loadLines( "target/compile.txt", "UTF-8" );
         assertTrue( compileClassPath.toString(), compileClassPath.contains( "a-0.1.jar" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3873MultipleExecutionGoalsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3873MultipleExecutionGoalsTest.java
index 324d587..2db7f69 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3873MultipleExecutionGoalsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3873MultipleExecutionGoalsTest.java
@@ -78,7 +78,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         /*
          * NOTE: We deliberately don't check the exact order here, that's another issue.
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3877BasedirAlignedModelTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3877BasedirAlignedModelTest.java
index e943093..41b652c 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3877BasedirAlignedModelTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3877BasedirAlignedModelTest.java
@@ -59,7 +59,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties modelProps = verifier.loadProperties( "target/model.properties" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3886ExecutionGoalsOrderTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3886ExecutionGoalsOrderTest.java
index 6726fc3..6daa34e 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3886ExecutionGoalsOrderTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3886ExecutionGoalsOrderTest.java
@@ -79,7 +79,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> lines = verifier.loadLines( "target/it.log", "UTF-8" );
         assertEquals( Arrays.asList( new String[] { "test", "----" } ), lines );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3887PluginExecutionOrderTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3887PluginExecutionOrderTest.java
index a77c2d4..9f9c4fd 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3887PluginExecutionOrderTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3887PluginExecutionOrderTest.java
@@ -79,7 +79,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> lines = verifier.loadLines( "target/it.log", "UTF-8" );
         assertEquals( Arrays.asList( new String[] { "test", "----" } ), lines );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3890TransitiveDependencyScopeUpdateTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3890TransitiveDependencyScopeUpdateTest.java
index 4a2eade..271c99c 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3890TransitiveDependencyScopeUpdateTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3890TransitiveDependencyScopeUpdateTest.java
@@ -63,7 +63,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> artifacts = verifier.loadLines( "target/artifacts.txt", "UTF-8" );
         assertTrue( artifacts.toString(), artifacts.contains( "org.apache.maven.its.mng3890:c:jar:0.1" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3892ReleaseDeploymentTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3892ReleaseDeploymentTest.java
index cbcf47a..6e28790 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3892ReleaseDeploymentTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3892ReleaseDeploymentTest.java
@@ -61,7 +61,6 @@
         verifier.deleteArtifacts( "org.apache.maven.its.mng3892" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyArtifactPresent( "org.apache.maven.its.mng3892", "test", "1.0", "pom" );
         verifier.verifyArtifactPresent( "org.apache.maven.its.mng3892", "test", "1.0", "jar" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3899ExtensionInheritanceTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3899ExtensionInheritanceTest.java
index 7a87cf9..aef7676 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3899ExtensionInheritanceTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3899ExtensionInheritanceTest.java
@@ -62,7 +62,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/extension.properties" );
         assertEquals( "3", props.getProperty( "project.build.extensions" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3900ProfilePropertiesInterpolationTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3900ProfilePropertiesInterpolationTest.java
index 963ea89..fb86758 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3900ProfilePropertiesInterpolationTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3900ProfilePropertiesInterpolationTest.java
@@ -59,7 +59,6 @@
         verifier.addCliOption( "-Pinterpolation-profile" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/pom.properties" );
         assertEquals( "PASSED", props.getProperty( "project.properties.test" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3904NestedBuildDirInterpolationTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3904NestedBuildDirInterpolationTest.java
index 5103277..6da9628 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3904NestedBuildDirInterpolationTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3904NestedBuildDirInterpolationTest.java
@@ -59,7 +59,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/pom.properties" );
         assertCanonicalFileEquals( new File( testDir, "target/classes/dir0" ),
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3906MergedPluginClassPathOrderingTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3906MergedPluginClassPathOrderingTest.java
index 0a4d832..3047628 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3906MergedPluginClassPathOrderingTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3906MergedPluginClassPathOrderingTest.java
@@ -62,7 +62,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties pclProps = verifier.loadProperties( "target/pcl.properties" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3916PluginExecutionInheritanceTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3916PluginExecutionInheritanceTest.java
index 353073c..8a53a0b 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3916PluginExecutionInheritanceTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3916PluginExecutionInheritanceTest.java
@@ -61,7 +61,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> executions = verifier.loadLines( "target/exec.log", "UTF-8" );
         // NOTE: Ordering of executions is another issue (MNG-3887), so ignore/normalize order
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3924XmlMarkupInterpolationTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3924XmlMarkupInterpolationTest.java
index ccb1c88..8e81e7e 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3924XmlMarkupInterpolationTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3924XmlMarkupInterpolationTest.java
@@ -59,7 +59,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/xml.properties" );
         assertEquals( "<?xml version='1.0'?>Tom&Jerry", props.getProperty( "project.properties.xmlMarkup" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3925MergedPluginExecutionOrderTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3925MergedPluginExecutionOrderTest.java
index 5774e9b..a33c386 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3925MergedPluginExecutionOrderTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3925MergedPluginExecutionOrderTest.java
@@ -79,7 +79,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> lines = verifier.loadLines( "target/exec.log", "UTF-8" );
         // Order is parent first and child appended, unless child overrides parent execution via equal id
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3927PluginDefaultExecutionConfigTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3927PluginDefaultExecutionConfigTest.java
index ef8fab3..c2ac8c5 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3927PluginDefaultExecutionConfigTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3927PluginDefaultExecutionConfigTest.java
@@ -58,7 +58,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "process-resources" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFileNotPresent( "target/failed.txt" );
         verifier.verifyFilePresent( "target/resources-resources.txt" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3937MergedPluginExecutionGoalsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3937MergedPluginExecutionGoalsTest.java
index 0f0c017..35cc2f1 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3937MergedPluginExecutionGoalsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3937MergedPluginExecutionGoalsTest.java
@@ -79,7 +79,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> lines = verifier.loadLines( "target/exec.log", "UTF-8" );
         // Order is child first and parent appended but without duplicate goals
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3938MergePluginExecutionsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3938MergePluginExecutionsTest.java
index da73a96..03dcbc1 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3938MergePluginExecutionsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3938MergePluginExecutionsTest.java
@@ -81,7 +81,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> lines = verifier.loadLines( "target/default.log", "UTF-8" );
         assertEquals( Arrays.asList( new String[] { "child" } ), lines );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3940EnvVarInterpolationTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3940EnvVarInterpolationTest.java
index 11dceab..fa0a6cf 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3940EnvVarInterpolationTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3940EnvVarInterpolationTest.java
@@ -76,7 +76,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate", envVars );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/PASSED.properties" );
         Properties props = verifier.loadProperties( "target/PASSED.properties" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3941ExecutionProjectRestrictedToForkingMojoTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3941ExecutionProjectRestrictedToForkingMojoTest.java
index 2b6b75b..c19c9ba 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3941ExecutionProjectRestrictedToForkingMojoTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3941ExecutionProjectRestrictedToForkingMojoTest.java
@@ -59,7 +59,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "initialize" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/fork.properties" );
         assertEquals( "test-0.1", props.getProperty( "executedProject.build.finalName" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3943PluginExecutionInheritanceTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3943PluginExecutionInheritanceTest.java
index 96fea1d..0bb5d6f 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3943PluginExecutionInheritanceTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3943PluginExecutionInheritanceTest.java
@@ -61,7 +61,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> executions = verifier.loadLines( "target/exec.log", "UTF-8" );
         // NOTE: Ordering of executions is another issue (MNG-3887), so ignore/normalize order
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3944BasedirInterpolationTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3944BasedirInterpolationTest.java
index 55decb4..7592153 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3944BasedirInterpolationTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3944BasedirInterpolationTest.java
@@ -60,7 +60,6 @@
         verifier.addCliOption( "pom-with-unusual-name.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/basedir.properties" );
         Properties props = verifier.loadProperties( "target/basedir.properties" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3947PluginDefaultExecutionConfigTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3947PluginDefaultExecutionConfigTest.java
index 29fbd71..2b9d3f9 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3947PluginDefaultExecutionConfigTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3947PluginDefaultExecutionConfigTest.java
@@ -58,7 +58,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "org.apache.maven.plugins:maven-resources-plugin:resources" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFileNotPresent( "target/failed.txt" );
         verifier.verifyFilePresent( "target/resources-resources.txt" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3948ParentResolutionFromProfileReposTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3948ParentResolutionFromProfileReposTest.java
index d13562c..a572997 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3948ParentResolutionFromProfileReposTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3948ParentResolutionFromProfileReposTest.java
@@ -60,7 +60,6 @@
         verifier.filterFile( "pom.xml", "pom.xml", "UTF-8", verifier.newDefaultFilterProperties() );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyArtifactPresent( "org.apache.maven.its.mng3948", "parent", "0.2", "pom" );
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3951AbsolutePathsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3951AbsolutePathsTest.java
index 281d1cc..4df0b57 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3951AbsolutePathsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3951AbsolutePathsTest.java
@@ -71,7 +71,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/path.properties" );
         Properties props = verifier.loadProperties( "target/path.properties" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3953AuthenticatedDeploymentTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3953AuthenticatedDeploymentTest.java
index 76abfde..c1c9c83 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3953AuthenticatedDeploymentTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3953AuthenticatedDeploymentTest.java
@@ -174,7 +174,6 @@
         verifier.addCliOption( "-DdeploymentPort=" + port );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         assertTrue( deployed );
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3955EffectiveSettingsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3955EffectiveSettingsTest.java
index c98cb38..0d7033c 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3955EffectiveSettingsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3955EffectiveSettingsTest.java
@@ -62,7 +62,6 @@
         verifier.addCliOption( "--batch-mode" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/settings.properties" );
         assertEquals( "true", props.getProperty( "settings.offline" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3970DepResolutionFromProfileReposTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3970DepResolutionFromProfileReposTest.java
index f0b4659..2276219 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3970DepResolutionFromProfileReposTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3970DepResolutionFromProfileReposTest.java
@@ -60,7 +60,6 @@
         verifier.filterFile( "pom.xml", "pom.xml", "UTF-8", verifier.newDefaultFilterProperties() );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyArtifactPresent( "org.apache.maven.its.mng3970", "a", "0.1", "jar" );
     }
@@ -84,7 +83,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyArtifactPresent( "org.apache.maven.its.mng3970", "a", "0.1", "jar" );
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3974MirrorOrderingTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3974MirrorOrderingTest.java
index af7a43a..b507151 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3974MirrorOrderingTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3974MirrorOrderingTest.java
@@ -61,7 +61,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyArtifactPresent( "org.apache.maven.its.mng3974", "a", "0.1", "jar" );
         verifier.verifyArtifactPresent( "org.apache.maven.its.mng3974", "b", "0.1", "jar" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3979ElementJoinTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3979ElementJoinTest.java
index 8acfdfe..0bfd106 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3979ElementJoinTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3979ElementJoinTest.java
@@ -59,7 +59,6 @@
         verifier.setAutoclean( false );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3983PluginResolutionFromProfileReposTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3983PluginResolutionFromProfileReposTest.java
index 3d79614..5b2416f 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3983PluginResolutionFromProfileReposTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3983PluginResolutionFromProfileReposTest.java
@@ -62,7 +62,6 @@
         verifier.filterFile( "pom.xml", "pom.xml", "UTF-8", verifier.newDefaultFilterProperties() );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyArtifactPresent( "org.apache.maven.its.mng3983", "p", "0.1", "jar" );
     }
@@ -88,7 +87,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyArtifactPresent( "org.apache.maven.its.mng3983", "p", "0.1", "jar" );
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3991ValidDependencyScopeTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3991ValidDependencyScopeTest.java
index 6388dd4..bf85359 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3991ValidDependencyScopeTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3991ValidDependencyScopeTest.java
@@ -66,10 +66,6 @@
         {
             // expected
         }
-        finally
-        {
-            verifier.resetStreams();
-        }
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3998PluginExecutionConfigTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3998PluginExecutionConfigTest.java
index 8856b25..473ba4e 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3998PluginExecutionConfigTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3998PluginExecutionConfigTest.java
@@ -60,7 +60,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> executions = verifier.loadLines( "target/exec.log", "UTF-8" );
         // NOTE: Ordering of executions is another issue (MNG-3887), so ignore/normalize order
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4000MultiPluginExecutionsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4000MultiPluginExecutionsTest.java
index 6c09e57..fbe5c08 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4000MultiPluginExecutionsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4000MultiPluginExecutionsTest.java
@@ -60,7 +60,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> executions = verifier.loadLines( "target/exec.log", "UTF-8" );
         List<String> expected = Arrays.asList( new String[] { "exec", "exec" } );
@@ -84,7 +83,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> executions = verifier.loadLines( "target/exec.log", "UTF-8" );
         List<String> expected = Arrays.asList( new String[] { "exec", "exec" } );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4005UniqueDependencyKeyTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4005UniqueDependencyKeyTest.java
index 61acf89..a26456f 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4005UniqueDependencyKeyTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4005UniqueDependencyKeyTest.java
@@ -105,7 +105,6 @@
         {
             // expected with Maven 4+
         }
-        verifier.resetStreams();
 
         String logLevel;
         if ( matchesVersionRange( "(,4.0.0-alpha-1)" ) )
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4007PlatformFileSeparatorTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4007PlatformFileSeparatorTest.java
index 86267bf..d675da2 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4007PlatformFileSeparatorTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4007PlatformFileSeparatorTest.java
@@ -58,7 +58,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties modelProps = verifier.loadProperties( "target/model.properties" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4008MergedFilterOrderTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4008MergedFilterOrderTest.java
index e7590a9..07a7061 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4008MergedFilterOrderTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4008MergedFilterOrderTest.java
@@ -58,7 +58,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties modelProps = verifier.loadProperties( "target/model.properties" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4009InheritProfileEffectsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4009InheritProfileEffectsTest.java
index b1756cf..865f910 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4009InheritProfileEffectsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4009InheritProfileEffectsTest.java
@@ -59,7 +59,6 @@
         verifier.addCliOption( "-Pparent-profile" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/profile.properties" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4016PrefixedPropertyInterpolationTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4016PrefixedPropertyInterpolationTest.java
index a46203b..e244d69 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4016PrefixedPropertyInterpolationTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4016PrefixedPropertyInterpolationTest.java
@@ -59,7 +59,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/model.properties" );
         Properties props = verifier.loadProperties( "target/model.properties" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4022IdempotentPluginConfigMergingTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4022IdempotentPluginConfigMergingTest.java
index 476c723..d63c3c4 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4022IdempotentPluginConfigMergingTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4022IdempotentPluginConfigMergingTest.java
@@ -59,7 +59,6 @@
         verifier.addCliOption( "-Pmng4022a,mng4022b" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/config.properties" );
         assertEquals( "5", props.getProperty( "stringParams" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4023ParentProfileOneTimeInjectionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4023ParentProfileOneTimeInjectionTest.java
index ff5c9a6..f419180 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4023ParentProfileOneTimeInjectionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4023ParentProfileOneTimeInjectionTest.java
@@ -60,7 +60,6 @@
         verifier.deleteDirectory( "sub/target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "sub/target/config.properties" );
         assertEquals( "1", props.getProperty( "stringParams" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4026ReactorDependenciesOrderTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4026ReactorDependenciesOrderTest.java
index c12862e..cab2f72 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4026ReactorDependenciesOrderTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4026ReactorDependenciesOrderTest.java
@@ -60,7 +60,6 @@
         verifier.deleteDirectory( "consumer/target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> classpath1 = verifier.loadLines( "consumer/target/classpath-1.txt", "UTF-8" );
         assertEquals( 5, classpath1.size() );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4034ManagedProfileDependencyTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4034ManagedProfileDependencyTest.java
index 10d7aa1..8ffc3d4 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4034ManagedProfileDependencyTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4034ManagedProfileDependencyTest.java
@@ -61,7 +61,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> artifacts = verifier.loadLines( "target/compile.txt", "UTF-8" );
         assertEquals( Arrays.asList( new String[0] ), artifacts );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4036ParentResolutionFromSettingsRepoTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4036ParentResolutionFromSettingsRepoTest.java
index 23670fb..1b3af8d 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4036ParentResolutionFromSettingsRepoTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4036ParentResolutionFromSettingsRepoTest.java
@@ -59,7 +59,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyArtifactPresent( "org.apache.maven.its.mng4036", "parent", "0.2", "pom" );
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4040ProfileInjectedModulesTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4040ProfileInjectedModulesTest.java
index dd6c13f..682767a 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4040ProfileInjectedModulesTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4040ProfileInjectedModulesTest.java
@@ -56,7 +56,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4048VersionRangeReactorResolutionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4048VersionRangeReactorResolutionTest.java
index b6981cb..562e23e 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4048VersionRangeReactorResolutionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4048VersionRangeReactorResolutionTest.java
@@ -58,7 +58,6 @@
         verifier.deleteArtifacts( "org.apache.maven.its.mng4048" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> artifacts = verifier.loadLines( "sub-2/target/compile.txt", "UTF-8" );
         assertTrue( artifacts.toString(), artifacts.contains( "org.apache.maven.its.mng4048:sub-1:jar:1.1-SNAPSHOT" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4052ReactorAwareImportScopeTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4052ReactorAwareImportScopeTest.java
index ca99d1e..10b2d62 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4052ReactorAwareImportScopeTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4052ReactorAwareImportScopeTest.java
@@ -58,7 +58,6 @@
         verifier.setAutoclean( false );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4053PluginConfigAttributesTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4053PluginConfigAttributesTest.java
index db4a9f8..119addd 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4053PluginConfigAttributesTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4053PluginConfigAttributesTest.java
@@ -90,7 +90,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/config.properties" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4056ClassifierBasedDepResolutionFromReactorTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4056ClassifierBasedDepResolutionFromReactorTest.java
index b9682ca..4c5a5b2 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4056ClassifierBasedDepResolutionFromReactorTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4056ClassifierBasedDepResolutionFromReactorTest.java
@@ -59,7 +59,6 @@
         verifier.deleteArtifacts( "org.apache.maven.its.mng4056" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> artifacts = verifier.loadLines( "consumer/target/artifacts.txt", "UTF-8" );
         if ( matchesVersionRange( "[3.0-alpha-3,)" ) )
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4068AuthenticatedMirrorTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4068AuthenticatedMirrorTest.java
index 8cd13bd..8210911 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4068AuthenticatedMirrorTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4068AuthenticatedMirrorTest.java
@@ -140,7 +140,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyArtifactPresent( "org.apache.maven.its.mng4068", "a", "0.1", "jar" );
         verifier.verifyArtifactPresent( "org.apache.maven.its.mng4068", "b", "0.1-SNAPSHOT", "jar" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4070WhitespaceTrimmingTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4070WhitespaceTrimmingTest.java
index 655e3e0..1a09559 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4070WhitespaceTrimmingTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4070WhitespaceTrimmingTest.java
@@ -62,7 +62,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> artifacts = verifier.loadLines( "target/artifacts.txt", "UTF-8" );
         assertEquals( Collections.singletonList( "org.apache.maven.its.mng4070:a:jar:0.1" ), artifacts );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4072InactiveProfileReposTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4072InactiveProfileReposTest.java
index bb9967a..82dc8c5 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4072InactiveProfileReposTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4072InactiveProfileReposTest.java
@@ -71,10 +71,6 @@
         {
             // expected, all profiles are inactive, hence the repos inaccessible
         }
-        finally
-        {
-            verifier.resetStreams();
-        }
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4087PercentEncodedFileUrlTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4087PercentEncodedFileUrlTest.java
index 039321c..f81f261 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4087PercentEncodedFileUrlTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4087PercentEncodedFileUrlTest.java
@@ -58,7 +58,6 @@
         verifier.filterFile( "pom-template.xml", "pom.xml", "UTF-8", verifier.newDefaultFilterProperties() );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFileNotPresent( "target/%72%65%70%6F" );
         verifier.verifyFilePresent( "target/repo" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4091BadPluginDescriptorTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4091BadPluginDescriptorTest.java
index 1806226..39ab951 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4091BadPluginDescriptorTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4091BadPluginDescriptorTest.java
@@ -61,10 +61,6 @@
         {
             // expected...it'd be nice if we could get the specifics of the exception right here...
         }
-        finally
-        {
-            verifier.resetStreams();
-        }
 
         List<String> logFile = verifier.loadFile( verifier.getBasedir(), verifier.getLogFileName(), false );
 
@@ -94,7 +90,6 @@
 
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/plugin-dependency.properties" );
         assertTrue( props.isEmpty() );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4102InheritedPropertyInterpolationTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4102InheritedPropertyInterpolationTest.java
index 20cc231..6bb6fa6 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4102InheritedPropertyInterpolationTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4102InheritedPropertyInterpolationTest.java
@@ -81,7 +81,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/pom.properties" );
         assertEquals( "CHILD", props.getProperty( "project.properties.overridden" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4106InterpolationUsesDominantProfileTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4106InterpolationUsesDominantProfileTest.java
index 1ac112c..a9df848 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4106InterpolationUsesDominantProfileTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4106InterpolationUsesDominantProfileTest.java
@@ -69,7 +69,6 @@
         }
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/pom.properties" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4107InterpolationUsesDominantProfileSourceTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4107InterpolationUsesDominantProfileSourceTest.java
index 4cbe117..1140245 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4107InterpolationUsesDominantProfileSourceTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4107InterpolationUsesDominantProfileSourceTest.java
@@ -61,7 +61,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/pom.properties" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4112MavenVersionPropertyTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4112MavenVersionPropertyTest.java
index 0b4b91e..7e75c9f 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4112MavenVersionPropertyTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4112MavenVersionPropertyTest.java
@@ -62,7 +62,6 @@
         assertTrue( testMavenBuildVersion, testMavenBuildVersion.contains( testMavenVersion ) );
 
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4116UndecodedUrlsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4116UndecodedUrlsTest.java
index da473c8..b2c9a29 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4116UndecodedUrlsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4116UndecodedUrlsTest.java
@@ -57,7 +57,6 @@
         verifier.setAutoclean( false );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/pom.properties" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4129PluginExecutionInheritanceTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4129PluginExecutionInheritanceTest.java
index a52ac66..fa87a65 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4129PluginExecutionInheritanceTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4129PluginExecutionInheritanceTest.java
@@ -62,7 +62,6 @@
         verifier.deleteDirectory( "child-2/target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> executions = verifier.loadLines( "target/executions.txt", "UTF-8" );
         Collections.sort( executions );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4150VersionRangeTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4150VersionRangeTest.java
index 0d82765..c638289 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4150VersionRangeTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4150VersionRangeTest.java
@@ -61,7 +61,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Collection<String> artifacts = verifier.loadLines( "target/artifacts.txt", "UTF-8" );
         assertEquals( 4, artifacts.size() );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4162ReportingMigrationTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4162ReportingMigrationTest.java
index 9dd727a..417cfd6 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4162ReportingMigrationTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4162ReportingMigrationTest.java
@@ -58,7 +58,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         String p = "project.build.plugins.0.executions.0.configuration.children.";
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4166HideCoreCommonsCliTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4166HideCoreCommonsCliTest.java
index 455b7da..75544af 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4166HideCoreCommonsCliTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4166HideCoreCommonsCliTest.java
@@ -64,7 +64,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/class.properties" );
         assertNotNull( props.getProperty( "org.apache.maven.its.mng4166.CoreIt" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4172EmptyDependencySetTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4172EmptyDependencySetTest.java
index 8a651b3..73f4011 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4172EmptyDependencySetTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4172EmptyDependencySetTest.java
@@ -58,7 +58,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> artifacts = verifier.loadLines( "target/artifacts.txt", "UTF-8" );
         assertEquals( new ArrayList<String>(), artifacts );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4180PerDependencyExclusionsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4180PerDependencyExclusionsTest.java
index b71698f..0991f75 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4180PerDependencyExclusionsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4180PerDependencyExclusionsTest.java
@@ -64,7 +64,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> artifacts = verifier.loadLines( "target/artifacts.txt", "UTF-8" );
         Collections.sort( artifacts );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4189UniqueVersionSnapshotTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4189UniqueVersionSnapshotTest.java
index 72453ce..7242257 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4189UniqueVersionSnapshotTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4189UniqueVersionSnapshotTest.java
@@ -60,7 +60,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.setLogFileName( "log-1.txt" );
         verifier.executeGoal( "validate" );
-        verifier.resetStreams();
 
         verifier.verifyErrorFreeLog();
         Properties checksums = verifier.loadProperties( "target/checksum.properties" );
@@ -76,7 +75,6 @@
         verifier.addCliOption( "dependent-on-newer-timestamp-pom.xml" );
         verifier.setLogFileName( "log-2.txt" );
         verifier.executeGoal( "validate" );
-        verifier.resetStreams();
 
         verifier.verifyErrorFreeLog();
         checksums = verifier.loadProperties( "target/checksum.properties" );
@@ -90,7 +88,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.setLogFileName( "log-3.txt" );
         verifier.executeGoal( "validate" );
-        verifier.resetStreams();
 
         verifier.verifyErrorFreeLog();
         checksums = verifier.loadProperties( "target/checksum.properties" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4190MirrorRepoMergingTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4190MirrorRepoMergingTest.java
index fdb6948..74f3a84 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4190MirrorRepoMergingTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4190MirrorRepoMergingTest.java
@@ -66,7 +66,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> artifacts = verifier.loadLines( "target/artifacts.txt", "UTF-8" );
         Collections.sort( artifacts );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4193UniqueRepoIdTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4193UniqueRepoIdTest.java
index 984ed83..707510c 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4193UniqueRepoIdTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4193UniqueRepoIdTest.java
@@ -65,10 +65,6 @@
         {
             // expected
         }
-        finally
-        {
-            verifier.resetStreams();
-        }
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4196ExclusionOnPluginDepTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4196ExclusionOnPluginDepTest.java
index 100ac77..631a88a 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4196ExclusionOnPluginDepTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4196ExclusionOnPluginDepTest.java
@@ -58,7 +58,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties pclProps = verifier.loadProperties( "target/pcl.properties" );
         assertNull( pclProps.getProperty( "org.apache.maven.plugin.coreit.ClassA" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4199CompileMeetsRuntimeScopeTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4199CompileMeetsRuntimeScopeTest.java
index 18c1657..96612b9 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4199CompileMeetsRuntimeScopeTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4199CompileMeetsRuntimeScopeTest.java
@@ -71,7 +71,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> compileArtifacts = verifier.loadLines( "target/compile-artifacts.txt", "UTF-8" );
         assertTrue( compileArtifacts.toString(), compileArtifacts.contains( "org.apache.maven.its.mng4199:system:jar:0.1" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4203TransitiveDependencyExclusionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4203TransitiveDependencyExclusionTest.java
index c644fb5..eb2c011 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4203TransitiveDependencyExclusionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4203TransitiveDependencyExclusionTest.java
@@ -63,7 +63,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> artifacts = verifier.loadLines( "target/artifacts.txt", "UTF-8" );
         Collections.sort( artifacts );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4207PluginWithLog4JTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4207PluginWithLog4JTest.java
index f9e8b36..0302b08 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4207PluginWithLog4JTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4207PluginWithLog4JTest.java
@@ -59,7 +59,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "initialize" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4208InterpolationPrefersCliOverProjectPropsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4208InterpolationPrefersCliOverProjectPropsTest.java
index 110ed1c..d4b491b 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4208InterpolationPrefersCliOverProjectPropsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4208InterpolationPrefersCliOverProjectPropsTest.java
@@ -58,7 +58,6 @@
         verifier.addCliOption( "-DtestProperty=PASSED" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/pom.properties" );
         assertEquals( "PASSED", props.getProperty( "project.properties.interpolatedProperty" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4214MirroredParentSearchReposTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4214MirroredParentSearchReposTest.java
index cca302b..6e80414 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4214MirroredParentSearchReposTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4214MirroredParentSearchReposTest.java
@@ -62,7 +62,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyArtifactPresent( "org.apache.maven.its.mng4214", "parent", "0.1", "pom" );
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4231SnapshotUpdatePolicyTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4231SnapshotUpdatePolicyTest.java
index a18f00b..ce16f28 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4231SnapshotUpdatePolicyTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4231SnapshotUpdatePolicyTest.java
@@ -74,7 +74,6 @@
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
 
-        verifier.resetStreams();
 
         Properties checksums = verifier.loadProperties( "target/checksum.properties" );
         assertChecksum( "db3f17644e813af768ae6e82a6d0a2f29aef8988", "a-0.1-SNAPSHOT.jar", checksums );
@@ -114,7 +113,6 @@
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
 
-        verifier.resetStreams();
 
         Properties checksums = verifier.loadProperties( "target/checksum.properties" );
         assertChecksum( "ec6c9ea65766cc272df0ee26076240d6a93047d5", "a-0.1-SNAPSHOT.jar", checksums );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4233ReactorResolutionForManuallyCreatedArtifactTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4233ReactorResolutionForManuallyCreatedArtifactTest.java
index 2223ae5..27ccad9 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4233ReactorResolutionForManuallyCreatedArtifactTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4233ReactorResolutionForManuallyCreatedArtifactTest.java
@@ -60,7 +60,6 @@
         verifier.deleteDirectory( "consumer/target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "consumer/target/artifact.properties" );
         assertEquals( new File( testDir.getCanonicalFile(), "producer/pom.xml" ), new File(
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4235HttpAuthDeploymentChecksumsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4235HttpAuthDeploymentChecksumsTest.java
index ec10c8d..b5c8419 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4235HttpAuthDeploymentChecksumsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4235HttpAuthDeploymentChecksumsTest.java
@@ -156,7 +156,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         assertHash( verifier, "repo/org/apache/maven/its/mng4235/test/0.1/test-0.1.jar", ".sha1", "SHA-1" );
         assertHash( verifier, "repo/org/apache/maven/its/mng4235/test/0.1/test-0.1.jar", ".md5", "MD5" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4238ArtifactHandlerExtensionUsageTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4238ArtifactHandlerExtensionUsageTest.java
index 9c5ce48..68c244b 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4238ArtifactHandlerExtensionUsageTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4238ArtifactHandlerExtensionUsageTest.java
@@ -62,7 +62,6 @@
         verifier.executeGoal( "install" );
 
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         // Now, if everything worked, we have a .pom and a .jar in the local repo.
         // IF IT DIDN'T, we have a .pom and a .coreit in the local repo...
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4262MakeLikeReactorDottedPath370Test.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4262MakeLikeReactorDottedPath370Test.java
index 8eb2603..772f302 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4262MakeLikeReactorDottedPath370Test.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4262MakeLikeReactorDottedPath370Test.java
@@ -66,7 +66,6 @@
         verifier.setLogFileName( "log-root.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/touch.txt" );
         verifier.verifyFilePresent( "../sub-a/target/touch.txt" );
@@ -91,7 +90,6 @@
         verifier.setLogFileName( "log-module.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFileNotPresent( "target/touch.txt" );
         verifier.verifyFilePresent( "../sub-a/target/touch.txt" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4262MakeLikeReactorDottedPathTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4262MakeLikeReactorDottedPathTest.java
index 7fd6504..4563f26 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4262MakeLikeReactorDottedPathTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4262MakeLikeReactorDottedPathTest.java
@@ -66,7 +66,6 @@
         verifier.setLogFileName( "log-root.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/touch.txt" );
         verifier.verifyFileNotPresent( "../sub-a/target/touch.txt" );
@@ -91,7 +90,6 @@
         verifier.setLogFileName( "log-module.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFileNotPresent( "target/touch.txt" );
         verifier.verifyFilePresent( "../sub-a/target/touch.txt" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4269BadReactorResolutionFromOutDirTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4269BadReactorResolutionFromOutDirTest.java
index 538aec6..fc04003 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4269BadReactorResolutionFromOutDirTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4269BadReactorResolutionFromOutDirTest.java
@@ -66,7 +66,6 @@
         // This should use the previous installation/deployment from the repo, not the invalid output directory
         verifier.executeGoal( "org.apache.maven.its.mng4269:maven-mng4269-plugin:0.1:touch" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/touch.txt" );
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4270ArtifactHandlersFromPluginDepsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4270ArtifactHandlersFromPluginDepsTest.java
index 5e9e5b4..ee8e209 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4270ArtifactHandlersFromPluginDepsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4270ArtifactHandlersFromPluginDepsTest.java
@@ -64,7 +64,6 @@
         verifier.executeGoal( "install" );
 
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         // Now, if everything worked, we have .pom and a .jar in the local repo.
         // IF IT DIDN'T, we have a .pom and a .coreit in the local repo...
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4273RestrictedCoreRealmAccessForPluginTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4273RestrictedCoreRealmAccessForPluginTest.java
index 621e648..7c97e4a 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4273RestrictedCoreRealmAccessForPluginTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4273RestrictedCoreRealmAccessForPluginTest.java
@@ -59,7 +59,6 @@
         verifier.setAutoclean( false );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/class.properties" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4274PluginRealmArtifactsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4274PluginRealmArtifactsTest.java
index ac5e34e..61cccd0 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4274PluginRealmArtifactsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4274PluginRealmArtifactsTest.java
@@ -66,7 +66,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/class.properties" );
         assertNotNull( props.getProperty( "org.apache.maven.its.mng4274.CoreIt" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4275RelocationWarningTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4275RelocationWarningTest.java
index 2ae3d96..4e6de5a 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4275RelocationWarningTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4275RelocationWarningTest.java
@@ -61,7 +61,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> lines = verifier.loadFile( new File( testDir, verifier.getLogFileName() ), false );
         boolean foundWarning = false;
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4276WrongTransitivePlexusUtilsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4276WrongTransitivePlexusUtilsTest.java
index 1775d69..7573d76 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4276WrongTransitivePlexusUtilsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4276WrongTransitivePlexusUtilsTest.java
@@ -64,7 +64,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/class.properties" );
         assertNotNull( props.getProperty( "org.apache.maven.its.mng4276.CoreIt" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4281PreferLocalSnapshotTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4281PreferLocalSnapshotTest.java
index 1537ac3..cce2852 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4281PreferLocalSnapshotTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4281PreferLocalSnapshotTest.java
@@ -59,7 +59,6 @@
         verifier.deleteArtifacts( "org.apache.maven.its.mng4281" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyArtifactPresent( "org.apache.maven.its.mng4281", "dependency", "0.1-SNAPSHOT", "jar" );
         verifier.verifyArtifactPresent( "org.apache.maven.its.mng4281", "dependency", "0.1-SNAPSHOT", "pom" );
@@ -71,7 +70,6 @@
         verifier.filterFile( "settings-template.xml", "settings.xml", "UTF-8", verifier.newDefaultFilterProperties() );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties checksums = verifier.loadProperties( "target/checksum.properties" );
         assertChecksum( "7c564b3fbeda6db61b62c35e58a8ef672e712400", checksums );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4283ParentPomPackagingTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4283ParentPomPackagingTest.java
index 5f2d5a8..f65aa60 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4283ParentPomPackagingTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4283ParentPomPackagingTest.java
@@ -64,10 +64,6 @@
         {
             // expected
         }
-        finally
-        {
-            verifier.resetStreams();
-        }
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4291MojoRequiresOnlineModeTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4291MojoRequiresOnlineModeTest.java
index 6a6a0da..1e761d3 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4291MojoRequiresOnlineModeTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4291MojoRequiresOnlineModeTest.java
@@ -68,10 +68,6 @@
         {
             // expected
         }
-        finally
-        {
-            verifier.resetStreams();
-        }
     }
 
     /**
@@ -93,7 +89,6 @@
         verifier.addCliOption( "--offline" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFileNotPresent( "target/touch.txt" );
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4292EnumTypeMojoParametersTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4292EnumTypeMojoParametersTest.java
index e579de1..b13737f 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4292EnumTypeMojoParametersTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4292EnumTypeMojoParametersTest.java
@@ -57,7 +57,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/config.properties" );
         assertEquals( "HALF_EVEN", props.getProperty( "listParam.0" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4293RequiresCompilePlusRuntimeScopeTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4293RequiresCompilePlusRuntimeScopeTest.java
index 2a3f266..4e44b0b 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4293RequiresCompilePlusRuntimeScopeTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4293RequiresCompilePlusRuntimeScopeTest.java
@@ -68,7 +68,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> compileClassPath = verifier.loadLines( "target/compile-cp.txt", "UTF-8" );
         assertTrue( compileClassPath.toString(), compileClassPath.contains( "system-0.1.jar" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4304ProjectDependencyArtifactsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4304ProjectDependencyArtifactsTest.java
index f518911..1aa51fd 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4304ProjectDependencyArtifactsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4304ProjectDependencyArtifactsTest.java
@@ -58,7 +58,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> artifacts = verifier.loadLines( "target/artifacts.txt", "UTF-8" );
         assertTrue( artifacts.toString(), artifacts.contains( "org.apache.maven.its:maven-core-it-support:jar:1.4" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4305LocalRepoBasedirTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4305LocalRepoBasedirTest.java
index 8aa2f44..f4dc5bd 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4305LocalRepoBasedirTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4305LocalRepoBasedirTest.java
@@ -58,7 +58,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/basedir.properties" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4309StrictChecksumValidationForMetadataTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4309StrictChecksumValidationForMetadataTest.java
index 9792a7e..7fa8b62 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4309StrictChecksumValidationForMetadataTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4309StrictChecksumValidationForMetadataTest.java
@@ -70,7 +70,6 @@
         {
             // expected
         }
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4312TypeAwarePluginParameterExpressionInjectionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4312TypeAwarePluginParameterExpressionInjectionTest.java
index 0c662a6..5c5c8a1 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4312TypeAwarePluginParameterExpressionInjectionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4312TypeAwarePluginParameterExpressionInjectionTest.java
@@ -59,7 +59,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/config.properties" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4314DirectInvocationOfAggregatorTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4314DirectInvocationOfAggregatorTest.java
index c6fef20..537727b 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4314DirectInvocationOfAggregatorTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4314DirectInvocationOfAggregatorTest.java
@@ -61,7 +61,6 @@
         verifier.executeGoals( Arrays.asList( new String[] { "validate",
             "org.apache.maven.its.plugins:maven-it-plugin-all:2.1-SNAPSHOT:aggregator-dependencies" } ) );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/touch.txt" );
         verifier.verifyFileNotPresent( "consumer/target/touch.txt" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4317PluginVersionResolutionFromMultiReposTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4317PluginVersionResolutionFromMultiReposTest.java
index 0737191..8f8a79e 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4317PluginVersionResolutionFromMultiReposTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4317PluginVersionResolutionFromMultiReposTest.java
@@ -61,7 +61,6 @@
         verifier.filterFile( "settings-template.xml", "settings.xml", "UTF-8", verifier.newDefaultFilterProperties() );
         verifier.executeGoal( "org.apache.maven.its.mng4317:maven-mng4317-plugin:touch" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/touch.txt" );
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4318ProjectExecutionRootTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4318ProjectExecutionRootTest.java
index f23163d..aea8695 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4318ProjectExecutionRootTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4318ProjectExecutionRootTest.java
@@ -61,7 +61,6 @@
         verifier.deleteDirectory( "sub-2/sub-3/target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props;
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4319PluginExecutionGoalInterpolationTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4319PluginExecutionGoalInterpolationTest.java
index 157d056..86722b4 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4319PluginExecutionGoalInterpolationTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4319PluginExecutionGoalInterpolationTest.java
@@ -56,7 +56,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/touch.txt" );
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4320AggregatorAndDependenciesTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4320AggregatorAndDependenciesTest.java
index 8c9f13c..006e69e 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4320AggregatorAndDependenciesTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4320AggregatorAndDependenciesTest.java
@@ -62,7 +62,6 @@
         verifier.filterFile( "settings-template.xml", "settings.xml", "UTF-8", verifier.newDefaultFilterProperties() );
         verifier.executeGoal( "org.apache.maven.its.plugins:maven-it-plugin-dependency-resolution:aggregate-test" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> classpath;
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4321CliUsesPluginMgmtConfigTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4321CliUsesPluginMgmtConfigTest.java
index 4c86838..6798cda 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4321CliUsesPluginMgmtConfigTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4321CliUsesPluginMgmtConfigTest.java
@@ -58,7 +58,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "org.apache.maven.its.plugins:maven-it-plugin-log-file:2.1-SNAPSHOT:reset" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/passed.log" );
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4326LocalSnapshotSuppressesRemoteCheckTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4326LocalSnapshotSuppressesRemoteCheckTest.java
index 7a2ab1d..d3d65cd 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4326LocalSnapshotSuppressesRemoteCheckTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4326LocalSnapshotSuppressesRemoteCheckTest.java
@@ -74,7 +74,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         final Deque<String> uris = new ConcurrentLinkedDeque<>();
 
@@ -187,7 +186,6 @@
         }
         finally
         {
-            verifier.resetStreams();
             server.stop();
         }
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4327ExcludeForkingMojoFromForkedLifecycleTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4327ExcludeForkingMojoFromForkedLifecycleTest.java
index 013ec27..4a460e2 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4327ExcludeForkingMojoFromForkedLifecycleTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4327ExcludeForkingMojoFromForkedLifecycleTest.java
@@ -58,7 +58,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "generate-sources" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> log = verifier.loadLines( "target/fork-lifecycle.txt", "UTF-8" );
         assertEquals( 1, log.size() );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4328PrimitiveMojoParameterConfigurationTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4328PrimitiveMojoParameterConfigurationTest.java
index 758eefe..b980914 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4328PrimitiveMojoParameterConfigurationTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4328PrimitiveMojoParameterConfigurationTest.java
@@ -60,7 +60,6 @@
         verifier.addCliOption( "--offline" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props;
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4331DependencyCollectionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4331DependencyCollectionTest.java
index e61dd93..42891d2 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4331DependencyCollectionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4331DependencyCollectionTest.java
@@ -61,7 +61,6 @@
         verifier.setLogFileName( "log-lifecycle.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> artifacts = verifier.loadLines( "sub-2/target/compile.txt", "UTF-8" );
         assertTrue( artifacts.toString(), artifacts.contains( "org.apache.maven.its.mng4331:sub-1:jar:0.1" ) );
@@ -88,7 +87,6 @@
         verifier.setLogFileName( "log-aggregator.txt" );
         verifier.executeGoal( "org.apache.maven.its.plugins:maven-it-plugin-dependency-collection:2.1-SNAPSHOT:aggregate-test" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> artifacts = verifier.loadLines( "target/sub-2.txt", "UTF-8" );
         assertTrue( artifacts.toString(), artifacts.contains( "org.apache.maven.its.mng4331:sub-1:jar:0.1" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4332DefaultPluginExecutionOrderTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4332DefaultPluginExecutionOrderTest.java
index 764b0e8..07199e2 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4332DefaultPluginExecutionOrderTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4332DefaultPluginExecutionOrderTest.java
@@ -60,7 +60,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "process-resources" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> lines = verifier.loadLines( "target/resources-resources.txt", "UTF-8" );
         assertEquals( Arrays.asList( new String[] { "default", "test-1", "test-2" } ), lines );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4335SettingsOfflineModeTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4335SettingsOfflineModeTest.java
index 326a2eb..fa686c6 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4335SettingsOfflineModeTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4335SettingsOfflineModeTest.java
@@ -69,7 +69,6 @@
         {
             // expected, should fail
         }
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4338OptionalMojosTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4338OptionalMojosTest.java
index ec81146..b191a12 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4338OptionalMojosTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4338OptionalMojosTest.java
@@ -57,7 +57,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4341PluginExecutionOrderTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4341PluginExecutionOrderTest.java
index 12d9297..e1f9e19 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4341PluginExecutionOrderTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4341PluginExecutionOrderTest.java
@@ -59,7 +59,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> lines = verifier.loadLines( "target/log.txt", "UTF-8" );
         assertEquals( Arrays.asList( new String[] { "first", "second" } ), lines );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4342IndependentMojoParameterDefaultValuesTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4342IndependentMojoParameterDefaultValuesTest.java
index b8eb20d..70aa597 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4342IndependentMojoParameterDefaultValuesTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4342IndependentMojoParameterDefaultValuesTest.java
@@ -58,7 +58,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props1 = verifier.loadProperties( "target/config1.properties" );
         assertEquals( "maven-core-it", props1.getProperty( "defaultParam" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4343MissingReleaseUpdatePolicyTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4343MissingReleaseUpdatePolicyTest.java
index d009f2d..e42d1f4 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4343MissingReleaseUpdatePolicyTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4343MissingReleaseUpdatePolicyTest.java
@@ -190,7 +190,6 @@
         verifier.verifyArtifactPresent( "org.apache.maven.its.mng4343", "dep", "0.1", "jar" );
         verifier.verifyArtifactPresent( "org.apache.maven.its.mng4343", "dep", "0.1", "pom" );
 
-        verifier.resetStreams();
     }
 
     /**
@@ -273,7 +272,6 @@
         //noinspection unchecked
         assertTrue( requestedUris.isEmpty() );
 
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4344ManagedPluginExecutionOrderTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4344ManagedPluginExecutionOrderTest.java
index db2c577..3711223 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4344ManagedPluginExecutionOrderTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4344ManagedPluginExecutionOrderTest.java
@@ -60,7 +60,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "process-resources" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> lines = verifier.loadLines( "target/log.txt", "UTF-8" );
         assertEquals( Arrays.asList( new String[] { "first", "second" } ), lines );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4345DefaultPluginExecutionOrderTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4345DefaultPluginExecutionOrderTest.java
index 0baf10e..d8313e1 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4345DefaultPluginExecutionOrderTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4345DefaultPluginExecutionOrderTest.java
@@ -60,7 +60,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "process-resources" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> lines = verifier.loadLines( "target/log.txt", "UTF-8" );
         assertEquals( Arrays.asList( new String[] { "first", "second" } ), lines );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4347ImportScopeWithSettingsProfilesTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4347ImportScopeWithSettingsProfilesTest.java
index 9ca2ec1..9927d47 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4347ImportScopeWithSettingsProfilesTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4347ImportScopeWithSettingsProfilesTest.java
@@ -68,7 +68,6 @@
         verifier.executeGoal( "validate" );
 
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4348NoUnnecessaryRepositoryAccessTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4348NoUnnecessaryRepositoryAccessTest.java
index f9b3563..258a50c 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4348NoUnnecessaryRepositoryAccessTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4348NoUnnecessaryRepositoryAccessTest.java
@@ -111,7 +111,6 @@
             verifier.addCliOption( "settings.xml" );
             verifier.executeGoal( "validate" );
             verifier.verifyErrorFreeLog();
-            verifier.resetStreams();
         }
         finally
         {
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4349RelocatedArtifactWithInvalidPomTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4349RelocatedArtifactWithInvalidPomTest.java
index 514841f..660d0f2 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4349RelocatedArtifactWithInvalidPomTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4349RelocatedArtifactWithInvalidPomTest.java
@@ -63,7 +63,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> classpath = verifier.loadLines( "target/classpath.txt", "UTF-8" );
         assertTrue( classpath.toString(), classpath.contains( "new-0.1.jar" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4350LifecycleMappingExecutionOrderTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4350LifecycleMappingExecutionOrderTest.java
index 69bdb1e..6657e83 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4350LifecycleMappingExecutionOrderTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4350LifecycleMappingExecutionOrderTest.java
@@ -60,7 +60,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "process-resources" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> lines = verifier.loadLines( "target/log.txt", "UTF-8" );
         assertEquals( Arrays.asList( new String[] { "first", "second" } ), lines );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4353PluginDependencyResolutionFromPomRepoTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4353PluginDependencyResolutionFromPomRepoTest.java
index f782167..ad67ab9 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4353PluginDependencyResolutionFromPomRepoTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4353PluginDependencyResolutionFromPomRepoTest.java
@@ -66,7 +66,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/touch.properties" );
         assertEquals( "passed", props.getProperty( "test" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4355ExtensionAutomaticVersionResolutionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4355ExtensionAutomaticVersionResolutionTest.java
index 3d307ae..80ec8b0 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4355ExtensionAutomaticVersionResolutionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4355ExtensionAutomaticVersionResolutionTest.java
@@ -62,7 +62,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4356NoNeedlessRelookupFromActiveCollectionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4356NoNeedlessRelookupFromActiveCollectionTest.java
index 58a5cff..339d6e6 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4356NoNeedlessRelookupFromActiveCollectionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4356NoNeedlessRelookupFromActiveCollectionTest.java
@@ -60,7 +60,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/component.properties" );
         assertEquals( "2", props.getProperty( "count" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4357LifecycleMappingDiscoveryInReactorTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4357LifecycleMappingDiscoveryInReactorTest.java
index 3ea0b6f..cd8779e 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4357LifecycleMappingDiscoveryInReactorTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4357LifecycleMappingDiscoveryInReactorTest.java
@@ -65,7 +65,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "mod-a/target/old.txt" );
         verifier.verifyFileNotPresent( "mod-a/target/new.txt" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4359LocallyReachableParentOutsideOfReactorTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4359LocallyReachableParentOutsideOfReactorTest.java
index bd22412..23b782e 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4359LocallyReachableParentOutsideOfReactorTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4359LocallyReachableParentOutsideOfReactorTest.java
@@ -60,7 +60,6 @@
         verifier.deleteArtifacts( "org.apache.maven.its.mng4359" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> cp = verifier.loadLines( "mod-c/target/classpath.txt", "UTF-8" );
         assertTrue( cp.toString(), cp.contains( "mod-b/pom.xml" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4360WebDavSupportTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4360WebDavSupportTest.java
index afef01d..74cdcbc 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4360WebDavSupportTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4360WebDavSupportTest.java
@@ -145,7 +145,6 @@
             verifier.addCliOption( "settings.xml" );
             verifier.executeGoal( "validate" );
             verifier.verifyErrorFreeLog();
-            verifier.resetStreams();
         }
         finally
         {
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4361ForceDependencySnapshotUpdateTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4361ForceDependencySnapshotUpdateTest.java
index f34804d..323ac1f 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4361ForceDependencySnapshotUpdateTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4361ForceDependencySnapshotUpdateTest.java
@@ -77,7 +77,6 @@
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
 
-        verifier.resetStreams();
 
         Properties checksums = verifier.loadProperties( "target/checksum.properties" );
         assertChecksum( "2a22eeca91211193e927ea3b2ecdf56481585064", "a-0.1-SNAPSHOT.jar", checksums );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4363DynamicAdditionOfDependencyArtifactTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4363DynamicAdditionOfDependencyArtifactTest.java
index 34d2acd..3557a7c 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4363DynamicAdditionOfDependencyArtifactTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4363DynamicAdditionOfDependencyArtifactTest.java
@@ -62,7 +62,6 @@
         verifier.filterFile( "settings-template.xml", "settings.xml", "UTF-8", verifier.newDefaultFilterProperties() );
         verifier.executeGoal( "generate-sources" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> classpath = verifier.loadLines( "target/classpath.txt", "UTF-8" );
         assertTrue( classpath.toString(), classpath.contains( "a-0.1.jar" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4365XmlMarkupInAttributeValueTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4365XmlMarkupInAttributeValueTest.java
index 036dbb0..dff712a 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4365XmlMarkupInAttributeValueTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4365XmlMarkupInAttributeValueTest.java
@@ -55,7 +55,6 @@
         verifier.setAutoclean( false );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4367LayoutAwareMirrorSelectionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4367LayoutAwareMirrorSelectionTest.java
index fb9c379..c2f05c0 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4367LayoutAwareMirrorSelectionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4367LayoutAwareMirrorSelectionTest.java
@@ -68,7 +68,6 @@
         verifier.setLogFileName( "log-a.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyArtifactPresent( "org.apache.maven.its.mng4367", "dep", "0.1", "jar" );
     }
@@ -99,7 +98,6 @@
         verifier.setLogFileName( "log-b.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyArtifactPresent( "org.apache.maven.its.mng4367", "dep", "0.1", "jar" );
     }
@@ -130,7 +128,6 @@
         verifier.setLogFileName( "log-c.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyArtifactPresent( "org.apache.maven.its.mng4367", "dep", "0.1", "jar" );
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4368TimestampAwareArtifactInstallerTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4368TimestampAwareArtifactInstallerTest.java
index 161dc8a..3155983 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4368TimestampAwareArtifactInstallerTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4368TimestampAwareArtifactInstallerTest.java
@@ -67,7 +67,6 @@
         verifier.deleteArtifacts( "org.apache.maven.its.mng4368" );
         verifier.executeGoal( "initialize" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         File installedPom =
             new File( verifier.getArtifactPath( "org.apache.maven.its.mng4368", "test", "0.1-SNAPSHOT", "pom" ) );
@@ -85,7 +84,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "initialize" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         pom = FileUtils.fileRead( installedPom, "UTF-8" );
         assertFalse( pom.contains( "Branch-A" ) );
@@ -122,7 +120,6 @@
         verifier.deleteArtifacts( "org.apache.maven.its.mng4368" );
         verifier.executeGoal( "initialize" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         File installedArtifact =
             new File( verifier.getArtifactPath( "org.apache.maven.its.mng4368", "test", "0.1-SNAPSHOT", "jar" ) );
@@ -140,7 +137,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "initialize" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         data = FileUtils.fileRead( installedArtifact, "UTF-8" );
         assertFalse( data.contains( "Branch-A" ) );
@@ -156,7 +152,6 @@
         verifier.setLogFileName( "log-b.txt" );
         verifier.executeGoal( "initialize" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         data = FileUtils.fileRead( installedArtifact, "UTF-8" );
         assertFalse( data.contains( "Branch-B" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4379TransitiveSystemPathInterpolatedWithEnvVarTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4379TransitiveSystemPathInterpolatedWithEnvVarTest.java
index 55e0b02..ddc7875 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4379TransitiveSystemPathInterpolatedWithEnvVarTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4379TransitiveSystemPathInterpolatedWithEnvVarTest.java
@@ -63,7 +63,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate", Collections.singletonMap( "MNG_4379_HOME", testDir.getAbsolutePath() ) );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> classpath = verifier.loadLines( "target/classpath.txt", "UTF-8" );
         assertTrue( classpath.toString(), classpath.contains( "pom.xml" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4381ExtensionSingletonComponentTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4381ExtensionSingletonComponentTest.java
index 4f8e14d..2b97cc3 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4381ExtensionSingletonComponentTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4381ExtensionSingletonComponentTest.java
@@ -59,7 +59,6 @@
         verifier.deleteDirectory( "sub-b/target" );
         verifier.executeGoal( "initialize" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "sub-b/target/singleton.properties" );
         assertEquals( "called", props.getProperty( "sub-a-provider" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4383ValidDependencyVersionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4383ValidDependencyVersionTest.java
index 21bf95c..78d3a8a 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4383ValidDependencyVersionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4383ValidDependencyVersionTest.java
@@ -65,10 +65,6 @@
         {
             // expected
         }
-        finally
-        {
-            verifier.resetStreams();
-        }
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4385LifecycleMappingFromExtensionInReactorTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4385LifecycleMappingFromExtensionInReactorTest.java
index 60235c7..ca5ac8b 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4385LifecycleMappingFromExtensionInReactorTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4385LifecycleMappingFromExtensionInReactorTest.java
@@ -69,7 +69,6 @@
             assertTrue( "Failure should be due to unknown packaging", msg.contains( "Unknown packaging: it-packaging" ));
             assertTrue( "Failure should be due to sub-b project", msg.contains( "The project org.apache.maven.its.mng4385:sub-b:0.1" ));
         }
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4386DebugLoggingTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4386DebugLoggingTest.java
index 6484d94..7fb6665 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4386DebugLoggingTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4386DebugLoggingTest.java
@@ -59,7 +59,6 @@
         verifier.setLogFileName( "log.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> lines = verifier.loadLines( "log.txt", "UTF-8" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4387QuietLoggingTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4387QuietLoggingTest.java
index 447f8b6..09676db 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4387QuietLoggingTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4387QuietLoggingTest.java
@@ -60,7 +60,6 @@
         verifier.setLogFileName( "log.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> lines = verifier.loadLines( "log.txt", "UTF-8" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4393ParseExternalParenPomLenientTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4393ParseExternalParenPomLenientTest.java
index afb85b2..7c1c5d3 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4393ParseExternalParenPomLenientTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4393ParseExternalParenPomLenientTest.java
@@ -60,7 +60,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4396AntBased20xMojoSupportTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4396AntBased20xMojoSupportTest.java
index bc961bb..41cc657 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4396AntBased20xMojoSupportTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4396AntBased20xMojoSupportTest.java
@@ -57,7 +57,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/ant.txt" );
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4400RepositoryOrderTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4400RepositoryOrderTest.java
index 8a79ce7..867bd16 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4400RepositoryOrderTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4400RepositoryOrderTest.java
@@ -60,7 +60,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties checksums = verifier.loadProperties( "target/checksum.properties" );
         assertChecksum( "d0a4998ff37a55f8de1dffccdff826eca365400f", checksums );
@@ -85,7 +84,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties checksums = verifier.loadProperties( "target/checksum.properties" );
         assertChecksum( "d0a4998ff37a55f8de1dffccdff826eca365400f", checksums );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4401RepositoryOrderForParentPomTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4401RepositoryOrderForParentPomTest.java
index 5dc6df2..57a393a 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4401RepositoryOrderForParentPomTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4401RepositoryOrderForParentPomTest.java
@@ -61,7 +61,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/passed.txt" );
         verifier.verifyFileNotPresent( "target/failed.txt" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4402DuplicateChildModuleTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4402DuplicateChildModuleTest.java
index 876cd0f..ff864e3 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4402DuplicateChildModuleTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4402DuplicateChildModuleTest.java
@@ -66,10 +66,6 @@
         {
             // expected
         }
-        finally
-        {
-            verifier.resetStreams();
-        }
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4403LenientDependencyPomParsingTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4403LenientDependencyPomParsingTest.java
index a75f15a..9e65f99 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4403LenientDependencyPomParsingTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4403LenientDependencyPomParsingTest.java
@@ -65,7 +65,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> artifacts = verifier.loadLines( "target/artifacts.txt", "UTF-8" );
         Collections.sort( artifacts );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4404UniqueProfileIdTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4404UniqueProfileIdTest.java
index fcfea47..f190d14 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4404UniqueProfileIdTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4404UniqueProfileIdTest.java
@@ -65,10 +65,6 @@
         {
             // expected
         }
-        finally
-        {
-            verifier.resetStreams();
-        }
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4405ValidPluginVersionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4405ValidPluginVersionTest.java
index a1e0709..c9a24b2 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4405ValidPluginVersionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4405ValidPluginVersionTest.java
@@ -65,10 +65,6 @@
         {
             // expected
         }
-        finally
-        {
-            verifier.resetStreams();
-        }
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4408NonExistentSettingsFileTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4408NonExistentSettingsFileTest.java
index 4763e63..9e48e12 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4408NonExistentSettingsFileTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4408NonExistentSettingsFileTest.java
@@ -67,10 +67,6 @@
         {
             // expected
         }
-        finally
-        {
-            verifier.resetStreams();
-        }
     }
 
     /**
@@ -99,10 +95,6 @@
         {
             // expected
         }
-        finally
-        {
-            verifier.resetStreams();
-        }
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4410UsageHelpTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4410UsageHelpTest.java
index 641887c..78beeb1 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4410UsageHelpTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4410UsageHelpTest.java
@@ -55,7 +55,6 @@
         verifier.setAutoclean( false );
         verifier.executeGoal( "--help" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyTextInLog( "--version" );
         verifier.verifyTextInLog( "--debug" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4411VersionInfoTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4411VersionInfoTest.java
index 0685a7f..590feac 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4411VersionInfoTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4411VersionInfoTest.java
@@ -55,7 +55,6 @@
         verifier.setAutoclean( false );
         verifier.executeGoal( "--version" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyTextInLog( "Maven" );
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4412OfflineModeInPluginTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4412OfflineModeInPluginTest.java
index be0d0ba..bf6f2aa 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4412OfflineModeInPluginTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4412OfflineModeInPluginTest.java
@@ -73,10 +73,6 @@
         {
             // expected
         }
-        finally
-        {
-            verifier.resetStreams();
-        }
     }
 
     /**
@@ -103,7 +99,6 @@
         verifier.setLogFileName( "log-collector.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyArtifactNotPresent( "org.apache.maven.its.mng4412", "dep", "0.1", "pom" );
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4413MirroringOfDependencyRepoTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4413MirroringOfDependencyRepoTest.java
index 113febb..dcb5316 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4413MirroringOfDependencyRepoTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4413MirroringOfDependencyRepoTest.java
@@ -117,7 +117,6 @@
             verifier.addCliOption( "settings.xml" );
             verifier.executeGoal( "validate" );
             verifier.verifyErrorFreeLog();
-            verifier.resetStreams();
 
             verifier.verifyArtifactPresent( "org.apache.maven.its.mng4413", "a", "0.1", "jar" );
         }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4415InheritedPluginOrderTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4415InheritedPluginOrderTest.java
index cf26dbc..37d8dd8 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4415InheritedPluginOrderTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4415InheritedPluginOrderTest.java
@@ -62,7 +62,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/it.properties" );
         assertNotNull( props.getProperty( "project.build.plugins" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4416PluginOrderAfterProfileInjectionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4416PluginOrderAfterProfileInjectionTest.java
index a8f2b26..187b2b9 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4416PluginOrderAfterProfileInjectionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4416PluginOrderAfterProfileInjectionTest.java
@@ -62,7 +62,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/it.properties" );
         assertNotNull( props.getProperty( "project.build.plugins" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4421DeprecatedPomInterpolationExpressionsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4421DeprecatedPomInterpolationExpressionsTest.java
index 1394089..fad1f46 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4421DeprecatedPomInterpolationExpressionsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4421DeprecatedPomInterpolationExpressionsTest.java
@@ -62,7 +62,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/pom.properties" );
         assertEquals( "0.1", props.getProperty( "project.properties.property1" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4422PluginExecutionPhaseInterpolationTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4422PluginExecutionPhaseInterpolationTest.java
index 3f35cfa..a6d6ef8 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4422PluginExecutionPhaseInterpolationTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4422PluginExecutionPhaseInterpolationTest.java
@@ -56,7 +56,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/touch.txt" );
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4423SessionDataFromPluginParameterExpressionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4423SessionDataFromPluginParameterExpressionTest.java
index a806ff7..f2a46dd 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4423SessionDataFromPluginParameterExpressionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4423SessionDataFromPluginParameterExpressionTest.java
@@ -58,7 +58,6 @@
         verifier.getSystemProperties().setProperty( "mng4423", "PASSED" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/config.properties" );
         assertEquals( "PASSED", props.getProperty( "propertiesParam.mng4423" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4428FollowHttpRedirectTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4428FollowHttpRedirectTest.java
index 0dae947..1f80c9b 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4428FollowHttpRedirectTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4428FollowHttpRedirectTest.java
@@ -148,7 +148,6 @@
             verifier.setLogFileName( "log-" + getName().substring( 6 ) + ".txt" );
             verifier.executeGoal( "validate" );
             verifier.verifyErrorFreeLog();
-            verifier.resetStreams();
         }
         finally
         {
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4429CompRequirementOnNonDefaultImplTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4429CompRequirementOnNonDefaultImplTest.java
index e5d3a6c..ab3887b 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4429CompRequirementOnNonDefaultImplTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4429CompRequirementOnNonDefaultImplTest.java
@@ -57,7 +57,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/comp.properties" );
         assertEquals( "concrete", props.getProperty( "id" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4430DistributionManagementStatusTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4430DistributionManagementStatusTest.java
index 3c8c0d9..d75e9f1 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4430DistributionManagementStatusTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4430DistributionManagementStatusTest.java
@@ -66,10 +66,6 @@
         {
             // expected
         }
-        finally
-        {
-            verifier.resetStreams();
-        }
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4433ForceParentSnapshotUpdateTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4433ForceParentSnapshotUpdateTest.java
index d153bfa..4b0649b 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4433ForceParentSnapshotUpdateTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4433ForceParentSnapshotUpdateTest.java
@@ -78,7 +78,6 @@
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
 
-        verifier.resetStreams();
 
         verifier.verifyFileNotPresent( "target/old.txt" );
         verifier.verifyFilePresent( "target/new.txt" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4436SingletonComponentLookupTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4436SingletonComponentLookupTest.java
index 12608c1..385f742 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4436SingletonComponentLookupTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4436SingletonComponentLookupTest.java
@@ -57,7 +57,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/comp.properties" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4450StubModelForMissingDependencyPomTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4450StubModelForMissingDependencyPomTest.java
index 0fca26d..10c1f04 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4450StubModelForMissingDependencyPomTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4450StubModelForMissingDependencyPomTest.java
@@ -60,7 +60,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/pom.properties" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4452ResolutionOfSnapshotWithClassifierTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4452ResolutionOfSnapshotWithClassifierTest.java
index f37f9b0..37ea186 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4452ResolutionOfSnapshotWithClassifierTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4452ResolutionOfSnapshotWithClassifierTest.java
@@ -74,7 +74,6 @@
         verifier.setLogFileName( "log-3.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier = newVerifier( new File( testDir, "consumer" ).getAbsolutePath() );
         verifier.setAutoclean( false );
@@ -85,7 +84,6 @@
         verifier.filterFile( "settings-template.xml", "settings.xml", "UTF-8", verifier.newDefaultFilterProperties() );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> artifacts = verifier.loadLines( "target/artifacts.txt", "UTF-8" );
         assertTrue( artifacts.toString(),
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4453PluginVersionFromLifecycleMappingTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4453PluginVersionFromLifecycleMappingTest.java
index 7238c8e..8ffebd3 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4453PluginVersionFromLifecycleMappingTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4453PluginVersionFromLifecycleMappingTest.java
@@ -57,7 +57,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "process-resources" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/resources-resources.txt" );
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4459InMemorySettingsKeptEncryptedTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4459InMemorySettingsKeptEncryptedTest.java
index f7aac79..089014b 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4459InMemorySettingsKeptEncryptedTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4459InMemorySettingsKeptEncryptedTest.java
@@ -62,7 +62,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/settings.properties" );
         assertEquals( "{BteqUEnqHecHM7MZfnj9FwLcYbdInWxou1C929Txa0A=}",
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4461ArtifactUploadMonitorTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4461ArtifactUploadMonitorTest.java
index d760719..92a4487 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4461ArtifactUploadMonitorTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4461ArtifactUploadMonitorTest.java
@@ -56,7 +56,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyTextInLog( "/target/repo/org/apache/maven/its/mng4461/release/1.0/release-1.0.jar" );
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4463DependencyManagementImportVersionRanges.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4463DependencyManagementImportVersionRanges.java
index 652d52a..8d7e203 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4463DependencyManagementImportVersionRanges.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4463DependencyManagementImportVersionRanges.java
@@ -52,7 +52,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         final List<String> artifacts = verifier.loadLines( "target/compile.txt", "UTF-8" );
         assertTrue( artifacts.toString(), artifacts.contains( "org.apache.maven:maven-plugin-api:jar:3.0" ) );
@@ -68,7 +67,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> artifacts = verifier.loadLines( "target/compile.txt", "UTF-8" );
         assertTrue( artifacts.toString(), artifacts.contains( "org.apache.maven:maven-plugin-api:jar:3.0" ) );
@@ -94,10 +92,6 @@
             assertTrue( "Expected error message not found.",
                         indexOf( lines, ".*dependency version range.*does not specify an upper bound.*" ) >= 0 );
         }
-        finally
-        {
-            verifier.resetStreams();
-        }
     }
 
     private static int indexOf( final List<String> logLines, final String regex )
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4464PlatformIndependentFileSeparatorTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4464PlatformIndependentFileSeparatorTest.java
index a09b976..11ab447 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4464PlatformIndependentFileSeparatorTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4464PlatformIndependentFileSeparatorTest.java
@@ -59,7 +59,6 @@
         verifier.deleteArtifacts( "org.apache.maven.its.mng4464" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "../sub/target/path.properties" );
         Properties props = verifier.loadProperties( "../sub/target/path.properties" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4465PluginPrefixFromLocalCacheOfDownRepoTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4465PluginPrefixFromLocalCacheOfDownRepoTest.java
index 2bf1252..a0b5737 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4465PluginPrefixFromLocalCacheOfDownRepoTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4465PluginPrefixFromLocalCacheOfDownRepoTest.java
@@ -65,7 +65,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "mng4465:touch" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/touch.properties" );
 
@@ -81,7 +80,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "mng4465:touch" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/touch.properties" );
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4469AuthenticatedDeploymentToCustomRepoTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4469AuthenticatedDeploymentToCustomRepoTest.java
index 86f8e12..688160b 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4469AuthenticatedDeploymentToCustomRepoTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4469AuthenticatedDeploymentToCustomRepoTest.java
@@ -161,7 +161,6 @@
         verifier.addCliArgument( "-DrepositoryUrl=http://localhost:" + port + "/repo" );
         verifier.executeGoal( "org.apache.maven.its.plugins:maven-it-plugin-artifact:2.1-SNAPSHOT:deploy-file" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         assertTrue( deployed );
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4470AuthenticatedDeploymentToProxyTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4470AuthenticatedDeploymentToProxyTest.java
index 28b9835..93fd500 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4470AuthenticatedDeploymentToProxyTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4470AuthenticatedDeploymentToProxyTest.java
@@ -228,7 +228,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         for ( DeployedResource deployedResource : deployedResources )
         {
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4474PerLookupWagonInstantiationTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4474PerLookupWagonInstantiationTest.java
index bfe2d2a..e34c254 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4474PerLookupWagonInstantiationTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4474PerLookupWagonInstantiationTest.java
@@ -57,7 +57,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/wagon.properties" );
         String hash1 = props.getProperty( "coreit://one.hash" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4479ProjectLevelPluginDepUsedForCliConfigTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4479ProjectLevelPluginDepUsedForCliConfigTest.java
index b838225..5c144ac 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4479ProjectLevelPluginDepUsedForCliConfigTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4479ProjectLevelPluginDepUsedForCliConfigTest.java
@@ -63,7 +63,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "org.apache.maven.its.plugins:maven-it-plugin-parameter-implementation:2.1-SNAPSHOT:param-implementation" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/param.properties" );
         assertEquals( "org.apache.maven.plugin.coreit.ItImpl-passed", props.getProperty( "theParameter.string" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4482ForcePluginSnapshotUpdateTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4482ForcePluginSnapshotUpdateTest.java
index 8c49134..9321856 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4482ForcePluginSnapshotUpdateTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4482ForcePluginSnapshotUpdateTest.java
@@ -86,7 +86,6 @@
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
 
-        verifier.resetStreams();
 
         Properties props2 = verifier.loadProperties( "target/touch.properties" );
         assertEquals( "new", props2.getProperty( "two" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4488ValidateExternalParenPomLenientTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4488ValidateExternalParenPomLenientTest.java
index c4970cb..5c54188 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4488ValidateExternalParenPomLenientTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4488ValidateExternalParenPomLenientTest.java
@@ -60,7 +60,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4489MirroringOfExtensionRepoTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4489MirroringOfExtensionRepoTest.java
index 8403e96..07ecd0d 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4489MirroringOfExtensionRepoTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4489MirroringOfExtensionRepoTest.java
@@ -117,7 +117,6 @@
             verifier.addCliOption( "settings.xml" );
             verifier.executeGoal( "validate" );
             verifier.verifyErrorFreeLog();
-            verifier.resetStreams();
 
             verifier.verifyArtifactPresent( "org.apache.maven.its.mng4489", "ext-dep", "0.1", "jar" );
             verifier.verifyArtifactPresent( "org.apache.maven.its.mng4489", "ext-dep", "0.1", "pom" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4498IgnoreBrokenMetadataTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4498IgnoreBrokenMetadataTest.java
index f24c522..c626912 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4498IgnoreBrokenMetadataTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4498IgnoreBrokenMetadataTest.java
@@ -61,7 +61,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> classpath = verifier.loadLines( "target/classpath.txt", "UTF-8" );
         assertTrue( classpath.toString(), classpath.contains( "dep-0.1-SNAPSHOT.jar" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4500NoUpdateOfTimestampedSnapshotsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4500NoUpdateOfTimestampedSnapshotsTest.java
index 3ba1d0e..ba2bd58 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4500NoUpdateOfTimestampedSnapshotsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4500NoUpdateOfTimestampedSnapshotsTest.java
@@ -133,7 +133,6 @@
         }
         finally
         {
-            verifier.resetStreams();
             server.stop();
             server.join();
         }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4522FailUponMissingDependencyParentPomTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4522FailUponMissingDependencyParentPomTest.java
index 5c691c1..f811e52 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4522FailUponMissingDependencyParentPomTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4522FailUponMissingDependencyParentPomTest.java
@@ -69,10 +69,6 @@
         {
             // expected
         }
-        finally
-        {
-            verifier.resetStreams();
-        }
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4526MavenProjectArtifactsScopeTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4526MavenProjectArtifactsScopeTest.java
index 963d5fc..011707a 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4526MavenProjectArtifactsScopeTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4526MavenProjectArtifactsScopeTest.java
@@ -62,7 +62,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "generate-sources" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> artifacts;
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4528ExcludeWagonsFromMavenCoreArtifactsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4528ExcludeWagonsFromMavenCoreArtifactsTest.java
index dca6c01..09900ec 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4528ExcludeWagonsFromMavenCoreArtifactsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4528ExcludeWagonsFromMavenCoreArtifactsTest.java
@@ -61,7 +61,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/wagon.properties" );
         String version = props.getProperty( "version", "" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4536RequiresNoProjectForkingMojoTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4536RequiresNoProjectForkingMojoTest.java
index 05866b4..032e3b1 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4536RequiresNoProjectForkingMojoTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4536RequiresNoProjectForkingMojoTest.java
@@ -58,7 +58,6 @@
         verifier.deleteDirectory( "mod-b/target" );
         verifier.executeGoal( "generate-sources" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         assertEquals( 2, verifier.loadLines( "mod-a/target/touch.log", "UTF-8" ).size() );
         assertEquals( 2, verifier.loadLines( "mod-b/target/touch.log", "UTF-8" ).size() );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4544ActiveComponentCollectionThreadSafeTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4544ActiveComponentCollectionThreadSafeTest.java
index 843809b..f4784be 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4544ActiveComponentCollectionThreadSafeTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4544ActiveComponentCollectionThreadSafeTest.java
@@ -57,7 +57,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/thread.properties" );
         assertEquals( 0, Integer.parseInt( props.getProperty( "exceptions" ) ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4553CoreArtifactFilterConsidersGroupIdTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4553CoreArtifactFilterConsidersGroupIdTest.java
index c88acfc..b1c26f4 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4553CoreArtifactFilterConsidersGroupIdTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4553CoreArtifactFilterConsidersGroupIdTest.java
@@ -61,7 +61,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties pclProps = verifier.loadProperties( "target/pcl.properties" );
         assertNotNull( pclProps.getProperty( "mng4553.properties" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4554PluginPrefixMappingUpdateTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4554PluginPrefixMappingUpdateTest.java
index 2178a71..0bdbf1f 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4554PluginPrefixMappingUpdateTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4554PluginPrefixMappingUpdateTest.java
@@ -137,7 +137,6 @@
         }
         finally
         {
-            verifier.resetStreams();
             server.stop();
             server.join();
         }
@@ -225,7 +224,6 @@
         }
         finally
         {
-            verifier.resetStreams();
             server.stop();
             server.join();
         }
@@ -319,7 +317,6 @@
         }
         finally
         {
-            verifier.resetStreams();
             server.stop();
             server.join();
         }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4555MetaversionResolutionOfflineTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4555MetaversionResolutionOfflineTest.java
index 6e20ffb..b13263e 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4555MetaversionResolutionOfflineTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4555MetaversionResolutionOfflineTest.java
@@ -113,7 +113,6 @@
         }
         finally
         {
-            verifier.resetStreams();
             server.stop();
             server.join();
         }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4561MirroringOfPluginRepoTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4561MirroringOfPluginRepoTest.java
index 12fc805..603d124 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4561MirroringOfPluginRepoTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4561MirroringOfPluginRepoTest.java
@@ -117,7 +117,6 @@
             verifier.addCliOption( "settings.xml" );
             verifier.executeGoal( "validate" );
             verifier.verifyErrorFreeLog();
-            verifier.resetStreams();
 
             verifier.verifyArtifactPresent( "org.apache.maven.its.mng4561", "plugin-dep", "0.1", "jar" );
             verifier.verifyArtifactPresent( "org.apache.maven.its.mng4561", "plugin-dep", "0.1", "pom" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4565MultiConditionProfileActivationTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4565MultiConditionProfileActivationTest.java
index 52f1427..6164551 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4565MultiConditionProfileActivationTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4565MultiConditionProfileActivationTest.java
@@ -70,7 +70,6 @@
         verifier.verifyErrorFreeLog();
         verifier.verifyFilePresent( "target/profile1/touch.txt" );
         verifier.verifyFileNotPresent( "target/profile2/touch.txt" );
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4572ModelVersionSurroundedByWhitespaceTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4572ModelVersionSurroundedByWhitespaceTest.java
index f1e5fc8..653881f 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4572ModelVersionSurroundedByWhitespaceTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4572ModelVersionSurroundedByWhitespaceTest.java
@@ -55,7 +55,6 @@
         verifier.setAutoclean( false );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4580ProjectLevelPluginDepUsedForCliInvocInReactorTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4580ProjectLevelPluginDepUsedForCliInvocInReactorTest.java
index 5b140c5..1283571 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4580ProjectLevelPluginDepUsedForCliInvocInReactorTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4580ProjectLevelPluginDepUsedForCliInvocInReactorTest.java
@@ -60,7 +60,6 @@
         verifier.deleteDirectory( "sub/target" );
         verifier.executeGoal( "org.apache.maven.its.plugins:maven-it-plugin-class-loader:load" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties pclProps;
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4586PluginPrefixResolutionFromVersionlessPluginMgmtTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4586PluginPrefixResolutionFromVersionlessPluginMgmtTest.java
index 9df63b5..b70fba6 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4586PluginPrefixResolutionFromVersionlessPluginMgmtTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4586PluginPrefixResolutionFromVersionlessPluginMgmtTest.java
@@ -61,7 +61,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "mng4586:touch" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/touch.txt" );
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4590ImportedPomUsesSystemAndUserPropertiesTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4590ImportedPomUsesSystemAndUserPropertiesTest.java
index 6172373..07b47ea 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4590ImportedPomUsesSystemAndUserPropertiesTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4590ImportedPomUsesSystemAndUserPropertiesTest.java
@@ -63,7 +63,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/pom.properties" );
         assertEquals( "1", props.getProperty( "project.dependencyManagement.dependencies" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4600DependencyOptionalFlagManagementTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4600DependencyOptionalFlagManagementTest.java
index 2cbc98d..fa02ecb 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4600DependencyOptionalFlagManagementTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4600DependencyOptionalFlagManagementTest.java
@@ -59,7 +59,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/pom.properties" );
         assertEquals( "dep", props.getProperty( "project.dependencies.0.artifactId" ) );
@@ -87,7 +86,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> classpath = verifier.loadLines( "target/classpath.txt", "UTF-8" );
         assertTrue( classpath.toString(), classpath.contains( "direct-0.2.jar" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4615ValidateRequiredPluginParameterTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4615ValidateRequiredPluginParameterTest.java
index 0b25aa4..7f843b6 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4615ValidateRequiredPluginParameterTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4615ValidateRequiredPluginParameterTest.java
@@ -59,7 +59,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/config.properties" );
         assertEquals( "one", props.get( "requiredParam" ) );
@@ -93,7 +92,6 @@
             // expected
         }
 
-        verifier.resetStreams();
     }
 
     /**
@@ -115,7 +113,6 @@
         verifier.setLogFileName( "log-b.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/config.properties" );
         assertEquals( "CLI", props.get( "requiredParam" ) );
@@ -151,7 +148,6 @@
             // expected
         }
 
-        verifier.resetStreams();
     }
 
     /**
@@ -171,7 +167,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/config.properties" );
         assertEquals( "one", props.get( "requiredParam" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4618AggregatorBuiltAfterModulesTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4618AggregatorBuiltAfterModulesTest.java
index d991c95..60d4896 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4618AggregatorBuiltAfterModulesTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4618AggregatorBuiltAfterModulesTest.java
@@ -58,7 +58,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> mods = verifier.loadLines( "target/log.txt", "UTF-8" );
         assertEquals( Arrays.asList( new String[] { "mod-a", "mod-b", "mod-c", "aggregator" } ), mods );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4625SettingsXmlInterpolationWithXmlMarkupTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4625SettingsXmlInterpolationWithXmlMarkupTest.java
index a627467..17fc03c 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4625SettingsXmlInterpolationWithXmlMarkupTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4625SettingsXmlInterpolationWithXmlMarkupTest.java
@@ -75,7 +75,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/pom.properties" );
         assertEquals( "&x=y<>", props.getProperty( "project.properties.jdbcUrl" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4629NoPomValidationErrorUponMissingSystemDepTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4629NoPomValidationErrorUponMissingSystemDepTest.java
index f7f0c93..282eca4 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4629NoPomValidationErrorUponMissingSystemDepTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4629NoPomValidationErrorUponMissingSystemDepTest.java
@@ -56,7 +56,6 @@
         verifier.setAutoclean( false );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4633DualCompilerExecutionsWeaveModeTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4633DualCompilerExecutionsWeaveModeTest.java
index 0476f00..e48a337 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4633DualCompilerExecutionsWeaveModeTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4633DualCompilerExecutionsWeaveModeTest.java
@@ -61,7 +61,6 @@
         verifier.addCliOption( "2W" );
         verifier.executeGoal( "install" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4644StrictPomParsingRejectsMisplacedTextTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4644StrictPomParsingRejectsMisplacedTextTest.java
index b5a705a..c99399d 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4644StrictPomParsingRejectsMisplacedTextTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4644StrictPomParsingRejectsMisplacedTextTest.java
@@ -65,10 +65,6 @@
         {
             // expected
         }
-        finally
-        {
-            verifier.resetStreams();
-        }
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4654ArtifactHandlerForMainArtifactTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4654ArtifactHandlerForMainArtifactTest.java
index 659b411..fcb3806 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4654ArtifactHandlerForMainArtifactTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4654ArtifactHandlerForMainArtifactTest.java
@@ -61,7 +61,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFileNotPresent( "target/repo/org/apache/maven/its/mng4654/test/1.0/test-1.0.mng4654" );
         verifier.verifyFilePresent( "target/repo/org/apache/maven/its/mng4654/test/1.0/test-1.0.jar" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4660OutdatedPackagedArtifact.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4660OutdatedPackagedArtifact.java
index 0bbdeec..4380131 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4660OutdatedPackagedArtifact.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4660OutdatedPackagedArtifact.java
@@ -71,7 +71,6 @@
         Path module1Jar = testDir.toPath().resolve( "module-a/target/module-a-1.0.jar" ).toAbsolutePath();
         verifier1.verifyErrorFreeLog();
         verifier1.verifyFilePresent( module1Jar.toString() );
-        verifier1.resetStreams();
 
         if ( System.getProperty( "java.version", "" ).startsWith( "1." ) )
         {
@@ -103,7 +102,6 @@
                         .toAbsolutePath();
         verifier2.verifyErrorFreeLog();
         verifier2.verifyFilePresent( module1Class.toString() );
-        verifier2.resetStreams();
 
         // 3. Resume project build from module B, that depends on module A we just touched. Its packaged artifact
         // is no longer in sync with its compiled artifacts.
@@ -173,6 +171,5 @@
 
             throw new VerificationException( message.toString(), e.getCause() );
         }
-        verifier3.resetStreams();
     }
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4660ResumeFromTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4660ResumeFromTest.java
index e7b4970..a45a6ee 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4660ResumeFromTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4660ResumeFromTest.java
@@ -65,10 +65,6 @@
         {
             verifier1.verifyTextInLog( "Deliberately fail test case" );
         }
-        finally
-        {
-            verifier1.resetStreams();
-        }
 
         final Verifier verifier2 = newVerifier( testDir.getAbsolutePath() );
         verifier2.setAutoclean( false );
@@ -77,7 +73,6 @@
         verifier2.executeGoal( "compile" ); // to prevent the unit test from failing (again)
 
         verifier2.verifyErrorFreeLog();
-        verifier2.resetStreams();
     }
 
     /**
@@ -105,10 +100,6 @@
         {
             verifier1.verifyTextInLog( "Deliberately fail test case" );
         }
-        finally
-        {
-            verifier1.resetStreams();
-        }
 
         final Verifier verifier2 = newVerifier( testDir.getAbsolutePath() );
         verifier2.setAutoclean( false );
@@ -117,6 +108,5 @@
         verifier2.executeGoal( "compile" ); // to prevent the unit test from failing (again)
 
         verifier2.verifyErrorFreeLog();
-        verifier2.resetStreams();
     }
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4666CoreRealmImportTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4666CoreRealmImportTest.java
index 3ef9698..77b5582 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4666CoreRealmImportTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4666CoreRealmImportTest.java
@@ -82,7 +82,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/type.properties" );
         List<String> types = getTypes( props );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4677DisabledPluginConfigInheritanceTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4677DisabledPluginConfigInheritanceTest.java
index e9da8b2..71edfed 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4677DisabledPluginConfigInheritanceTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4677DisabledPluginConfigInheritanceTest.java
@@ -60,7 +60,6 @@
         verifier.deleteDirectory( "child-2/target" );
         verifier.executeGoal( "org.apache.maven.its.plugins:maven-it-plugin-log-file:2.1-SNAPSHOT:log-string" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> log = verifier.loadLines( "target/log.txt", "UTF-8" );
         assertEquals( Arrays.asList( new String[] { "parent-only" } ), log );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4679SnapshotUpdateInPluginTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4679SnapshotUpdateInPluginTest.java
index 55059f0..e58bce1 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4679SnapshotUpdateInPluginTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4679SnapshotUpdateInPluginTest.java
@@ -78,7 +78,6 @@
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
 
-        verifier.resetStreams();
 
         assertChecksum( verifier, "jar", "f3d46277c2ab45ff9bbd97605c942bed7fc27f97" );
         assertChecksum( verifier, "pom", "127f0dc26035352bb54890315ad7d2ada067756a" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4684DistMgmtOverriddenByProfileTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4684DistMgmtOverriddenByProfileTest.java
index c08a184..8261b81 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4684DistMgmtOverriddenByProfileTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4684DistMgmtOverriddenByProfileTest.java
@@ -58,7 +58,6 @@
         verifier.addCliOption( "-Pmng4684" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/pom.properties" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4690InterdependentConflictResolutionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4690InterdependentConflictResolutionTest.java
index 5b832b5..d8afaa0 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4690InterdependentConflictResolutionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4690InterdependentConflictResolutionTest.java
@@ -105,7 +105,6 @@
         verifier.filterFile( "../settings-template.xml", "settings.xml", "UTF-8", verifier.newDefaultFilterProperties() );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> classpath = verifier.loadLines( "target/classpath.txt", "UTF-8" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4696MavenProjectDependencyArtifactsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4696MavenProjectDependencyArtifactsTest.java
index 0bd6912..935483c 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4696MavenProjectDependencyArtifactsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4696MavenProjectDependencyArtifactsTest.java
@@ -63,7 +63,6 @@
         verifier.filterFile( "settings-template.xml", "settings.xml", "UTF-8", verifier.newDefaultFilterProperties() );
         verifier.executeGoal( "initialize" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/artifact.properties" );
         assertEquals( "3", props.getProperty( "project.dependencyArtifacts.size" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4720DependencyManagementExclusionMergeTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4720DependencyManagementExclusionMergeTest.java
index 6aac564..2a07cb1 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4720DependencyManagementExclusionMergeTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4720DependencyManagementExclusionMergeTest.java
@@ -61,7 +61,6 @@
         verifier.filterFile( "settings-template.xml", "settings.xml", "UTF-8", verifier.newDefaultFilterProperties() );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> classpath = verifier.loadLines( "target/classpath.txt", "UTF-8" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4721OptionalPluginDependencyTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4721OptionalPluginDependencyTest.java
index 4860918..e78ebdc 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4721OptionalPluginDependencyTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4721OptionalPluginDependencyTest.java
@@ -60,7 +60,6 @@
         verifier.filterFile( "settings-template.xml", "settings.xml", "UTF-8", verifier.newDefaultFilterProperties() );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/pcl.properties" );
         assertEquals( "1", props.get( "org/apache/maven/plugin/coreit/c.properties.count" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4729MirrorProxyAuthUsedByProjectBuilderTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4729MirrorProxyAuthUsedByProjectBuilderTest.java
index dc88cb7..1a3c314 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4729MirrorProxyAuthUsedByProjectBuilderTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4729MirrorProxyAuthUsedByProjectBuilderTest.java
@@ -117,7 +117,6 @@
             verifier.addCliOption( "settings.xml" );
             verifier.executeGoal( "validate" );
             verifier.verifyErrorFreeLog();
-            verifier.resetStreams();
 
             Properties props = verifier.loadProperties( "target/pom.properties" );
             assertEquals( "PASSED", props.get( "org.apache.maven.its.mng4729:a:jar:0.1.project.name" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4745PluginVersionUpdateTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4745PluginVersionUpdateTest.java
index 7971e8e..65dc984 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4745PluginVersionUpdateTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4745PluginVersionUpdateTest.java
@@ -72,7 +72,6 @@
         verifier.executeGoal( "org.apache.maven.its.mng4745:maven-it-plugin:touch" );
 
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/plugin.properties" );
         assertEquals( "1.1", props.get( "plugin.version" ) );
@@ -108,7 +107,6 @@
         verifier.executeGoal( "org.apache.maven.its.mng4745:maven-it-plugin:touch" );
 
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/plugin.properties" );
         assertEquals( "1.0", props.get( "plugin.version" ) );
@@ -145,7 +143,6 @@
         verifier.executeGoal( "org.apache.maven.its.mng4745:maven-it-plugin:touch" );
 
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/plugin.properties" );
         assertEquals( "1.1", props.get( "plugin.version" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4747JavaAgentUsedByPluginTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4747JavaAgentUsedByPluginTest.java
index 1c3abbb..ee286d0 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4747JavaAgentUsedByPluginTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4747JavaAgentUsedByPluginTest.java
@@ -61,7 +61,6 @@
         verifier.setEnvironmentVariable( "MAVEN_OPTS", "-javaagent:agent.jar" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props1 = verifier.loadProperties( "target/agent.properties" );
         Properties props2 = verifier.loadProperties( "target/plugin.properties" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4750ResolvedMavenProjectDependencyArtifactsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4750ResolvedMavenProjectDependencyArtifactsTest.java
index d617a19..53b5704 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4750ResolvedMavenProjectDependencyArtifactsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4750ResolvedMavenProjectDependencyArtifactsTest.java
@@ -62,7 +62,6 @@
         verifier.filterFile( "settings-template.xml", "settings.xml", "UTF-8", verifier.newDefaultFilterProperties() );
         verifier.executeGoal( "initialize" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/artifact.properties" );
         assertEquals( "1", props.getProperty( "project.dependencyArtifacts.size" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4755FetchRemoteMetadataForVersionRangeTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4755FetchRemoteMetadataForVersionRangeTest.java
index 63cef39..3cb18d4 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4755FetchRemoteMetadataForVersionRangeTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4755FetchRemoteMetadataForVersionRangeTest.java
@@ -60,7 +60,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         // test: resolve remote version
         verifier = newVerifier( new File( testDir, "test" ).getAbsolutePath() );
@@ -71,7 +70,6 @@
         verifier.filterFile( "settings-template.xml", "settings.xml", "UTF-8", verifier.newDefaultFilterProperties() );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> cp = verifier.loadLines( "target/classpath.txt", "UTF-8" );
         assertTrue( cp.toString(), cp.contains( "dep-1.jar" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4761PluginLevelDependencyScopesTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4761PluginLevelDependencyScopesTest.java
index 9e31507..8eadf9b 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4761PluginLevelDependencyScopesTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4761PluginLevelDependencyScopesTest.java
@@ -66,7 +66,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4765LocalPomProjectBuilderTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4765LocalPomProjectBuilderTest.java
index 53ef13f..1740514 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4765LocalPomProjectBuilderTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4765LocalPomProjectBuilderTest.java
@@ -58,7 +58,6 @@
         verifier.addCliArgument( "-Duser.prop=OK" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/pom.properties" );
         assertEquals( "PASSED - OK", props.get( "test.xml.project.name" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4768NearestMatchConflictResolutionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4768NearestMatchConflictResolutionTest.java
index 4f5cb34..3a14e4a 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4768NearestMatchConflictResolutionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4768NearestMatchConflictResolutionTest.java
@@ -106,7 +106,6 @@
         verifier.filterFile( "../settings-template.xml", "settings.xml", "UTF-8", verifier.newDefaultFilterProperties() );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> classpath = verifier.loadLines( "target/classpath.txt", "UTF-8" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4771PluginPrefixResolutionDoesntTouchDisabledRepoTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4771PluginPrefixResolutionDoesntTouchDisabledRepoTest.java
index 5a1cfba..0c1e05b 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4771PluginPrefixResolutionDoesntTouchDisabledRepoTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4771PluginPrefixResolutionDoesntTouchDisabledRepoTest.java
@@ -112,7 +112,6 @@
         }
         finally
         {
-            verifier.resetStreams();
             server.stop();
             server.join();
         }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4772PluginVersionResolutionDoesntTouchDisabledRepoTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4772PluginVersionResolutionDoesntTouchDisabledRepoTest.java
index 8c56dcd..0ef3bd9 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4772PluginVersionResolutionDoesntTouchDisabledRepoTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4772PluginVersionResolutionDoesntTouchDisabledRepoTest.java
@@ -113,7 +113,6 @@
         }
         finally
         {
-            verifier.resetStreams();
             server.stop();
             server.join();
         }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4776ForkedReactorPluginVersionResolutionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4776ForkedReactorPluginVersionResolutionTest.java
index 287f969..d9ba540 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4776ForkedReactorPluginVersionResolutionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4776ForkedReactorPluginVersionResolutionTest.java
@@ -60,7 +60,6 @@
         verifier.setLogFileName( "log-lifecycle.txt" );
         verifier.executeGoal( "test" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "sub/target/log.txt" );
     }
@@ -85,7 +84,6 @@
         verifier.setLogFileName( "log-cli.txt" );
         verifier.executeGoal( "org.apache.maven.its.plugins:maven-it-plugin-fork:2.1-SNAPSHOT:fork-lifecycle-aggregator" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "sub/target/log.txt" );
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4779MultipleDepsWithVersionRangeFromLocalRepoTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4779MultipleDepsWithVersionRangeFromLocalRepoTest.java
index a88e6f4..7ec4665 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4779MultipleDepsWithVersionRangeFromLocalRepoTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4779MultipleDepsWithVersionRangeFromLocalRepoTest.java
@@ -59,7 +59,6 @@
         verifier.deleteArtifacts( "org.apache.maven.its.mng4779" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> classpath = verifier.loadLines( "test/target/classpath.txt", "UTF-8" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4781DeploymentToNexusStagingRepoTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4781DeploymentToNexusStagingRepoTest.java
index eb61684..6231863 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4781DeploymentToNexusStagingRepoTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4781DeploymentToNexusStagingRepoTest.java
@@ -140,7 +140,6 @@
         verifier.addCliOption( "-DdeploymentPort=" + port );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         assertTrue( deployedUris.contains( "/repo/org/apache/maven/its/mng4781/release/1.0/release-1.0.jar" ) );
         assertTrue( deployedUris.contains( "/repo/org/apache/maven/its/mng4781/release/1.0/release-1.0.pom" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4785TransitiveResolutionInForkedThreadTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4785TransitiveResolutionInForkedThreadTest.java
index a7dce78..54ce412 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4785TransitiveResolutionInForkedThreadTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4785TransitiveResolutionInForkedThreadTest.java
@@ -62,7 +62,6 @@
         verifier.filterFile( "settings-template.xml", "settings.xml", "UTF-8", verifier.newDefaultFilterProperties() );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/artifacts.properties" );
         String path = props.getProperty( "org.apache.maven.its.mng4785:dep:jar:0.1-SNAPSHOT", "" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4786AntBased21xMojoSupportTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4786AntBased21xMojoSupportTest.java
index 5b3c578..68f8cc2 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4786AntBased21xMojoSupportTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4786AntBased21xMojoSupportTest.java
@@ -59,7 +59,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/ant.txt" );
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4788InstallationToCustomLocalRepoTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4788InstallationToCustomLocalRepoTest.java
index f09eb7d..0e8e037 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4788InstallationToCustomLocalRepoTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4788InstallationToCustomLocalRepoTest.java
@@ -56,7 +56,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/local-repo/test-0.1-SNAPSHOT.jar" );
         verifier.verifyFileNotPresent( "target/local-repo/org/apache/maven/its/mng4788/test/0.1-SNAPSHOT/test-0.1-SNAPSHOT.jar" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4789ScopeInheritanceMeetsConflictTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4789ScopeInheritanceMeetsConflictTest.java
index fb66934..9296ea1 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4789ScopeInheritanceMeetsConflictTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4789ScopeInheritanceMeetsConflictTest.java
@@ -62,7 +62,6 @@
         verifier.filterFile( "settings-template.xml", "settings.xml", "UTF-8", verifier.newDefaultFilterProperties() );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> compile = verifier.loadLines( "target/compile.txt", "UTF-8" );
         assertFalse( compile.toString(), compile.contains( "a-0.1.jar" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4791ProjectBuilderResolvesRemotePomArtifactTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4791ProjectBuilderResolvesRemotePomArtifactTest.java
index 38a6234..31fd740 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4791ProjectBuilderResolvesRemotePomArtifactTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4791ProjectBuilderResolvesRemotePomArtifactTest.java
@@ -62,7 +62,6 @@
         verifier.filterFile( "settings-template.xml", "settings.xml", "UTF-8", verifier.newDefaultFilterProperties() );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/pom.properties" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4795DepResolutionInReactorProjectForkedByLifecycleTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4795DepResolutionInReactorProjectForkedByLifecycleTest.java
index ea1db3c..ab353c2 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4795DepResolutionInReactorProjectForkedByLifecycleTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4795DepResolutionInReactorProjectForkedByLifecycleTest.java
@@ -59,7 +59,6 @@
         verifier.deleteDirectory( "sub/target" );
         verifier.executeGoal( "process-sources" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> compile0 = verifier.loadLines( "sub/target/compile-0.txt", "UTF-8" );
         assertTrue( compile0.toString(), compile0.contains( "maven-core-it-support-1.0.jar" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4800NearestWinsVsScopeWideningTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4800NearestWinsVsScopeWideningTest.java
index cef802a..4920696 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4800NearestWinsVsScopeWideningTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4800NearestWinsVsScopeWideningTest.java
@@ -74,7 +74,6 @@
         verifier.filterFile( "../settings-template.xml", "settings.xml", "UTF-8", verifier.newDefaultFilterProperties() );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> compile = verifier.loadLines( "target/compile.txt", "UTF-8" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4811CustomComponentConfiguratorTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4811CustomComponentConfiguratorTest.java
index 79b21e7..08c8877 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4811CustomComponentConfiguratorTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4811CustomComponentConfiguratorTest.java
@@ -55,7 +55,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/config.properties" );
         assertEquals( "PASSED", props.getProperty( "stringParam" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4814ReResolutionOfDependenciesDuringReactorTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4814ReResolutionOfDependenciesDuringReactorTest.java
index 85d41a4..3044ed4 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4814ReResolutionOfDependenciesDuringReactorTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4814ReResolutionOfDependenciesDuringReactorTest.java
@@ -67,7 +67,6 @@
         goals.add( "validate" );
         verifier.executeGoals( goals );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> compile = verifier.loadLines( "consumer/target/compile.txt", "UTF-8" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4829ChecksumFailureWarningTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4829ChecksumFailureWarningTest.java
index c8d48cc..424c29c 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4829ChecksumFailureWarningTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4829ChecksumFailureWarningTest.java
@@ -61,7 +61,6 @@
         verifier.filterFile( "settings-template.xml", "settings.xml", "UTF-8", verifier.newDefaultFilterProperties() );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> lines = verifier.loadFile( new File( testDir, verifier.getLogFileName() ), false );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4834ParentProjectResolvedFromRemoteReposTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4834ParentProjectResolvedFromRemoteReposTest.java
index bd998de..c91c34d 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4834ParentProjectResolvedFromRemoteReposTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4834ParentProjectResolvedFromRemoteReposTest.java
@@ -62,7 +62,6 @@
         verifier.filterFile( "settings-template.xml", "settings.xml", "UTF-8", verifier.newDefaultFilterProperties() );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/pom.properties" );
         assertEquals( "PASSED", props.getProperty( "project.parent.description" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4840MavenPrerequisiteTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4840MavenPrerequisiteTest.java
index af1a202..dc7868e 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4840MavenPrerequisiteTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4840MavenPrerequisiteTest.java
@@ -68,10 +68,6 @@
         {
             // expected, unsolvable version conflict
         }
-        finally
-        {
-            verifier.resetStreams();
-        }
     }
 
     /**
@@ -95,7 +91,6 @@
         verifier.filterFile( "../settings-template.xml", "settings.xml", "UTF-8", verifier.newDefaultFilterProperties() );
         verifier.executeGoal( "org.apache.maven.its.mng4840:maven-mng4840-plugin:touch" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/touch-1.txt" );
         verifier.verifyFileNotPresent( "target/touch-2.txt" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4842ParentResolutionOfDependencyPomTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4842ParentResolutionOfDependencyPomTest.java
index 7e1edbc..7cc8f75 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4842ParentResolutionOfDependencyPomTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4842ParentResolutionOfDependencyPomTest.java
@@ -63,7 +63,6 @@
         verifier.filterFile( "../settings-template.xml", "settings.xml", "UTF-8", verifier.newDefaultFilterProperties() );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> compile = verifier.loadLines( "target/compile.txt", "UTF-8" );
 
@@ -93,7 +92,6 @@
         verifier.filterFile( "../settings-template.xml", "settings.xml", "UTF-8", verifier.newDefaultFilterProperties() );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyArtifactPresent( "org.apache.maven.its.mng4842", "parent", "0.1", "pom" );
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4872ReactorResolutionAttachedWithExclusionsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4872ReactorResolutionAttachedWithExclusionsTest.java
index 87f15b5..99a0501 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4872ReactorResolutionAttachedWithExclusionsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4872ReactorResolutionAttachedWithExclusionsTest.java
@@ -58,7 +58,6 @@
         verifier.deleteArtifacts( "org.apache.maven.its.mng4872" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> artifacts = verifier.loadLines( "consumer/target/artifacts.txt", "UTF-8" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4874UpdateLatestPluginVersionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4874UpdateLatestPluginVersionTest.java
index cf41701..de14bc5 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4874UpdateLatestPluginVersionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4874UpdateLatestPluginVersionTest.java
@@ -58,7 +58,6 @@
         verifier.deleteArtifacts( "org.apache.maven.its.mng4874" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         File metadataFile = new File( testDir, "target/repo/org/apache/maven/its/mng4874/test/maven-metadata.xml" );
         String xml = FileUtils.fileRead( metadataFile, "UTF-8" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4877DeployUsingPrivateKeyTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4877DeployUsingPrivateKeyTest.java
index b712a34..473903f 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4877DeployUsingPrivateKeyTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4877DeployUsingPrivateKeyTest.java
@@ -59,7 +59,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/wagon.properties" );
         assertEquals( "testuser", props.get( "username" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4883FailUponOverconstrainedVersionRangesTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4883FailUponOverconstrainedVersionRangesTest.java
index 236fed1..4c72f57 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4883FailUponOverconstrainedVersionRangesTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4883FailUponOverconstrainedVersionRangesTest.java
@@ -68,10 +68,6 @@
         {
             // expected, unsolvable version conflict
         }
-        finally
-        {
-            verifier.resetStreams();
-        }
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4890MakeLikeReactorConsidersVersionsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4890MakeLikeReactorConsidersVersionsTest.java
index 4e701e8..f26039c 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4890MakeLikeReactorConsidersVersionsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4890MakeLikeReactorConsidersVersionsTest.java
@@ -63,7 +63,6 @@
         verifier.setLogFileName( "log-am.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "mod-b/target/touch.txt" );
         verifier.verifyFileNotPresent( "mod-a/target/touch.txt" );
@@ -93,7 +92,6 @@
         verifier.setLogFileName( "log-amd.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "mod-a/target/touch.txt" );
         verifier.verifyFileNotPresent( "mod-b/target/touch.txt" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4891RobustSnapshotResolutionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4891RobustSnapshotResolutionTest.java
index f4ec3a5..76d0348 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4891RobustSnapshotResolutionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4891RobustSnapshotResolutionTest.java
@@ -59,14 +59,12 @@
         verifier.deleteArtifacts( "org.apache.maven.its.mng4891" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier = newVerifier( new File( testDir, "consumer" ).getAbsolutePath() );
         verifier.setAutoclean( false );
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> artifacts = verifier.loadLines( "target/artifacts.txt", "UTF-8" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4895PluginDepWithNonRelocatedMavenApiTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4895PluginDepWithNonRelocatedMavenApiTest.java
index 85dd3dd..9deedc0 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4895PluginDepWithNonRelocatedMavenApiTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4895PluginDepWithNonRelocatedMavenApiTest.java
@@ -61,7 +61,6 @@
         verifier.filterFile( "settings-template.xml", "settings.xml", "UTF-8", verifier.newDefaultFilterProperties() );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/classpath.txt" );
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4913UserPropertyVsDependencyPomPropertyTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4913UserPropertyVsDependencyPomPropertyTest.java
index aa80c2f..39fd590 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4913UserPropertyVsDependencyPomPropertyTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4913UserPropertyVsDependencyPomPropertyTest.java
@@ -62,7 +62,6 @@
         verifier.filterFile( "settings-template.xml", "settings.xml", "UTF-8", verifier.newDefaultFilterProperties() );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> classpath = verifier.loadLines( "target/classpath.txt", "UTF-8" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4919LifecycleMappingWithSameGoalTwiceTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4919LifecycleMappingWithSameGoalTwiceTest.java
index 723d7ba..9550926 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4919LifecycleMappingWithSameGoalTwiceTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4919LifecycleMappingWithSameGoalTwiceTest.java
@@ -58,7 +58,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoals( Arrays.asList( new String[] { "clean", "validate" } ) );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> lines = verifier.loadLines( "target/log.txt", "UTF-8" );
         assertEquals( Arrays.asList( new String[] { "check", "check" } ), lines );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4925ContainerLookupRealmDuringMojoExecTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4925ContainerLookupRealmDuringMojoExecTest.java
index f5362bf..7c24dc2 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4925ContainerLookupRealmDuringMojoExecTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4925ContainerLookupRealmDuringMojoExecTest.java
@@ -61,7 +61,6 @@
         verifier.filterFile( "settings-template.xml", "settings.xml", "UTF-8", verifier.newDefaultFilterProperties() );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/touch.txt" );
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4936EventSpyTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4936EventSpyTest.java
index 4f6f6be..675da17 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4936EventSpyTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4936EventSpyTest.java
@@ -60,7 +60,6 @@
         verifier.addCliOption( "-X" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> lines = verifier.loadLines( "target/spy.log", "UTF-8" );
         assertTrue( lines.toString(), lines.get( 0 ).toString().startsWith( "init" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4952MetadataReleaseInfoUpdateTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4952MetadataReleaseInfoUpdateTest.java
index 05308e1..e37aa0d 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4952MetadataReleaseInfoUpdateTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4952MetadataReleaseInfoUpdateTest.java
@@ -72,7 +72,6 @@
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
 
-        verifier.resetStreams();
 
         File metadataFile = new File( testDir, "target/repo/org/apache/maven/its/mng4952/test/maven-metadata.xml" );
         String xml = FileUtils.fileRead( metadataFile, "UTF-8" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4955LocalVsRemoteSnapshotResolutionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4955LocalVsRemoteSnapshotResolutionTest.java
index 3103a67..ae2158a 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4955LocalVsRemoteSnapshotResolutionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4955LocalVsRemoteSnapshotResolutionTest.java
@@ -59,7 +59,6 @@
         verifier.deleteArtifacts( "org.apache.maven.its.mng4955" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier = newVerifier( testDir.getAbsolutePath() );
         verifier.setAutoclean( false );
@@ -69,7 +68,6 @@
         verifier.filterFile( "settings-template.xml", "settings.xml", "UTF-8", verifier.newDefaultFilterProperties() );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> classpath = verifier.loadLines( "target/classpath.txt", "UTF-8" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4960MakeLikeReactorResumeTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4960MakeLikeReactorResumeTest.java
index 4d23864..190244b 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4960MakeLikeReactorResumeTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4960MakeLikeReactorResumeTest.java
@@ -65,7 +65,6 @@
         verifier.setLogFileName( "log-up.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "mod-a/target/touch.txt" );
         verifier.verifyFilePresent( "mod-b/target/touch.txt" );
@@ -97,7 +96,6 @@
         verifier.setLogFileName( "log-down.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFileNotPresent( "mod-a/target/touch.txt" );
         verifier.verifyFilePresent( "mod-b/target/touch.txt" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4963ParentResolutionFromMirrorTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4963ParentResolutionFromMirrorTest.java
index e8ba438..d66023f 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4963ParentResolutionFromMirrorTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4963ParentResolutionFromMirrorTest.java
@@ -62,7 +62,6 @@
         verifier.filterFile( "settings-template.xml", "settings.xml", "UTF-8", verifier.newDefaultFilterProperties() );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4966AbnormalUrlPreservationTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4966AbnormalUrlPreservationTest.java
index dd83c40..5651613 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4966AbnormalUrlPreservationTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4966AbnormalUrlPreservationTest.java
@@ -57,7 +57,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/pom.properties" );
         assertEquals( "file:////UNC/server/dir/", props.getProperty( "project.url" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4973ExtensionVisibleToPluginInReactorTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4973ExtensionVisibleToPluginInReactorTest.java
index 3a8eec1..23340e6 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4973ExtensionVisibleToPluginInReactorTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4973ExtensionVisibleToPluginInReactorTest.java
@@ -63,7 +63,6 @@
         verifier.filterFile( "settings-template.xml", "settings.xml", "UTF-8", verifier.newDefaultFilterProperties() );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "sub-b/target/artifact.properties" );
         assertNotNull( props.get( "org.apache.maven.its.mng4973:dep:it-artifact:it:0.1" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4975ProfileInjectedPluginExecutionOrderTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4975ProfileInjectedPluginExecutionOrderTest.java
index 24a3f0d..6e389dc 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4975ProfileInjectedPluginExecutionOrderTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4975ProfileInjectedPluginExecutionOrderTest.java
@@ -59,7 +59,6 @@
         verifier.addCliOption( "-Pprofile2,profile1" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> lines = verifier.loadLines( "target/exec.log", "UTF-8" );
         List<String> expected = Arrays.asList( new String[] { "1", "2", "3", "4", "5" } );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4987TimestampBasedSnapshotSelectionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4987TimestampBasedSnapshotSelectionTest.java
index cda19c1..cac1ede 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4987TimestampBasedSnapshotSelectionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4987TimestampBasedSnapshotSelectionTest.java
@@ -62,7 +62,6 @@
         verifier.filterFile( "settings-template.xml", "settings.xml", "UTF-8", verifier.newDefaultFilterProperties() );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> compile = verifier.loadLines( "target/compile.txt", "UTF-8" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4991NonProxyHostsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4991NonProxyHostsTest.java
index 01cc1f1..bef9c1f 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4991NonProxyHostsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4991NonProxyHostsTest.java
@@ -108,7 +108,6 @@
         }
         finally
         {
-            verifier.resetStreams();
             server.stop();
             proxy.stop();
             server.join();
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4992MapStylePropertiesParamConfigTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4992MapStylePropertiesParamConfigTest.java
index b4f4350..d3543c8 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4992MapStylePropertiesParamConfigTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4992MapStylePropertiesParamConfigTest.java
@@ -55,7 +55,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/config.properties" );
         assertEquals( "mapValue", props.getProperty( "mapParam.mapKey" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5000ChildPathAwareUrlInheritanceTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5000ChildPathAwareUrlInheritanceTest.java
index b37f810..d10f60f 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5000ChildPathAwareUrlInheritanceTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5000ChildPathAwareUrlInheritanceTest.java
@@ -60,7 +60,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/pom.properties" );
         assertEquals( "http://project.url/child", props.getProperty( "project.url" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5006VersionRangeDependencyParentResolutionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5006VersionRangeDependencyParentResolutionTest.java
index 747e646..9ef9dac 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5006VersionRangeDependencyParentResolutionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5006VersionRangeDependencyParentResolutionTest.java
@@ -64,7 +64,6 @@
         verifier.filterFile( "settings-template.xml", "settings.xml", "UTF-8", verifier.newDefaultFilterProperties() );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> compile = verifier.loadLines( "target/compile.txt", "UTF-8" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5009AggregationCycleTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5009AggregationCycleTest.java
index 5495b83..9849128 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5009AggregationCycleTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5009AggregationCycleTest.java
@@ -62,10 +62,6 @@
         {
             verifier.verifyTextInLog( " cycle " );
         }
-        finally
-        {
-            verifier.resetStreams();
-        }
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5011ConfigureCollectionArrayFromUserPropertiesTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5011ConfigureCollectionArrayFromUserPropertiesTest.java
index 90e1e34..5fdfcd8 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5011ConfigureCollectionArrayFromUserPropertiesTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5011ConfigureCollectionArrayFromUserPropertiesTest.java
@@ -58,7 +58,6 @@
         verifier.addCliArgument( "-Dconfig.listParam=,two,,four," );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/config.properties" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5012CollectionVsArrayParamCoercionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5012CollectionVsArrayParamCoercionTest.java
index 880d2a6..7b8137d 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5012CollectionVsArrayParamCoercionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5012CollectionVsArrayParamCoercionTest.java
@@ -56,7 +56,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/config.properties" );
         assertEquals( new File( testDir, "src/main/java" ).getCanonicalFile(),
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5013ConfigureParamBeanFromScalarValueTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5013ConfigureParamBeanFromScalarValueTest.java
index 52b8f57..47e70a4 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5013ConfigureParamBeanFromScalarValueTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5013ConfigureParamBeanFromScalarValueTest.java
@@ -55,7 +55,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/config.properties" );
         assertEquals( "PASSED", props.getProperty( "beanParam.fieldParam" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5019StringBasedCompLookupFromChildPluginRealmTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5019StringBasedCompLookupFromChildPluginRealmTest.java
index 47cec1a..0b76013 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5019StringBasedCompLookupFromChildPluginRealmTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5019StringBasedCompLookupFromChildPluginRealmTest.java
@@ -60,7 +60,6 @@
         verifier.filterFile( "settings-template.xml", "settings.xml", "UTF-8", verifier.newDefaultFilterProperties() );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/touch.txt" );
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5064SuppressSnapshotUpdatesTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5064SuppressSnapshotUpdatesTest.java
index d90ab10..fa6435d 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5064SuppressSnapshotUpdatesTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5064SuppressSnapshotUpdatesTest.java
@@ -134,7 +134,6 @@
         }
         finally
         {
-            verifier.resetStreams();
             server.stop();
             server.join();
         }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5096ExclusionAtDependencyWithImpliedClassifierTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5096ExclusionAtDependencyWithImpliedClassifierTest.java
index d3184e0..f0c46e5 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5096ExclusionAtDependencyWithImpliedClassifierTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5096ExclusionAtDependencyWithImpliedClassifierTest.java
@@ -63,7 +63,6 @@
         verifier.filterFile( "settings-template.xml", "settings.xml", "UTF-8", verifier.newDefaultFilterProperties() );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> compile = verifier.loadLines( "target/compile.txt", "UTF-8" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5135AggregatorDepResolutionModuleExtensionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5135AggregatorDepResolutionModuleExtensionTest.java
index 286fd35..aa81d7b 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5135AggregatorDepResolutionModuleExtensionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5135AggregatorDepResolutionModuleExtensionTest.java
@@ -61,7 +61,6 @@
         verifier.filterFile( "settings-template.xml", "settings.xml", "UTF-8", verifier.newDefaultFilterProperties() );
         verifier.executeGoal( "org.apache.maven.its.plugins:maven-it-plugin-dependency-resolution:aggregate-test" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> compile = verifier.loadLines( "target/module.txt", "UTF-8" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5137ReactorResolutionInForkedBuildTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5137ReactorResolutionInForkedBuildTest.java
index 8a6ae4b..f628049 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5137ReactorResolutionInForkedBuildTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5137ReactorResolutionInForkedBuildTest.java
@@ -63,7 +63,6 @@
         verifier.executeGoal(
                 "org.apache.maven.its.plugins:maven-it-plugin-fork:2.1-SNAPSHOT:fork-lifecycle-aggregator" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> compile = verifier.loadLines( "consumer/target/compile.txt", "UTF-8" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5175WagonHttpTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5175WagonHttpTest.java
index 5996394..381155a 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5175WagonHttpTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5175WagonHttpTest.java
@@ -138,6 +138,5 @@
         verifier.verifyTextInLog(
                 "Could not transfer artifact org.apache.maven.its.mng5175:fake-dependency:pom:1.0-SNAPSHOT" );
         verifier.verifyTextInLog( "Read timed out" );
-        verifier.resetStreams();
     }
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5206PlexusLifecycleHonoured.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5206PlexusLifecycleHonoured.java
index cb7f47b..2bfeda4 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5206PlexusLifecycleHonoured.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5206PlexusLifecycleHonoured.java
@@ -59,7 +59,6 @@
         verifier.deleteArtifacts( "org.apache.maven.its.mng5206" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyTextInLog( "MojoWithPlexusLifecycle :: contextualize" );
         verifier.verifyTextInLog( "DefaultFakeComponent :: contextualize" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5208EventSpyParallelTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5208EventSpyParallelTest.java
index 30b67b5..5ce50d5 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5208EventSpyParallelTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5208EventSpyParallelTest.java
@@ -62,7 +62,6 @@
         verifier.addCliOption( "-fn" );
         verifier.executeGoal( "compile" );
         verifier.verifyTextInLog( "ProjectFailed/org.apache.maven.its.mng5208:sub-2" );
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5222MojoDeprecatedTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5222MojoDeprecatedTest.java
index 4aebcd9..05b7c5f 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5222MojoDeprecatedTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5222MojoDeprecatedTest.java
@@ -60,7 +60,6 @@
         verifier.setLogFileName( "log-empty-configuration.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> logLines = verifier.loadFile( verifier.getBasedir(), verifier.getLogFileName(), false );
         List<String> warnLines = findDeprecationWarning( logLines );
@@ -112,7 +111,6 @@
         verifier.setLogFileName( "log-deprecated-property.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> logLines = verifier.loadFile( verifier.getBasedir(), verifier.getLogFileName(), false );
         List<String> warnLines = findDeprecationWarning( logLines );
@@ -180,7 +178,6 @@
         verifier.setLogFileName( "log-deprecated-config.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> logLines = verifier.loadFile( verifier.getBasedir(), verifier.getLogFileName(), false );
         List<String> warnLines = findDeprecationWarning( logLines );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5230MakeReactorWithExcludesTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5230MakeReactorWithExcludesTest.java
index a5eff6a..eb749bc 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5230MakeReactorWithExcludesTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5230MakeReactorWithExcludesTest.java
@@ -69,7 +69,6 @@
         verifier.setLogFileName( "log-only.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/touch.txt" );
         verifier.verifyFilePresent( "mod-a/target/touch.txt" );
@@ -98,7 +97,6 @@
         verifier.setLogFileName( "log-upstream.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/touch.txt" );
         verifier.verifyFileNotPresent( "mod-a/target/touch.txt" );
@@ -127,7 +125,6 @@
         verifier.setLogFileName( "log-downstream.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFileNotPresent( "target/touch.txt" );
         verifier.verifyFileNotPresent( "mod-a/target/touch.txt" );
@@ -157,7 +154,6 @@
         verifier.setLogFileName( "log-both.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/touch.txt" );
         verifier.verifyFileNotPresent( "mod-a/target/touch.txt" );
@@ -186,7 +182,6 @@
         verifier.setLogFileName( "log-basedir-exclamation.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/touch.txt" );
         verifier.verifyFilePresent( "mod-a/target/touch.txt" );
@@ -215,7 +210,6 @@
         verifier.setLogFileName( "log-basedir-minus.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/touch.txt" );
         verifier.verifyFilePresent( "mod-a/target/touch.txt" );
@@ -244,7 +238,6 @@
         verifier.setLogFileName( "log-id.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/touch.txt" );
         verifier.verifyFilePresent( "mod-a/target/touch.txt" );
@@ -272,7 +265,6 @@
         verifier.setLogFileName( "log-artifact-id.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/touch.txt" );
         verifier.verifyFilePresent( "mod-a/target/touch.txt" );
@@ -302,7 +294,6 @@
         verifier.setLogFileName( "log-resume.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFileNotPresent( "target/touch.txt" );
         verifier.verifyFileNotPresent( "mod-a/target/touch.txt" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5280SettingsProfilesRepositoriesOrderTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5280SettingsProfilesRepositoriesOrderTest.java
index e3c2b41..9658aca 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5280SettingsProfilesRepositoriesOrderTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5280SettingsProfilesRepositoriesOrderTest.java
@@ -108,7 +108,6 @@
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "org.apache.maven.its.plugins:maven-it-plugin-dependency-resolution:2.1-SNAPSHOT:compile" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         assertTrue( repoHandler.artifactRequestedFromRepo2 );
         assertTrue( repoHandler.artifactRequestedFromRepo1Last );
@@ -144,7 +143,6 @@
         verifier.addCliOption( "--settings" );
         verifier.addCliOption( "settings.xml" );
         verifier.executeGoal( "org.apache.maven.its.mng5280:fake-maven-plugin:1.0:fake" );
-        verifier.resetStreams();
 
         assertTrue( pluginRepoHandler.pluginRequestedFromRepo2 );
         assertTrue( pluginRepoHandler.pluginRequestedFromRepo1Last );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5338FileOptionToDirectory.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5338FileOptionToDirectory.java
index 9b4377c..fdce5e8 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5338FileOptionToDirectory.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5338FileOptionToDirectory.java
@@ -65,7 +65,6 @@
         verifier.addCliOption( "project" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
     }
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5382Jsr330Plugin.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5382Jsr330Plugin.java
index 9fe1149..4dfc63e 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5382Jsr330Plugin.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5382Jsr330Plugin.java
@@ -63,7 +63,6 @@
         v0.deleteArtifacts( "org.apache.maven.its.mng5382" );
         v0.executeGoal( "install" );
         v0.verifyErrorFreeLog();
-        v0.resetStreams();
 
         //
         // Execute the JSR330 plugin
@@ -72,7 +71,6 @@
         v1.setAutoclean( false );
         v1.executeGoal( "org.apache.maven.its.mng5382:jsr330-maven-plugin:0.0.1-SNAPSHOT:hello" );
         v1.verifyErrorFreeLog();
-        v1.resetStreams();
         v1.verifyTextInLog( "Hello! I am a component that is being used via constructor injection! That's right, I'm a JSR330 badass." );
 
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5387ArtifactReplacementPlugin.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5387ArtifactReplacementPlugin.java
index affd5c5..f6471dd 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5387ArtifactReplacementPlugin.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5387ArtifactReplacementPlugin.java
@@ -56,7 +56,6 @@
         v0.deleteArtifacts( "org.apache.maven.its.mng5387" );
         v0.executeGoal( "install" );
         v0.verifyErrorFreeLog();
-        v0.resetStreams();
 
         String path = v0.getArtifactPath( "org.apache.maven.its.mng5387", "mng5387-it", "0.0.1-SNAPSHOT", "txt", "c" );
         String contents = FileUtils.fileRead( new File( path ), "utf-8" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5389LifecycleParticipantAfterSessionEnd.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5389LifecycleParticipantAfterSessionEnd.java
index aae5478..1a6837b 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5389LifecycleParticipantAfterSessionEnd.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5389LifecycleParticipantAfterSessionEnd.java
@@ -48,13 +48,11 @@
         // install the test plugin
         verifier = newVerifier( extensionDir.getAbsolutePath(), "remote" );
         verifier.executeGoal( "install" );
-        verifier.resetStreams();
         verifier.verifyErrorFreeLog();
 
         // build the test project
         verifier = newVerifier( projectDir.getAbsolutePath(), "remote" );
         verifier.executeGoal( "package" );
-        verifier.resetStreams();
         verifier.verifyErrorFreeLog();
 
         verifier.verifyFilePresent( "target/afterSessionEnd.txt" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5418FileProjectPropertiesActivatorTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5418FileProjectPropertiesActivatorTest.java
index 0550eb3..11522c7 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5418FileProjectPropertiesActivatorTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5418FileProjectPropertiesActivatorTest.java
@@ -58,7 +58,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/path1.txt" );
         verifier.verifyFilePresent( "target/file1.txt" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5445LegacyStringSearchModelInterpolatorTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5445LegacyStringSearchModelInterpolatorTest.java
index 9156dad..8e0bbdb 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5445LegacyStringSearchModelInterpolatorTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5445LegacyStringSearchModelInterpolatorTest.java
@@ -54,7 +54,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5482AetherNotFoundTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5482AetherNotFoundTest.java
index b61f08d..d975677 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5482AetherNotFoundTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5482AetherNotFoundTest.java
@@ -85,10 +85,6 @@
         {
             // expected...it'd be nice if we could get the specifics of the exception right here...
         }
-        finally
-        {
-            verifier.resetStreams();
-        }
 
         List<String> lines = verifier.loadFile( new File( testDir, "log.txt" ), false );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5503ZipInReactorTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5503ZipInReactorTest.java
index 9ff05cd..1ae65d6 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5503ZipInReactorTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5503ZipInReactorTest.java
@@ -59,7 +59,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "verify" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5530MojoExecutionScopeTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5530MojoExecutionScopeTest.java
index 5232e72..f005f5f 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5530MojoExecutionScopeTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5530MojoExecutionScopeTest.java
@@ -47,13 +47,11 @@
         // install the test plugin
         verifier = newVerifier( pluginDir.getAbsolutePath(), "remote" );
         verifier.executeGoal( "install" );
-        verifier.resetStreams();
         verifier.verifyErrorFreeLog();
 
         // build the test project
         verifier = newVerifier( projectDir.getAbsolutePath(), "remote" );
         verifier.executeGoal( "package" );
-        verifier.resetStreams();
         verifier.verifyErrorFreeLog();
 
         // verifier.verifyFilePresent( "target/execution-failure.txt" );
@@ -74,7 +72,6 @@
         // install the test plugin
         verifier = newVerifier( pluginDir.getAbsolutePath(), "remote" );
         verifier.executeGoal( "install" );
-        verifier.resetStreams();
         verifier.verifyErrorFreeLog();
 
         // build the test project
@@ -84,7 +81,6 @@
         verifier.addCliOption( "-T" );
         verifier.addCliOption( "1" );
         verifier.executeGoal( "package" );
-        verifier.resetStreams();
         verifier.verifyErrorFreeLog();
 
         // verifier.verifyFilePresent( "target/execution-failure.txt" );
@@ -106,13 +102,11 @@
         // install the test extension
         verifier = newVerifier( extensionDir.getAbsolutePath(), "remote" );
         verifier.executeGoal( "install" );
-        verifier.resetStreams();
         verifier.verifyErrorFreeLog();
 
         // install the test plugin
         verifier = newVerifier( pluginDir.getAbsolutePath(), "remote" );
         verifier.executeGoal( "install" );
-        verifier.resetStreams();
         verifier.verifyErrorFreeLog();
 
         // build the test project
@@ -120,7 +114,6 @@
         verifier.addCliOption( "-Dmaven.ext.class.path=" + new File( extensionDir, "target/classes" ).getAbsolutePath() );
         verifier.setForkJvm( true ); // verifier does not support custom realms in embedded mode
         verifier.executeGoal( "package" );
-        verifier.resetStreams();
         verifier.verifyErrorFreeLog();
     }
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5557ProperlyRestrictedReactor.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5557ProperlyRestrictedReactor.java
index 6c5f7ae..d990bc1 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5557ProperlyRestrictedReactor.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5557ProperlyRestrictedReactor.java
@@ -67,7 +67,6 @@
         {
             // the execution should fail due to a resolution error.
         }
-        verifier.resetStreams();
         verifier.verifyTextInLog( "Could not resolve dependencies for project org.apache.maven.its.mng5557:project-0:jar:1.0: Could not find artifact org.apache.maven.its.mng5557:project-4:jar:1.0" );
     }
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5561PluginRelocationLosesConfigurationTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5561PluginRelocationLosesConfigurationTest.java
index e5e3a00..e912c6b 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5561PluginRelocationLosesConfigurationTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5561PluginRelocationLosesConfigurationTest.java
@@ -50,17 +50,14 @@
 
         verifier = newVerifier( oldPluginWithRelocationDir.getAbsolutePath() );
         verifier.executeGoal( "install" );
-        verifier.resetStreams();
         verifier.verifyErrorFreeLog();
 
         verifier = newVerifier( newPluginDir.getAbsolutePath() );
         verifier.executeGoal( "install" );
-        verifier.resetStreams();
         verifier.verifyErrorFreeLog();
 
         verifier = newVerifier( projectDir.getAbsolutePath() );
         verifier.executeGoal( "verify" );
-        verifier.resetStreams();
         verifier.verifyErrorFreeLog();
         verifier.verifyTextInLog( "[WARNING] Hello from Maven!" );
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5572ReactorPluginExtensionsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5572ReactorPluginExtensionsTest.java
index 31f1481..5fdb52f 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5572ReactorPluginExtensionsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5572ReactorPluginExtensionsTest.java
@@ -60,7 +60,6 @@
         setup.addCliOption( "plugin/pom.xml" );
         setup.executeGoal( "install" );
         setup.verifyErrorFreeLog();
-        setup.resetStreams();
 
         Verifier verifier = newVerifier( testDir.getAbsolutePath() );
         verifier.setLogFileName( "log2.txt" );
@@ -75,7 +74,6 @@
         {
             verifier.verifyTextInLog( "[WARNING] 'project' uses 'org.apache.maven.its.mng5572:plugin' as extension which is not possible within the same reactor build. This plugin was pulled from the local repository!" );
         }
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5576CdFriendlyVersions.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5576CdFriendlyVersions.java
index 4e18dde..3cb64d0 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5576CdFriendlyVersions.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5576CdFriendlyVersions.java
@@ -60,7 +60,6 @@
         verifier.addCliOption( "-Dmaven.experimental.buildconsumer=false" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/pom.properties" );
         assertEquals( "1.0.0.changelist", props.getProperty( "project.version" ) );
@@ -92,7 +91,6 @@
         verifier.addCliOption( "-Dmaven.experimental.buildconsumer=true" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/pom.properties" );
         assertEquals( "1.0.0.changelist", props.getProperty( "project.version" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5578SessionScopeTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5578SessionScopeTest.java
index fd420b4..d1dd04b 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5578SessionScopeTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5578SessionScopeTest.java
@@ -47,14 +47,12 @@
         // install the test plugin
         verifier = newVerifier( pluginDir.getAbsolutePath(), "remote" );
         verifier.executeGoal( "install" );
-        verifier.resetStreams();
         verifier.verifyErrorFreeLog();
 
         // build the test project
         verifier = newVerifier( projectDir.getAbsolutePath(), "remote" );
         verifier.addCliOption( "-Dit-build-extensions=false" );
         verifier.executeGoal( "package" );
-        verifier.resetStreams();
         verifier.verifyErrorFreeLog();
     }
 
@@ -71,7 +69,6 @@
         // install the test plugin
         verifier = newVerifier( pluginDir.getAbsolutePath(), "remote" );
         verifier.executeGoal( "install" );
-        verifier.resetStreams();
         verifier.verifyErrorFreeLog();
 
         // build the test project
@@ -82,7 +79,6 @@
         verifier.addCliOption( "-T" );
         verifier.addCliOption( "1" );
         verifier.executeGoal( "package" );
-        verifier.resetStreams();
         verifier.verifyErrorFreeLog();
     }
 
@@ -99,14 +95,12 @@
         // install the test plugin
         verifier = newVerifier( pluginDir.getAbsolutePath(), "remote" );
         verifier.executeGoal( "install" );
-        verifier.resetStreams();
         verifier.verifyErrorFreeLog();
 
         // build the test project
         verifier = newVerifier( projectDir.getAbsolutePath(), "remote" );
         verifier.addCliOption( "-Dit-build-extensions=true" );
         verifier.executeGoal( "package" );
-        verifier.resetStreams();
         verifier.verifyErrorFreeLog();
     }
 
@@ -124,13 +118,11 @@
         // install the test extension
         verifier = newVerifier( extensionDir.getAbsolutePath(), "remote" );
         verifier.executeGoal( "install" );
-        verifier.resetStreams();
         verifier.verifyErrorFreeLog();
 
         // install the test plugin
         verifier = newVerifier( pluginDir.getAbsolutePath(), "remote" );
         verifier.executeGoal( "install" );
-        verifier.resetStreams();
         verifier.verifyErrorFreeLog();
 
         // build the test project
@@ -138,7 +130,6 @@
         verifier.addCliOption( "-Dmaven.ext.class.path=" + new File( extensionDir, "target/classes" ).getAbsolutePath() );
         verifier.setForkJvm( true ); // verifier does not support custom realms in embedded mode
         verifier.executeGoal( "package" );
-        verifier.resetStreams();
         verifier.verifyErrorFreeLog();
 
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5581LifecycleMappingDelegate.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5581LifecycleMappingDelegate.java
index 3fa2b9a..d8c4666 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5581LifecycleMappingDelegate.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5581LifecycleMappingDelegate.java
@@ -57,14 +57,12 @@
         // install the test extension
         verifier = newVerifier( extensionDir.getAbsolutePath() );
         verifier.executeGoal( "install" );
-        verifier.resetStreams();
         verifier.verifyErrorFreeLog();
 
         // compile the test project
         verifier = newVerifier( projectDir.getAbsolutePath() );
         verifier.setLogFileName( "compile-log.txt" );
         verifier.executeGoal( "compile" );
-        verifier.resetStreams();
         verifier.verifyErrorFreeLog();
 
         // run custom "test-only" build phase
@@ -74,7 +72,6 @@
         verifier.setForkJvm( true );
         verifier.setMavenDebug( true );
         verifier.executeGoal( "test-only" );
-        verifier.resetStreams();
         verifier.verifyErrorFreeLog();
         verifier.verifyTextInLog( "maven-surefire-plugin" );
         verifyTextNotInLog( verifier, "maven-compiler-plugin" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5591WorkspaceReader.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5591WorkspaceReader.java
index c187a07..e7d3a6d 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5591WorkspaceReader.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5591WorkspaceReader.java
@@ -55,7 +55,6 @@
         // install the test extension
         verifier = newVerifier( extensionDir.getAbsolutePath(), "remote" );
         verifier.executeGoal( "install" );
-        verifier.resetStreams();
         verifier.verifyErrorFreeLog();
 
         // compile the test project
@@ -63,7 +62,6 @@
         verifier.addCliOption( "-Dmaven.ext.class.path="
             + new File( extensionDir, "target/mng-5591-workspace-reader-extension-0.1.jar" ).getCanonicalPath() );
         verifier.executeGoal( "compile" );
-        verifier.resetStreams();
         verifier.verifyErrorFreeLog();
     }
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5608ProfileActivationWarningTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5608ProfileActivationWarningTest.java
index 43b1e5e..ca0498c 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5608ProfileActivationWarningTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5608ProfileActivationWarningTest.java
@@ -51,7 +51,6 @@
         Verifier verifier = newVerifier( testDir.getAbsolutePath() );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         // check expected profiles activated, just for sanity (or build should have failed, given other profiles)
         assertFileExists( testDir, "target/exists-basedir" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5639ImportScopePomResolutionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5639ImportScopePomResolutionTest.java
index 99b7b24..4b67946 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5639ImportScopePomResolutionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5639ImportScopePomResolutionTest.java
@@ -54,7 +54,6 @@
 
         verifier.executeGoal( "install" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyArtifactPresent( "org.apache.maven.its.mng5639", "b", "0.1", "jar" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5640LifecycleParticipantAfterSessionEnd.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5640LifecycleParticipantAfterSessionEnd.java
index 033bfd8..cf1fb31 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5640LifecycleParticipantAfterSessionEnd.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5640LifecycleParticipantAfterSessionEnd.java
@@ -58,7 +58,6 @@
         // install the test plugin
         verifier = newVerifier( extensionDir.getAbsolutePath(), "remote" );
         verifier.executeGoal( "install" );
-        verifier.resetStreams();
         verifier.verifyErrorFreeLog();
 
         // build the test project
@@ -72,7 +71,6 @@
         {
             // expected, as the build will fail due to always failing UT
         }
-        verifier.resetStreams();
         verifier.verifyTextInLog("testApp(org.apache.maven.its.mng5640.FailingTest)");
 
         verifier.verifyFilePresent( "target/afterProjectsRead.txt" );
@@ -100,7 +98,6 @@
         // install the test plugin
         verifier = newVerifier( extensionDir.getAbsolutePath(), "remote" );
         verifier.executeGoal( "install" );
-        verifier.resetStreams();
         verifier.verifyErrorFreeLog();
 
         // build the test project
@@ -114,7 +111,6 @@
         {
             // expected, as the build will fail due to always failing UT
         }
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/afterProjectsRead.txt" );
         // See https://issues.apache.org/jira/browse/MNG-5641
@@ -142,13 +138,11 @@
         // install the test plugin
         verifier = newVerifier( extensionDir.getAbsolutePath(), "remote" );
         verifier.executeGoal( "install" );
-        verifier.resetStreams();
         verifier.verifyErrorFreeLog();
 
         // install the bad plugin
         verifier = newVerifier( pluginDir.getAbsolutePath(), "remote" );
         verifier.executeGoal( "install" );
-        verifier.resetStreams();
         verifier.verifyErrorFreeLog();
 
         // build the test project
@@ -162,7 +156,6 @@
         {
             // expected, as the build will fail due to always failing UT
         }
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/afterProjectsRead.txt" );
         // See https://issues.apache.org/jira/browse/MNG-5641
@@ -190,13 +183,11 @@
         // install the test plugin
         verifier = newVerifier( extensionDir.getAbsolutePath(), "remote" );
         verifier.executeGoal( "install" );
-        verifier.resetStreams();
         verifier.verifyErrorFreeLog();
 
         // install the bad plugin
         verifier = newVerifier( pluginDir.getAbsolutePath(), "remote" );
         verifier.executeGoal( "install" );
-        verifier.resetStreams();
         verifier.verifyErrorFreeLog();
 
         // build the test project
@@ -210,7 +201,6 @@
         {
             // expected, as the build will fail due to always failing UT
         }
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/afterProjectsRead.txt" );
         // See https://issues.apache.org/jira/browse/MNG-5641
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5663NestedImportScopePomResolutionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5663NestedImportScopePomResolutionTest.java
index 460f3a1..97636d5 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5663NestedImportScopePomResolutionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5663NestedImportScopePomResolutionTest.java
@@ -60,7 +60,6 @@
 
         verifier.executeGoal( "install" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyArtifactPresent( "org.apache.maven.its.mng5663", "c", "0.1", "jar" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5669ReadPomsOnce.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5669ReadPomsOnce.java
index 2a4c176..81e2ab1 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5669ReadPomsOnce.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5669ReadPomsOnce.java
@@ -67,7 +67,6 @@
         verifier.addCliOption( "-U" );
         verifier.addCliOption( "-Dmaven.experimental.buildconsumer=false" );
         verifier.executeGoals( Arrays.asList( "verify" ) );
-        verifier.resetStreams();
 
         List<String> logTxt = verifier.loadLines( "log.txt", "utf-8" );
         for ( String line : logTxt )
@@ -122,7 +121,6 @@
         verifier.addCliOption( "-U" );
         verifier.addCliOption( "-Dmaven.experimental.buildconsumer=true" );
         verifier.executeGoals( Arrays.asList( "verify" ) );
-        verifier.resetStreams();
 
         List<String> logTxt = verifier.loadLines( "log-bc.txt", "utf-8" );
         for ( String line : logTxt )
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5716ToolchainsTypeTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5716ToolchainsTypeTest.java
index 30665e5..2e4ee97 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5716ToolchainsTypeTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5716ToolchainsTypeTest.java
@@ -68,7 +68,6 @@
         verifier.addCliOption( "toolchains.xml" );
         verifier.executeGoal( "initialize" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/toolchains.properties" );
         Properties results = verifier.loadProperties( "target/toolchains.properties" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5742BuildExtensionClassloaderTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5742BuildExtensionClassloaderTest.java
index 8715177..e214376 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5742BuildExtensionClassloaderTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5742BuildExtensionClassloaderTest.java
@@ -49,13 +49,11 @@
         // install the test plugin
         verifier = newVerifier( pluginDir.getAbsolutePath(), "remote" );
         verifier.executeGoal( "install" );
-        verifier.resetStreams();
         verifier.verifyErrorFreeLog();
 
         // build the test project
         verifier = newVerifier( projectDir.getAbsolutePath(), "remote" );
         verifier.executeGoal( "validate" );
-        verifier.resetStreams();
         verifier.verifyErrorFreeLog();
         verifier.verifyFilePresent( "target/execution-success.txt" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5753CustomMojoExecutionConfiguratorTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5753CustomMojoExecutionConfiguratorTest.java
index 696c4fd..9d88b9d 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5753CustomMojoExecutionConfiguratorTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5753CustomMojoExecutionConfiguratorTest.java
@@ -49,7 +49,6 @@
         // install the test plugin
         verifier = newVerifier( pluginDir.getAbsolutePath(), "remote" );
         verifier.executeGoal( "install" );
-        verifier.resetStreams();
         verifier.verifyErrorFreeLog();
 
         File configurationFile = new File(projectDir, "configuration.txt");
@@ -58,7 +57,6 @@
         // build the test project
         verifier = newVerifier( projectDir.getAbsolutePath(), "remote" );
         verifier.executeGoal( "validate" );
-        verifier.resetStreams();
         verifier.verifyErrorFreeLog();
 
         verifier.verifyFilePresent( configurationFile.getCanonicalPath() );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5760ResumeFeatureTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5760ResumeFeatureTest.java
index c781823..8833a7a 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5760ResumeFeatureTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5760ResumeFeatureTest.java
@@ -82,10 +82,6 @@
             verifier.verifyTextInLog( "mvn [args] -r" );
             verifyTextNotInLog( verifier, "mvn [args] -rf :module-b" );
         }
-        finally
-        {
-            verifier.resetStreams();
-        }
 
         // New build with -r should resume the build from module-b, skipping module-a since it has succeeded already.
         verifier = newVerifier( parentDependentTestDir.getAbsolutePath() );
@@ -94,7 +90,6 @@
         verifyTextNotInLog( verifier, "Building module-a 1.0" );
         verifier.verifyTextInLog( "Building module-b 1.0" );
         verifier.verifyTextInLog( "Building module-c 1.0" );
-        verifier.resetStreams();
     }
 
     @Test
@@ -113,10 +108,6 @@
         {
             // Expected to fail.
         }
-        finally
-        {
-            verifier.resetStreams();
-        }
 
         // Let module-b and module-c fail, if they would have been built...
         verifier = newVerifier( parentDependentTestDir.getAbsolutePath() );
@@ -125,14 +116,8 @@
         // ... but adding -r should exclude those two from the build because the previous Maven invocation
         // marked them as successfully built.
         verifier.addCliOption( "-r" );
-        try
-        {
-            verifier.executeGoal( "test" );
-        }
-        finally
-        {
-            verifier.resetStreams();
-        }
+
+        verifier.executeGoal( "test" );
     }
 
     @Test
@@ -154,17 +139,12 @@
         {
             verifier.verifyTextInLog( "mvn [args] -r" );
         }
-        finally
-        {
-            verifier.resetStreams();
-        }
 
         verifier = newVerifier( parentIndependentTestDir.getAbsolutePath() );
         verifier.addCliOption( "-r" );
         verifier.executeGoal( "test" );
         verifier.verifyTextInLog( "Building module-a 1.0" );
         verifyTextNotInLog( verifier, "Building module-b 1.0" );
-        verifier.resetStreams();
     }
 
     @Test
@@ -182,10 +162,6 @@
         {
             verifier.verifyTextInLog( "Goal requires a project to execute but there is no POM in this directory" );
         }
-        finally
-        {
-            verifier.resetStreams();
-        }
     }
 
     @Test
@@ -215,10 +191,6 @@
         {
             // Expected to fail.
         }
-        finally
-        {
-            verifier.resetStreams();
-        }
 
         // Let module-b fail, if it would have been built...
         verifier = newVerifier( fourModulesTestDir.getAbsolutePath() );
@@ -231,14 +203,8 @@
         //   a : success
         //   c : success
         //   d : success
-        try
-        {
-            verifier.executeGoal( "verify" );
-        }
-        finally
-        {
-            verifier.resetStreams();
-        }
+
+        verifier.executeGoal( "verify" );
     }
 
     @Test
@@ -267,10 +233,6 @@
         {
             // Expected to fail.
         }
-        finally
-        {
-            verifier.resetStreams();
-        }
 
         // Let module-a and module-b fail, if they would have been built...
         verifier = newVerifier( fourModulesTestDir.getAbsolutePath() );
@@ -280,17 +242,11 @@
         // ... but adding -r should exclude those two from the build because the previous Maven invocation
         // marked them as successfully built.
         verifier.addCliOption( "-r" );
-        try
-        {
-            // The result should be:
-            //   c : success
-            //   d : success
-            verifier.executeGoal( "verify" );
-        }
-        finally
-        {
-            verifier.resetStreams();
-        }
+
+        // The result should be:
+        //   c : success
+        //   d : success
+        verifier.executeGoal( "verify" );
     }
 
     /**
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5768CliExecutionIdTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5768CliExecutionIdTest.java
index 3d2681f..d67c27d 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5768CliExecutionIdTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5768CliExecutionIdTest.java
@@ -45,7 +45,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "org.apache.maven.its.plugins:maven-it-plugin-configuration:config@test-execution-id" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/config.properties" );
         assertEquals( "CONFIGURED", props.getProperty( "beanParam.fieldParam" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5771CoreExtensionsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5771CoreExtensionsTest.java
index ad77b41..4caca1f 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5771CoreExtensionsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5771CoreExtensionsTest.java
@@ -37,7 +37,6 @@
         verifier.addCliOption( new File( testDir, "settings.xml" ).getAbsolutePath() );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
     @Test
@@ -56,7 +55,6 @@
         verifier.addCliOption( new File( testDir, "settings.xml" ).getAbsolutePath() );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
     //
@@ -100,7 +98,6 @@
         verifier.addCliOption( new File( testDir, "settings.xml" ).getAbsolutePath() );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         server.stop();
     }
@@ -127,7 +124,6 @@
         verifier.addCliOption( "-Dtest-extension-version=0.1" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
     //
@@ -152,6 +148,5 @@
         verifier.setForkJvm( true ); // force forked JVM since we need the shell script to detect .mvn/
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5774ConfigurationProcessorsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5774ConfigurationProcessorsTest.java
index 70fde88..18c3e92 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5774ConfigurationProcessorsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5774ConfigurationProcessorsTest.java
@@ -39,7 +39,6 @@
         verifier.verifyFilePresent( "target/classes/result.properties" );
         Properties result = verifier.loadProperties( "target/classes/result.properties" );
         assertEquals( "yes", result.getProperty( "configurationProcessorContributedValue" ) );
-        verifier.resetStreams();
     }
 
     @Test
@@ -65,6 +64,5 @@
         {
             verifier.verifyTextInLog( "There can only be one user supplied ConfigurationProcessor" );
         }
-        verifier.resetStreams();
     }
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5783PluginDependencyFiltering.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5783PluginDependencyFiltering.java
index d649bfa..eaf41f4 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5783PluginDependencyFiltering.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5783PluginDependencyFiltering.java
@@ -25,12 +25,10 @@
         Verifier verifier = newVerifier( new File( testDir, "plugin" ).getAbsolutePath(), "remote" );
         verifier.executeGoal( "install" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier = newVerifier( new File( testDir, "slf4j" ).getAbsolutePath(), "remote" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         // Note that plugin dependencies always include plugin itself and plexus-utils
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5805PkgTypeMojoConfiguration2.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5805PkgTypeMojoConfiguration2.java
index b113c7f..5abf66d 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5805PkgTypeMojoConfiguration2.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5805PkgTypeMojoConfiguration2.java
@@ -29,6 +29,5 @@
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
         verifier.verifyTextInLog( "CLASS_NAME=org.apache.maven.its.mng5805.TestClass1" );
-        verifier.resetStreams();
     }
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5840ParentVersionRanges.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5840ParentVersionRanges.java
index c97ab33..020354d 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5840ParentVersionRanges.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5840ParentVersionRanges.java
@@ -24,12 +24,10 @@
         Verifier verifier = newVerifier( new File( testDir, "parent-1" ).getAbsolutePath(), "remote" );
         verifier.executeGoal( "install" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier = newVerifier( new File( testDir, "child" ).getAbsolutePath(), "remote" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
     @Test
@@ -41,12 +39,10 @@
         Verifier verifier = newVerifier( new File( testDir, "parent-1" ).getAbsolutePath(), "remote" );
         verifier.executeGoal( "install" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier = newVerifier( new File( testDir, "child" ).getAbsolutePath(), "remote" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5840RelativePathReactorMatching.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5840RelativePathReactorMatching.java
index f246b70..aef2c89 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5840RelativePathReactorMatching.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5840RelativePathReactorMatching.java
@@ -24,11 +24,9 @@
         Verifier verifier = newVerifier( new File( testDir, "parent-1" ).getAbsolutePath(), "remote" );
         verifier.executeGoal( "install" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier = newVerifier( new File( testDir, "child" ).getAbsolutePath(), "remote" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5868NoDuplicateAttachedArtifacts.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5868NoDuplicateAttachedArtifacts.java
index d9b0fa5..ba8192d 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5868NoDuplicateAttachedArtifacts.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5868NoDuplicateAttachedArtifacts.java
@@ -135,7 +135,6 @@
         verifier.displayStreamBuffers();
         verifier.executeGoals( Arrays.asList("org.apache.maven.its.plugins:maven-it-plugin-artifact:2.1-SNAPSHOT:attach", "deploy" ) );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
         assertEquals("deployedJarArtifactNumber: " + deployedJarArtifactNumber, 1, deployedJarArtifactNumber );
     }
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5889FindBasedir.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5889FindBasedir.java
index d502344..f05b142 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5889FindBasedir.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5889FindBasedir.java
@@ -115,7 +115,6 @@
         verifier.setForkJvm( true ); // force forked JVM since we need the shell script to detect .mvn/ location
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "expression.properties" );
         assertEquals( "ok", props.getProperty( "project.properties.jvm-config" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5895CIFriendlyUsageWithPropertyTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5895CIFriendlyUsageWithPropertyTest.java
index 8ec2ad7..55a0e40 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5895CIFriendlyUsageWithPropertyTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5895CIFriendlyUsageWithPropertyTest.java
@@ -69,7 +69,6 @@
         verifier.executeGoal( "clean" );
         verifier.executeGoal( "package" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
     }
 
@@ -89,7 +88,6 @@
         verifier.executeGoal( "clean" );
         verifier.executeGoal( "package" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
     }
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5898BuildMultimoduleWithEARFailsToResolveWARTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5898BuildMultimoduleWithEARFailsToResolveWARTest.java
index 5724cb4..2ce7f63 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5898BuildMultimoduleWithEARFailsToResolveWARTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5898BuildMultimoduleWithEARFailsToResolveWARTest.java
@@ -55,7 +55,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "test" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5935OptionalLostInTranstiveManagedDependenciesTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5935OptionalLostInTranstiveManagedDependenciesTest.java
index c5ab707..0eaa349 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5935OptionalLostInTranstiveManagedDependenciesTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5935OptionalLostInTranstiveManagedDependenciesTest.java
@@ -51,7 +51,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> dependencies = verifier.loadLines( "target/dependencies.txt", "UTF-8" );
         assertEquals( 5, dependencies.size() );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5958LifecyclePhaseBinaryCompat.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5958LifecyclePhaseBinaryCompat.java
index d593580..9615cd4 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5958LifecyclePhaseBinaryCompat.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5958LifecyclePhaseBinaryCompat.java
@@ -27,7 +27,6 @@
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
         verifier.verifyTextInLog( "CLASS_NAME=java.lang.String" );
-        verifier.resetStreams();
     }
 
     @Test
@@ -48,6 +47,5 @@
             verifier.verifyTextInLog( "[ERROR] Internal error: java.lang.ClassCastException: " );
             verifier.verifyTextInLog( "org.apache.maven.lifecycle.mapping.LifecyclePhase cannot be cast to " );
         }
-        verifier.resetStreams();
     }
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5965ParallelBuildMultipliesWorkTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5965ParallelBuildMultipliesWorkTest.java
index e9ba2fc..43b34f5 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5965ParallelBuildMultipliesWorkTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5965ParallelBuildMultipliesWorkTest.java
@@ -40,7 +40,6 @@
         // include an aggregator task so that the two goals end up in different task segments
         verifier.executeGoals( Arrays.asList( "clean", "install:help" ) );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> logLines = verifier.loadLines( "log-only.txt", "UTF-8" );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6057CheckReactorOrderTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6057CheckReactorOrderTest.java
index 7831edb..dcb8194 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6057CheckReactorOrderTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6057CheckReactorOrderTest.java
@@ -65,7 +65,6 @@
         verifier.addCliOption( "-Drevision=1.3.0-SNAPSHOT" );
         verifier.executeGoal( "clean" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> loadedLines = verifier.loadLines( "log-only.txt", "UTF-8" );
         List<String> resultingLines = extractReactorBuildOrder( loadedLines );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6071GetResourceWithCustomPom.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6071GetResourceWithCustomPom.java
index a0df79d..ed2107d 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6071GetResourceWithCustomPom.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6071GetResourceWithCustomPom.java
@@ -36,6 +36,5 @@
         verifier.setForkJvm( true );
         verifier.executeGoal( "verify" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6084Jsr250PluginTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6084Jsr250PluginTest.java
index 2f7aeff..71da101 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6084Jsr250PluginTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6084Jsr250PluginTest.java
@@ -61,7 +61,6 @@
         v0.deleteArtifacts( "org.apache.maven.its.mng6084" );
         v0.executeGoal( "install" );
         v0.verifyErrorFreeLog();
-        v0.resetStreams();
 
         //
         // Execute the JSR 250 plugin
@@ -70,7 +69,6 @@
         v1.setAutoclean( false );
         v1.executeGoal( "org.apache.maven.its.mng6084:jsr250-maven-plugin:0.0.1-SNAPSHOT:hello" );
         v1.verifyErrorFreeLog();
-        v1.resetStreams();
         v1.verifyTextInLog( "Hello! I am a component using JSR 250 with @PostConstruct support" );
 
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6090CIFriendlyTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6090CIFriendlyTest.java
index 60d6956..03da7f4 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6090CIFriendlyTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6090CIFriendlyTest.java
@@ -69,7 +69,6 @@
         verifier.setLogFileName( "install-log.txt" );
         verifier.executeGoals( Arrays.asList( "clean", "install" ) );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier = newVerifier( testDir.getAbsolutePath(), false );
         verifier.setMavenDebug( false );
@@ -80,7 +79,6 @@
         verifier.addCliOption( "module-3" );
         verifier.executeGoal( "package" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
     @Test
@@ -99,7 +97,6 @@
         verifier.setLogFileName( "install-log.txt" );
         verifier.executeGoals( Arrays.asList( "clean", "install" ) );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier = newVerifier( testDir.getAbsolutePath(), false );
         verifier.setMavenDebug( false );
@@ -111,7 +108,6 @@
         verifier.addCliOption( "module-3" );
         verifier.executeGoal( "package" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6127PluginExecutionConfigurationInterferenceTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6127PluginExecutionConfigurationInterferenceTest.java
index 06377f0..e397b38 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6127PluginExecutionConfigurationInterferenceTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6127PluginExecutionConfigurationInterferenceTest.java
@@ -54,7 +54,6 @@
         // install the test plugin
         verifier = newVerifier( pluginDir.getAbsolutePath(), "remote" );
         verifier.executeGoal( "install" );
-        verifier.resetStreams();
         verifier.verifyErrorFreeLog();
 
         File modAconfigurationFile = new File( modAprojectDir, "configuration.txt" );
@@ -67,7 +66,6 @@
         // build the test project
         verifier = newVerifier( projectDir.getAbsolutePath(), "remote" );
         verifier.executeGoal( "verify" );
-        verifier.resetStreams();
         verifier.verifyErrorFreeLog();
 
         verifier.verifyFilePresent( modAconfigurationFile.getCanonicalPath() );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6173GetAllProjectsInReactorTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6173GetAllProjectsInReactorTest.java
index 7dbe5c2..b19732f 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6173GetAllProjectsInReactorTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6173GetAllProjectsInReactorTest.java
@@ -65,7 +65,6 @@
         verifier.addCliOption( "module-1" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties properties = verifier.loadProperties( "module-1/target/session.properties" );
         assertEquals( "3", properties.getProperty( "session.allProjects.size" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6173GetProjectsAndDependencyGraphTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6173GetProjectsAndDependencyGraphTest.java
index 7bb7f63..4e59acb 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6173GetProjectsAndDependencyGraphTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6173GetProjectsAndDependencyGraphTest.java
@@ -62,7 +62,6 @@
         verifier.addCliOption( "module-1" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties properties = verifier.loadProperties( "module-1/target/session.properties" );
         assertEquals( "1", properties.getProperty( "session.projects.size" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6189SiteReportPluginsWarningTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6189SiteReportPluginsWarningTest.java
index 054cd6e..7a314b0 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6189SiteReportPluginsWarningTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6189SiteReportPluginsWarningTest.java
@@ -52,7 +52,6 @@
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "validate" );
         verifier.verifyTextInLog( "[WARNING] Reporting configuration should be done in <reporting> section" );
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6210CoreExtensionsCustomScopesTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6210CoreExtensionsCustomScopesTest.java
index 8d7898e..af4e422 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6210CoreExtensionsCustomScopesTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6210CoreExtensionsCustomScopesTest.java
@@ -56,6 +56,5 @@
         verifier.addCliOption( new File( testDir, "settings.xml" ).getAbsolutePath() );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6223FindBasedir.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6223FindBasedir.java
index b6e4222..39ac9d9 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6223FindBasedir.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6223FindBasedir.java
@@ -116,7 +116,6 @@
         verifier.setForkJvm( true ); // force forked JVM since we need the shell script to detect .mvn/ location
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "expression.properties" );
         assertEquals( "ok", props.getProperty( "project.properties.jvm-config" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6240PluginExtensionAetherProvider.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6240PluginExtensionAetherProvider.java
index bc34274..53d6271 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6240PluginExtensionAetherProvider.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6240PluginExtensionAetherProvider.java
@@ -63,12 +63,10 @@
 
         Verifier verifier = newVerifier( pluginDir.getAbsolutePath(), "remote" );
         verifier.executeGoal( "install" );
-        verifier.resetStreams();
         verifier.verifyErrorFreeLog();
 
         verifier = newVerifier( projectDir.getAbsolutePath(), "remote" );
         verifier.executeGoal( "deploy" );
-        verifier.resetStreams();
         verifier.verifyErrorFreeLog();
 
         List<String> lines = verifier.loadFile( verifier.getBasedir(), verifier.getLogFileName(), false );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6255FixConcatLines.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6255FixConcatLines.java
index 41f289f..fdc7c90 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6255FixConcatLines.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6255FixConcatLines.java
@@ -94,7 +94,6 @@
         verifier.setForkJvm( true );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "expression.properties" );
         assertEquals( "ok", props.getProperty( "project.properties.jvm-config" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6256SpecialCharsAlternatePOMLocation.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6256SpecialCharsAlternatePOMLocation.java
index 50c1804..87b89ad 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6256SpecialCharsAlternatePOMLocation.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6256SpecialCharsAlternatePOMLocation.java
@@ -91,6 +91,5 @@
         verifier.addCliOption( "\"" + new File( resourceDir, subDir ).getAbsolutePath() + "\"" ); // "<path>"
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6386BaseUriPropertyTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6386BaseUriPropertyTest.java
index 497960d..1f4738a 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6386BaseUriPropertyTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6386BaseUriPropertyTest.java
@@ -52,7 +52,6 @@
         verifier.setLogFileName( "log-basic.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         Properties props = verifier.loadProperties( "target/profile.properties" );
         String pomProperty = props.getProperty( "project.properties.pomProperty" );
@@ -83,7 +82,6 @@
             verifier.setLogFileName( "log-basic.txt" );
             verifier.executeGoal( "validate" );
             verifier.verifyErrorFreeLog();
-            verifier.resetStreams();
 
             Properties props = verifier.loadProperties( "target/profile.properties" );
             String pomProperty = props.getProperty( "project.properties.pomProperty" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6391PrintVersionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6391PrintVersionTest.java
index bcc8e21..dd13614 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6391PrintVersionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6391PrintVersionTest.java
@@ -68,7 +68,6 @@
         verifier.setLogFileName( "version-log.txt" );
         verifier.executeGoals( Arrays.asList( "clean" ) );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> loadedLines = verifier.loadLines( "version-log.txt", "UTF-8" );
         List<String> resultingLines = extractReactorBuildOrder( loadedLines );
@@ -113,7 +112,6 @@
         verifier.setLogFileName( "version-log.txt" );
         verifier.executeGoals( Arrays.asList( "clean" ) );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> loadedLines = verifier.loadLines( "version-log.txt", "UTF-8" );
         List<String> resultingLines = extractReactorBuildOrder( loadedLines );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6506PackageAnnotationTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6506PackageAnnotationTest.java
index 0bdc0c3..f3acea1 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6506PackageAnnotationTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6506PackageAnnotationTest.java
@@ -49,12 +49,10 @@
 
         verifier = newVerifier( pluginDir.getAbsolutePath(), "remote" );
         verifier.executeGoal( "install" );
-        verifier.resetStreams();
         verifier.verifyErrorFreeLog();
 
         verifier = newVerifier( projectDir.getAbsolutePath(), "remote" );
         verifier.executeGoal( "verify" );
-        verifier.resetStreams();
         verifier.verifyErrorFreeLog();
         verifier.verifyTextInLog( "MNG-6506 check succeeded" );
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6558ToolchainsBuildingEventTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6558ToolchainsBuildingEventTest.java
index edfa93b..d3492a6 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6558ToolchainsBuildingEventTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6558ToolchainsBuildingEventTest.java
@@ -58,7 +58,6 @@
         verifier.addCliOption( "-X" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> lines = verifier.loadLines( "target/spy.log", "UTF-8" );
         assertTrue( lines.toString(), lines.get( 0 ).startsWith( "init" ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6562WarnDefaultBindings.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6562WarnDefaultBindings.java
index 377ad0c..39d0194 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6562WarnDefaultBindings.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6562WarnDefaultBindings.java
@@ -50,7 +50,6 @@
         verifier.addCliOption( "-fos" );
         verifier.addCliOption( "WARN" ); // ALSO NO WARNINGS
         verifier.executeGoals( Arrays.asList( phase ) );
-        verifier.resetStreams();
 
         verifier.verifyErrorFreeLog();
     }
@@ -70,7 +69,6 @@
         verifier.addCliOption( "-fos" );
         verifier.addCliOption( "WARN" ); // ALSO NO WARNINGS
         verifier.executeGoals( Arrays.asList( phase ) );
-        verifier.resetStreams();
 
         verifier.verifyErrorFreeLog();
     }
@@ -86,7 +84,6 @@
         verifier.setAutoclean( false );
         verifier.setLogFileName( phase +".txt" );
         verifier.executeGoals( Arrays.asList( phase ) );
-        verifier.resetStreams();
 
         verifier.verifyTextInLog( "Version not locked for default bindings plugins [maven-compiler-plugin]"
                 + ", you should define versions in pluginManagement section of your pom.xml or parent" );
@@ -103,7 +100,6 @@
         verifier.setAutoclean( false );
         verifier.setLogFileName( phase +".txt" );
         verifier.executeGoals( Arrays.asList( phase ) );
-        verifier.resetStreams();
         verifier.verifyErrorFreeLog();
 
         verifier.verifyTextInLog( "Version not locked for default bindings plugins [maven-compiler-plugin]"
@@ -121,7 +117,6 @@
         verifier.setAutoclean( false );
         verifier.setLogFileName( phase +".txt" );
         verifier.executeGoals( Arrays.asList( phase ) );
-        verifier.resetStreams();
         verifier.verifyErrorFreeLog();
 
         verifier.verifyTextInLog( "Version not locked for default bindings plugins [maven-compiler-plugin]"
@@ -139,7 +134,6 @@
         verifier.setAutoclean( false );
         verifier.setLogFileName( phase +".txt" );
         verifier.executeGoals( Arrays.asList( phase ) );
-        verifier.resetStreams();
         verifier.verifyErrorFreeLog();
 
         verifier.verifyTextInLog( "Version not locked for default bindings plugins [maven-compiler-plugin, maven-surefire-plugin]"
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6566ExecuteAnnotationShouldNotReExecuteGoalsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6566ExecuteAnnotationShouldNotReExecuteGoalsTest.java
index febf4bc..242ff6d 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6566ExecuteAnnotationShouldNotReExecuteGoalsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6566ExecuteAnnotationShouldNotReExecuteGoalsTest.java
@@ -51,7 +51,6 @@
         File pluginDir = new File( testDir, "plugin" );
         Verifier verifier = newVerifier( pluginDir.getAbsolutePath(), "remote" );
         verifier.executeGoal( "install" );
-        verifier.resetStreams();
         verifier.verifyErrorFreeLog();
     }
 
@@ -64,7 +63,6 @@
         Verifier verifier = newVerifier( consumerDir.getAbsolutePath() );
         verifier.setLogFileName( "log-direct-plugin-invocation.txt" );
         verifier.executeGoal( PLUGIN_KEY + ":require-compile-phase" );
-        verifier.resetStreams();
         verifier.verifyErrorFreeLog();
 
         assertCompiledOnce( verifier );
@@ -85,7 +83,6 @@
         Verifier verifier = newVerifier( consumerDir.getAbsolutePath() );
         verifier.setLogFileName( "log-phase-execution.txt" );
         verifier.executeGoal( "compile" );
-        verifier.resetStreams();
         verifier.verifyErrorFreeLog();
 
         assertCompiledOnce( verifier );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6772NestedImportScopeRepositoryOverride.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6772NestedImportScopeRepositoryOverride.java
index a702072..252a4ff 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6772NestedImportScopeRepositoryOverride.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6772NestedImportScopeRepositoryOverride.java
@@ -62,7 +62,6 @@
 
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
     // This will test the behavior using DefaultModelResolver
@@ -80,7 +79,6 @@
 
         verifier.executeGoal( "compile" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
     // central must not be defined in any settings.xml or super POM will never be in play.
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6972AllowAccessToGraphPackageTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6972AllowAccessToGraphPackageTest.java
index db651c2..48ef13b 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6972AllowAccessToGraphPackageTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6972AllowAccessToGraphPackageTest.java
@@ -63,12 +63,10 @@
         verifier.getSystemProperties().put( "maven.multiModuleProjectDirectory", testDir.getAbsolutePath() );
         verifier.executeGoal( "install" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier = newVerifier( new File( testDir.getAbsolutePath(), "using-module" ).getAbsolutePath() );
         verifier.getSystemProperties().put( "maven.multiModuleProjectDirectory", testDir.getAbsolutePath() );
         verifier.executeGoal( "install" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7045DropUselessAndOutdatedCdiApiTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7045DropUselessAndOutdatedCdiApiTest.java
index bee5b05..b4d74a8 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7045DropUselessAndOutdatedCdiApiTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7045DropUselessAndOutdatedCdiApiTest.java
@@ -48,7 +48,6 @@
         Verifier verifier = newVerifier( testDir.getAbsolutePath()) ;
 
         verifier.executeGoal( "process-classes" );
-        verifier.resetStreams();
         verifier.verifyErrorFreeLog();
     }
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7349RelocationWarningTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7349RelocationWarningTest.java
index 502bd79..9d6a05e 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7349RelocationWarningTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7349RelocationWarningTest.java
@@ -50,12 +50,10 @@
 
         verifier = newVerifier( artifactsDir.getAbsolutePath() );
         verifier.executeGoal( "install" );
-        verifier.resetStreams();
         verifier.verifyErrorFreeLog();
 
         verifier = newVerifier( projectDir.getAbsolutePath() );
         verifier.executeGoal( "verify" );
-        verifier.resetStreams();
         verifier.verifyErrorFreeLog();
         List<String> lines = verifier.loadLines( verifier.getLogFileName(), "UTF-8" );
         List<String> relocated = new ArrayList<>();
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7353CliGoalInvocationTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7353CliGoalInvocationTest.java
index 519638f..7d4093f 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7353CliGoalInvocationTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7353CliGoalInvocationTest.java
@@ -46,7 +46,6 @@
         verifier.setLogFileName( id + ".txt" );
         verifier.executeGoal( goal );
         verifier.verifyTextInLog( "[INFO] --- " + expectedInvocation );
-        verifier.resetStreams();
     }
 
     @Test
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7464ReadOnlyMojoParametersWarningTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7464ReadOnlyMojoParametersWarningTest.java
index b18610c..61fbdc0 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7464ReadOnlyMojoParametersWarningTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7464ReadOnlyMojoParametersWarningTest.java
@@ -56,7 +56,6 @@
         verifier.setLogFileName( "log-empty-configuration.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> logLines = verifier.loadFile( verifier.getBasedir(), verifier.getLogFileName(), false );
         List<String> warnLines = findReadOnlyWarning( logLines );
@@ -80,7 +79,6 @@
         verifier.setLogFileName( "log-read-only-property.txt" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> logLines = verifier.loadFile( verifier.getBasedir(), verifier.getLogFileName(), false );
         List<String> warnLines = findReadOnlyWarning( logLines );
@@ -106,7 +104,6 @@
         verifier.addCliOption( "-Pconfig-values" );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> logLines = verifier.loadFile( verifier.getBasedir(), verifier.getLogFileName(), false );
         List<String> warnLines = findReadOnlyWarning( logLines );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7468UnsupportedPluginsParametersTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7468UnsupportedPluginsParametersTest.java
index fabc281..67c47a6 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7468UnsupportedPluginsParametersTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7468UnsupportedPluginsParametersTest.java
@@ -162,7 +162,6 @@
         Verifier verifier = newVerifier( new File( testDir, project ).getAbsolutePath() );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         List<String> logLines = verifier.loadFile( verifier.getBasedir(), verifier.getLogFileName(), false );
         return findUnknownWarning( logLines );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7470ResolverTransportTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7470ResolverTransportTest.java
index 1a0265e..337ccbe 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7470ResolverTransportTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7470ResolverTransportTest.java
@@ -94,7 +94,6 @@
         verifier.verifyErrorFreeLog();
         // verify maven console output contains "[DEBUG] Using transporter XXXTransporter"
         verifier.verifyTextInLog( logSnippet );
-        verifier.resetStreams();
     }
 
     private static final String WAGON_LOG_SNIPPET = "[DEBUG] Using transporter WagonTransporter";
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7474SessionScopeTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7474SessionScopeTest.java
index 0346c72..f792513 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7474SessionScopeTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7474SessionScopeTest.java
@@ -47,12 +47,10 @@
         Verifier verifier = newVerifier( new File( testDir, "plugin" ).getAbsolutePath() );
         verifier.executeGoal( "install" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier = newVerifier( new File( testDir, "project" ).getAbsolutePath() );
         verifier.executeGoal( "validate" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
     }
 
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7504NotWarnUnsupportedReportPluginsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7504NotWarnUnsupportedReportPluginsTest.java
index 35cc591..2c590f8 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7504NotWarnUnsupportedReportPluginsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7504NotWarnUnsupportedReportPluginsTest.java
@@ -54,7 +54,6 @@
         verifier.setAutoclean( false );
         verifier.deleteDirectory( "target" );
         verifier.executeGoal( "site" );
-        verifier.resetStreams();
 
         List<String> logLines = verifier.loadFile( verifier.getBasedir(), verifier.getLogFileName(), false );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7529VersionRangeRepositorySelection.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7529VersionRangeRepositorySelection.java
index d698671..58ecf7d 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7529VersionRangeRepositorySelection.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7529VersionRangeRepositorySelection.java
@@ -56,6 +56,5 @@
     verifier.filterFile("settings-template.xml", "settings.xml", "UTF-8", verifier.newDefaultFilterProperties());
     verifier.executeGoal("validate");
     verifier.verifyErrorFreeLog();
-    verifier.resetStreams();
   }
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7566JavaPrerequisiteTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7566JavaPrerequisiteTest.java
index e390f44..240dded 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7566JavaPrerequisiteTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7566JavaPrerequisiteTest.java
@@ -48,10 +48,6 @@
         {
             // expected, unsolvable version conflict
         }
-        finally
-        {
-            verifier.resetStreams();
-        }
     }
 
     /**
@@ -75,7 +71,6 @@
         verifier.filterFile( "../settings-template.xml", "settings.xml", "UTF-8", verifier.newDefaultFilterProperties() );
         verifier.executeGoal( "org.apache.maven.its.mng7566:maven-mng7566-plugin:touch" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         verifier.verifyFilePresent( "target/touch-1.txt" );
         verifier.verifyFileNotPresent( "target/touch-2.txt" );
diff --git a/core-it-support/maven-it-helper/src/main/java/org/apache/maven/it/AbstractMavenIntegrationTestCase.java b/core-it-support/maven-it-helper/src/main/java/org/apache/maven/it/AbstractMavenIntegrationTestCase.java
index 2132913..515330a 100644
--- a/core-it-support/maven-it-helper/src/main/java/org/apache/maven/it/AbstractMavenIntegrationTestCase.java
+++ b/core-it-support/maven-it-helper/src/main/java/org/apache/maven/it/AbstractMavenIntegrationTestCase.java
@@ -141,15 +141,8 @@
                 try
                 {
                     Verifier verifier = new Verifier( "" );
-                    try
-                    {
-                        version = verifier.getMavenVersion();
-                        System.setProperty( "maven.version", version );
-                    }
-                    finally
-                    {
-                        verifier.resetStreams();
-                    }
+                    version = verifier.getMavenVersion();
+                    System.setProperty( "maven.version", version );
                 }
                 catch ( VerificationException e )
                 {
diff --git a/core-it-support/maven-it-sample-archetype/src/main/resources/archetype-resources/src/test/java/MavenITmngXXXXDescriptionOfProblemTest.java b/core-it-support/maven-it-sample-archetype/src/main/resources/archetype-resources/src/test/java/MavenITmngXXXXDescriptionOfProblemTest.java
index 2009a50..0433ac9 100644
--- a/core-it-support/maven-it-sample-archetype/src/main/resources/archetype-resources/src/test/java/MavenITmngXXXXDescriptionOfProblemTest.java
+++ b/core-it-support/maven-it-sample-archetype/src/main/resources/archetype-resources/src/test/java/MavenITmngXXXXDescriptionOfProblemTest.java
@@ -104,12 +104,6 @@
         verifier.verifyErrorFreeLog();
 
         /*
-         * Reset the streams before executing the verifier
-         * again.
-         */
-        verifier.resetStreams();
-
-        /*
          * This particular test requires an extension
          * containing resources to be installed that is then
          * used by the actual IT test. Here we invoker Maven
@@ -119,7 +113,6 @@
         verifier = new Verifier( new File( testDir.getAbsolutePath(), "checkstyle-assembly" ).getAbsolutePath() );
         verifier.executeGoal( "install" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         /*
          * Now we are running the actual test. This
@@ -132,7 +125,6 @@
         verifier = new Verifier( new File( testDir.getAbsolutePath(), "checkstyle-test" ).getAbsolutePath() );
         verifier.executeGoal( "install" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         /*
          * The verifier also supports beanshell scripts for
diff --git a/core-it-support/maven-it-sample/src/test/java/org/apache/maven/it/MavenITmngXXXXDescriptionOfProblemTest.java b/core-it-support/maven-it-sample/src/test/java/org/apache/maven/it/MavenITmngXXXXDescriptionOfProblemTest.java
index 06578f3..9305bc9 100644
--- a/core-it-support/maven-it-sample/src/test/java/org/apache/maven/it/MavenITmngXXXXDescriptionOfProblemTest.java
+++ b/core-it-support/maven-it-sample/src/test/java/org/apache/maven/it/MavenITmngXXXXDescriptionOfProblemTest.java
@@ -101,12 +101,6 @@
         verifier.verifyErrorFreeLog();
 
         /*
-         * Reset the streams before executing the verifier
-         * again.
-         */
-        verifier.resetStreams();
-
-        /*
          * This particular test requires an extension
          * containing resources to be installed that is then
          * used by the actual IT test. Here we invoker Maven
@@ -116,7 +110,6 @@
         verifier = new Verifier( new File( testDir.getAbsolutePath(), "checkstyle-assembly" ).getAbsolutePath() );
         verifier.executeGoal( "install" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         /*
          * Now we are running the actual test. This
@@ -129,7 +122,6 @@
         verifier = new Verifier( new File( testDir.getAbsolutePath(), "checkstyle-test" ).getAbsolutePath() );
         verifier.executeGoal( "install" );
         verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
         /*
          * The verifier also supports beanshell scripts for
