diff --git a/core-it-support/core-it-component/src/main/java/org/apache/maven/coreit/component/DefaultStatefulSingleton.java b/core-it-support/core-it-component/src/main/java/org/apache/maven/coreit/component/DefaultStatefulSingleton.java
index 9284011..bcf3234 100644
--- a/core-it-support/core-it-component/src/main/java/org/apache/maven/coreit/component/DefaultStatefulSingleton.java
+++ b/core-it-support/core-it-component/src/main/java/org/apache/maven/coreit/component/DefaultStatefulSingleton.java
@@ -31,7 +31,7 @@
     implements StatefulSingleton
 {
 
-    private Properties properties = new Properties();
+    private final Properties properties = new Properties();
 
     public String getProperty( String key )
     {
diff --git a/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-clean-plugin/src/main/java/org/apache/maven/plugin/coreit/CleanMojo.java b/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-clean-plugin/src/main/java/org/apache/maven/plugin/coreit/CleanMojo.java
index 52ddbca..882201c 100644
--- a/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-clean-plugin/src/main/java/org/apache/maven/plugin/coreit/CleanMojo.java
+++ b/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-clean-plugin/src/main/java/org/apache/maven/plugin/coreit/CleanMojo.java
@@ -54,7 +54,7 @@
      *
      * @parameter
      */
-    private String pathname = "target/clean-clean.txt";
+    private final String pathname = "target/clean-clean.txt";
 
     /**
      * Runs this mojo.
diff --git a/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-compiler-plugin/src/main/java/org/apache/maven/plugin/coreit/CompileMojo.java b/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-compiler-plugin/src/main/java/org/apache/maven/plugin/coreit/CompileMojo.java
index 440181b..1a9fccc 100644
--- a/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-compiler-plugin/src/main/java/org/apache/maven/plugin/coreit/CompileMojo.java
+++ b/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-compiler-plugin/src/main/java/org/apache/maven/plugin/coreit/CompileMojo.java
@@ -54,7 +54,7 @@
      *
      * @parameter
      */
-    private String pathname = "target/compiler-compile.txt";
+    private final String pathname = "target/compiler-compile.txt";
 
     /**
      * Runs this mojo.
diff --git a/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-compiler-plugin/src/main/java/org/apache/maven/plugin/coreit/TestCompileMojo.java b/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-compiler-plugin/src/main/java/org/apache/maven/plugin/coreit/TestCompileMojo.java
index 8d5f119..f441a89 100644
--- a/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-compiler-plugin/src/main/java/org/apache/maven/plugin/coreit/TestCompileMojo.java
+++ b/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-compiler-plugin/src/main/java/org/apache/maven/plugin/coreit/TestCompileMojo.java
@@ -54,7 +54,7 @@
      *
      * @parameter
      */
-    private String pathname = "target/compiler-test-compile.txt";
+    private final String pathname = "target/compiler-test-compile.txt";
 
     /**
      * Runs this mojo.
diff --git a/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-deploy-plugin/src/main/java/org/apache/maven/plugin/coreit/DeployMojo.java b/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-deploy-plugin/src/main/java/org/apache/maven/plugin/coreit/DeployMojo.java
index 76c17e9..40b76fb 100644
--- a/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-deploy-plugin/src/main/java/org/apache/maven/plugin/coreit/DeployMojo.java
+++ b/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-deploy-plugin/src/main/java/org/apache/maven/plugin/coreit/DeployMojo.java
@@ -54,7 +54,7 @@
      *
      * @parameter
      */
-    private String pathname = "target/deploy-deploy.txt";
+    private final String pathname = "target/deploy-deploy.txt";
 
     /**
      * Runs this mojo.
diff --git a/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-ear-plugin/src/main/java/org/apache/maven/plugin/coreit/EarMojo.java b/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-ear-plugin/src/main/java/org/apache/maven/plugin/coreit/EarMojo.java
index 8b80160..a8db410 100644
--- a/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-ear-plugin/src/main/java/org/apache/maven/plugin/coreit/EarMojo.java
+++ b/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-ear-plugin/src/main/java/org/apache/maven/plugin/coreit/EarMojo.java
@@ -54,7 +54,7 @@
      *
      * @parameter
      */
-    private String pathname = "target/ear-ear.txt";
+    private final String pathname = "target/ear-ear.txt";
 
     /**
      * Runs this mojo.
diff --git a/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-ear-plugin/src/main/java/org/apache/maven/plugin/coreit/GenerateApplicationXmlMojo.java b/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-ear-plugin/src/main/java/org/apache/maven/plugin/coreit/GenerateApplicationXmlMojo.java
index 8636272..d32c125 100644
--- a/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-ear-plugin/src/main/java/org/apache/maven/plugin/coreit/GenerateApplicationXmlMojo.java
+++ b/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-ear-plugin/src/main/java/org/apache/maven/plugin/coreit/GenerateApplicationXmlMojo.java
@@ -54,7 +54,7 @@
      *
      * @parameter
      */
-    private String pathname = "target/ear-generate-application-xml.txt";
+    private final String pathname = "target/ear-generate-application-xml.txt";
 
     /**
      * Runs this mojo.
diff --git a/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-ejb-plugin/src/main/java/org/apache/maven/plugin/coreit/EjbMojo.java b/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-ejb-plugin/src/main/java/org/apache/maven/plugin/coreit/EjbMojo.java
index 607d58f..5672dff 100644
--- a/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-ejb-plugin/src/main/java/org/apache/maven/plugin/coreit/EjbMojo.java
+++ b/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-ejb-plugin/src/main/java/org/apache/maven/plugin/coreit/EjbMojo.java
@@ -54,7 +54,7 @@
      *
      * @parameter
      */
-    private String pathname = "target/ejb-ejb.txt";
+    private final String pathname = "target/ejb-ejb.txt";
 
     /**
      * Runs this mojo.
diff --git a/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-install-plugin/src/main/java/org/apache/maven/plugin/coreit/InstallMojo.java b/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-install-plugin/src/main/java/org/apache/maven/plugin/coreit/InstallMojo.java
index 7e85e3b..1799409 100644
--- a/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-install-plugin/src/main/java/org/apache/maven/plugin/coreit/InstallMojo.java
+++ b/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-install-plugin/src/main/java/org/apache/maven/plugin/coreit/InstallMojo.java
@@ -54,7 +54,7 @@
      *
      * @parameter
      */
-    private String pathname = "target/install-install.txt";
+    private final String pathname = "target/install-install.txt";
 
     /**
      * Runs this mojo.
diff --git a/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-jar-plugin/src/main/java/org/apache/maven/plugin/coreit/JarMojo.java b/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-jar-plugin/src/main/java/org/apache/maven/plugin/coreit/JarMojo.java
index 4c89e26..baf874e 100644
--- a/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-jar-plugin/src/main/java/org/apache/maven/plugin/coreit/JarMojo.java
+++ b/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-jar-plugin/src/main/java/org/apache/maven/plugin/coreit/JarMojo.java
@@ -54,7 +54,7 @@
      *
      * @parameter
      */
-    private String pathname = "target/jar-jar.txt";
+    private final String pathname = "target/jar-jar.txt";
 
     /**
      * Runs this mojo.
diff --git a/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/coreit/JarMojo.java b/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/coreit/JarMojo.java
index 2e9c8d7..558bdb3 100644
--- a/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/coreit/JarMojo.java
+++ b/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/coreit/JarMojo.java
@@ -54,7 +54,7 @@
      *
      * @parameter
      */
-    private String pathname = "target/javadoc-jar.txt";
+    private final String pathname = "target/javadoc-jar.txt";
 
     /**
      * Runs this mojo.
diff --git a/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/coreit/AddPluginArtifactMetadataMojo.java b/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/coreit/AddPluginArtifactMetadataMojo.java
index a3c2275..0de930f 100644
--- a/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/coreit/AddPluginArtifactMetadataMojo.java
+++ b/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/coreit/AddPluginArtifactMetadataMojo.java
@@ -54,7 +54,7 @@
      *
      * @parameter
      */
-    private String pathname = "target/plugin-add-plugin-artifact-metadata.txt";
+    private final String pathname = "target/plugin-add-plugin-artifact-metadata.txt";
 
     /**
      * Runs this mojo.
diff --git a/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/coreit/DescriptorMojo.java b/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/coreit/DescriptorMojo.java
index 3f732b5..13f7794 100644
--- a/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/coreit/DescriptorMojo.java
+++ b/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/coreit/DescriptorMojo.java
@@ -54,7 +54,7 @@
      *
      * @parameter
      */
-    private String pathname = "target/plugin-descriptor.txt";
+    private final String pathname = "target/plugin-descriptor.txt";
 
     /**
      * Runs this mojo.
diff --git a/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/coreit/UpdateRegistryMojo.java b/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/coreit/UpdateRegistryMojo.java
index 04fde10..1056a2d 100644
--- a/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/coreit/UpdateRegistryMojo.java
+++ b/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/coreit/UpdateRegistryMojo.java
@@ -54,7 +54,7 @@
      *
      * @parameter
      */
-    private String pathname = "target/plugin-update-registry.txt";
+    private final String pathname = "target/plugin-update-registry.txt";
 
     /**
      * Runs this mojo.
diff --git a/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-rar-plugin/src/main/java/org/apache/maven/plugin/coreit/RarMojo.java b/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-rar-plugin/src/main/java/org/apache/maven/plugin/coreit/RarMojo.java
index 0ac43a9..27483d5 100644
--- a/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-rar-plugin/src/main/java/org/apache/maven/plugin/coreit/RarMojo.java
+++ b/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-rar-plugin/src/main/java/org/apache/maven/plugin/coreit/RarMojo.java
@@ -54,7 +54,7 @@
      *
      * @parameter
      */
-    private String pathname = "target/rar-rar.txt";
+    private final String pathname = "target/rar-rar.txt";
 
     /**
      * Runs this mojo.
diff --git a/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-resources-plugin/src/main/java/org/apache/maven/plugin/coreit/ResourcesMojo.java b/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-resources-plugin/src/main/java/org/apache/maven/plugin/coreit/ResourcesMojo.java
index 89b7dd4..070cb8d 100644
--- a/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-resources-plugin/src/main/java/org/apache/maven/plugin/coreit/ResourcesMojo.java
+++ b/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-resources-plugin/src/main/java/org/apache/maven/plugin/coreit/ResourcesMojo.java
@@ -55,7 +55,7 @@
      *
      * @parameter
      */
-    private String pathname = "target/resources-resources.txt";
+    private final String pathname = "target/resources-resources.txt";
 
     /**
      * An optional message line to write to the output file (using UTF-8 encoding). If given, the output file will be
diff --git a/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-resources-plugin/src/main/java/org/apache/maven/plugin/coreit/TestResourcesMojo.java b/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-resources-plugin/src/main/java/org/apache/maven/plugin/coreit/TestResourcesMojo.java
index 17cf737..fed6e64 100644
--- a/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-resources-plugin/src/main/java/org/apache/maven/plugin/coreit/TestResourcesMojo.java
+++ b/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-resources-plugin/src/main/java/org/apache/maven/plugin/coreit/TestResourcesMojo.java
@@ -54,7 +54,7 @@
      *
      * @parameter
      */
-    private String pathname = "target/resources-test-resources.txt";
+    private final String pathname = "target/resources-test-resources.txt";
 
     /**
      * Runs this mojo.
diff --git a/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-site-plugin/src/main/java/org/apache/maven/plugin/coreit/AttachDescriptorMojo.java b/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-site-plugin/src/main/java/org/apache/maven/plugin/coreit/AttachDescriptorMojo.java
index 51305a1..3d9e9c6 100644
--- a/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-site-plugin/src/main/java/org/apache/maven/plugin/coreit/AttachDescriptorMojo.java
+++ b/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-site-plugin/src/main/java/org/apache/maven/plugin/coreit/AttachDescriptorMojo.java
@@ -54,7 +54,7 @@
      *
      * @parameter
      */
-    private String pathname = "target/site-attach-descriptor.txt";
+    private final String pathname = "target/site-attach-descriptor.txt";
 
     /**
      * Runs this mojo.
diff --git a/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-site-plugin/src/main/java/org/apache/maven/plugin/coreit/DeployMojo.java b/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-site-plugin/src/main/java/org/apache/maven/plugin/coreit/DeployMojo.java
index cf56c44..5f2fdd1 100644
--- a/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-site-plugin/src/main/java/org/apache/maven/plugin/coreit/DeployMojo.java
+++ b/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-site-plugin/src/main/java/org/apache/maven/plugin/coreit/DeployMojo.java
@@ -54,7 +54,7 @@
      *
      * @parameter
      */
-    private String pathname = "target/site-deploy.txt";
+    private final String pathname = "target/site-deploy.txt";
 
     /**
      * Runs this mojo.
diff --git a/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-site-plugin/src/main/java/org/apache/maven/plugin/coreit/SiteMojo.java b/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-site-plugin/src/main/java/org/apache/maven/plugin/coreit/SiteMojo.java
index 08ab0f9..5a26f8a 100644
--- a/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-site-plugin/src/main/java/org/apache/maven/plugin/coreit/SiteMojo.java
+++ b/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-site-plugin/src/main/java/org/apache/maven/plugin/coreit/SiteMojo.java
@@ -54,7 +54,7 @@
      *
      * @parameter
      */
-    private String pathname = "target/site-site.txt";
+    private final String pathname = "target/site-site.txt";
 
     /**
      * Runs this mojo.
diff --git a/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-source-plugin/src/main/java/org/apache/maven/plugin/coreit/JarMojo.java b/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-source-plugin/src/main/java/org/apache/maven/plugin/coreit/JarMojo.java
index 9c869b8..240bb6b 100644
--- a/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-source-plugin/src/main/java/org/apache/maven/plugin/coreit/JarMojo.java
+++ b/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-source-plugin/src/main/java/org/apache/maven/plugin/coreit/JarMojo.java
@@ -54,7 +54,7 @@
      *
      * @parameter
      */
-    private String pathname = "target/source-jar.txt";
+    private final String pathname = "target/source-jar.txt";
 
     /**
      * Runs this mojo.
diff --git a/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-surefire-plugin/src/main/java/org/apache/maven/plugin/coreit/TestMojo.java b/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-surefire-plugin/src/main/java/org/apache/maven/plugin/coreit/TestMojo.java
index 0fca693..93e7068 100644
--- a/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-surefire-plugin/src/main/java/org/apache/maven/plugin/coreit/TestMojo.java
+++ b/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-surefire-plugin/src/main/java/org/apache/maven/plugin/coreit/TestMojo.java
@@ -54,7 +54,7 @@
      *
      * @parameter
      */
-    private String pathname = "target/surefire-test.txt";
+    private final String pathname = "target/surefire-test.txt";
 
     /**
      * Runs this mojo.
diff --git a/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-war-plugin/src/main/java/org/apache/maven/plugin/coreit/WarMojo.java b/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-war-plugin/src/main/java/org/apache/maven/plugin/coreit/WarMojo.java
index ad23ea6..a81d959 100644
--- a/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-war-plugin/src/main/java/org/apache/maven/plugin/coreit/WarMojo.java
+++ b/core-it-support/core-it-plugins/maven-it-plugin-core-stubs/maven-war-plugin/src/main/java/org/apache/maven/plugin/coreit/WarMojo.java
@@ -54,7 +54,7 @@
      *
      * @parameter
      */
-    private String pathname = "target/war-war.txt";
+    private final String pathname = "target/war-war.txt";
 
     /**
      * Runs this mojo.
diff --git a/core-it-support/core-it-plugins/maven-it-plugin-log-file/src/main/java/org/apache/maven/plugin/coreit/AbstractLogMojo.java b/core-it-support/core-it-plugins/maven-it-plugin-log-file/src/main/java/org/apache/maven/plugin/coreit/AbstractLogMojo.java
index 7a52396..181fcda 100644
--- a/core-it-support/core-it-plugins/maven-it-plugin-log-file/src/main/java/org/apache/maven/plugin/coreit/AbstractLogMojo.java
+++ b/core-it-support/core-it-plugins/maven-it-plugin-log-file/src/main/java/org/apache/maven/plugin/coreit/AbstractLogMojo.java
@@ -57,7 +57,7 @@
     /**
      * The character encoding of the log file.
      */
-    private String encoding = "UTF-8";
+    private final String encoding = "UTF-8";
 
     /**
      * Gets the absolute path to the log file.
diff --git a/core-it-support/core-it-plugins/maven-it-plugin-plexus-utils-new/src/main/java/org/codehaus/plexus/util/xml/Xpp3Dom.java b/core-it-support/core-it-plugins/maven-it-plugin-plexus-utils-new/src/main/java/org/codehaus/plexus/util/xml/Xpp3Dom.java
index c87c0de..f1fc0d9 100644
--- a/core-it-support/core-it-plugins/maven-it-plugin-plexus-utils-new/src/main/java/org/codehaus/plexus/util/xml/Xpp3Dom.java
+++ b/core-it-support/core-it-plugins/maven-it-plugin-plexus-utils-new/src/main/java/org/codehaus/plexus/util/xml/Xpp3Dom.java
@@ -29,7 +29,7 @@
 public class Xpp3Dom
 {
 
-    private String root;
+    private final String root;
 
     public Xpp3Dom( String root )
     {
diff --git a/core-it-support/core-it-plugins/maven-it-plugin-site/src/main/java/org/apache/maven/plugin/coreit/GenerateMojo.java b/core-it-support/core-it-plugins/maven-it-plugin-site/src/main/java/org/apache/maven/plugin/coreit/GenerateMojo.java
index 2fa822b..d57cb5d 100644
--- a/core-it-support/core-it-plugins/maven-it-plugin-site/src/main/java/org/apache/maven/plugin/coreit/GenerateMojo.java
+++ b/core-it-support/core-it-plugins/maven-it-plugin-site/src/main/java/org/apache/maven/plugin/coreit/GenerateMojo.java
@@ -57,7 +57,7 @@
      *
      * @parameter default-value="en"
      */
-    private String language = "en";
+    private final String language = "en";
 
     /**
      * A flag whether to ignore errors from reports and continue the generation.
diff --git a/core-it-support/core-it-plugins/maven-it-plugin-site/src/main/java/org/apache/maven/plugin/coreit/InfoReport.java b/core-it-support/core-it-plugins/maven-it-plugin-site/src/main/java/org/apache/maven/plugin/coreit/InfoReport.java
index 4d28b60..a0a8f49 100644
--- a/core-it-support/core-it-plugins/maven-it-plugin-site/src/main/java/org/apache/maven/plugin/coreit/InfoReport.java
+++ b/core-it-support/core-it-plugins/maven-it-plugin-site/src/main/java/org/apache/maven/plugin/coreit/InfoReport.java
@@ -63,7 +63,7 @@
      *
      * @parameter default-value="info.properties"
      */
-    private String infoFile = "info.properties";
+    private final String infoFile = "info.properties";
 
     /**
      * The path to the output directory of the site.
diff --git a/core-it-support/core-it-plugins/maven-it-plugin-touch/src/main/java/org/apache/maven/plugin/coreit/CoreItTouchMojo.java b/core-it-support/core-it-plugins/maven-it-plugin-touch/src/main/java/org/apache/maven/plugin/coreit/CoreItTouchMojo.java
index 708685f..00a4b4e 100644
--- a/core-it-support/core-it-plugins/maven-it-plugin-touch/src/main/java/org/apache/maven/plugin/coreit/CoreItTouchMojo.java
+++ b/core-it-support/core-it-plugins/maven-it-plugin-touch/src/main/java/org/apache/maven/plugin/coreit/CoreItTouchMojo.java
@@ -72,12 +72,12 @@
     /**
      * @parameter alias="pluginFile"
      */
-    private String pluginItem = "foo";
+    private final String pluginItem = "foo";
 
     /**
      * @parameter
      */
-    private String goalItem = "bar";
+    private final String goalItem = "bar";
 
     /**
      * Touch a file named after artifact absolute file name, replacing '/' and ':' by '_' and adding ".txt".
@@ -91,7 +91,7 @@
      *
      * @parameter property="fail"
      */
-    private boolean fail = false;
+    private final boolean fail = false;
 
     public void execute()
         throws MojoExecutionException
diff --git a/core-it-support/core-it-toolchain/src/main/java/org/apache/maven/coreit/toolchain/CoreItToolchain.java b/core-it-support/core-it-toolchain/src/main/java/org/apache/maven/coreit/toolchain/CoreItToolchain.java
index 9bc51e8..e27a64d 100644
--- a/core-it-support/core-it-toolchain/src/main/java/org/apache/maven/coreit/toolchain/CoreItToolchain.java
+++ b/core-it-support/core-it-toolchain/src/main/java/org/apache/maven/coreit/toolchain/CoreItToolchain.java
@@ -32,7 +32,7 @@
     implements Toolchain, ToolchainPrivate
 {
 
-    private ToolchainModel model;
+    private final ToolchainModel model;
 
     public CoreItToolchain( ToolchainModel model )
     {
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 a30b07b..066b8ee 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
@@ -50,7 +50,7 @@
     /**
      * Save System.out for progress reports etc.
      */
-    private static PrintStream out = System.out;
+    private static final PrintStream OUT = System.out;
 
     /**
      * The format for elapsed time.
@@ -71,9 +71,9 @@
 
     private ArtifactVersion mavenVersion;
 
-    private VersionRange versionRange;
+    private final VersionRange versionRange;
 
-    private String matchPattern;
+    private final String matchPattern;
 
     private static final String DEFAULT_MATCH_PATTERN = "(.*?)-(RC[0-9]+|SNAPSHOT|RC[0-9]+-SNAPSHOT)";
 
@@ -104,7 +104,7 @@
         }
         else
         {
-            out.println( "WARNING: " + getITName() + ": version range '" + versionRange
+            OUT.println( "WARNING: " + getITName() + ": version range '" + versionRange
                              + "' supplied but no Maven version - not skipping test." );
         }
     }
@@ -195,7 +195,7 @@
         }
         else
         {
-            out.println( "WARNING: " + getITName() + ": version range '" + versionRange
+            OUT.println( "WARNING: " + getITName() + ": version range '" + versionRange
                              + "' supplied but no Maven version found - returning true for match check." );
 
             return true;
@@ -224,31 +224,31 @@
             {
                 mng++;
             }
-            out.print( AnsiSupport.bold( testName.substring( 0, mng ) ) );
-            out.print( ' ' );
-            out.print( testName.substring( mng ) );
+            OUT.print( AnsiSupport.bold( testName.substring( 0, mng ) ) );
+            OUT.print( ' ' );
+            OUT.print( testName.substring( mng ) );
         }
         else
         {
             int index = testName.indexOf( ' ' );
             if ( index == -1 )
             {
-                out.print( testName );
+                OUT.print( testName );
             }
             else
             {
-                out.print( AnsiSupport.bold( testName.substring( 0, index ) ) );
-                out.print( testName.substring( index ) );
+                OUT.print( AnsiSupport.bold( testName.substring( 0, index ) ) );
+                OUT.print( testName.substring( index ) );
             }
-            out.print( '.' );
+            OUT.print( '.' );
         }
 
-        out.print( pad( RESULT_COLUMN - testName.length() ) );
-        out.print( ' ' );
+        OUT.print( pad( RESULT_COLUMN - testName.length() ) );
+        OUT.print( ' ' );
 
         if ( skip )
         {
-            out.println( AnsiSupport.warning( "SKIPPED" ) + " - Maven version " + getMavenVersion() + " not in range "
+            OUT.println( AnsiSupport.warning( "SKIPPED" ) + " - Maven version " + getMavenVersion() + " not in range "
                 + versionRange );
             return;
         }
@@ -268,23 +268,23 @@
             {
                 throw invert;
             }
-            out.println( AnsiSupport.success( "OK" ) + " " + formatTime( milliseconds ) );
+            OUT.println( AnsiSupport.success( "OK" ) + " " + formatTime( milliseconds ) );
         }
         catch ( UnsupportedJavaVersionException e )
         {
-            out.println( AnsiSupport.warning( "SKIPPED" ) + " - Java version " + e.javaVersion + " not in range "
+            OUT.println( AnsiSupport.warning( "SKIPPED" ) + " - Java version " + e.javaVersion + " not in range "
                 + e.supportedRange );
             return;
         }
         catch ( UnsupportedMavenVersionException e )
         {
-            out.println( AnsiSupport.warning( "SKIPPED" ) + " - Maven version " + e.mavenVersion + " not in range "
+            OUT.println( AnsiSupport.warning( "SKIPPED" ) + " - Maven version " + e.mavenVersion + " not in range "
                 + e.supportedRange );
             return;
         }
         catch ( BrokenMavenVersionException e )
         {
-            out.println( AnsiSupport.error( "UNEXPECTED OK" ) + " - Maven version " + e.mavenVersion
+            OUT.println( AnsiSupport.error( "UNEXPECTED OK" ) + " - Maven version " + e.mavenVersion
                 + " expected to fail " + formatTime( milliseconds ) );
             fail( "Expected failure when with Maven version " + e.mavenVersion );
         }
@@ -293,12 +293,12 @@
             milliseconds = System.currentTimeMillis() - milliseconds;
             if ( invert != null )
             {
-                out.println( AnsiSupport.success( "EXPECTED FAIL" ) + " - Maven version " + invert.mavenVersion
+                OUT.println( AnsiSupport.success( "EXPECTED FAIL" ) + " - Maven version " + invert.mavenVersion
                     + " expected to fail " + formatTime( milliseconds ) );
             }
             else
             {
-                out.println( AnsiSupport.error( "FAILURE" ) + " " + formatTime( milliseconds ) );
+                OUT.println( AnsiSupport.error( "FAILURE" ) + " " + formatTime( milliseconds ) );
                 throw t;
             }
         }
@@ -361,7 +361,7 @@
         }
         else
         {
-            out.println( "WARNING: " + getITName() + ": version range '" + versionRange
+            OUT.println( "WARNING: " + getITName() + ": version range '" + versionRange
                              + "' supplied but no Maven version found - not skipping test." );
         }
     }
@@ -397,7 +397,7 @@
         }
         else
         {
-            out.println( "WARNING: " + getITName() + ": version range '" + versionRange
+            OUT.println( "WARNING: " + getITName() + ": version range '" + versionRange
                              + "' supplied but no Maven version found - not marking test as expected to fail." );
         }
     }
