[MPMD-366] Update parent pom to 39 (#118)

* update to parent pom 39
diff --git a/pom.xml b/pom.xml
index 5b20c96..551a343 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,5 +1,4 @@
-<?xml version='1.0' encoding='UTF-8'?>
-
+<?xml version="1.0" encoding="UTF-8"?>
 <!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
@@ -18,14 +17,13 @@
 specific language governing permissions and limitations
 under the License.
 -->
-
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
 
   <parent>
-    <artifactId>maven-plugins</artifactId>
     <groupId>org.apache.maven.plugins</groupId>
-    <version>37</version>
+    <artifactId>maven-plugins</artifactId>
+    <version>39</version>
     <relativePath />
   </parent>
 
@@ -34,11 +32,9 @@
   <packaging>maven-plugin</packaging>
 
   <name>Apache Maven PMD Plugin</name>
-  <description>
-    A Maven plugin for the PMD toolkit, that produces a report on both code rule violations and detected copy and paste
+  <description>A Maven plugin for the PMD toolkit, that produces a report on both code rule violations and detected copy and paste
     fragments,
-    as well as being able to fail the build based on these metrics.
-  </description>
+    as well as being able to fail the build based on these metrics.</description>
   <inceptionYear>2005</inceptionYear>
 
   <contributors>
@@ -66,8 +62,8 @@
   <scm>
     <connection>scm:git:https://gitbox.apache.org/repos/asf/maven-pmd-plugin.git</connection>
     <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/maven-pmd-plugin.git</developerConnection>
-    <url>https://github.com/apache/maven-pmd-plugin/tree/${project.scm.tag}</url>
     <tag>HEAD</tag>
+    <url>https://github.com/apache/maven-pmd-plugin/tree/${project.scm.tag}</url>
   </scm>
   <issueManagement>
     <system>JIRA</system>
@@ -88,7 +84,8 @@
     <mavenVersion>3.2.5</mavenVersion>
     <doxiaVersion>1.12.0</doxiaVersion>
     <doxiaSitetoolsVersion>1.11.1</doxiaSitetoolsVersion>
-    <javaVersion>8</javaVersion><!-- Because PMD 6.35.0+ requires Java 8 -->
+    <javaVersion>8</javaVersion>
+    <!-- Because PMD 6.35.0+ requires Java 8 -->
     <pmdVersion>6.55.0</pmdVersion>
     <slf4jVersion>1.7.36</slf4jVersion>
     <aetherVersion>1.0.0.v20140518</aetherVersion>
@@ -357,11 +354,11 @@
         </configuration>
         <executions>
           <execution>
-            <phase>generate-sources</phase>
             <goals>
               <goal>java</goal>
               <goal>xpp3-reader</goal>
             </goals>
+            <phase>generate-sources</phase>
           </execution>
         </executions>
       </plugin>
@@ -379,10 +376,10 @@
         <executions>
           <execution>
             <id>check-java-1.8-compat</id>
-            <phase>process-classes</phase>
             <goals>
               <goal>check</goal>
             </goals>
+            <phase>process-classes</phase>
           </execution>
         </executions>
       </plugin>
diff --git a/src/main/java/org/apache/maven/plugins/pmd/AbstractPmdReport.java b/src/main/java/org/apache/maven/plugins/pmd/AbstractPmdReport.java
index c262397..0142f2d 100644
--- a/src/main/java/org/apache/maven/plugins/pmd/AbstractPmdReport.java
+++ b/src/main/java/org/apache/maven/plugins/pmd/AbstractPmdReport.java
@@ -1,5 +1,3 @@
-package org.apache.maven.plugins.pmd;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.maven.plugins.pmd;
 
 import java.io.File;
 import java.io.IOException;
@@ -36,6 +35,7 @@
 import java.util.Set;
 import java.util.TreeMap;
 
+import net.sourceforge.pmd.PMDVersion;
 import org.apache.maven.execution.MavenSession;
 import org.apache.maven.model.ReportPlugin;
 import org.apache.maven.model.Reporting;
@@ -50,17 +50,13 @@
 import org.codehaus.plexus.util.PathTool;
 import org.codehaus.plexus.util.StringUtils;
 
-import net.sourceforge.pmd.PMDVersion;
-
 /**
  * Base class for the PMD reports.
  *
  * @author <a href="mailto:brett@apache.org">Brett Porter</a>
  * @version $Id$
  */
-public abstract class AbstractPmdReport
-    extends AbstractMavenReport
-{
+public abstract class AbstractPmdReport extends AbstractMavenReport {
     // ----------------------------------------------------------------------
     // Configurables
     // ----------------------------------------------------------------------
@@ -68,7 +64,7 @@
     /**
      * The output directory for the intermediate XML report.
      */
-    @Parameter( property = "project.build.directory", required = true )
+    @Parameter(property = "project.build.directory", required = true)
     protected File targetDirectory;
 
     /**
@@ -77,26 +73,26 @@
      * renderers. XML is produced in any case, since this format is needed
      * for the check goals (pmd:check, pmd:aggregator-check, pmd:cpd-check, pmd:aggregator-cpd-check).
      */
-    @Parameter( property = "format", defaultValue = "xml" )
+    @Parameter(property = "format", defaultValue = "xml")
     protected String format = "xml";
 
     /**
      * Link the violation line numbers to the source xref. Links will be created automatically if the jxr plugin is
      * being used.
      */
-    @Parameter( property = "linkXRef", defaultValue = "true" )
+    @Parameter(property = "linkXRef", defaultValue = "true")
     private boolean linkXRef;
 
     /**
      * Location of the Xrefs to link to.
      */
-    @Parameter( defaultValue = "${project.reporting.outputDirectory}/xref" )
+    @Parameter(defaultValue = "${project.reporting.outputDirectory}/xref")
     private File xrefLocation;
 
     /**
      * Location of the Test Xrefs to link to.
      */
-    @Parameter( defaultValue = "${project.reporting.outputDirectory}/xref-test" )
+    @Parameter(defaultValue = "${project.reporting.outputDirectory}/xref-test")
     private File xrefTestLocation;
 
     /**
@@ -124,7 +120,7 @@
      * Defaults to <code>project.compileSourceRoots</code>.
      * @since 3.7
      */
-    @Parameter( defaultValue = "${project.compileSourceRoots}" )
+    @Parameter(defaultValue = "${project.compileSourceRoots}")
     private List<String> compileSourceRoots;
 
     /**
@@ -132,7 +128,7 @@
      * Defaults to <code>project.testCompileSourceRoots</code>
      * @since 3.7
      */
-    @Parameter( defaultValue = "${project.testCompileSourceRoots}" )
+    @Parameter(defaultValue = "${project.testCompileSourceRoots}")
     private List<String> testSourceRoots;
 
     /**
@@ -148,7 +144,7 @@
      *
      * @since 2.2
      */
-    @Parameter( defaultValue = "false" )
+    @Parameter(defaultValue = "false")
     protected boolean includeTests;
 
     /**
@@ -158,7 +154,7 @@
      * @deprecated since 3.15.0 Use the goals <code>pmd:aggregate-pmd</code> and <code>pmd:aggregate-cpd</code>
      * instead.
      */
-    @Parameter( property = "aggregate", defaultValue = "false" )
+    @Parameter(property = "aggregate", defaultValue = "false")
     @Deprecated
     protected boolean aggregate;
 
@@ -167,7 +163,7 @@
      *
      * @since 3.0
      */
-    @Parameter( defaultValue = "false" )
+    @Parameter(defaultValue = "false")
     protected boolean includeXmlInSite;
 
     /**
@@ -178,7 +174,7 @@
      *
      * @since 3.1
      */
-    @Parameter( defaultValue = "false" )
+    @Parameter(defaultValue = "false")
     protected boolean skipEmptyReport;
 
     /**
@@ -189,7 +185,7 @@
      *
      * @since 3.7
      */
-    @Parameter( property = "pmd.excludeFromFailureFile", defaultValue = "" )
+    @Parameter(property = "pmd.excludeFromFailureFile", defaultValue = "")
     protected String excludeFromFailureFile;
 
     /**
@@ -201,7 +197,7 @@
      *
      * @since 3.9.0
      */
-    @Parameter( defaultValue = "true", property = "pmd.showPmdLog" )
+    @Parameter(defaultValue = "true", property = "pmd.showPmdLog")
     protected boolean showPmdLog = true;
 
     /**
@@ -248,14 +244,14 @@
     /**
      * The projects in the reactor for aggregation report.
      */
-    @Parameter( property = "reactorProjects", readonly = true )
+    @Parameter(property = "reactorProjects", readonly = true)
     protected List<MavenProject> reactorProjects;
 
     /**
      * The current build session instance. This is used for
      * toolchain manager API calls and for dependency resolver API calls.
      */
-    @Parameter( defaultValue = "${session}", required = true, readonly = true )
+    @Parameter(defaultValue = "${session}", required = true, readonly = true)
     protected MavenSession session;
 
     @Component
@@ -268,50 +264,39 @@
      * {@inheritDoc}
      */
     @Override
-    protected MavenProject getProject()
-    {
+    protected MavenProject getProject() {
         return project;
     }
 
-    protected String constructXRefLocation( boolean test )
-    {
+    protected String constructXRefLocation(boolean test) {
         String location = null;
-        if ( linkXRef )
-        {
+        if (linkXRef) {
             File xrefLoc = test ? xrefTestLocation : xrefLocation;
 
             String relativePath =
-                PathTool.getRelativePath( outputDirectory.getAbsolutePath(), xrefLoc.getAbsolutePath() );
-            if ( StringUtils.isEmpty( relativePath ) )
-            {
+                    PathTool.getRelativePath(outputDirectory.getAbsolutePath(), xrefLoc.getAbsolutePath());
+            if (StringUtils.isEmpty(relativePath)) {
                 relativePath = ".";
             }
             relativePath = relativePath + "/" + xrefLoc.getName();
-            if ( xrefLoc.exists() )
-            {
+            if (xrefLoc.exists()) {
                 // XRef was already generated by manual execution of a lifecycle binding
                 location = relativePath;
-            }
-            else
-            {
+            } else {
                 // Not yet generated - check if the report is on its way
                 Reporting reporting = project.getModel().getReporting();
-                List<ReportPlugin> reportPlugins = reporting != null
-                        ? reporting.getPlugins()
-                        : Collections.<ReportPlugin>emptyList();
-                for ( ReportPlugin plugin : reportPlugins )
-                {
+                List<ReportPlugin> reportPlugins =
+                        reporting != null ? reporting.getPlugins() : Collections.<ReportPlugin>emptyList();
+                for (ReportPlugin plugin : reportPlugins) {
                     String artifactId = plugin.getArtifactId();
-                    if ( "maven-jxr-plugin".equals( artifactId ) || "jxr-maven-plugin".equals( artifactId ) )
-                    {
+                    if ("maven-jxr-plugin".equals(artifactId) || "jxr-maven-plugin".equals(artifactId)) {
                         location = relativePath;
                     }
                 }
             }
 
-            if ( location == null )
-            {
-                getLog().warn( "Unable to locate Source XRef to link to - DISABLED" );
+            if (location == null) {
+                getLog().warn("Unable to locate Source XRef to link to - DISABLED");
             }
         }
         return location;
@@ -324,112 +309,88 @@
      * @throws IOException If an I/O error occurs during construction of the
      *                     canonical pathnames of the files
      */
-    protected Map<File, PmdFileInfo> getFilesToProcess()
-        throws IOException
-    {
-        if ( aggregate && !project.isExecutionRoot() )
-        {
+    protected Map<File, PmdFileInfo> getFilesToProcess() throws IOException {
+        if (aggregate && !project.isExecutionRoot()) {
             return Collections.emptyMap();
         }
 
-        if ( excludeRoots == null )
-        {
+        if (excludeRoots == null) {
             excludeRoots = new File[0];
         }
 
-        Collection<File> excludeRootFiles = new HashSet<>( excludeRoots.length );
+        Collection<File> excludeRootFiles = new HashSet<>(excludeRoots.length);
 
-        for ( File file : excludeRoots )
-        {
-            if ( file.isDirectory() )
-            {
-                excludeRootFiles.add( file );
+        for (File file : excludeRoots) {
+            if (file.isDirectory()) {
+                excludeRootFiles.add(file);
             }
         }
 
         List<PmdFileInfo> directories = new ArrayList<>();
 
-        if ( null == compileSourceRoots )
-        {
+        if (null == compileSourceRoots) {
             compileSourceRoots = project.getCompileSourceRoots();
         }
-        if ( compileSourceRoots != null )
-        {
-            for ( String root : compileSourceRoots )
-            {
-                File sroot = new File( root );
-                if ( sroot.exists() )
-                {
-                    String sourceXref = constructXRefLocation( false );
-                    directories.add( new PmdFileInfo( project, sroot, sourceXref ) );
+        if (compileSourceRoots != null) {
+            for (String root : compileSourceRoots) {
+                File sroot = new File(root);
+                if (sroot.exists()) {
+                    String sourceXref = constructXRefLocation(false);
+                    directories.add(new PmdFileInfo(project, sroot, sourceXref));
                 }
             }
         }
 
-        if ( null == testSourceRoots )
-        {
+        if (null == testSourceRoots) {
             testSourceRoots = project.getTestCompileSourceRoots();
         }
-        if ( includeTests && testSourceRoots != null )
-        {
-            for ( String root : testSourceRoots )
-            {
-                File sroot = new File( root );
-                if ( sroot.exists() )
-                {
-                    String testXref = constructXRefLocation( true );
-                    directories.add( new PmdFileInfo( project, sroot, testXref ) );
+        if (includeTests && testSourceRoots != null) {
+            for (String root : testSourceRoots) {
+                File sroot = new File(root);
+                if (sroot.exists()) {
+                    String testXref = constructXRefLocation(true);
+                    directories.add(new PmdFileInfo(project, sroot, testXref));
                 }
             }
         }
-        if ( isAggregator() )
-        {
-            for ( MavenProject localProject : getAggregatedProjects() )
-            {
+        if (isAggregator()) {
+            for (MavenProject localProject : getAggregatedProjects()) {
                 List<String> localCompileSourceRoots = localProject.getCompileSourceRoots();
-                for ( String root : localCompileSourceRoots )
-                {
-                    File sroot = new File( root );
-                    if ( sroot.exists() )
-                    {
-                        String sourceXref = constructXRefLocation( false );
-                        directories.add( new PmdFileInfo( localProject, sroot, sourceXref ) );
+                for (String root : localCompileSourceRoots) {
+                    File sroot = new File(root);
+                    if (sroot.exists()) {
+                        String sourceXref = constructXRefLocation(false);
+                        directories.add(new PmdFileInfo(localProject, sroot, sourceXref));
                     }
                 }
-                if ( includeTests )
-                {
+                if (includeTests) {
                     List<String> localTestCompileSourceRoots = localProject.getTestCompileSourceRoots();
-                    for ( String root : localTestCompileSourceRoots )
-                    {
-                        File sroot = new File( root );
-                        if ( sroot.exists() )
-                        {
-                            String testXref = constructXRefLocation( true );
-                            directories.add( new PmdFileInfo( localProject, sroot, testXref ) );
+                    for (String root : localTestCompileSourceRoots) {
+                        File sroot = new File(root);
+                        if (sroot.exists()) {
+                            String testXref = constructXRefLocation(true);
+                            directories.add(new PmdFileInfo(localProject, sroot, testXref));
                         }
                     }
                 }
             }
-
         }
 
         String excluding = getExcludes();
-        getLog().debug( "Exclusions: " + excluding );
+        getLog().debug("Exclusions: " + excluding);
         String including = getIncludes();
-        getLog().debug( "Inclusions: " + including );
+        getLog().debug("Inclusions: " + including);
 
         Map<File, PmdFileInfo> files = new TreeMap<>();
 
-        for ( PmdFileInfo finfo : directories )
-        {
-            getLog().debug( "Searching for files in directory " + finfo.getSourceDirectory().toString() );
+        for (PmdFileInfo finfo : directories) {
+            getLog().debug("Searching for files in directory "
+                    + finfo.getSourceDirectory().toString());
             File sourceDirectory = finfo.getSourceDirectory();
-            if ( sourceDirectory.isDirectory() && !isDirectoryExcluded( excludeRootFiles, sourceDirectory ) )
-            {
-                List<File> newfiles = FileUtils.getFiles( sourceDirectory, including, excluding );
-                for ( File newfile : newfiles )
-                {
-                    files.put( newfile.getCanonicalFile(), finfo );
+            if (sourceDirectory.isDirectory() && !isDirectoryExcluded(excludeRootFiles, sourceDirectory)) {
+                List<File> newfiles = FileUtils.getFiles(sourceDirectory, including, excluding);
+                for (File newfile : newfiles) {
+                    files.put(newfile.getCanonicalFile(), finfo);
                 }
             }
         }
@@ -437,29 +398,22 @@
         return files;
     }
 
-    private boolean isDirectoryExcluded( Collection<File> excludeRootFiles, File sourceDirectoryToCheck )
-    {
+    private boolean isDirectoryExcluded(Collection<File> excludeRootFiles, File sourceDirectoryToCheck) {
         boolean returnVal = false;
-        for ( File excludeDir : excludeRootFiles )
-        {
-            try
-            {
-                if ( sourceDirectoryToCheck
-                    .getCanonicalFile()
-                    .toPath()
-                    .startsWith( excludeDir.getCanonicalFile().toPath() ) )
-                {
-                    getLog().debug( "Directory " + sourceDirectoryToCheck.getAbsolutePath()
-                                        + " has been excluded as it matches excludeRoot "
-                                        + excludeDir.getAbsolutePath() );
+        for (File excludeDir : excludeRootFiles) {
+            try {
+                if (sourceDirectoryToCheck
+                        .getCanonicalFile()
+                        .toPath()
+                        .startsWith(excludeDir.getCanonicalFile().toPath())) {
+                    getLog().debug("Directory " + sourceDirectoryToCheck.getAbsolutePath()
+                            + " has been excluded as it matches excludeRoot "
+                            + excludeDir.getAbsolutePath());
                     returnVal = true;
                     break;
                 }
-            }
-            catch ( IOException e )
-            {
-                getLog().warn( "Error while checking " + sourceDirectoryToCheck
-                               + " whether it should be excluded.", e );
+            } catch (IOException e) {
+                getLog().warn("Error while checking " + sourceDirectoryToCheck + " whether it should be excluded.", e);
             }
         }
         return returnVal;
@@ -470,18 +424,15 @@
      *
      * @return The comma separated list of effective include patterns, never <code>null</code>.
      */
-    private String getIncludes()
-    {
+    private String getIncludes() {
         Collection<String> patterns = new LinkedHashSet<>();
-        if ( includes != null )
-        {
-            patterns.addAll( includes );
+        if (includes != null) {
+            patterns.addAll(includes);
         }
-        if ( patterns.isEmpty() )
-        {
-            patterns.add( "**/*.java" );
+        if (patterns.isEmpty()) {
+            patterns.add("**/*.java");
         }
-        return StringUtils.join( patterns.iterator(), "," );
+        return StringUtils.join(patterns.iterator(), ",");
     }
 
     /**
@@ -489,134 +440,111 @@
      *
      * @return The comma separated list of effective exclude patterns, never <code>null</code>.
      */
-    private String getExcludes()
-    {
-        Collection<String> patterns = new LinkedHashSet<>( FileUtils.getDefaultExcludesAsList() );
-        if ( excludes != null )
-        {
-            patterns.addAll( excludes );
+    private String getExcludes() {
+        Collection<String> patterns = new LinkedHashSet<>(FileUtils.getDefaultExcludesAsList());
+        if (excludes != null) {
+            patterns.addAll(excludes);
         }
-        return StringUtils.join( patterns.iterator(), "," );
+        return StringUtils.join(patterns.iterator(), ",");
     }
 
-    protected boolean isXml()
-    {
-        return "xml".equals( format );
+    protected boolean isXml() {
+        return "xml".equals(format);
     }
 
     /**
      * {@inheritDoc}
      */
     @Override
-    public boolean canGenerateReport()
-    {
-        if ( aggregate && !project.isExecutionRoot() )
-        {
+    public boolean canGenerateReport() {
+        if (aggregate && !project.isExecutionRoot()) {
             return false;
         }
 
-        if ( !isAggregator() && "pom".equalsIgnoreCase( project.getPackaging() ) )
-        {
+        if (!isAggregator() && "pom".equalsIgnoreCase(project.getPackaging())) {
             return false;
         }
 
         // if format is XML, we need to output it even if the file list is empty
         // so the "check" goals can check for failures
-        if ( isXml() )
-        {
+        if (isXml()) {
             return true;
         }
-        try
-        {
+        try {
             filesToProcess = getFilesToProcess();
-            if ( filesToProcess.isEmpty() )
-            {
+            if (filesToProcess.isEmpty()) {
                 return false;
             }
-        }
-        catch ( IOException e )
-        {
-            getLog().error( e );
+        } catch (IOException e) {
+            getLog().error(e);
         }
         return true;
     }
 
-    protected String determineCurrentRootLogLevel()
-    {
-        String logLevel = System.getProperty( "org.slf4j.simpleLogger.defaultLogLevel" );
-        if ( logLevel == null )
-        {
-            logLevel = System.getProperty( "maven.logging.root.level" );
+    protected String determineCurrentRootLogLevel() {
+        String logLevel = System.getProperty("org.slf4j.simpleLogger.defaultLogLevel");
+        if (logLevel == null) {
+            logLevel = System.getProperty("maven.logging.root.level");
         }
-        if ( logLevel == null )
-        {
+        if (logLevel == null) {
             // TODO: logback level
             logLevel = "info";
         }
         return logLevel;
     }
 
-    static String getPmdVersion()
-    {
+    static String getPmdVersion() {
         return PMDVersion.VERSION;
     }
 
-    //TODO remove the part with ToolchainManager lookup once we depend on
-    //3.0.9 (have it as prerequisite). Define as regular component field then.
-    protected final Toolchain getToolchain()
-    {
+    // TODO remove the part with ToolchainManager lookup once we depend on
+    // 3.0.9 (have it as prerequisite). Define as regular component field then.
+    protected final Toolchain getToolchain() {
         Toolchain tc = null;
 
-        if ( jdkToolchain != null )
-        {
+        if (jdkToolchain != null) {
             // Maven 3.3.1 has plugin execution scoped Toolchain Support
-            try
-            {
-                Method getToolchainsMethod =
-                    toolchainManager.getClass().getMethod( "getToolchains", MavenSession.class, String.class,
-                                                           Map.class );
+            try {
+                Method getToolchainsMethod = toolchainManager
+                        .getClass()
+                        .getMethod("getToolchains", MavenSession.class, String.class, Map.class);
 
-                @SuppressWarnings( "unchecked" )
+                @SuppressWarnings("unchecked")
                 List<Toolchain> tcs =
-                    (List<Toolchain>) getToolchainsMethod.invoke( toolchainManager, session, "jdk",
-                                                                  jdkToolchain );
+                        (List<Toolchain>) getToolchainsMethod.invoke(toolchainManager, session, "jdk", jdkToolchain);
 
-                if ( tcs != null && !tcs.isEmpty() )
-                {
-                    tc = tcs.get( 0 );
+                if (tcs != null && !tcs.isEmpty()) {
+                    tc = tcs.get(0);
                 }
-            }
-            catch ( NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException
-                | InvocationTargetException e )
-            {
+            } catch (NoSuchMethodException
+                    | SecurityException
+                    | IllegalAccessException
+                    | IllegalArgumentException
+                    | InvocationTargetException e) {
                 // ignore
             }
         }
 
-        if ( tc == null )
-        {
-            tc = toolchainManager.getToolchainFromBuildContext( "jdk", session );
+        if (tc == null) {
+            tc = toolchainManager.getToolchainFromBuildContext("jdk", session);
         }
 
         return tc;
     }
 
-    protected boolean isAggregator()
-    {
+    protected boolean isAggregator() {
         // returning here aggregate for backwards compatibility
         return aggregate;
     }
 
     // Note: same logic as in m-javadoc-p (MJAVADOC-134)
-    protected Collection<MavenProject> getAggregatedProjects()
-    {
+    protected Collection<MavenProject> getAggregatedProjects() {
         Map<Path, MavenProject> reactorProjectsMap = new HashMap<>();
-        for ( MavenProject reactorProject : this.reactorProjects )
-        {
-            reactorProjectsMap.put( reactorProject.getBasedir().toPath(), reactorProject );
+        for (MavenProject reactorProject : this.reactorProjects) {
+            reactorProjectsMap.put(reactorProject.getBasedir().toPath(), reactorProject);
         }
 
-        return modulesForAggregatedProject( project, reactorProjectsMap );
+        return modulesForAggregatedProject(project, reactorProjectsMap);
     }
 
     /**
@@ -626,33 +554,28 @@
      * @param reactorProjectsMap map of (still) available reactor projects
      * @throws MavenReportException if any
      */
-    private Set<MavenProject> modulesForAggregatedProject( MavenProject aggregatedProject,
-                                                           Map<Path, MavenProject> reactorProjectsMap )
-    {
+    private Set<MavenProject> modulesForAggregatedProject(
+            MavenProject aggregatedProject, Map<Path, MavenProject> reactorProjectsMap) {
         // Maven does not supply an easy way to get the projects representing
         // the modules of a project. So we will get the paths to the base
         // directories of the modules from the project and compare with the
         // base directories of the projects in the reactor.
 
-        if ( aggregatedProject.getModules().isEmpty() )
-        {
-            return Collections.singleton( aggregatedProject );
+        if (aggregatedProject.getModules().isEmpty()) {
+            return Collections.singleton(aggregatedProject);
         }
 
         List<Path> modulePaths = new LinkedList<Path>();
-        for ( String module :  aggregatedProject.getModules() )
-        {
-            modulePaths.add( new File( aggregatedProject.getBasedir(), module ).toPath() );
+        for (String module : aggregatedProject.getModules()) {
+            modulePaths.add(new File(aggregatedProject.getBasedir(), module).toPath());
         }
 
         Set<MavenProject> aggregatedModules = new LinkedHashSet<>();
 
-        for ( Path modulePath : modulePaths )
-        {
-            MavenProject module = reactorProjectsMap.remove( modulePath );
-            if ( module != null )
-            {
-                aggregatedModules.addAll( modulesForAggregatedProject( module, reactorProjectsMap ) );
+        for (Path modulePath : modulePaths) {
+            MavenProject module = reactorProjectsMap.remove(modulePath);
+            if (module != null) {
+                aggregatedModules.addAll(modulesForAggregatedProject(module, reactorProjectsMap));
             }
         }
 
diff --git a/src/main/java/org/apache/maven/plugins/pmd/AbstractPmdViolationCheckMojo.java b/src/main/java/org/apache/maven/plugins/pmd/AbstractPmdViolationCheckMojo.java
index 88bdaba..48cda50 100644
--- a/src/main/java/org/apache/maven/plugins/pmd/AbstractPmdViolationCheckMojo.java
+++ b/src/main/java/org/apache/maven/plugins/pmd/AbstractPmdViolationCheckMojo.java
@@ -1,5 +1,3 @@
-package org.apache.maven.plugins.pmd;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -9,7 +7,7 @@
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
  *
- *  http://www.apache.org/licenses/LICENSE-2.0
+ *   http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
@@ -18,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.maven.plugins.pmd;
 
 import java.io.File;
 import java.io.IOException;
@@ -39,13 +38,11 @@
  * @author <a href="mailto:brett@apache.org">Brett Porter</a>
  * @version $Id$
  */
-public abstract class AbstractPmdViolationCheckMojo<D>
-    extends AbstractMojo
-{
+public abstract class AbstractPmdViolationCheckMojo<D> extends AbstractMojo {
     /**
      * The location of the XML report to check, as generated by the PMD report.
      */
-    @Parameter( property = "project.build.directory", required = true )
+    @Parameter(property = "project.build.directory", required = true)
     private File targetDirectory;
 
     /**
@@ -53,7 +50,7 @@
      * The properties {@code failurePriority} and {@code maxAllowedViolations} control
      * under which conditions exactly the build should be failed.
      */
-    @Parameter( property = "pmd.failOnViolation", defaultValue = "true", required = true )
+    @Parameter(property = "pmd.failOnViolation", defaultValue = "true", required = true)
     protected boolean failOnViolation;
 
     /**
@@ -63,14 +60,14 @@
      * @deprecated since 3.15.0 Use the goal <code>pmd:aggregate-check</code> or
      * <code>pmd:aggregate-cpd-check</code> instead.
      */
-    @Parameter( property = "aggregate", defaultValue = "false" )
+    @Parameter(property = "aggregate", defaultValue = "false")
     @Deprecated
     protected boolean aggregate;
 
     /**
      * Print details of check failures to build output.
      */
-    @Parameter( property = "pmd.verbose", defaultValue = "false" )
+    @Parameter(property = "pmd.verbose", defaultValue = "false")
     private boolean verbose;
 
     /**
@@ -78,7 +75,7 @@
      *
      * @since 3.0
      */
-    @Parameter( property = "pmd.printFailingErrors", defaultValue = "false" )
+    @Parameter(property = "pmd.printFailingErrors", defaultValue = "false")
     private boolean printFailingErrors;
 
     /**
@@ -89,7 +86,7 @@
      *
      * @since 3.0
      */
-    @Parameter( property = "pmd.excludeFromFailureFile", defaultValue = "" )
+    @Parameter(property = "pmd.excludeFromFailureFile", defaultValue = "")
     private String excludeFromFailureFile;
 
     /**
@@ -102,7 +99,7 @@
      *
      * @since 3.10.0
      */
-    @Parameter( property = "pmd.maxAllowedViolations", defaultValue = "0" )
+    @Parameter(property = "pmd.maxAllowedViolations", defaultValue = "0")
     private int maxAllowedViolations;
 
     /** Helper to exclude violations from the result. */
@@ -112,80 +109,66 @@
      * Initialize this abstact check mojo by giving the correct ExcludeFromFile helper.
      * @param excludeFromFile the needed helper, for the specific violation type
      */
-    protected AbstractPmdViolationCheckMojo( ExcludeFromFile<D> excludeFromFile )
-    {
+    protected AbstractPmdViolationCheckMojo(ExcludeFromFile<D> excludeFromFile) {
         this.excludeFromFile = excludeFromFile;
     }
 
     /**
      * The project to analyze.
      */
-    @Parameter( defaultValue = "${project}", readonly = true, required = true )
+    @Parameter(defaultValue = "${project}", readonly = true, required = true)
     protected MavenProject project;
 
-    protected void executeCheck( final String filename, final String tagName, final String key,
-                                 final int failurePriority )
-        throws MojoFailureException, MojoExecutionException
-    {
-        if ( aggregate && !project.isExecutionRoot() )
-        {
+    protected void executeCheck(
+            final String filename, final String tagName, final String key, final int failurePriority)
+            throws MojoFailureException, MojoExecutionException {
+        if (aggregate && !project.isExecutionRoot()) {
             return;
         }
 
-        if ( !isAggregator() && "pom".equalsIgnoreCase( project.getPackaging() ) )
-        {
+        if (!isAggregator() && "pom".equalsIgnoreCase(project.getPackaging())) {
             return;
         }
 
-        excludeFromFile.loadExcludeFromFailuresData( excludeFromFailureFile );
-        final File outputFile = new File( targetDirectory, filename );
+        excludeFromFile.loadExcludeFromFailuresData(excludeFromFailureFile);
+        final File outputFile = new File(targetDirectory, filename);
 
-        if ( outputFile.exists() )
-        {
-            getLog().info( "PMD version: " + AbstractPmdReport.getPmdVersion() );
+        if (outputFile.exists()) {
+            getLog().info("PMD version: " + AbstractPmdReport.getPmdVersion());
 
-            try
-            {
-                final ViolationDetails<D> violations = getViolations( outputFile, failurePriority );
+            try {
+                final ViolationDetails<D> violations = getViolations(outputFile, failurePriority);
 
                 final List<D> failures = violations.getFailureDetails();
                 final List<D> warnings = violations.getWarningDetails();
 
-                if ( verbose )
-                {
-                    printErrors( failures, warnings );
+                if (verbose) {
+                    printErrors(failures, warnings);
                 }
 
                 final int failureCount = failures.size();
                 final int warningCount = warnings.size();
 
-                final String message = getMessage( failureCount, warningCount, key, outputFile );
+                final String message = getMessage(failureCount, warningCount, key, outputFile);
 
-                getLog().debug( "PMD failureCount: " + failureCount + ", warningCount: " + warningCount );
+                getLog().debug("PMD failureCount: " + failureCount + ", warningCount: " + warningCount);
 
-                if ( failureCount > getMaxAllowedViolations() && isFailOnViolation() )
-                {
-                    throw new MojoFailureException( message );
+                if (failureCount > getMaxAllowedViolations() && isFailOnViolation()) {
+                    throw new MojoFailureException(message);
                 }
 
-                this.getLog().info( message );
+                this.getLog().info(message);
 
-                if ( failureCount > 0 && isFailOnViolation() && failureCount <= getMaxAllowedViolations() )
-                {
-                    this.getLog().info( "The build is not failed, since " + getMaxAllowedViolations()
-                        + " violations are allowed (maxAllowedViolations)." );
+                if (failureCount > 0 && isFailOnViolation() && failureCount <= getMaxAllowedViolations()) {
+                    this.getLog()
+                            .info("The build is not failed, since " + getMaxAllowedViolations()
+                                    + " violations are allowed (maxAllowedViolations).");
                 }
+            } catch (final IOException | XmlPullParserException e) {
+                throw new MojoExecutionException("Unable to read PMD results xml: " + outputFile.getAbsolutePath(), e);
             }
-            catch ( final IOException | XmlPullParserException e )
-            {
-                throw new MojoExecutionException(
-                                                  "Unable to read PMD results xml: " + outputFile.getAbsolutePath(),
-                                                  e );
-            }
-        }
-        else
-        {
-            throw new MojoFailureException( "Unable to perform check, " + "unable to find " + outputFile );
+        } else {
+            throw new MojoFailureException("Unable to perform check, " + "unable to find " + outputFile);
         }
     }
 
@@ -198,38 +181,32 @@
      * @throws XmlPullParserException
      * @throws IOException
      */
-    private ViolationDetails<D> getViolations( final File analysisFile, final int failurePriority )
-        throws XmlPullParserException, IOException
-    {
+    private ViolationDetails<D> getViolations(final File analysisFile, final int failurePriority)
+            throws XmlPullParserException, IOException {
         final List<D> failures = new ArrayList<>();
         final List<D> warnings = new ArrayList<>();
 
-        final List<D> violations = getErrorDetails( analysisFile );
+        final List<D> violations = getErrorDetails(analysisFile);
 
-        for ( final D violation : violations )
-        {
-            final int priority = getPriority( violation );
-            if ( priority <= failurePriority && !excludeFromFile.isExcludedFromFailure( violation ) )
-            {
-                failures.add( violation );
-                if ( printFailingErrors )
-                {
-                    printError( violation, "Failure" );
+        for (final D violation : violations) {
+            final int priority = getPriority(violation);
+            if (priority <= failurePriority && !excludeFromFile.isExcludedFromFailure(violation)) {
+                failures.add(violation);
+                if (printFailingErrors) {
+                    printError(violation, "Failure");
                 }
-            }
-            else
-            {
-                warnings.add( violation );
+            } else {
+                warnings.add(violation);
             }
         }
 
         final ViolationDetails<D> details = newViolationDetailsInstance();
-        details.setFailureDetails( failures );
-        details.setWarningDetails( warnings );
+        details.setFailureDetails(failures);
+        details.setWarningDetails(warnings);
         return details;
     }
 
-    protected abstract int getPriority( D errorDetail );
+    protected abstract int getPriority(D errorDetail);
 
     protected abstract ViolationDetails<D> newViolationDetailsInstance();
 
@@ -239,16 +216,13 @@
      * @param failures list of failures
      * @param warnings list of warnings
      */
-    protected void printErrors( final List<D> failures, final List<D> warnings )
-    {
-        for ( final D warning : warnings )
-        {
-            printError( warning, "Warning" );
+    protected void printErrors(final List<D> failures, final List<D> warnings) {
+        for (final D warning : warnings) {
+            printError(warning, "Warning");
         }
 
-        for ( final D failure : failures )
-        {
-            printError( failure, "Failure" );
+        for (final D failure : failures) {
+            printError(failure, "Failure");
         }
     }
 
@@ -261,31 +235,27 @@
      * @param outputFile
      * @return
      */
-    private String getMessage( final int failureCount, final int warningCount, final String key, final File outputFile )
-    {
-        final StringBuilder message = new StringBuilder( 256 );
-        if ( failureCount > 0 || warningCount > 0 )
-        {
-            if ( failureCount > 0 )
-            {
-                message.append( "You have " ).append( failureCount ).append( " " ).append( key ).
-                  append( failureCount > 1 ? "s" : "" );
+    private String getMessage(final int failureCount, final int warningCount, final String key, final File outputFile) {
+        final StringBuilder message = new StringBuilder(256);
+        if (failureCount > 0 || warningCount > 0) {
+            if (failureCount > 0) {
+                message.append("You have ")
+                        .append(failureCount)
+                        .append(" ")
+                        .append(key)
+                        .append(failureCount > 1 ? "s" : "");
             }
 
-            if ( warningCount > 0 )
-            {
-                if ( failureCount > 0 )
-                {
-                    message.append( " and " );
+            if (warningCount > 0) {
+                if (failureCount > 0) {
+                    message.append(" and ");
+                } else {
+                    message.append("You have ");
                 }
-                else
-                {
-                    message.append( "You have " );
-                }
-                message.append( warningCount ).append( " warning" ).append( warningCount > 1 ? "s" : "" );
+                message.append(warningCount).append(" warning").append(warningCount > 1 ? "s" : "");
             }
 
-            message.append( ". For more details see: " ).append( outputFile.getAbsolutePath() );
+            message.append(". For more details see: ").append(outputFile.getAbsolutePath());
         }
         return message.toString();
     }
@@ -297,7 +267,7 @@
      * or a {@link org.apache.maven.plugins.pmd.model.Duplication} from CPD
      * @param severity the found issue is prefixed with the given severity, usually "Warning" or "Failure".
      */
-    protected abstract void printError( D item, String severity );
+    protected abstract void printError(D item, String severity);
 
     /**
      * Gets the attributes and text for the violation tag and puts them in a HashMap
@@ -308,21 +278,17 @@
      * @throws XmlPullParserException if the analysis file contains invalid XML
      * @throws IOException if the analysis file could be read
      */
-    protected abstract List<D> getErrorDetails( File analysisFile )
-        throws XmlPullParserException, IOException;
+    protected abstract List<D> getErrorDetails(File analysisFile) throws XmlPullParserException, IOException;
 
-    public boolean isFailOnViolation()
-    {
+    public boolean isFailOnViolation() {
         return failOnViolation;
     }
 
-    public Integer getMaxAllowedViolations()
-    {
+    public Integer getMaxAllowedViolations() {
         return maxAllowedViolations;
     }
 
-    protected boolean isAggregator()
-    {
+    protected boolean isAggregator() {
         // returning here aggregate for backwards compatibility
         return aggregate;
     }
diff --git a/src/main/java/org/apache/maven/plugins/pmd/AggregatorCpdReport.java b/src/main/java/org/apache/maven/plugins/pmd/AggregatorCpdReport.java
index e3aa906..482b709 100644
--- a/src/main/java/org/apache/maven/plugins/pmd/AggregatorCpdReport.java
+++ b/src/main/java/org/apache/maven/plugins/pmd/AggregatorCpdReport.java
@@ -1,5 +1,3 @@
-package org.apache.maven.plugins.pmd;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.maven.plugins.pmd;
 
 import org.apache.maven.plugins.annotations.Mojo;
 
@@ -30,12 +29,10 @@
  *
  * @since 3.15.0
  */
-@Mojo( name = "aggregate-cpd", aggregator = true, threadSafe = true )
-public class AggregatorCpdReport extends CpdReport
-{
+@Mojo(name = "aggregate-cpd", aggregator = true, threadSafe = true)
+public class AggregatorCpdReport extends CpdReport {
     @Override
-    protected boolean isAggregator()
-    {
+    protected boolean isAggregator() {
         return true;
     }
 }
diff --git a/src/main/java/org/apache/maven/plugins/pmd/AggregatorCpdViolationCheckMojo.java b/src/main/java/org/apache/maven/plugins/pmd/AggregatorCpdViolationCheckMojo.java
index 25bbb78..1e034a6 100644
--- a/src/main/java/org/apache/maven/plugins/pmd/AggregatorCpdViolationCheckMojo.java
+++ b/src/main/java/org/apache/maven/plugins/pmd/AggregatorCpdViolationCheckMojo.java
@@ -1,5 +1,3 @@
-package org.apache.maven.plugins.pmd;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.maven.plugins.pmd;
 
 import org.apache.maven.plugins.annotations.Execute;
 import org.apache.maven.plugins.annotations.LifecyclePhase;
@@ -28,13 +27,11 @@
  *
  * @since 3.15.0
  */
-@Mojo( name = "aggregate-cpd-check", defaultPhase = LifecyclePhase.VERIFY, threadSafe = true, aggregator = true )
-@Execute( goal = "aggregate-cpd" )
-public class AggregatorCpdViolationCheckMojo extends CpdViolationCheckMojo
-{
+@Mojo(name = "aggregate-cpd-check", defaultPhase = LifecyclePhase.VERIFY, threadSafe = true, aggregator = true)
+@Execute(goal = "aggregate-cpd")
+public class AggregatorCpdViolationCheckMojo extends CpdViolationCheckMojo {
     @Override
-    protected boolean isAggregator()
-    {
+    protected boolean isAggregator() {
         return true;
     }
 }
diff --git a/src/main/java/org/apache/maven/plugins/pmd/AggregatorPmdNoForkReport.java b/src/main/java/org/apache/maven/plugins/pmd/AggregatorPmdNoForkReport.java
index 216ebae..8418594 100644
--- a/src/main/java/org/apache/maven/plugins/pmd/AggregatorPmdNoForkReport.java
+++ b/src/main/java/org/apache/maven/plugins/pmd/AggregatorPmdNoForkReport.java
@@ -1,5 +1,3 @@
-package org.apache.maven.plugins.pmd;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.maven.plugins.pmd;
 
 import org.apache.maven.plugins.annotations.Execute;
 import org.apache.maven.plugins.annotations.LifecyclePhase;
@@ -26,12 +25,13 @@
 
 /**
  * Creates a PMD site report in an <b>aggregator</b> project without forking the <code>test-compile</code> phase again.
- * 
+ *
  * @since 3.15.0
  */
-@Mojo( name = "aggregate-pmd-no-fork", aggregator = true, threadSafe = true,
-    requiresDependencyResolution = ResolutionScope.TEST )
-@Execute( phase = LifecyclePhase.NONE )
-public class AggregatorPmdNoForkReport extends AggregatorPmdReport
-{
-}
+@Mojo(
+        name = "aggregate-pmd-no-fork",
+        aggregator = true,
+        threadSafe = true,
+        requiresDependencyResolution = ResolutionScope.TEST)
+@Execute(phase = LifecyclePhase.NONE)
+public class AggregatorPmdNoForkReport extends AggregatorPmdReport {}
diff --git a/src/main/java/org/apache/maven/plugins/pmd/AggregatorPmdReport.java b/src/main/java/org/apache/maven/plugins/pmd/AggregatorPmdReport.java
index 3495241..8e635b4 100644
--- a/src/main/java/org/apache/maven/plugins/pmd/AggregatorPmdReport.java
+++ b/src/main/java/org/apache/maven/plugins/pmd/AggregatorPmdReport.java
@@ -1,5 +1,3 @@
-package org.apache.maven.plugins.pmd;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.maven.plugins.pmd;
 
 import org.apache.maven.plugins.annotations.Execute;
 import org.apache.maven.plugins.annotations.LifecyclePhase;
@@ -27,17 +26,14 @@
 /**
  * Creates a PMD site report in an <b>aggregator</b> project based on the rulesets and configuration set in the plugin.
  * It can also generate a pmd output file aside from the site report in any of the following formats: xml, csv or txt.
- * 
+ *
  * @since 3.15.0
  */
-@Mojo( name = "aggregate-pmd", aggregator = true, threadSafe = true,
-    requiresDependencyResolution = ResolutionScope.TEST )
-@Execute( phase = LifecyclePhase.TEST_COMPILE )
-public class AggregatorPmdReport extends PmdReport
-{
+@Mojo(name = "aggregate-pmd", aggregator = true, threadSafe = true, requiresDependencyResolution = ResolutionScope.TEST)
+@Execute(phase = LifecyclePhase.TEST_COMPILE)
+public class AggregatorPmdReport extends PmdReport {
     @Override
-    protected boolean isAggregator()
-    {
+    protected boolean isAggregator() {
         return true;
     }
 }
diff --git a/src/main/java/org/apache/maven/plugins/pmd/AggregatorPmdViolationCheckMojo.java b/src/main/java/org/apache/maven/plugins/pmd/AggregatorPmdViolationCheckMojo.java
index 6fdcab3..48cd826 100644
--- a/src/main/java/org/apache/maven/plugins/pmd/AggregatorPmdViolationCheckMojo.java
+++ b/src/main/java/org/apache/maven/plugins/pmd/AggregatorPmdViolationCheckMojo.java
@@ -1,5 +1,3 @@
-package org.apache.maven.plugins.pmd;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.maven.plugins.pmd;
 
 import org.apache.maven.plugins.annotations.Execute;
 import org.apache.maven.plugins.annotations.LifecyclePhase;
@@ -28,13 +27,11 @@
  *
  * @since 3.15.0
  */
-@Mojo( name = "aggregate-pmd-check", defaultPhase = LifecyclePhase.VERIFY, aggregator = true, threadSafe = true )
-@Execute( goal = "aggregate-pmd" )
-public class AggregatorPmdViolationCheckMojo extends PmdViolationCheckMojo
-{
+@Mojo(name = "aggregate-pmd-check", defaultPhase = LifecyclePhase.VERIFY, aggregator = true, threadSafe = true)
+@Execute(goal = "aggregate-pmd")
+public class AggregatorPmdViolationCheckMojo extends PmdViolationCheckMojo {
     @Override
-    protected boolean isAggregator()
-    {
+    protected boolean isAggregator() {
         return true;
     }
 }
diff --git a/src/main/java/org/apache/maven/plugins/pmd/CpdReport.java b/src/main/java/org/apache/maven/plugins/pmd/CpdReport.java
index 522b350..e5c4249 100644
--- a/src/main/java/org/apache/maven/plugins/pmd/CpdReport.java
+++ b/src/main/java/org/apache/maven/plugins/pmd/CpdReport.java
@@ -1,5 +1,3 @@
-package org.apache.maven.plugins.pmd;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.maven.plugins.pmd;
 
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
@@ -25,6 +24,8 @@
 import java.util.Properties;
 import java.util.ResourceBundle;
 
+import net.sourceforge.pmd.cpd.JavaTokenizer;
+import net.sourceforge.pmd.cpd.renderer.CPDRenderer;
 import org.apache.maven.plugins.annotations.Mojo;
 import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.plugins.pmd.exec.CpdExecutor;
@@ -33,9 +34,6 @@
 import org.apache.maven.reporting.MavenReportException;
 import org.apache.maven.toolchain.Toolchain;
 
-import net.sourceforge.pmd.cpd.JavaTokenizer;
-import net.sourceforge.pmd.cpd.renderer.CPDRenderer;
-
 /**
  * Creates a report for PMD's Copy/Paste Detector (CPD) tool.
  * It can also generate a cpd results file in any of these formats: xml, csv or txt.
@@ -47,23 +45,21 @@
  * @version $Id$
  * @since 2.0
  */
-@Mojo( name = "cpd", threadSafe = true )
-public class CpdReport
-    extends AbstractPmdReport
-{
+@Mojo(name = "cpd", threadSafe = true)
+public class CpdReport extends AbstractPmdReport {
     /**
      * The programming language to be analyzed by CPD. Valid values are currently <code>java</code>,
      * <code>javascript</code> or <code>jsp</code>.
      *
      * @since 3.5
      */
-    @Parameter( defaultValue = "java" )
+    @Parameter(defaultValue = "java")
     private String language;
 
     /**
      * The minimum number of tokens that need to be duplicated before it causes a violation.
      */
-    @Parameter( property = "minimumTokens", defaultValue = "100" )
+    @Parameter(property = "minimumTokens", defaultValue = "100")
     private int minimumTokens;
 
     /**
@@ -71,7 +67,7 @@
      *
      * @since 2.1
      */
-    @Parameter( property = "cpd.skip", defaultValue = "false" )
+    @Parameter(property = "cpd.skip", defaultValue = "false")
     private boolean skip;
 
     /**
@@ -81,7 +77,7 @@
      *
      * @since 2.5
      */
-    @Parameter( property = "cpd.ignoreLiterals", defaultValue = "false" )
+    @Parameter(property = "cpd.ignoreLiterals", defaultValue = "false")
     private boolean ignoreLiterals;
 
     /**
@@ -89,7 +85,7 @@
      *
      * @since 2.5
      */
-    @Parameter( property = "cpd.ignoreIdentifiers", defaultValue = "false" )
+    @Parameter(property = "cpd.ignoreIdentifiers", defaultValue = "false")
     private boolean ignoreIdentifiers;
 
     /**
@@ -97,7 +93,7 @@
      *
      * @since 3.11.0
      */
-    @Parameter( property = "cpd.ignoreAnnotations", defaultValue = "false" )
+    @Parameter(property = "cpd.ignoreAnnotations", defaultValue = "false")
     private boolean ignoreAnnotations;
 
     /**
@@ -110,154 +106,123 @@
     /**
      * {@inheritDoc}
      */
-    public String getName( Locale locale )
-    {
-        return getBundle( locale ).getString( "report.cpd.name" );
+    public String getName(Locale locale) {
+        return getBundle(locale).getString("report.cpd.name");
     }
 
     /**
      * {@inheritDoc}
      */
-    public String getDescription( Locale locale )
-    {
-        return getBundle( locale ).getString( "report.cpd.description" );
+    public String getDescription(Locale locale) {
+        return getBundle(locale).getString("report.cpd.description");
     }
 
     /**
      * {@inheritDoc}
      */
     @Override
-    public void executeReport( Locale locale )
-        throws MavenReportException
-    {
+    public void executeReport(Locale locale) throws MavenReportException {
         ClassLoader origLoader = Thread.currentThread().getContextClassLoader();
-        try
-        {
-            Thread.currentThread().setContextClassLoader( this.getClass().getClassLoader() );
+        try {
+            Thread.currentThread().setContextClassLoader(this.getClass().getClassLoader());
 
-            generateMavenSiteReport( locale );
-        }
-        finally
-        {
-            Thread.currentThread().setContextClassLoader( origLoader );
+            generateMavenSiteReport(locale);
+        } finally {
+            Thread.currentThread().setContextClassLoader(origLoader);
         }
     }
 
     @Override
-    public boolean canGenerateReport()
-    {
-        if ( skip )
-        {
-            getLog().info( "Skipping CPD execution" );
+    public boolean canGenerateReport() {
+        if (skip) {
+            getLog().info("Skipping CPD execution");
             return false;
         }
 
         boolean result = super.canGenerateReport();
-        if ( result )
-        {
-            try
-            {
+        if (result) {
+            try {
                 executeCpd();
-                if ( skipEmptyReport )
-                {
+                if (skipEmptyReport) {
                     result = cpdResult.hasDuplications();
-                    if ( !result )
-                    {
-                        getLog().debug( "Skipping report since skipEmptyReport is true and there are no CPD issues." );
+                    if (!result) {
+                        getLog().debug("Skipping report since skipEmptyReport is true and there are no CPD issues.");
                     }
                 }
-            }
-            catch ( MavenReportException e )
-            {
-                throw new RuntimeException( e );
+            } catch (MavenReportException e) {
+                throw new RuntimeException(e);
             }
         }
         return result;
     }
 
-    private void executeCpd()
-        throws MavenReportException
-    {
-        if ( cpdResult != null )
-        {
+    private void executeCpd() throws MavenReportException {
+        if (cpdResult != null) {
             // CPD has already been run
-            getLog().debug( "CPD has already been run - skipping redundant execution." );
+            getLog().debug("CPD has already been run - skipping redundant execution.");
             return;
         }
 
         Properties languageProperties = new Properties();
-        if ( ignoreLiterals )
-        {
-            languageProperties.setProperty( JavaTokenizer.IGNORE_LITERALS, "true" );
+        if (ignoreLiterals) {
+            languageProperties.setProperty(JavaTokenizer.IGNORE_LITERALS, "true");
         }
-        if ( ignoreIdentifiers )
-        {
-            languageProperties.setProperty( JavaTokenizer.IGNORE_IDENTIFIERS, "true" );
+        if (ignoreIdentifiers) {
+            languageProperties.setProperty(JavaTokenizer.IGNORE_IDENTIFIERS, "true");
         }
-        if ( ignoreAnnotations )
-        {
-            languageProperties.setProperty( JavaTokenizer.IGNORE_ANNOTATIONS, "true" );
+        if (ignoreAnnotations) {
+            languageProperties.setProperty(JavaTokenizer.IGNORE_ANNOTATIONS, "true");
         }
-        try
-        {
+        try {
             filesToProcess = getFilesToProcess();
 
             CpdRequest request = new CpdRequest();
-            request.setMinimumTokens( minimumTokens );
-            request.setLanguage( language );
-            request.setLanguageProperties( languageProperties );
-            request.setSourceEncoding( getInputEncoding() );
-            request.addFiles( filesToProcess.keySet() );
+            request.setMinimumTokens(minimumTokens);
+            request.setLanguage(language);
+            request.setLanguageProperties(languageProperties);
+            request.setSourceEncoding(getInputEncoding());
+            request.addFiles(filesToProcess.keySet());
 
-            request.setShowPmdLog( showPmdLog );
-            request.setLogLevel( determineCurrentRootLogLevel() );
+            request.setShowPmdLog(showPmdLog);
+            request.setLogLevel(determineCurrentRootLogLevel());
 
-            request.setExcludeFromFailureFile( excludeFromFailureFile );
-            request.setTargetDirectory( targetDirectory.getAbsolutePath() );
-            request.setOutputEncoding( getOutputEncoding() );
-            request.setFormat( format );
-            request.setIncludeXmlInSite( includeXmlInSite );
-            request.setReportOutputDirectory( getReportOutputDirectory().getAbsolutePath() );
+            request.setExcludeFromFailureFile(excludeFromFailureFile);
+            request.setTargetDirectory(targetDirectory.getAbsolutePath());
+            request.setOutputEncoding(getOutputEncoding());
+            request.setFormat(format);
+            request.setIncludeXmlInSite(includeXmlInSite);
+            request.setReportOutputDirectory(getReportOutputDirectory().getAbsolutePath());
 
             Toolchain tc = getToolchain();
-            if ( tc != null )
-            {
-                getLog().info( "Toolchain in maven-pmd-plugin: " + tc );
-                String javaExecutable = tc.findTool( "java" ); //NOI18N
-                request.setJavaExecutable( javaExecutable );
+            if (tc != null) {
+                getLog().info("Toolchain in maven-pmd-plugin: " + tc);
+                String javaExecutable = tc.findTool("java"); // NOI18N
+                request.setJavaExecutable(javaExecutable);
             }
 
-            getLog().info( "PMD version: " + AbstractPmdReport.getPmdVersion() );
-            cpdResult = CpdExecutor.execute( request );
-        }
-        catch ( UnsupportedEncodingException e )
-        {
-            throw new MavenReportException( "Encoding '" + getInputEncoding() + "' is not supported.", e );
-        }
-        catch ( IOException e )
-        {
-            throw new MavenReportException( e.getMessage(), e );
+            getLog().info("PMD version: " + AbstractPmdReport.getPmdVersion());
+            cpdResult = CpdExecutor.execute(request);
+        } catch (UnsupportedEncodingException e) {
+            throw new MavenReportException("Encoding '" + getInputEncoding() + "' is not supported.", e);
+        } catch (IOException e) {
+            throw new MavenReportException(e.getMessage(), e);
         }
     }
 
-    private void generateMavenSiteReport( Locale locale )
-    {
-        CpdReportGenerator gen = new CpdReportGenerator( getSink(), filesToProcess, getBundle( locale ),
-                isAggregator() );
-        gen.generate( cpdResult.getDuplications() );
+    private void generateMavenSiteReport(Locale locale) {
+        CpdReportGenerator gen = new CpdReportGenerator(getSink(), filesToProcess, getBundle(locale), isAggregator());
+        gen.generate(cpdResult.getDuplications());
     }
 
     /**
      * {@inheritDoc}
      */
-    public String getOutputName()
-    {
+    public String getOutputName() {
         return "cpd";
     }
 
-    private static ResourceBundle getBundle( Locale locale )
-    {
-        return ResourceBundle.getBundle( "cpd-report", locale, CpdReport.class.getClassLoader() );
+    private static ResourceBundle getBundle(Locale locale) {
+        return ResourceBundle.getBundle("cpd-report", locale, CpdReport.class.getClassLoader());
     }
 
     /**
@@ -268,8 +233,7 @@
      * @deprecated Use {@link CpdExecutor#createRenderer(String, String)} instead.
      */
     @Deprecated
-    public CPDRenderer createRenderer() throws MavenReportException
-    {
-        return CpdExecutor.createRenderer( format, getOutputEncoding() );
+    public CPDRenderer createRenderer() throws MavenReportException {
+        return CpdExecutor.createRenderer(format, getOutputEncoding());
     }
 }
diff --git a/src/main/java/org/apache/maven/plugins/pmd/CpdReportGenerator.java b/src/main/java/org/apache/maven/plugins/pmd/CpdReportGenerator.java
index 1823055..dd13594 100644
--- a/src/main/java/org/apache/maven/plugins/pmd/CpdReportGenerator.java
+++ b/src/main/java/org/apache/maven/plugins/pmd/CpdReportGenerator.java
@@ -1,5 +1,3 @@
-package org.apache.maven.plugins.pmd;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.maven.plugins.pmd;
 
 import java.io.File;
 import java.util.List;
@@ -36,8 +35,7 @@
  * @author mperham
  * @version $Id$
  */
-public class CpdReportGenerator
-{
+public class CpdReportGenerator {
     private Sink sink;
 
     private Map<File, PmdFileInfo> fileMap;
@@ -46,8 +44,7 @@
 
     private boolean aggregate;
 
-    public CpdReportGenerator( Sink sink, Map<File, PmdFileInfo> fileMap, ResourceBundle bundle, boolean aggregate )
-    {
+    public CpdReportGenerator(Sink sink, Map<File, PmdFileInfo> fileMap, ResourceBundle bundle, boolean aggregate) {
         this.sink = sink;
         this.fileMap = fileMap;
         this.bundle = bundle;
@@ -59,19 +56,17 @@
      *
      * @return a String that contains the title
      */
-    private String getTitle()
-    {
-        return bundle.getString( "report.cpd.title" );
+    private String getTitle() {
+        return bundle.getString("report.cpd.title");
     }
 
     /**
      * Method that generates the start of the CPD report.
      */
-    public void beginDocument()
-    {
+    public void beginDocument() {
         sink.head();
         sink.title();
-        sink.text( getTitle() );
+        sink.text(getTitle());
         sink.title_();
         sink.head_();
 
@@ -79,15 +74,15 @@
 
         sink.section1();
         sink.sectionTitle1();
-        sink.text( getTitle() );
+        sink.text(getTitle());
         sink.sectionTitle1_();
 
         sink.paragraph();
-        sink.text( bundle.getString( "report.cpd.cpdlink" ) + " " );
-        sink.link( "https://pmd.github.io/latest/pmd_userdocs_cpd.html" );
-        sink.text( "CPD" );
+        sink.text(bundle.getString("report.cpd.cpdlink") + " ");
+        sink.link("https://pmd.github.io/latest/pmd_userdocs_cpd.html");
+        sink.text("CPD");
         sink.link_();
-        sink.text( " " + AbstractPmdReport.getPmdVersion() + "." );
+        sink.text(" " + AbstractPmdReport.getPmdVersion() + ".");
         sink.paragraph_();
 
         sink.section1_();
@@ -96,7 +91,7 @@
 
         sink.section1();
         sink.sectionTitle1();
-        sink.text( bundle.getString( "report.cpd.dupes" ) );
+        sink.text(bundle.getString("report.cpd.dupes"));
         sink.sectionTitle1_();
 
         // TODO files summary
@@ -105,38 +100,35 @@
     /**
      * Method that generates a line of CPD report according to a TokenEntry.
      */
-    private void generateFileLine( CpdFile duplicationMark )
-    {
+    private void generateFileLine(CpdFile duplicationMark) {
         // Get information for report generation
         String filename = duplicationMark.getPath();
-        File file = new File( filename );
-        PmdFileInfo fileInfo = fileMap.get( file );
+        File file = new File(filename);
+        PmdFileInfo fileInfo = fileMap.get(file);
         File sourceDirectory = fileInfo.getSourceDirectory();
-        filename = StringUtils.substring( filename, sourceDirectory.getAbsolutePath().length() + 1 );
+        filename = StringUtils.substring(
+                filename, sourceDirectory.getAbsolutePath().length() + 1);
         String xrefLocation = fileInfo.getXrefLocation();
         MavenProject projectFile = fileInfo.getProject();
         int line = duplicationMark.getLine();
 
         sink.tableRow();
         sink.tableCell();
-        sink.text( filename );
+        sink.text(filename);
         sink.tableCell_();
-        if ( aggregate )
-        {
+        if (aggregate) {
             sink.tableCell();
-            sink.text( projectFile.getName() );
+            sink.text(projectFile.getName());
             sink.tableCell_();
         }
         sink.tableCell();
 
-        if ( xrefLocation != null )
-        {
-            sink.link( xrefLocation + "/" + filename.replaceAll( "\\.java$", ".html" ).replace( '\\', '/' ) + "#L"
-                + line );
+        if (xrefLocation != null) {
+            sink.link(xrefLocation + "/"
+                    + filename.replaceAll("\\.java$", ".html").replace('\\', '/') + "#L" + line);
         }
-        sink.text( String.valueOf( line ) );
-        if ( xrefLocation != null )
-        {
+        sink.text(String.valueOf(line));
+        if (xrefLocation != null) {
             sink.link_();
         }
 
@@ -149,58 +141,52 @@
      *
      * @param duplications the found duplications
      */
-    public void generate( List<Duplication> duplications )
-    {
+    public void generate(List<Duplication> duplications) {
         beginDocument();
 
-        if ( duplications.isEmpty() )
-        {
+        if (duplications.isEmpty()) {
             sink.paragraph();
-            sink.text( bundle.getString( "report.cpd.noProblems" ) );
+            sink.text(bundle.getString("report.cpd.noProblems"));
             sink.paragraph_();
         }
 
-        for ( Duplication duplication : duplications )
-        {
+        for (Duplication duplication : duplications) {
             String code = duplication.getCodefragment();
 
             sink.table();
-            sink.tableRows( null, false );
+            sink.tableRows(null, false);
             sink.tableRow();
             sink.tableHeaderCell();
-            sink.text( bundle.getString( "report.cpd.column.file" ) );
+            sink.text(bundle.getString("report.cpd.column.file"));
             sink.tableHeaderCell_();
-            if ( aggregate )
-            {
+            if (aggregate) {
                 sink.tableHeaderCell();
-                sink.text( bundle.getString( "report.cpd.column.project" ) );
+                sink.text(bundle.getString("report.cpd.column.project"));
                 sink.tableHeaderCell_();
             }
             sink.tableHeaderCell();
-            sink.text( bundle.getString( "report.cpd.column.line" ) );
+            sink.text(bundle.getString("report.cpd.column.line"));
             sink.tableHeaderCell_();
             sink.tableRow_();
 
             // Iterating on every token entry
-            for ( CpdFile mark : duplication.getFiles() )
-            {
-                generateFileLine( mark );
+            for (CpdFile mark : duplication.getFiles()) {
+                generateFileLine(mark);
             }
 
             // Source snippet
             sink.tableRow();
 
             int colspan = 2;
-            if ( aggregate )
-            {
+            if (aggregate) {
                 ++colspan;
             }
             // TODO Cleaner way to do this?
-            sink.rawText( "<td colspan='" + colspan + "'>" );
-            sink.verbatim( null );
-            sink.text( code );
+            sink.rawText("<td colspan='" + colspan + "'>");
+            sink.verbatim(null);
+            sink.text(code);
             sink.verbatim_();
-            sink.rawText( "</td>" );
+            sink.rawText("</td>");
             sink.tableRow_();
             sink.tableRows_();
             sink.table_();
diff --git a/src/main/java/org/apache/maven/plugins/pmd/CpdViolationCheckMojo.java b/src/main/java/org/apache/maven/plugins/pmd/CpdViolationCheckMojo.java
index 3feab0d..7852f76 100644
--- a/src/main/java/org/apache/maven/plugins/pmd/CpdViolationCheckMojo.java
+++ b/src/main/java/org/apache/maven/plugins/pmd/CpdViolationCheckMojo.java
@@ -1,5 +1,3 @@
-package org.apache.maven.plugins.pmd;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -9,7 +7,7 @@
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
  *
- *  http://www.apache.org/licenses/LICENSE-2.0
+ *   http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
@@ -18,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.maven.plugins.pmd;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -27,14 +26,14 @@
 
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
-import org.apache.maven.plugins.pmd.model.CpdErrorDetail;
-import org.apache.maven.plugins.pmd.model.CpdFile;
-import org.apache.maven.plugins.pmd.model.Duplication;
-import org.apache.maven.plugins.pmd.model.io.xpp3.CpdXpp3Reader;
 import org.apache.maven.plugins.annotations.Execute;
 import org.apache.maven.plugins.annotations.LifecyclePhase;
 import org.apache.maven.plugins.annotations.Mojo;
 import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.plugins.pmd.model.CpdErrorDetail;
+import org.apache.maven.plugins.pmd.model.CpdFile;
+import org.apache.maven.plugins.pmd.model.Duplication;
+import org.apache.maven.plugins.pmd.model.io.xpp3.CpdXpp3Reader;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 
 /**
@@ -43,23 +42,20 @@
  * @version $Id$
  * @since 2.0
  */
-@Mojo( name = "cpd-check", defaultPhase = LifecyclePhase.VERIFY, threadSafe = true )
-@Execute( goal = "cpd" )
-public class CpdViolationCheckMojo
-    extends AbstractPmdViolationCheckMojo<Duplication>
-{
+@Mojo(name = "cpd-check", defaultPhase = LifecyclePhase.VERIFY, threadSafe = true)
+@Execute(goal = "cpd")
+public class CpdViolationCheckMojo extends AbstractPmdViolationCheckMojo<Duplication> {
     /**
      * Default constructor. Initializes with the correct {@link ExcludeDuplicationsFromFile}.
      */
-    public CpdViolationCheckMojo()
-    {
-        super( new ExcludeDuplicationsFromFile() );
+    public CpdViolationCheckMojo() {
+        super(new ExcludeDuplicationsFromFile());
     }
 
     /**
      * Skip the CPD violation checks. Most useful on the command line via "-Dcpd.skip=true".
      */
-    @Parameter( property = "cpd.skip", defaultValue = "false" )
+    @Parameter(property = "cpd.skip", defaultValue = "false")
     private boolean skip;
 
     /**
@@ -67,79 +63,69 @@
      *
      * @since 3.0
      */
-    @Parameter( property = "cpd.failOnViolation", defaultValue = "true", required = true )
+    @Parameter(property = "cpd.failOnViolation", defaultValue = "true", required = true)
     protected boolean failOnViolation;
 
     /**
      * {@inheritDoc}
      */
-    public void execute()
-        throws MojoExecutionException, MojoFailureException
-    {
-        if ( skip )
-        {
-            getLog().info( "Skipping CPD execution" );
+    public void execute() throws MojoExecutionException, MojoFailureException {
+        if (skip) {
+            getLog().info("Skipping CPD execution");
             return;
         }
 
-        executeCheck( "cpd.xml", "duplication", "CPD duplication", 10 );
+        executeCheck("cpd.xml", "duplication", "CPD duplication", 10);
     }
 
     /**
      * {@inheritDoc}
      */
     @Override
-    protected void printError( Duplication item, String severity )
-    {
+    protected void printError(Duplication item, String severity) {
         int lines = item.getLines();
 
-        StringBuilder buff = new StringBuilder( 100 );
-        buff.append( "CPD " ).append( severity ).append( ": Found " );
-        buff.append( lines ).append( " lines of duplicated code at locations:" );
-        this.getLog().info( buff.toString() );
+        StringBuilder buff = new StringBuilder(100);
+        buff.append("CPD ").append(severity).append(": Found ");
+        buff.append(lines).append(" lines of duplicated code at locations:");
+        this.getLog().info(buff.toString());
 
-        for ( CpdFile file : item.getFiles() )
-        {
-            buff.setLength( 0 );
-            buff.append( "    " );
-            buff.append( file.getPath() );
-            buff.append( " line " ).append( file.getLine() );
-            this.getLog().info( buff.toString() );
+        for (CpdFile file : item.getFiles()) {
+            buff.setLength(0);
+            buff.append("    ");
+            buff.append(file.getPath());
+            buff.append(" line ").append(file.getLine());
+            this.getLog().info(buff.toString());
         }
 
-        this.getLog().debug( "CPD " + severity + ": Code Fragment " );
-        this.getLog().debug( item.getCodefragment() );
+        this.getLog().debug("CPD " + severity + ": Code Fragment ");
+        this.getLog().debug(item.getCodefragment());
     }
 
     /**
      * {@inheritDoc}
      */
     @Override
-    protected List<Duplication> getErrorDetails( File cpdFile ) throws XmlPullParserException, IOException
-    {
-        try ( InputStream in = new FileInputStream( cpdFile ) )
-        {
+    protected List<Duplication> getErrorDetails(File cpdFile) throws XmlPullParserException, IOException {
+        try (InputStream in = new FileInputStream(cpdFile)) {
             CpdXpp3Reader reader = new CpdXpp3Reader();
-            CpdErrorDetail details = reader.read( in, false );
+            CpdErrorDetail details = reader.read(in, false);
             return details.getDuplications();
         }
     }
 
     @Override
-    protected int getPriority( Duplication errorDetail )
-    {
+    protected int getPriority(Duplication errorDetail) {
         return 0;
     }
 
     @Override
-    protected ViolationDetails<Duplication> newViolationDetailsInstance()
-    {
+    protected ViolationDetails<Duplication> newViolationDetailsInstance() {
         return new ViolationDetails<>();
     }
 
     @Override
-    public boolean isFailOnViolation()
-    {
+    public boolean isFailOnViolation() {
         return failOnViolation;
     }
-}
\ No newline at end of file
+}
diff --git a/src/main/java/org/apache/maven/plugins/pmd/ExcludeDuplicationsFromFile.java b/src/main/java/org/apache/maven/plugins/pmd/ExcludeDuplicationsFromFile.java
index 0f7d4df..20bc52d 100644
--- a/src/main/java/org/apache/maven/plugins/pmd/ExcludeDuplicationsFromFile.java
+++ b/src/main/java/org/apache/maven/plugins/pmd/ExcludeDuplicationsFromFile.java
@@ -1,5 +1,3 @@
-package org.apache.maven.plugins.pmd;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.maven.plugins.pmd;
 
 import java.io.FileReader;
 import java.io.IOException;
@@ -27,14 +26,13 @@
 import java.util.List;
 import java.util.Set;
 
+import net.sourceforge.pmd.cpd.Mark;
+import net.sourceforge.pmd.cpd.Match;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugins.pmd.model.CpdFile;
 import org.apache.maven.plugins.pmd.model.Duplication;
 
-import net.sourceforge.pmd.cpd.Mark;
-import net.sourceforge.pmd.cpd.Match;
-
 /**
  * This class contains utility methods to load property files which define which files
  * should be excluded from the CPD duplication results.
@@ -42,71 +40,57 @@
  *
  * @author Andreas Dangel
  */
-public class ExcludeDuplicationsFromFile implements ExcludeFromFile<Duplication>
-{
+public class ExcludeDuplicationsFromFile implements ExcludeFromFile<Duplication> {
 
     private final List<Set<String>> exclusionList = new ArrayList<>();
 
     @Override
-    public boolean isExcludedFromFailure( final Duplication errorDetail )
-    {
+    public boolean isExcludedFromFailure(final Duplication errorDetail) {
         final Set<String> uniquePaths = new HashSet<>();
-        for ( final CpdFile cpdFile : errorDetail.getFiles() )
-        {
-            uniquePaths.add( cpdFile.getPath() );
+        for (final CpdFile cpdFile : errorDetail.getFiles()) {
+            uniquePaths.add(cpdFile.getPath());
         }
-        return isExcludedFromFailure( uniquePaths );
+        return isExcludedFromFailure(uniquePaths);
     }
 
     /**
      * Checks whether the given {@link Match} is excluded.
      * Note: The exclusion must have been loaded before via {@link #loadExcludeFromFailuresData(String)}.
-     * 
+     *
      * @param errorDetail the duplication to check
      * @return <code>true</code> if the given duplication should be excluded, <code>false</code> otherwise.
      */
-    public boolean isExcludedFromFailure( final Match errorDetail )
-    {
+    public boolean isExcludedFromFailure(final Match errorDetail) {
         final Set<String> uniquePaths = new HashSet<>();
-        for ( Mark mark : errorDetail.getMarkSet() )
-        {
-            uniquePaths.add( mark.getFilename() );
+        for (Mark mark : errorDetail.getMarkSet()) {
+            uniquePaths.add(mark.getFilename());
         }
-        return isExcludedFromFailure( uniquePaths );
+        return isExcludedFromFailure(uniquePaths);
     }
 
-    private boolean isExcludedFromFailure( Set<String> uniquePaths )
-    {
-        for ( final Set<String> singleExclusionGroup : exclusionList )
-        {
-            if ( uniquePaths.size() == singleExclusionGroup.size()
-                && duplicationExcludedByGroup( uniquePaths, singleExclusionGroup ) )
-            {
+    private boolean isExcludedFromFailure(Set<String> uniquePaths) {
+        for (final Set<String> singleExclusionGroup : exclusionList) {
+            if (uniquePaths.size() == singleExclusionGroup.size()
+                    && duplicationExcludedByGroup(uniquePaths, singleExclusionGroup)) {
                 return true;
             }
         }
         return false;
     }
 
-    private boolean duplicationExcludedByGroup( final Set<String> uniquePaths, final Set<String> singleExclusionGroup )
-    {
-        for ( final String path : uniquePaths )
-        {
-            if ( !fileExcludedByGroup( path, singleExclusionGroup ) )
-            {
+    private boolean duplicationExcludedByGroup(final Set<String> uniquePaths, final Set<String> singleExclusionGroup) {
+        for (final String path : uniquePaths) {
+            if (!fileExcludedByGroup(path, singleExclusionGroup)) {
                 return false;
             }
         }
         return true;
     }
 
-    private boolean fileExcludedByGroup( final String path, final Set<String> singleExclusionGroup )
-    {
-        final String formattedPath = path.replace( '\\', '.' ).replace( '/', '.' );
-        for ( final String className : singleExclusionGroup )
-        {
-            if ( formattedPath.contains( className ) )
-            {
+    private boolean fileExcludedByGroup(final String path, final Set<String> singleExclusionGroup) {
+        final String formattedPath = path.replace('\\', '.').replace('/', '.');
+        for (final String className : singleExclusionGroup) {
+            if (formattedPath.contains(className)) {
                 return true;
             }
         }
@@ -114,44 +98,33 @@
     }
 
     @Override
-    public void loadExcludeFromFailuresData( final String excludeFromFailureFile )
-            throws MojoExecutionException
-    {
-        if ( StringUtils.isEmpty( excludeFromFailureFile ) )
-        {
+    public void loadExcludeFromFailuresData(final String excludeFromFailureFile) throws MojoExecutionException {
+        if (StringUtils.isEmpty(excludeFromFailureFile)) {
             return;
         }
 
-        try ( LineNumberReader reader = new LineNumberReader( new FileReader( excludeFromFailureFile ) ) )
-        {
+        try (LineNumberReader reader = new LineNumberReader(new FileReader(excludeFromFailureFile))) {
             String line;
-            while ( ( line = reader.readLine() ) != null )
-            {
-                if ( !line.startsWith( "#" ) )
-                {
-                    exclusionList.add( createSetFromExclusionLine( line ) );
+            while ((line = reader.readLine()) != null) {
+                if (!line.startsWith("#")) {
+                    exclusionList.add(createSetFromExclusionLine(line));
                 }
             }
-        }
-        catch ( final IOException e )
-        {
-            throw new MojoExecutionException( "Cannot load file " + excludeFromFailureFile, e );
+        } catch (final IOException e) {
+            throw new MojoExecutionException("Cannot load file " + excludeFromFailureFile, e);
         }
     }
 
-    private Set<String> createSetFromExclusionLine( final String line )
-    {
+    private Set<String> createSetFromExclusionLine(final String line) {
         final Set<String> result = new HashSet<>();
-        for ( final String className : line.split( "," ) )
-        {
-            result.add( className.trim() );
+        for (final String className : line.split(",")) {
+            result.add(className.trim());
         }
         return result;
     }
 
     @Override
-    public int countExclusions()
-    {
+    public int countExclusions() {
         return exclusionList.size();
     }
 }
diff --git a/src/main/java/org/apache/maven/plugins/pmd/ExcludeFromFile.java b/src/main/java/org/apache/maven/plugins/pmd/ExcludeFromFile.java
index c9bd0b8..48d1039 100644
--- a/src/main/java/org/apache/maven/plugins/pmd/ExcludeFromFile.java
+++ b/src/main/java/org/apache/maven/plugins/pmd/ExcludeFromFile.java
@@ -1,5 +1,3 @@
-package org.apache.maven.plugins.pmd;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.maven.plugins.pmd;
 
 import org.apache.maven.plugin.MojoExecutionException;
 
@@ -26,15 +25,14 @@
  * or {@link org.apache.maven.plugins.pmd.model.Duplication}.
  * @author Andreas Dangel
  */
-public interface ExcludeFromFile<D>
-{
+public interface ExcludeFromFile<D> {
     /**
      * Loads the exclude definitions from the given file.
      *
      * @param excludeFromFailureFile the path to the properties file
      * @throws MojoExecutionException if the properties file couldn't be loaded
      */
-    void loadExcludeFromFailuresData( String excludeFromFailureFile ) throws MojoExecutionException;
+    void loadExcludeFromFailuresData(String excludeFromFailureFile) throws MojoExecutionException;
 
     /**
      * Determines how many exclusions are considered.
@@ -49,6 +47,5 @@
      * @param errorDetail the violation to check
      * @return <code>true</code> if the violation should be excluded, <code>false</code> otherwise.
      */
-    boolean isExcludedFromFailure( D errorDetail );
-
+    boolean isExcludedFromFailure(D errorDetail);
 }
diff --git a/src/main/java/org/apache/maven/plugins/pmd/ExcludeViolationsFromFile.java b/src/main/java/org/apache/maven/plugins/pmd/ExcludeViolationsFromFile.java
index a0e9681..13981b3 100644
--- a/src/main/java/org/apache/maven/plugins/pmd/ExcludeViolationsFromFile.java
+++ b/src/main/java/org/apache/maven/plugins/pmd/ExcludeViolationsFromFile.java
@@ -1,5 +1,3 @@
-package org.apache.maven.plugins.pmd;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.maven.plugins.pmd;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -29,12 +28,11 @@
 import java.util.Properties;
 import java.util.Set;
 
+import net.sourceforge.pmd.RuleViolation;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugins.pmd.model.Violation;
 
-import net.sourceforge.pmd.RuleViolation;
-
 /**
  * This class contains utility for loading property files, which define which PMD violations
  * from which classes should be ignored and not cause a failure.
@@ -42,52 +40,41 @@
  *
  * @author Andreas Dangel
  */
-public class ExcludeViolationsFromFile implements ExcludeFromFile<Violation>
-{
+public class ExcludeViolationsFromFile implements ExcludeFromFile<Violation> {
     private Map<String, Set<String>> excludeFromFailureClasses = new HashMap<>();
 
     @Override
-    public void loadExcludeFromFailuresData( final String excludeFromFailureFile )
-        throws MojoExecutionException
-    {
-        if ( StringUtils.isEmpty( excludeFromFailureFile ) )
-        {
+    public void loadExcludeFromFailuresData(final String excludeFromFailureFile) throws MojoExecutionException {
+        if (StringUtils.isEmpty(excludeFromFailureFile)) {
             return;
         }
 
-        File file = new File( excludeFromFailureFile );
-        if ( !file.exists() )
-        {
+        File file = new File(excludeFromFailureFile);
+        if (!file.exists()) {
             return;
         }
         final Properties props = new Properties();
-        try ( FileInputStream fileInputStream = new FileInputStream( new File( excludeFromFailureFile ) ) )
-        {
-            props.load( fileInputStream );
+        try (FileInputStream fileInputStream = new FileInputStream(new File(excludeFromFailureFile))) {
+            props.load(fileInputStream);
+        } catch (final IOException e) {
+            throw new MojoExecutionException("Cannot load properties file " + excludeFromFailureFile, e);
         }
-        catch ( final IOException e )
-        {
-            throw new MojoExecutionException( "Cannot load properties file " + excludeFromFailureFile, e );
-        }
-        for ( final Entry<Object, Object> propEntry : props.entrySet() )
-        {
+        for (final Entry<Object, Object> propEntry : props.entrySet()) {
             final Set<String> excludedRuleSet = new HashSet<>();
             final String className = propEntry.getKey().toString();
-            final String[] excludedRules = propEntry.getValue().toString().split( "," );
-            for ( final String excludedRule : excludedRules )
-            {
-                excludedRuleSet.add( excludedRule.trim() );
+            final String[] excludedRules = propEntry.getValue().toString().split(",");
+            for (final String excludedRule : excludedRules) {
+                excludedRuleSet.add(excludedRule.trim());
             }
-            excludeFromFailureClasses.put( className, excludedRuleSet );
+            excludeFromFailureClasses.put(className, excludedRuleSet);
         }
     }
 
     @Override
-    public boolean isExcludedFromFailure( final Violation errorDetail )
-    {
-        final String className = extractClassName( errorDetail.getViolationPackage(), errorDetail.getViolationClass(),
-                errorDetail.getFileName() );
-        return isExcludedFromFailure( className, errorDetail.getRule() );
+    public boolean isExcludedFromFailure(final Violation errorDetail) {
+        final String className = extractClassName(
+                errorDetail.getViolationPackage(), errorDetail.getViolationClass(), errorDetail.getFileName());
+        return isExcludedFromFailure(className, errorDetail.getRule());
     }
 
     /**
@@ -97,51 +84,41 @@
      * @param errorDetail the violation to check
      * @return <code>true</code> if the violation should be excluded, <code>false</code> otherwise.
      */
-    public boolean isExcludedFromFailure( final RuleViolation errorDetail )
-    {
-        final String className = extractClassName( errorDetail.getPackageName(), errorDetail.getClassName(),
-                errorDetail.getFilename() );
-        return isExcludedFromFailure( className, errorDetail.getRule().getName() );
+    public boolean isExcludedFromFailure(final RuleViolation errorDetail) {
+        final String className =
+                extractClassName(errorDetail.getPackageName(), errorDetail.getClassName(), errorDetail.getFilename());
+        return isExcludedFromFailure(className, errorDetail.getRule().getName());
     }
 
     @Override
-    public int countExclusions()
-    {
+    public int countExclusions() {
         int result = 0;
-        for ( Set<String> rules : excludeFromFailureClasses.values() )
-        {
+        for (Set<String> rules : excludeFromFailureClasses.values()) {
             result += rules.size();
         }
         return result;
     }
 
-    private boolean isExcludedFromFailure( String className, String ruleName )
-    {
-        final Set<String> excludedRuleSet = excludeFromFailureClasses.get( className );
-        return excludedRuleSet != null && excludedRuleSet.contains( ruleName );
+    private boolean isExcludedFromFailure(String className, String ruleName) {
+        final Set<String> excludedRuleSet = excludeFromFailureClasses.get(className);
+        return excludedRuleSet != null && excludedRuleSet.contains(ruleName);
     }
 
-    private String extractClassName( String packageName, String className, String fullPath )
-    {
+    private String extractClassName(String packageName, String className, String fullPath) {
         // for some reason, some violations don't contain the package name, so we have to guess the full class name
         // this looks like a bug in PMD - at least for UnusedImport rule.
-        if ( StringUtils.isNotEmpty( packageName ) && StringUtils.isNotEmpty( className ) )
-        {
+        if (StringUtils.isNotEmpty(packageName) && StringUtils.isNotEmpty(className)) {
             return packageName + "." + className;
-        }
-        else if ( StringUtils.isNotEmpty( packageName ) )
-        {
+        } else if (StringUtils.isNotEmpty(packageName)) {
             String fileName = fullPath;
-            fileName = fileName.substring( fileName.lastIndexOf( File.separatorChar ) + 1 );
-            fileName = fileName.substring( 0, fileName.length() - 5 );
+            fileName = fileName.substring(fileName.lastIndexOf(File.separatorChar) + 1);
+            fileName = fileName.substring(0, fileName.length() - 5);
             return packageName + "." + fileName;
-        }
-        else
-        {
+        } else {
             final String fileName = fullPath;
-            final int javaIdx = fileName.indexOf( File.separator + "java" + File.separator );
-            return fileName.substring( javaIdx >= 0 ? javaIdx + 6 : 0, fileName.length() - 5 ).replace(
-                File.separatorChar, '.' );
+            final int javaIdx = fileName.indexOf(File.separator + "java" + File.separator);
+            return fileName.substring(javaIdx >= 0 ? javaIdx + 6 : 0, fileName.length() - 5)
+                    .replace(File.separatorChar, '.');
         }
     }
 }
diff --git a/src/main/java/org/apache/maven/plugins/pmd/PmdCollectingRenderer.java b/src/main/java/org/apache/maven/plugins/pmd/PmdCollectingRenderer.java
index d95f54c..1fd8645 100644
--- a/src/main/java/org/apache/maven/plugins/pmd/PmdCollectingRenderer.java
+++ b/src/main/java/org/apache/maven/plugins/pmd/PmdCollectingRenderer.java
@@ -1,5 +1,3 @@
-package org.apache.maven.plugins.pmd;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.maven.plugins.pmd;
 
 import java.io.IOException;
 import java.util.ArrayList;
@@ -26,52 +25,46 @@
 import java.util.List;
 import java.util.Map;
 
-import org.codehaus.plexus.util.StringUtils;
-
 import net.sourceforge.pmd.Report;
 import net.sourceforge.pmd.Report.ProcessingError;
 import net.sourceforge.pmd.Report.SuppressedViolation;
 import net.sourceforge.pmd.RuleViolation;
 import net.sourceforge.pmd.renderers.AbstractRenderer;
 import net.sourceforge.pmd.util.datasource.DataSource;
-
+import org.codehaus.plexus.util.StringUtils;
 
 /**
  * A PMD renderer, that collects all violations and processing errors
  * from a pmd execution.
- * 
+ *
  * @author Andreas Dangel
  * @deprecated not used anymore
  */
 @Deprecated
-public class PmdCollectingRenderer extends AbstractRenderer
-{
-    private List<ProcessingError> errors = Collections.synchronizedList( new ArrayList<>() );
-    private List<RuleViolation> violations = Collections.synchronizedList( new ArrayList<>() );
-    private List<SuppressedViolation> suppressed = Collections.synchronizedList( new ArrayList<> () );
+public class PmdCollectingRenderer extends AbstractRenderer {
+    private List<ProcessingError> errors = Collections.synchronizedList(new ArrayList<>());
+    private List<RuleViolation> violations = Collections.synchronizedList(new ArrayList<>());
+    private List<SuppressedViolation> suppressed = Collections.synchronizedList(new ArrayList<>());
 
     /**
      * Collects all reports from all threads.
      */
-    public PmdCollectingRenderer()
-    {
-        super( PmdCollectingRenderer.class.getSimpleName(), "Collects all reports from all threads" );
+    public PmdCollectingRenderer() {
+        super(PmdCollectingRenderer.class.getSimpleName(), "Collects all reports from all threads");
     }
 
     @Override
-    public void renderFileReport( Report report ) throws IOException
-    {
-        violations.addAll( report.getViolations() );
-        errors.addAll( report.getProcessingErrors() );
-        suppressed.addAll( report.getSuppressedViolations() );
+    public void renderFileReport(Report report) throws IOException {
+        violations.addAll(report.getViolations());
+        errors.addAll(report.getProcessingErrors());
+        suppressed.addAll(report.getSuppressedViolations());
     }
 
     /**
      * Checks whether any violations have been found.
      * @return <code>true</code> if at least one violations has been found
      */
-    public boolean hasViolations()
-    {
+    public boolean hasViolations() {
         return !violations.isEmpty();
     }
 
@@ -79,8 +72,7 @@
      * Gets the list of all found violations.
      * @return the violations
      */
-    public List<RuleViolation> getViolations()
-    {
+    public List<RuleViolation> getViolations() {
         return violations;
     }
 
@@ -88,8 +80,7 @@
      * Checks whether any processing errors have been found.
      * @return <code>true</code> if any errors have been found
      */
-    public boolean hasErrors()
-    {
+    public boolean hasErrors() {
         return !errors.isEmpty();
     }
 
@@ -97,8 +88,7 @@
      * Gets all the processing errors.
      * @return the errors
      */
-    public List<ProcessingError> getErrors()
-    {
+    public List<ProcessingError> getErrors() {
         return errors;
     }
 
@@ -107,68 +97,54 @@
      * @param withDetails if <code>true</code> then add the error details additionally (contains e.g. the stacktrace)
      * @return the errors as string
      */
-    public String getErrorsAsString( boolean withDetails )
-    {
-        List<String> errorsAsString = new ArrayList<>( errors.size() );
-        for ( ProcessingError error : errors )
-        {
-            errorsAsString.add( error.getFile() + ": " + error.getMsg() );
-            if ( withDetails )
-            {
-                errorsAsString.add( error.getDetail() );
+    public String getErrorsAsString(boolean withDetails) {
+        List<String> errorsAsString = new ArrayList<>(errors.size());
+        for (ProcessingError error : errors) {
+            errorsAsString.add(error.getFile() + ": " + error.getMsg());
+            if (withDetails) {
+                errorsAsString.add(error.getDetail());
             }
         }
-        return StringUtils.join( errorsAsString.toArray(), System.getProperty( "line.separator" ) );
+        return StringUtils.join(errorsAsString.toArray(), System.getProperty("line.separator"));
     }
 
     /**
      * Create a new single report with all violations for further rendering into other formats than HTML.
      * @return the report
      */
-    public Report asReport()
-    {
+    public Report asReport() {
         Report report = new Report();
-        for ( RuleViolation v : violations )
-        {
-            report.addRuleViolation( v );
+        for (RuleViolation v : violations) {
+            report.addRuleViolation(v);
         }
-        for ( ProcessingError e : errors )
-        {
-            report.addError( e );
+        for (ProcessingError e : errors) {
+            report.addError(e);
         }
         Map<Integer, String> suppressedLines = new HashMap<Integer, String>();
-        for ( SuppressedViolation s : suppressed )
-        {
-            if ( s.suppressedByNOPMD() )
-            {
-                suppressedLines.put( s.getRuleViolation().getBeginLine(), s.getUserMessage() );
+        for (SuppressedViolation s : suppressed) {
+            if (s.suppressedByNOPMD()) {
+                suppressedLines.put(s.getRuleViolation().getBeginLine(), s.getUserMessage());
             }
         }
-        report.suppress( suppressedLines );
-        for ( SuppressedViolation s : suppressed )
-        {
-            report.addRuleViolation( s.getRuleViolation() );
+        report.suppress(suppressedLines);
+        for (SuppressedViolation s : suppressed) {
+            report.addRuleViolation(s.getRuleViolation());
         }
         return report;
     }
 
-
     // stubs need to fulfill the Renderer interface
     @Override
-    public String defaultFileExtension()
-    {
+    public String defaultFileExtension() {
         return null;
     }
+
     @Override
-    public void start() throws IOException
-    {
-    }
+    public void start() throws IOException {}
+
     @Override
-    public void startFileAnalysis( DataSource dataSource )
-    {
-    }
+    public void startFileAnalysis(DataSource dataSource) {}
+
     @Override
-    public void end() throws IOException
-    {
-    }
+    public void end() throws IOException {}
 }
diff --git a/src/main/java/org/apache/maven/plugins/pmd/PmdFileInfo.java b/src/main/java/org/apache/maven/plugins/pmd/PmdFileInfo.java
index 5c9291a..f690d83 100644
--- a/src/main/java/org/apache/maven/plugins/pmd/PmdFileInfo.java
+++ b/src/main/java/org/apache/maven/plugins/pmd/PmdFileInfo.java
@@ -1,5 +1,3 @@
-package org.apache.maven.plugins.pmd;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.maven.plugins.pmd;
 
 import java.io.File;
 import java.io.IOException;
@@ -27,8 +26,7 @@
 /**
  * @version $Id$
  */
-public class PmdFileInfo
-{
+public class PmdFileInfo {
 
     private MavenProject project;
 
@@ -36,34 +34,25 @@
 
     private String xref;
 
-    public PmdFileInfo( MavenProject project, File dir, String x )
-        throws IOException
-    {
+    public PmdFileInfo(MavenProject project, File dir, String x) throws IOException {
         this.project = project;
-        if ( dir.isAbsolute() )
-        {
+        if (dir.isAbsolute()) {
             this.sourceDir = dir.getCanonicalFile();
-        }
-        else
-        {
-            this.sourceDir = new File( project.getBasedir(), dir.getPath() ).getCanonicalFile();
+        } else {
+            this.sourceDir = new File(project.getBasedir(), dir.getPath()).getCanonicalFile();
         }
         this.xref = x;
     }
 
-    public String getXrefLocation()
-    {
+    public String getXrefLocation() {
         return xref;
     }
 
-    public File getSourceDirectory()
-    {
+    public File getSourceDirectory() {
         return sourceDir;
     }
 
-    public MavenProject getProject()
-    {
+    public MavenProject getProject() {
         return project;
     }
-
-}
\ No newline at end of file
+}
diff --git a/src/main/java/org/apache/maven/plugins/pmd/PmdReport.java b/src/main/java/org/apache/maven/plugins/pmd/PmdReport.java
index c8e5f58..c3f1065 100644
--- a/src/main/java/org/apache/maven/plugins/pmd/PmdReport.java
+++ b/src/main/java/org/apache/maven/plugins/pmd/PmdReport.java
@@ -1,5 +1,3 @@
-package org.apache.maven.plugins.pmd;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.maven.plugins.pmd;
 
 import java.io.File;
 import java.io.IOException;
@@ -27,6 +26,7 @@
 import java.util.Locale;
 import java.util.ResourceBundle;
 
+import net.sourceforge.pmd.renderers.Renderer;
 import org.apache.maven.doxia.sink.Sink;
 import org.apache.maven.plugins.annotations.Component;
 import org.apache.maven.plugins.annotations.Mojo;
@@ -52,8 +52,6 @@
 import org.codehaus.plexus.resource.loader.ResourceNotFoundException;
 import org.codehaus.plexus.util.StringUtils;
 
-import net.sourceforge.pmd.renderers.Renderer;
-
 /**
  * Creates a PMD site report based on the rulesets and configuration set in the plugin.
  * It can also generate a pmd output file aside from the site report in any of the following formats: xml, csv or txt.
@@ -62,10 +60,8 @@
  * @version $Id$
  * @since 2.0
  */
-@Mojo( name = "pmd", threadSafe = true, requiresDependencyResolution = ResolutionScope.TEST )
-public class PmdReport
-    extends AbstractPmdReport
-{
+@Mojo(name = "pmd", threadSafe = true, requiresDependencyResolution = ResolutionScope.TEST)
+public class PmdReport extends AbstractPmdReport {
     /**
      * The target JDK to analyze based on. Should match the source used in the compiler plugin. Valid values
      * with the default PMD version are
@@ -81,7 +77,7 @@
      *   <b>Note:</b> this parameter is only used if the language parameter is set to <code>java</code>.
      * </p>
      */
-    @Parameter( property = "targetJdk", defaultValue = "${maven.compiler.source}" )
+    @Parameter(property = "targetJdk", defaultValue = "${maven.compiler.source}")
     private String targetJdk;
 
     /**
@@ -90,7 +86,7 @@
      *
      * @since 3.0
      */
-    @Parameter( defaultValue = "java" )
+    @Parameter(defaultValue = "java")
     private String language;
 
     /**
@@ -98,7 +94,7 @@
      *
      * @since 2.1
      */
-    @Parameter( property = "minimumPriority", defaultValue = "5" )
+    @Parameter(property = "minimumPriority", defaultValue = "5")
     private int minimumPriority = 5;
 
     /**
@@ -106,7 +102,7 @@
      *
      * @since 2.1
      */
-    @Parameter( property = "pmd.skip", defaultValue = "false" )
+    @Parameter(property = "pmd.skip", defaultValue = "false")
     private boolean skip;
 
     /**
@@ -117,7 +113,7 @@
      * (<code>/rulesets/java/maven-pmd-plugin-default.xml</code>).
      */
     @Parameter
-    String[] rulesets = new String[] { "/rulesets/java/maven-pmd-plugin-default.xml" };
+    String[] rulesets = new String[] {"/rulesets/java/maven-pmd-plugin-default.xml"};
 
     /**
      * Controls whether the project's compile/test classpath should be passed to PMD to enable its type resolution
@@ -125,7 +121,7 @@
      *
      * @since 3.0
      */
-    @Parameter( property = "pmd.typeResolution", defaultValue = "true" )
+    @Parameter(property = "pmd.typeResolution", defaultValue = "true")
     private boolean typeResolution;
 
     /**
@@ -133,7 +129,7 @@
      *
      * @since 3.1
      */
-    @Parameter( property = "pmd.benchmark", defaultValue = "false" )
+    @Parameter(property = "pmd.benchmark", defaultValue = "false")
     private boolean benchmark;
 
     /**
@@ -141,8 +137,7 @@
      *
      * @since 3.1
      */
-    @Parameter( property = "pmd.benchmarkOutputFilename",
-                    defaultValue = "${project.build.directory}/pmd-benchmark.txt" )
+    @Parameter(property = "pmd.benchmarkOutputFilename", defaultValue = "${project.build.directory}/pmd-benchmark.txt")
     private String benchmarkOutputFilename;
 
     /**
@@ -152,7 +147,7 @@
      *
      * @since 3.4
      */
-    @Parameter( property = "pmd.suppressMarker" )
+    @Parameter(property = "pmd.suppressMarker")
     private String suppressMarker;
 
     /**
@@ -160,7 +155,7 @@
      *
      * @since 3.1
      */
-    @Parameter( property = "pmd.skipPmdError", defaultValue = "true" )
+    @Parameter(property = "pmd.skipPmdError", defaultValue = "true")
     private boolean skipPmdError;
 
     /**
@@ -171,7 +166,7 @@
      *
      * @since 3.8
      */
-    @Parameter( property = "pmd.analysisCache", defaultValue = "false" )
+    @Parameter(property = "pmd.analysisCache", defaultValue = "false")
     private boolean analysisCache;
 
     /**
@@ -183,7 +178,7 @@
      *
      * @since 3.8
      */
-    @Parameter( property = "pmd.analysisCacheLocation", defaultValue = "${project.build.directory}/pmd/pmd.cache" )
+    @Parameter(property = "pmd.analysisCacheLocation", defaultValue = "${project.build.directory}/pmd/pmd.cache")
     private String analysisCacheLocation;
 
     /**
@@ -195,7 +190,7 @@
      *
      * @since 3.9.0
      */
-    @Parameter( property = "pmd.renderProcessingErrors", defaultValue = "true" )
+    @Parameter(property = "pmd.renderProcessingErrors", defaultValue = "true")
     private boolean renderProcessingErrors = true;
 
     /**
@@ -203,7 +198,7 @@
      *
      * @since 3.10.0
      */
-    @Parameter( property = "pmd.renderRuleViolationPriority", defaultValue = "true" )
+    @Parameter(property = "pmd.renderRuleViolationPriority", defaultValue = "true")
     private boolean renderRuleViolationPriority = true;
 
     /**
@@ -212,7 +207,7 @@
      *
      * @since 3.12.0
      */
-    @Parameter( property = "pmd.renderViolationsByPriority", defaultValue = "true" )
+    @Parameter(property = "pmd.renderViolationsByPriority", defaultValue = "true")
     private boolean renderViolationsByPriority = true;
 
     /**
@@ -220,7 +215,7 @@
      *
      * @since 3.17.0
      */
-    @Parameter( property = "pmd.renderSuppressedViolations", defaultValue = "true" )
+    @Parameter(property = "pmd.renderSuppressedViolations", defaultValue = "true")
     private boolean renderSuppressedViolations = true;
 
     /**
@@ -229,7 +224,7 @@
      *
      * @since 3.13.0
      */
-    @Parameter( property = "pmd.rulesetsTargetDirectory", defaultValue = "${project.build.directory}/pmd/rulesets" )
+    @Parameter(property = "pmd.rulesetsTargetDirectory", defaultValue = "${project.build.directory}/pmd/rulesets")
     private File rulesetsTargetDirectory;
 
     /**
@@ -253,18 +248,16 @@
      * {@inheritDoc}
      */
     @Override
-    public String getName( Locale locale )
-    {
-        return getBundle( locale ).getString( "report.pmd.name" );
+    public String getName(Locale locale) {
+        return getBundle(locale).getString("report.pmd.name");
     }
 
     /**
      * {@inheritDoc}
      */
     @Override
-    public String getDescription( Locale locale )
-    {
-        return getBundle( locale ).getString( "report.pmd.description" );
+    public String getDescription(Locale locale) {
+        return getBundle(locale).getString("report.pmd.description");
     }
 
     /**
@@ -274,121 +267,98 @@
      * @param rulesets the PMD rulesets to be used.
      * @see #rulesets
      */
-    public void setRulesets( String[] rulesets )
-    {
-        this.rulesets = Arrays.copyOf( rulesets, rulesets.length );
+    public void setRulesets(String[] rulesets) {
+        this.rulesets = Arrays.copyOf(rulesets, rulesets.length);
     }
 
     /**
      * {@inheritDoc}
      */
     @Override
-    public void executeReport( Locale locale )
-        throws MavenReportException
-    {
+    public void executeReport(Locale locale) throws MavenReportException {
         ClassLoader origLoader = Thread.currentThread().getContextClassLoader();
-        try
-        {
-            Thread.currentThread().setContextClassLoader( this.getClass().getClassLoader() );
+        try {
+            Thread.currentThread().setContextClassLoader(this.getClass().getClassLoader());
 
-            generateMavenSiteReport( locale );
-        }
-        finally
-        {
-            Thread.currentThread().setContextClassLoader( origLoader );
+            generateMavenSiteReport(locale);
+        } finally {
+            Thread.currentThread().setContextClassLoader(origLoader);
         }
     }
 
     @Override
-    public boolean canGenerateReport()
-    {
-        if ( skip )
-        {
-            getLog().info( "Skipping PMD execution" );
+    public boolean canGenerateReport() {
+        if (skip) {
+            getLog().info("Skipping PMD execution");
             return false;
         }
 
         boolean result = super.canGenerateReport();
-        if ( result )
-        {
-            try
-            {
+        if (result) {
+            try {
                 executePmd();
-                if ( skipEmptyReport )
-                {
+                if (skipEmptyReport) {
                     result = pmdResult.hasViolations();
-                    if ( !result )
-                    {
-                        getLog().debug( "Skipping report since skipEmptyReport is true and "
-                                            + "there are no PMD violations." );
+                    if (!result) {
+                        getLog().debug("Skipping report since skipEmptyReport is true and "
+                                + "there are no PMD violations.");
                     }
                 }
-            }
-            catch ( MavenReportException e )
-            {
-                throw new RuntimeException( e );
+            } catch (MavenReportException e) {
+                throw new RuntimeException(e);
             }
         }
         return result;
     }
 
-    private void executePmd()
-        throws MavenReportException
-    {
-        if ( pmdResult != null )
-        {
+    private void executePmd() throws MavenReportException {
+        if (pmdResult != null) {
             // PMD has already been run
-            getLog().debug( "PMD has already been run - skipping redundant execution." );
+            getLog().debug("PMD has already been run - skipping redundant execution.");
             return;
         }
 
-        try
-        {
+        try {
             filesToProcess = getFilesToProcess();
 
-            if ( filesToProcess.isEmpty() && !"java".equals( language ) )
-            {
-                getLog().warn( "No files found to process. Did you add your additional source folders like javascript?"
-                                   + " (see also build-helper-maven-plugin)" );
+            if (filesToProcess.isEmpty() && !"java".equals(language)) {
+                getLog().warn("No files found to process. Did you add your additional source folders like javascript?"
+                        + " (see also build-helper-maven-plugin)");
             }
+        } catch (IOException e) {
+            throw new MavenReportException("Can't get file list", e);
         }
-        catch ( IOException e )
-        {
-            throw new MavenReportException( "Can't get file list", e );
-        }
-
 
         PmdRequest request = new PmdRequest();
-        request.setLanguageAndVersion( language, targetJdk );
-        request.setRulesets( resolveRulesets() );
-        request.setAuxClasspath( typeResolution ? determineAuxClasspath() : null );
-        request.setSourceEncoding( getInputEncoding() );
-        request.addFiles( filesToProcess.keySet() );
-        request.setMinimumPriority( minimumPriority );
-        request.setSuppressMarker( suppressMarker );
-        request.setBenchmarkOutputLocation( benchmark ? benchmarkOutputFilename : null );
-        request.setAnalysisCacheLocation( analysisCache ? analysisCacheLocation : null );
-        request.setExcludeFromFailureFile( excludeFromFailureFile );
+        request.setLanguageAndVersion(language, targetJdk);
+        request.setRulesets(resolveRulesets());
+        request.setAuxClasspath(typeResolution ? determineAuxClasspath() : null);
+        request.setSourceEncoding(getInputEncoding());
+        request.addFiles(filesToProcess.keySet());
+        request.setMinimumPriority(minimumPriority);
+        request.setSuppressMarker(suppressMarker);
+        request.setBenchmarkOutputLocation(benchmark ? benchmarkOutputFilename : null);
+        request.setAnalysisCacheLocation(analysisCache ? analysisCacheLocation : null);
+        request.setExcludeFromFailureFile(excludeFromFailureFile);
 
-        request.setTargetDirectory( targetDirectory.getAbsolutePath() );
-        request.setOutputEncoding( getOutputEncoding() );
-        request.setFormat( format );
-        request.setShowPmdLog( showPmdLog );
-        request.setSkipPmdError( skipPmdError );
-        request.setIncludeXmlInSite( includeXmlInSite );
-        request.setReportOutputDirectory( getReportOutputDirectory().getAbsolutePath() );
-        request.setLogLevel( determineCurrentRootLogLevel() );
+        request.setTargetDirectory(targetDirectory.getAbsolutePath());
+        request.setOutputEncoding(getOutputEncoding());
+        request.setFormat(format);
+        request.setShowPmdLog(showPmdLog);
+        request.setSkipPmdError(skipPmdError);
+        request.setIncludeXmlInSite(includeXmlInSite);
+        request.setReportOutputDirectory(getReportOutputDirectory().getAbsolutePath());
+        request.setLogLevel(determineCurrentRootLogLevel());
 
         Toolchain tc = getToolchain();
-        if ( tc != null )
-        {
-            getLog().info( "Toolchain in maven-pmd-plugin: " + tc );
-            String javaExecutable = tc.findTool( "java" ); //NOI18N
-            request.setJavaExecutable( javaExecutable );
+        if (tc != null) {
+            getLog().info("Toolchain in maven-pmd-plugin: " + tc);
+            String javaExecutable = tc.findTool("java"); // NOI18N
+            request.setJavaExecutable(javaExecutable);
         }
 
-        getLog().info( "PMD version: " + AbstractPmdReport.getPmdVersion() );
-        pmdResult = PmdExecutor.execute( request );
+        getLog().info("PMD version: " + AbstractPmdReport.getPmdVersion());
+        pmdResult = PmdExecutor.execute(request);
     }
 
     /**
@@ -397,99 +367,81 @@
      * @return comma separated list of absolute file paths of ruleset files
      * @throws MavenReportException if a ruleset could not be found
      */
-    private List<String> resolveRulesets() throws MavenReportException
-    {
+    private List<String> resolveRulesets() throws MavenReportException {
         // configure ResourceManager - will search for urls (URLResourceLoader) and files in various directories:
         // in the directory of the current project's pom file - note: extensions might replace the pom file on the fly
-        locator.addSearchPath( FileResourceLoader.ID, project.getFile().getParentFile().getAbsolutePath() );
+        locator.addSearchPath(
+                FileResourceLoader.ID, project.getFile().getParentFile().getAbsolutePath());
         // in the current project's directory
-        locator.addSearchPath( FileResourceLoader.ID, project.getBasedir().getAbsolutePath() );
+        locator.addSearchPath(FileResourceLoader.ID, project.getBasedir().getAbsolutePath());
         // in the base directory - that's the directory of the initial pom requested to build,
         // e.g. the root of a multi module build
-        locator.addSearchPath( FileResourceLoader.ID, session.getRequest().getBaseDirectory() );
-        locator.setOutputDirectory( rulesetsTargetDirectory );
+        locator.addSearchPath(FileResourceLoader.ID, session.getRequest().getBaseDirectory());
+        locator.setOutputDirectory(rulesetsTargetDirectory);
 
         String[] sets = new String[rulesets.length];
-        try
-        {
-            for ( int idx = 0; idx < rulesets.length; idx++ )
-            {
+        try {
+            for (int idx = 0; idx < rulesets.length; idx++) {
                 String set = rulesets[idx];
-                getLog().debug( "Preparing ruleset: " + set );
-                String rulesetFilename = determineRulesetFilename( set );
-                File ruleset = locator.getResourceAsFile( rulesetFilename, getLocationTemp( set ) );
-                if ( null == ruleset )
-                {
-                    throw new MavenReportException( "Could not resolve " + set );
+                getLog().debug("Preparing ruleset: " + set);
+                String rulesetFilename = determineRulesetFilename(set);
+                File ruleset = locator.getResourceAsFile(rulesetFilename, getLocationTemp(set));
+                if (null == ruleset) {
+                    throw new MavenReportException("Could not resolve " + set);
                 }
                 sets[idx] = ruleset.getAbsolutePath();
             }
+        } catch (ResourceNotFoundException | FileResourceCreationException e) {
+            throw new MavenReportException(e.getMessage(), e);
         }
-        catch ( ResourceNotFoundException | FileResourceCreationException e )
-        {
-            throw new MavenReportException( e.getMessage(), e );
-        }
-        return Arrays.asList( sets );
+        return Arrays.asList(sets);
     }
 
-    private String determineRulesetFilename( String ruleset )
-    {
+    private String determineRulesetFilename(String ruleset) {
         String result = ruleset.trim();
-        String lowercase = result.toLowerCase( Locale.ROOT );
-        if ( lowercase.startsWith( "http://" ) || lowercase.startsWith( "https://" ) || lowercase.endsWith( ".xml" ) )
-        {
+        String lowercase = result.toLowerCase(Locale.ROOT);
+        if (lowercase.startsWith("http://") || lowercase.startsWith("https://") || lowercase.endsWith(".xml")) {
             return result;
         }
 
         // assume last part is a single rule, e.g. myruleset.xml/SingleRule
-        if ( result.indexOf( '/' ) > -1 )
-        {
-            String rulesetFilename = result.substring( 0, result.lastIndexOf( '/' ) );
-            if ( rulesetFilename.toLowerCase( Locale.ROOT ).endsWith( ".xml" ) )
-            {
+        if (result.indexOf('/') > -1) {
+            String rulesetFilename = result.substring(0, result.lastIndexOf('/'));
+            if (rulesetFilename.toLowerCase(Locale.ROOT).endsWith(".xml")) {
                 return rulesetFilename;
             }
         }
         // maybe a built-in ruleset name, e.g. java-design -> rulesets/java/design.xml
-        int dashIndex = lowercase.indexOf( '-' );
-        if ( dashIndex > -1 && lowercase.indexOf( '-', dashIndex + 1 ) == -1 )
-        {
-            String language = result.substring( 0, dashIndex );
-            String rulesetName = result.substring( dashIndex + 1 );
+        int dashIndex = lowercase.indexOf('-');
+        if (dashIndex > -1 && lowercase.indexOf('-', dashIndex + 1) == -1) {
+            String language = result.substring(0, dashIndex);
+            String rulesetName = result.substring(dashIndex + 1);
             return "rulesets/" + language + "/" + rulesetName + ".xml";
         }
         // fallback - no change of the given ruleset specifier
         return result;
     }
 
-    private void generateMavenSiteReport( Locale locale )
-        throws MavenReportException
-    {
+    private void generateMavenSiteReport(Locale locale) throws MavenReportException {
         Sink sink = getSink();
-        PmdReportGenerator doxiaRenderer = new PmdReportGenerator( getLog(), sink, getBundle( locale ),
-                isAggregator() );
-        doxiaRenderer.setRenderRuleViolationPriority( renderRuleViolationPriority );
-        doxiaRenderer.setRenderViolationsByPriority( renderViolationsByPriority );
-        doxiaRenderer.setFiles( filesToProcess );
-        doxiaRenderer.setViolations( pmdResult.getViolations() );
-        if ( renderSuppressedViolations )
-        {
-            doxiaRenderer.setSuppressedViolations( pmdResult.getSuppressedViolations() );
+        PmdReportGenerator doxiaRenderer = new PmdReportGenerator(getLog(), sink, getBundle(locale), isAggregator());
+        doxiaRenderer.setRenderRuleViolationPriority(renderRuleViolationPriority);
+        doxiaRenderer.setRenderViolationsByPriority(renderViolationsByPriority);
+        doxiaRenderer.setFiles(filesToProcess);
+        doxiaRenderer.setViolations(pmdResult.getViolations());
+        if (renderSuppressedViolations) {
+            doxiaRenderer.setSuppressedViolations(pmdResult.getSuppressedViolations());
         }
-        if ( renderProcessingErrors )
-        {
-            doxiaRenderer.setProcessingErrors( pmdResult.getErrors() );
+        if (renderProcessingErrors) {
+            doxiaRenderer.setProcessingErrors(pmdResult.getErrors());
         }
 
-        try
-        {
+        try {
             doxiaRenderer.beginDocument();
             doxiaRenderer.render();
             doxiaRenderer.endDocument();
-        }
-        catch ( IOException e )
-        {
-            getLog().warn( "Failure creating the report: " + e.getLocalizedMessage(), e );
+        } catch (IOException e) {
+            getLog().warn("Failure creating the report: " + e.getLocalizedMessage(), e);
         }
     }
 
@@ -499,111 +451,95 @@
      * @param name the name of the file whose location is to be resolved
      * @return a String that contains the absolute file name of the file
      */
-    protected String getLocationTemp( String name )
-    {
+    protected String getLocationTemp(String name) {
         String loc = name;
-        if ( loc.indexOf( '/' ) != -1 )
-        {
-            loc = loc.substring( loc.lastIndexOf( '/' ) + 1 );
+        if (loc.indexOf('/') != -1) {
+            loc = loc.substring(loc.lastIndexOf('/') + 1);
         }
-        if ( loc.indexOf( '\\' ) != -1 )
-        {
-            loc = loc.substring( loc.lastIndexOf( '\\' ) + 1 );
+        if (loc.indexOf('\\') != -1) {
+            loc = loc.substring(loc.lastIndexOf('\\') + 1);
         }
 
         // MPMD-127 in the case that the rules are defined externally on a url
         // we need to replace some special url characters that cannot be
         // used in filenames on disk or produce ackward filenames.
         // replace all occurrences of the following characters: ? : & = %
-        loc = loc.replaceAll( "[\\?\\:\\&\\=\\%]", "_" );
+        loc = loc.replaceAll("[\\?\\:\\&\\=\\%]", "_");
 
-        if ( !loc.endsWith( ".xml" ) )
-        {
+        if (!loc.endsWith(".xml")) {
             loc = loc + ".xml";
         }
 
-        getLog().debug( "Before: " + name + " After: " + loc );
+        getLog().debug("Before: " + name + " After: " + loc);
         return loc;
     }
 
-    private String determineAuxClasspath() throws MavenReportException
-    {
-        try
-        {
+    private String determineAuxClasspath() throws MavenReportException {
+        try {
             List<String> classpath = new ArrayList<>();
-            if ( isAggregator() )
-            {
+            if (isAggregator()) {
                 List<String> dependencies = new ArrayList<>();
 
                 // collect exclusions for projects within the reactor
                 // if module a depends on module b and both are in the reactor
                 // then we don't want to resolve the dependency as an artifact.
                 List<String> exclusionPatterns = new ArrayList<>();
-                for ( MavenProject localProject : getAggregatedProjects() )
-                {
-                    exclusionPatterns.add( localProject.getGroupId() + ":" + localProject.getArtifactId() );
+                for (MavenProject localProject : getAggregatedProjects()) {
+                    exclusionPatterns.add(localProject.getGroupId() + ":" + localProject.getArtifactId());
                 }
-                TransformableFilter filter = new AndFilter( Arrays.asList(
-                        new ExclusionsFilter( exclusionPatterns ),
-                        includeTests ? ScopeFilter.including( "compile", "provided", "test" )
-                                     : ScopeFilter.including( "compile", "provided" )
-                ) );
+                TransformableFilter filter = new AndFilter(Arrays.asList(
+                        new ExclusionsFilter(exclusionPatterns),
+                        includeTests
+                                ? ScopeFilter.including("compile", "provided", "test")
+                                : ScopeFilter.including("compile", "provided")));
 
-                for ( MavenProject localProject : getAggregatedProjects() )
-                {
-                    ProjectBuildingRequest buildingRequest = new DefaultProjectBuildingRequest(
-                            session.getProjectBuildingRequest() );
+                for (MavenProject localProject : getAggregatedProjects()) {
+                    ProjectBuildingRequest buildingRequest =
+                            new DefaultProjectBuildingRequest(session.getProjectBuildingRequest());
                     // use any additional configured repo as well
-                    buildingRequest.getRemoteRepositories().addAll( localProject.getRemoteArtifactRepositories() );
+                    buildingRequest.getRemoteRepositories().addAll(localProject.getRemoteArtifactRepositories());
 
                     Iterable<ArtifactResult> resolvedDependencies = dependencyResolver.resolveDependencies(
-                            buildingRequest, localProject.getDependencies(), null, filter );
+                            buildingRequest, localProject.getDependencies(), null, filter);
 
-                    for ( ArtifactResult resolvedArtifact : resolvedDependencies )
-                    {
-                        dependencies.add( resolvedArtifact.getArtifact().getFile().toString() );
+                    for (ArtifactResult resolvedArtifact : resolvedDependencies) {
+                        dependencies.add(
+                                resolvedArtifact.getArtifact().getFile().toString());
                     }
 
-                    List<String> projectClasspath = includeTests ? localProject.getTestClasspathElements()
+                    List<String> projectClasspath = includeTests
+                            ? localProject.getTestClasspathElements()
                             : localProject.getCompileClasspathElements();
 
                     // Add the project's target folder first
-                    classpath.addAll( projectClasspath );
-                    if ( !localProject.isExecutionRoot() )
-                    {
-                        for ( String path : projectClasspath )
-                        {
-                            File pathFile = new File( path );
+                    classpath.addAll(projectClasspath);
+                    if (!localProject.isExecutionRoot()) {
+                        for (String path : projectClasspath) {
+                            File pathFile = new File(path);
                             String[] children = pathFile.list();
 
-                            if ( !pathFile.exists() || ( children != null && children.length == 0 ) )
-                            {
-                                getLog().warn( "The project " + localProject.getArtifactId()
-                                    + " does not seem to be compiled. PMD results might be inaccurate." );
+                            if (!pathFile.exists() || (children != null && children.length == 0)) {
+                                getLog().warn("The project " + localProject.getArtifactId()
+                                        + " does not seem to be compiled. PMD results might be inaccurate.");
                             }
                         }
                     }
-
                 }
 
                 // Add the dependencies as last entries
-                classpath.addAll( dependencies );
+                classpath.addAll(dependencies);
 
-                getLog().debug( "Using aggregated aux classpath: " + classpath );
-            }
-            else
-            {
-                classpath.addAll( includeTests ? project.getTestClasspathElements()
-                                               : project.getCompileClasspathElements() );
+                getLog().debug("Using aggregated aux classpath: " + classpath);
+            } else {
+                classpath.addAll(
+                        includeTests ? project.getTestClasspathElements() : project.getCompileClasspathElements());
 
-                getLog().debug( "Using aux classpath: " + classpath );
+                getLog().debug("Using aux classpath: " + classpath);
             }
-            String path = StringUtils.join( classpath.iterator(), File.pathSeparator );
+            String path = StringUtils.join(classpath.iterator(), File.pathSeparator);
             return path;
-        }
-        catch ( Exception e )
-        {
-            throw new MavenReportException( e.getMessage(), e );
+        } catch (Exception e) {
+            throw new MavenReportException(e.getMessage(), e);
         }
     }
 
@@ -611,14 +547,12 @@
      * {@inheritDoc}
      */
     @Override
-    public String getOutputName()
-    {
+    public String getOutputName() {
         return "pmd";
     }
 
-    private static ResourceBundle getBundle( Locale locale )
-    {
-        return ResourceBundle.getBundle( "pmd-report", locale, PmdReport.class.getClassLoader() );
+    private static ResourceBundle getBundle(Locale locale) {
+        return ResourceBundle.getBundle("pmd-report", locale, PmdReport.class.getClassLoader());
     }
 
     /**
@@ -629,8 +563,7 @@
      * @deprecated Use {@link PmdExecutor#createRenderer(String, String)} instead.
      */
     @Deprecated
-    public final Renderer createRenderer() throws MavenReportException
-    {
-        return PmdExecutor.createRenderer( format, getOutputEncoding() );
+    public final Renderer createRenderer() throws MavenReportException {
+        return PmdExecutor.createRenderer(format, getOutputEncoding());
     }
 }
diff --git a/src/main/java/org/apache/maven/plugins/pmd/PmdReportGenerator.java b/src/main/java/org/apache/maven/plugins/pmd/PmdReportGenerator.java
index 623b7c9..bb836c9 100644
--- a/src/main/java/org/apache/maven/plugins/pmd/PmdReportGenerator.java
+++ b/src/main/java/org/apache/maven/plugins/pmd/PmdReportGenerator.java
@@ -1,5 +1,3 @@
-package org.apache.maven.plugins.pmd;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.maven.plugins.pmd;
 
 import java.io.File;
 import java.io.IOException;
@@ -32,6 +31,7 @@
 import java.util.ResourceBundle;
 import java.util.Set;
 
+import net.sourceforge.pmd.RulePriority;
 import org.apache.maven.doxia.sink.Sink;
 import org.apache.maven.plugin.logging.Log;
 import org.apache.maven.plugins.pmd.model.ProcessingError;
@@ -39,16 +39,13 @@
 import org.apache.maven.plugins.pmd.model.Violation;
 import org.codehaus.plexus.util.StringUtils;
 
-import net.sourceforge.pmd.RulePriority;
-
 /**
  * Render the PMD violations into Doxia events.
  *
  * @author Brett Porter
  * @version $Id$
  */
-public class PmdReportGenerator
-{
+public class PmdReportGenerator {
     private Log log;
 
     private Sink sink;
@@ -73,41 +70,34 @@
 
     // private List<Metric> metrics = new ArrayList<Metric>();
 
-    public PmdReportGenerator( Log log, Sink sink, ResourceBundle bundle, boolean aggregate )
-    {
+    public PmdReportGenerator(Log log, Sink sink, ResourceBundle bundle, boolean aggregate) {
         this.log = log;
         this.sink = sink;
         this.bundle = bundle;
         this.aggregate = aggregate;
     }
 
-    private String getTitle()
-    {
-        return bundle.getString( "report.pmd.title" );
+    private String getTitle() {
+        return bundle.getString("report.pmd.title");
     }
 
-    public void setViolations( Collection<Violation> violations )
-    {
-        this.violations = new HashSet<>( violations );
+    public void setViolations(Collection<Violation> violations) {
+        this.violations = new HashSet<>(violations);
     }
 
-    public List<Violation> getViolations()
-    {
-        return new ArrayList<>( violations );
+    public List<Violation> getViolations() {
+        return new ArrayList<>(violations);
     }
 
-    public void setSuppressedViolations( Collection<SuppressedViolation> suppressedViolations )
-    {
-        this.suppressedViolations = new ArrayList<>( suppressedViolations );
+    public void setSuppressedViolations(Collection<SuppressedViolation> suppressedViolations) {
+        this.suppressedViolations = new ArrayList<>(suppressedViolations);
     }
 
-    public void setProcessingErrors( Collection<ProcessingError> errors )
-    {
-        this.processingErrors = new ArrayList<>( errors );
+    public void setProcessingErrors(Collection<ProcessingError> errors) {
+        this.processingErrors = new ArrayList<>(errors);
     }
 
-    public List<ProcessingError> getProcessingErrors()
-    {
+    public List<ProcessingError> getProcessingErrors() {
         return processingErrors;
     }
 
@@ -121,121 +111,107 @@
     // this.metrics = metrics;
     // }
 
-    private String shortenFilename( String filename, PmdFileInfo fileInfo )
-    {
+    private String shortenFilename(String filename, PmdFileInfo fileInfo) {
         String result = filename;
-        if ( fileInfo != null && fileInfo.getSourceDirectory() != null )
-        {
-            result = StringUtils.substring( result, fileInfo.getSourceDirectory().getAbsolutePath().length() + 1 );
+        if (fileInfo != null && fileInfo.getSourceDirectory() != null) {
+            result = StringUtils.substring(
+                    result, fileInfo.getSourceDirectory().getAbsolutePath().length() + 1);
         }
-        return StringUtils.replace( result, "\\", "/" );
+        return StringUtils.replace(result, "\\", "/");
     }
 
-    private String makeFileSectionName( String filename, PmdFileInfo fileInfo )
-    {
-        if ( aggregate && fileInfo != null && fileInfo.getProject() != null )
-        {
+    private String makeFileSectionName(String filename, PmdFileInfo fileInfo) {
+        if (aggregate && fileInfo != null && fileInfo.getProject() != null) {
             return fileInfo.getProject().getName() + " - " + filename;
         }
         return filename;
     }
 
-    private PmdFileInfo determineFileInfo( String filename )
-        throws IOException
-    {
-        File canonicalFilename = new File( filename ).getCanonicalFile();
-        PmdFileInfo fileInfo = files.get( canonicalFilename );
-        if ( fileInfo == null )
-        {
-            log.warn( "Couldn't determine PmdFileInfo for file " + filename + " (canonical: " + canonicalFilename
-                + "). XRef links won't be available." );
+    private PmdFileInfo determineFileInfo(String filename) throws IOException {
+        File canonicalFilename = new File(filename).getCanonicalFile();
+        PmdFileInfo fileInfo = files.get(canonicalFilename);
+        if (fileInfo == null) {
+            log.warn("Couldn't determine PmdFileInfo for file " + filename + " (canonical: " + canonicalFilename
+                    + "). XRef links won't be available.");
         }
 
         return fileInfo;
     }
 
-    private void startFileSection( int level, String currentFilename, PmdFileInfo fileInfo )
-    {
-        sink.section( level, null );
-        sink.sectionTitle( level, null );
+    private void startFileSection(int level, String currentFilename, PmdFileInfo fileInfo) {
+        sink.section(level, null);
+        sink.sectionTitle(level, null);
 
         // prepare the filename
-        this.currentFilename = shortenFilename( currentFilename, fileInfo );
+        this.currentFilename = shortenFilename(currentFilename, fileInfo);
 
-        sink.text( makeFileSectionName( this.currentFilename, fileInfo ) );
-        sink.sectionTitle_( level );
+        sink.text(makeFileSectionName(this.currentFilename, fileInfo));
+        sink.sectionTitle_(level);
 
         sink.table();
-        sink.tableRows( null, false );
+        sink.tableRows(null, false);
         sink.tableRow();
         sink.tableHeaderCell();
-        sink.text( bundle.getString( "report.pmd.column.rule" ) );
+        sink.text(bundle.getString("report.pmd.column.rule"));
         sink.tableHeaderCell_();
         sink.tableHeaderCell();
-        sink.text( bundle.getString( "report.pmd.column.violation" ) );
+        sink.text(bundle.getString("report.pmd.column.violation"));
         sink.tableHeaderCell_();
-        if ( this.renderRuleViolationPriority )
-        {
+        if (this.renderRuleViolationPriority) {
             sink.tableHeaderCell();
-            sink.text( bundle.getString( "report.pmd.column.priority" ) );
+            sink.text(bundle.getString("report.pmd.column.priority"));
             sink.tableHeaderCell_();
         }
         sink.tableHeaderCell();
-        sink.text( bundle.getString( "report.pmd.column.line" ) );
+        sink.text(bundle.getString("report.pmd.column.line"));
         sink.tableHeaderCell_();
         sink.tableRow_();
     }
 
-    private void endFileSection( int level )
-    {
+    private void endFileSection(int level) {
         sink.tableRows_();
         sink.table_();
-        sink.section_( level );
+        sink.section_(level);
     }
 
-    private void addRuleName( Violation ruleViolation )
-    {
-        boolean hasUrl = StringUtils.isNotBlank( ruleViolation.getExternalInfoUrl() );
+    private void addRuleName(Violation ruleViolation) {
+        boolean hasUrl = StringUtils.isNotBlank(ruleViolation.getExternalInfoUrl());
 
-        if ( hasUrl )
-        {
-            sink.link( ruleViolation.getExternalInfoUrl() );
+        if (hasUrl) {
+            sink.link(ruleViolation.getExternalInfoUrl());
         }
 
-        sink.text( ruleViolation.getRule() );
+        sink.text(ruleViolation.getRule());
 
-        if ( hasUrl )
-        {
+        if (hasUrl) {
             sink.link_();
         }
     }
 
-    private void processSingleRuleViolation( Violation ruleViolation, PmdFileInfo fileInfo )
-    {
+    private void processSingleRuleViolation(Violation ruleViolation, PmdFileInfo fileInfo) {
         sink.tableRow();
         sink.tableCell();
-        addRuleName( ruleViolation );
+        addRuleName(ruleViolation);
         sink.tableCell_();
         sink.tableCell();
-        sink.text( ruleViolation.getText() );
+        sink.text(ruleViolation.getText());
         sink.tableCell_();
 
-        if ( this.renderRuleViolationPriority )
-        {
+        if (this.renderRuleViolationPriority) {
             sink.tableCell();
-            sink.text( String.valueOf( RulePriority.valueOf( ruleViolation.getPriority() ).getPriority() ) );
+            sink.text(String.valueOf(
+                    RulePriority.valueOf(ruleViolation.getPriority()).getPriority()));
             sink.tableCell_();
         }
 
         sink.tableCell();
 
         int beginLine = ruleViolation.getBeginline();
-        outputLineLink( beginLine, fileInfo );
+        outputLineLink(beginLine, fileInfo);
         int endLine = ruleViolation.getEndline();
-        if ( endLine != beginLine )
-        {
-            sink.text( "&#x2013;" ); // \u2013 is a medium long dash character
-            outputLineLink( endLine, fileInfo );
+        if (endLine != beginLine) {
+            sink.text("&#x2013;"); // \u2013 is a medium long dash character
+            outputLineLink(endLine, fileInfo);
         }
 
         sink.tableCell_();
@@ -245,26 +221,22 @@
     // PMD might run the analysis multi-threaded, so the violations might be reported
     // out of order. We sort them here by filename and line number before writing them to
     // the report.
-    private void renderViolations()
-        throws IOException
-    {
+    private void renderViolations() throws IOException {
         sink.section1();
         sink.sectionTitle1();
-        sink.text( bundle.getString( "report.pmd.files" ) );
+        sink.text(bundle.getString("report.pmd.files"));
         sink.sectionTitle1_();
 
         // TODO files summary
 
-        List<Violation> violations2 = new ArrayList<>( violations );
-        renderViolationsTable( 2, violations2 );
+        List<Violation> violations2 = new ArrayList<>(violations);
+        renderViolationsTable(2, violations2);
 
         sink.section1_();
     }
 
-    private void renderViolationsByPriority() throws IOException
-    {
-        if ( !renderViolationsByPriority )
-        {
+    private void renderViolationsByPriority() throws IOException {
+        if (!renderViolationsByPriority) {
             return;
         }
 
@@ -273,44 +245,39 @@
 
         sink.section1();
         sink.sectionTitle1();
-        sink.text( bundle.getString( "report.pmd.violationsByPriority" ) );
+        sink.text(bundle.getString("report.pmd.violationsByPriority"));
         sink.sectionTitle1_();
 
         Map<RulePriority, List<Violation>> violationsByPriority = new HashMap<>();
-        for ( Violation violation : violations )
-        {
-            RulePriority priority = RulePriority.valueOf( violation.getPriority() );
-            List<Violation> violationSegment = violationsByPriority.get( priority );
-            if ( violationSegment == null )
-            {
+        for (Violation violation : violations) {
+            RulePriority priority = RulePriority.valueOf(violation.getPriority());
+            List<Violation> violationSegment = violationsByPriority.get(priority);
+            if (violationSegment == null) {
                 violationSegment = new ArrayList<>();
-                violationsByPriority.put( priority, violationSegment );
+                violationsByPriority.put(priority, violationSegment);
             }
-            violationSegment.add( violation );
+            violationSegment.add(violation);
         }
 
-        for ( RulePriority priority : RulePriority.values() )
-        {
-            List<Violation> violationsWithPriority = violationsByPriority.get( priority );
-            if ( violationsWithPriority == null || violationsWithPriority.isEmpty() )
-            {
+        for (RulePriority priority : RulePriority.values()) {
+            List<Violation> violationsWithPriority = violationsByPriority.get(priority);
+            if (violationsWithPriority == null || violationsWithPriority.isEmpty()) {
                 continue;
             }
 
             sink.section2();
             sink.sectionTitle2();
-            sink.text( bundle.getString( "report.pmd.priority" ) + " " + priority.getPriority() );
+            sink.text(bundle.getString("report.pmd.priority") + " " + priority.getPriority());
             sink.sectionTitle2_();
 
-            renderViolationsTable( 3, violationsWithPriority );
+            renderViolationsTable(3, violationsWithPriority);
 
             sink.section2_();
         }
 
-        if ( violations.isEmpty() )
-        {
+        if (violations.isEmpty()) {
             sink.paragraph();
-            sink.text( bundle.getString( "report.pmd.noProblems" ) );
+            sink.text(bundle.getString("report.pmd.noProblems"));
             sink.paragraph_();
         }
 
@@ -319,70 +286,55 @@
         this.renderRuleViolationPriority = oldPriorityColumn;
     }
 
-    private void renderViolationsTable( int level, List<Violation> violationSegment )
-    throws IOException
-    {
-        Collections.sort( violationSegment, new Comparator<Violation>()
-        {
+    private void renderViolationsTable(int level, List<Violation> violationSegment) throws IOException {
+        Collections.sort(violationSegment, new Comparator<Violation>() {
             /** {@inheritDoc} */
-            public int compare( Violation o1, Violation o2 )
-            {
-                int filenames = o1.getFileName().compareTo( o2.getFileName() );
-                if ( filenames == 0 )
-                {
+            public int compare(Violation o1, Violation o2) {
+                int filenames = o1.getFileName().compareTo(o2.getFileName());
+                if (filenames == 0) {
                     return o1.getBeginline() - o2.getBeginline();
-                }
-                else
-                {
+                } else {
                     return filenames;
                 }
             }
-        } );
+        });
 
         boolean fileSectionStarted = false;
         String previousFilename = null;
-        for ( Violation ruleViolation : violationSegment )
-        {
+        for (Violation ruleViolation : violationSegment) {
             String currentFn = ruleViolation.getFileName();
-            PmdFileInfo fileInfo = determineFileInfo( currentFn );
+            PmdFileInfo fileInfo = determineFileInfo(currentFn);
 
-            if ( !currentFn.equalsIgnoreCase( previousFilename ) && fileSectionStarted )
-            {
-                endFileSection( level );
+            if (!currentFn.equalsIgnoreCase(previousFilename) && fileSectionStarted) {
+                endFileSection(level);
                 fileSectionStarted = false;
             }
-            if ( !fileSectionStarted )
-            {
-                startFileSection( level, currentFn, fileInfo );
+            if (!fileSectionStarted) {
+                startFileSection(level, currentFn, fileInfo);
                 fileSectionStarted = true;
             }
 
-            processSingleRuleViolation( ruleViolation, fileInfo );
+            processSingleRuleViolation(ruleViolation, fileInfo);
 
             previousFilename = currentFn;
         }
 
-        if ( fileSectionStarted )
-        {
-            endFileSection( level );
+        if (fileSectionStarted) {
+            endFileSection(level);
         }
     }
 
-    private void outputLineLink( int line, PmdFileInfo fileInfo )
-    {
+    private void outputLineLink(int line, PmdFileInfo fileInfo) {
         String xrefLocation = null;
-        if ( fileInfo != null )
-        {
+        if (fileInfo != null) {
             xrefLocation = fileInfo.getXrefLocation();
         }
 
-        if ( xrefLocation != null )
-        {
-            sink.link( xrefLocation + "/" + currentFilename.replaceAll( "\\.java$", ".html" ) + "#L" + line );
+        if (xrefLocation != null) {
+            sink.link(xrefLocation + "/" + currentFilename.replaceAll("\\.java$", ".html") + "#L" + line);
         }
-        sink.text( String.valueOf( line ) );
-        if ( xrefLocation != null )
-        {
+        sink.text(String.valueOf(line));
+        if (xrefLocation != null) {
             sink.link_();
         }
     }
@@ -390,62 +342,57 @@
     // PMD might run the analysis multi-threaded, so the suppressed violations might be reported
     // out of order. We sort them here by filename before writing them to
     // the report.
-    private void renderSuppressedViolations()
-        throws IOException
-    {
+    private void renderSuppressedViolations() throws IOException {
         sink.section1();
         sink.sectionTitle1();
-        sink.text( bundle.getString( "report.pmd.suppressedViolations.title" ) );
+        sink.text(bundle.getString("report.pmd.suppressedViolations.title"));
         sink.sectionTitle1_();
 
-        Collections.sort( suppressedViolations, new Comparator<SuppressedViolation>()
-        {
+        Collections.sort(suppressedViolations, new Comparator<SuppressedViolation>() {
             @Override
-            public int compare( SuppressedViolation o1, SuppressedViolation o2 )
-            {
-                return o1.getFilename().compareTo( o2.getFilename() );
+            public int compare(SuppressedViolation o1, SuppressedViolation o2) {
+                return o1.getFilename().compareTo(o2.getFilename());
             }
-        } );
+        });
 
         sink.table();
-        sink.tableRows( null, false );
+        sink.tableRows(null, false);
         sink.tableRow();
         sink.tableHeaderCell();
-        sink.text( bundle.getString( "report.pmd.suppressedViolations.column.filename" ) );
+        sink.text(bundle.getString("report.pmd.suppressedViolations.column.filename"));
         sink.tableHeaderCell_();
         sink.tableHeaderCell();
-        sink.text( bundle.getString( "report.pmd.suppressedViolations.column.ruleMessage" ) );
+        sink.text(bundle.getString("report.pmd.suppressedViolations.column.ruleMessage"));
         sink.tableHeaderCell_();
         sink.tableHeaderCell();
-        sink.text( bundle.getString( "report.pmd.suppressedViolations.column.suppressionType" ) );
+        sink.text(bundle.getString("report.pmd.suppressedViolations.column.suppressionType"));
         sink.tableHeaderCell_();
         sink.tableHeaderCell();
-        sink.text( bundle.getString( "report.pmd.suppressedViolations.column.userMessage" ) );
+        sink.text(bundle.getString("report.pmd.suppressedViolations.column.userMessage"));
         sink.tableHeaderCell_();
         sink.tableRow_();
 
-        for ( SuppressedViolation suppressedViolation : suppressedViolations )
-        {
+        for (SuppressedViolation suppressedViolation : suppressedViolations) {
             String filename = suppressedViolation.getFilename();
-            PmdFileInfo fileInfo = determineFileInfo( filename );
-            filename = shortenFilename( filename, fileInfo );
+            PmdFileInfo fileInfo = determineFileInfo(filename);
+            filename = shortenFilename(filename, fileInfo);
 
             sink.tableRow();
 
             sink.tableCell();
-            sink.text( filename );
+            sink.text(filename);
             sink.tableCell_();
 
             sink.tableCell();
-            sink.text( suppressedViolation.getRuleMessage() );
+            sink.text(suppressedViolation.getRuleMessage());
             sink.tableCell_();
 
             sink.tableCell();
-            sink.text( suppressedViolation.getSuppressionType() );
+            sink.text(suppressedViolation.getSuppressionType());
             sink.tableCell_();
 
             sink.tableCell();
-            sink.text( suppressedViolation.getUserMessage() );
+            sink.text(suppressedViolation.getUserMessage());
             sink.tableCell_();
 
             sink.tableRow_();
@@ -456,38 +403,34 @@
         sink.section1_();
     }
 
-    private void processProcessingErrors() throws IOException
-    {
+    private void processProcessingErrors() throws IOException {
         // sort the problem by filename first, since PMD is executed multi-threaded
         // and might reports the results unsorted
-        Collections.sort( processingErrors, new Comparator<ProcessingError>()
-        {
+        Collections.sort(processingErrors, new Comparator<ProcessingError>() {
             @Override
-            public int compare( ProcessingError e1, ProcessingError e2 )
-            {
-                return e1.getFilename().compareTo( e2.getFilename() );
+            public int compare(ProcessingError e1, ProcessingError e2) {
+                return e1.getFilename().compareTo(e2.getFilename());
             }
-        } );
+        });
 
         sink.section1();
         sink.sectionTitle1();
-        sink.text( bundle.getString( "report.pmd.processingErrors.title" ) );
+        sink.text(bundle.getString("report.pmd.processingErrors.title"));
         sink.sectionTitle1_();
 
         sink.table();
-        sink.tableRows( null, false );
+        sink.tableRows(null, false);
         sink.tableRow();
         sink.tableHeaderCell();
-        sink.text( bundle.getString( "report.pmd.processingErrors.column.filename" ) );
+        sink.text(bundle.getString("report.pmd.processingErrors.column.filename"));
         sink.tableHeaderCell_();
         sink.tableHeaderCell();
-        sink.text( bundle.getString( "report.pmd.processingErrors.column.problem" ) );
+        sink.text(bundle.getString("report.pmd.processingErrors.column.problem"));
         sink.tableHeaderCell_();
         sink.tableRow_();
 
-        for ( ProcessingError error : processingErrors )
-        {
-            processSingleProcessingError( error );
+        for (ProcessingError error : processingErrors) {
+            processSingleProcessingError(error);
         }
 
         sink.tableRows_();
@@ -496,30 +439,28 @@
         sink.section1_();
     }
 
-    private void processSingleProcessingError( ProcessingError error ) throws IOException
-    {
+    private void processSingleProcessingError(ProcessingError error) throws IOException {
         String filename = error.getFilename();
-        PmdFileInfo fileInfo = determineFileInfo( filename );
-        filename = makeFileSectionName( shortenFilename( filename, fileInfo ), fileInfo );
+        PmdFileInfo fileInfo = determineFileInfo(filename);
+        filename = makeFileSectionName(shortenFilename(filename, fileInfo), fileInfo);
 
         sink.tableRow();
         sink.tableCell();
-        sink.text( filename );
+        sink.text(filename);
         sink.tableCell_();
         sink.tableCell();
-        sink.text( error.getMsg() );
-        sink.verbatim( null );
-        sink.rawText( error.getDetail() );
+        sink.text(error.getMsg());
+        sink.verbatim(null);
+        sink.rawText(error.getDetail());
         sink.verbatim_();
         sink.tableCell_();
         sink.tableRow_();
     }
 
-    public void beginDocument()
-    {
+    public void beginDocument() {
         sink.head();
         sink.title();
-        sink.text( getTitle() );
+        sink.text(getTitle());
         sink.title_();
         sink.head_();
 
@@ -527,15 +468,15 @@
 
         sink.section1();
         sink.sectionTitle1();
-        sink.text( getTitle() );
+        sink.text(getTitle());
         sink.sectionTitle1_();
 
         sink.paragraph();
-        sink.text( bundle.getString( "report.pmd.pmdlink" ) + " " );
-        sink.link( "https://pmd.github.io" );
-        sink.text( "PMD" );
+        sink.text(bundle.getString("report.pmd.pmdlink") + " ");
+        sink.link("https://pmd.github.io");
+        sink.text("PMD");
         sink.link_();
-        sink.text( " " + AbstractPmdReport.getPmdVersion() + "." );
+        sink.text(" " + AbstractPmdReport.getPmdVersion() + ".");
         sink.paragraph_();
 
         sink.section1_();
@@ -557,36 +498,27 @@
      * sink.section1_(); }
      */
 
-    public void render()
-        throws IOException
-    {
-        if ( !violations.isEmpty() )
-        {
+    public void render() throws IOException {
+        if (!violations.isEmpty()) {
             renderViolationsByPriority();
 
             renderViolations();
-        }
-        else
-        {
+        } else {
             sink.paragraph();
-            sink.text( bundle.getString( "report.pmd.noProblems" ) );
+            sink.text(bundle.getString("report.pmd.noProblems"));
             sink.paragraph_();
         }
 
-        if ( !suppressedViolations.isEmpty() )
-        {
+        if (!suppressedViolations.isEmpty()) {
             renderSuppressedViolations();
         }
 
-        if ( !processingErrors.isEmpty() )
-        {
+        if (!processingErrors.isEmpty()) {
             processProcessingErrors();
         }
     }
 
-    public void endDocument()
-        throws IOException
-    {
+    public void endDocument() throws IOException {
         // The Metrics report useless with the current PMD metrics impl.
         // For instance, run the coupling ruleset and you will get a boatload
         // of excessive imports metrics, none of which is really any use.
@@ -601,18 +533,15 @@
         sink.close();
     }
 
-    public void setFiles( Map<File, PmdFileInfo> files )
-    {
+    public void setFiles(Map<File, PmdFileInfo> files) {
         this.files = files;
     }
 
-    public void setRenderRuleViolationPriority( boolean renderRuleViolationPriority )
-    {
+    public void setRenderRuleViolationPriority(boolean renderRuleViolationPriority) {
         this.renderRuleViolationPriority = renderRuleViolationPriority;
     }
 
-    public void setRenderViolationsByPriority( boolean renderViolationsByPriority )
-    {
+    public void setRenderViolationsByPriority(boolean renderViolationsByPriority) {
         this.renderViolationsByPriority = renderViolationsByPriority;
     }
 }
diff --git a/src/main/java/org/apache/maven/plugins/pmd/PmdViolationCheckMojo.java b/src/main/java/org/apache/maven/plugins/pmd/PmdViolationCheckMojo.java
index 39cb7ef..45d6353 100644
--- a/src/main/java/org/apache/maven/plugins/pmd/PmdViolationCheckMojo.java
+++ b/src/main/java/org/apache/maven/plugins/pmd/PmdViolationCheckMojo.java
@@ -1,5 +1,3 @@
-package org.apache.maven.plugins.pmd;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.maven.plugins.pmd;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -28,14 +27,14 @@
 
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
-import org.apache.maven.plugins.pmd.model.PmdErrorDetail;
-import org.apache.maven.plugins.pmd.model.PmdFile;
-import org.apache.maven.plugins.pmd.model.Violation;
-import org.apache.maven.plugins.pmd.model.io.xpp3.PmdXpp3Reader;
 import org.apache.maven.plugins.annotations.Execute;
 import org.apache.maven.plugins.annotations.LifecyclePhase;
 import org.apache.maven.plugins.annotations.Mojo;
 import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.plugins.pmd.model.PmdErrorDetail;
+import org.apache.maven.plugins.pmd.model.PmdFile;
+import org.apache.maven.plugins.pmd.model.Violation;
+import org.apache.maven.plugins.pmd.model.io.xpp3.PmdXpp3Reader;
 import org.codehaus.plexus.util.StringUtils;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 
@@ -45,17 +44,14 @@
  * @version $Id$
  * @since 2.0
  */
-@Mojo( name = "check", defaultPhase = LifecyclePhase.VERIFY, threadSafe = true )
-@Execute( goal = "pmd" )
-public class PmdViolationCheckMojo
-    extends AbstractPmdViolationCheckMojo<Violation>
-{
+@Mojo(name = "check", defaultPhase = LifecyclePhase.VERIFY, threadSafe = true)
+@Execute(goal = "pmd")
+public class PmdViolationCheckMojo extends AbstractPmdViolationCheckMojo<Violation> {
     /**
      * Default constructor. Initializes with the correct {@link ExcludeViolationsFromFile}.
      */
-    public PmdViolationCheckMojo()
-    {
-        super( new ExcludeViolationsFromFile() );
+    public PmdViolationCheckMojo() {
+        super(new ExcludeViolationsFromFile());
     }
 
     /**
@@ -70,76 +66,64 @@
      * Setting a value of 1 will treat all violations as warnings.
      * Only values from 1 to 5 are valid.
      */
-    @Parameter( property = "pmd.failurePriority", defaultValue = "5", required = true )
+    @Parameter(property = "pmd.failurePriority", defaultValue = "5", required = true)
     private int failurePriority = 5;
 
     /**
      * Skip the PMD checks. Most useful on the command line via "-Dpmd.skip=true".
      */
-    @Parameter( property = "pmd.skip", defaultValue = "false" )
+    @Parameter(property = "pmd.skip", defaultValue = "false")
     private boolean skip;
 
     /**
      * {@inheritDoc}
      */
-    public void execute()
-        throws MojoExecutionException, MojoFailureException
-    {
-        if ( skip )
-        {
-            getLog().info( "Skipping PMD execution" );
+    public void execute() throws MojoExecutionException, MojoFailureException {
+        if (skip) {
+            getLog().info("Skipping PMD execution");
             return;
         }
 
-        executeCheck( "pmd.xml", "violation", "PMD violation", failurePriority );
+        executeCheck("pmd.xml", "violation", "PMD violation", failurePriority);
     }
 
     /**
      * {@inheritDoc}
      */
-    protected void printError( Violation item, String severity )
-    {
+    protected void printError(Violation item, String severity) {
 
-        StringBuilder buff = new StringBuilder( 100 );
-        buff.append( "PMD " ).append( severity ).append( ": " );
-        if ( item.getViolationClass() != null )
-        {
-            if ( item.getViolationPackage() != null )
-            {
-                buff.append( item.getViolationPackage() );
-                buff.append( "." );
+        StringBuilder buff = new StringBuilder(100);
+        buff.append("PMD ").append(severity).append(": ");
+        if (item.getViolationClass() != null) {
+            if (item.getViolationPackage() != null) {
+                buff.append(item.getViolationPackage());
+                buff.append(".");
             }
-            buff.append( item.getViolationClass() );
+            buff.append(item.getViolationClass());
+        } else {
+            buff.append(item.getFileName());
         }
-        else
-        {
-            buff.append( item.getFileName() );
-        }
-        buff.append( ":" );
-        buff.append( item.getBeginline() );
-        buff.append( " Rule:" ).append( item.getRule() );
-        buff.append( " Priority:" ).append( item.getPriority() );
-        buff.append( " " ).append( item.getText() ).append( "." );
+        buff.append(":");
+        buff.append(item.getBeginline());
+        buff.append(" Rule:").append(item.getRule());
+        buff.append(" Priority:").append(item.getPriority());
+        buff.append(" ").append(item.getText()).append(".");
 
-        this.getLog().info( buff.toString() );
+        this.getLog().info(buff.toString());
     }
 
     @Override
-    protected List<Violation> getErrorDetails( File pmdFile ) throws XmlPullParserException, IOException
-    {
-        try ( InputStream in = new FileInputStream( pmdFile ) )
-        {
+    protected List<Violation> getErrorDetails(File pmdFile) throws XmlPullParserException, IOException {
+        try (InputStream in = new FileInputStream(pmdFile)) {
             PmdXpp3Reader reader = new PmdXpp3Reader();
-            PmdErrorDetail details = reader.read( in, false );
+            PmdErrorDetail details = reader.read(in, false);
             List<Violation> violations = new ArrayList<>();
-            for ( PmdFile file : details.getFiles() )
-            {
+            for (PmdFile file : details.getFiles()) {
                 String fullPath = file.getName();
 
-                for ( Violation violation : file.getViolations() )
-                {
-                    violation.setFileName( getFilename( fullPath, violation.getViolationPackage() ) );
-                    violations.add( violation );
+                for (Violation violation : file.getViolations()) {
+                    violation.setFileName(getFilename(fullPath, violation.getViolationPackage()));
+                    violations.add(violation);
                 }
             }
             return violations;
@@ -147,34 +131,29 @@
     }
 
     @Override
-    protected int getPriority( Violation errorDetail )
-    {
+    protected int getPriority(Violation errorDetail) {
         return errorDetail.getPriority();
     }
 
     @Override
-    protected ViolationDetails<Violation> newViolationDetailsInstance()
-    {
+    protected ViolationDetails<Violation> newViolationDetailsInstance() {
         return new ViolationDetails<>();
     }
 
-    private String getFilename( String fullpath, String pkg )
-    {
-        int index = fullpath.lastIndexOf( File.separatorChar );
+    private String getFilename(String fullpath, String pkg) {
+        int index = fullpath.lastIndexOf(File.separatorChar);
 
-        while ( StringUtils.isNotEmpty( pkg ) )
-        {
-            index = fullpath.substring( 0, index ).lastIndexOf( File.separatorChar );
+        while (StringUtils.isNotEmpty(pkg)) {
+            index = fullpath.substring(0, index).lastIndexOf(File.separatorChar);
 
-            int dot = pkg.indexOf( '.' );
+            int dot = pkg.indexOf('.');
 
-            if ( dot < 0 )
-            {
+            if (dot < 0) {
                 break;
             }
-            pkg = pkg.substring( dot + 1 );
+            pkg = pkg.substring(dot + 1);
         }
 
-        return fullpath.substring( index + 1 );
+        return fullpath.substring(index + 1);
     }
 }
diff --git a/src/main/java/org/apache/maven/plugins/pmd/ViolationDetails.java b/src/main/java/org/apache/maven/plugins/pmd/ViolationDetails.java
index 98e1ce7..b19b1bb 100644
--- a/src/main/java/org/apache/maven/plugins/pmd/ViolationDetails.java
+++ b/src/main/java/org/apache/maven/plugins/pmd/ViolationDetails.java
@@ -1,5 +1,3 @@
-package org.apache.maven.plugins.pmd;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.maven.plugins.pmd;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -30,8 +29,7 @@
  * @author Robert Scholte
  * @since 2.7
  */
-public class ViolationDetails<D>
-{
+public class ViolationDetails<D> {
     private List<D> warningDetails = new ArrayList<>();
 
     private List<D> failureDetails = new ArrayList<>();
@@ -39,32 +37,28 @@
     /**
      * @return the warningDetails, never {@code null}
      */
-    public List<D> getWarningDetails()
-    {
+    public List<D> getWarningDetails() {
         return warningDetails;
     }
 
     /**
      * @param warningDetails the warningDetails to set
      */
-    public void setWarningDetails( List<D> warningDetails )
-    {
+    public void setWarningDetails(List<D> warningDetails) {
         this.warningDetails = warningDetails;
     }
 
     /**
      * @return the failureDetails, never {@code null}
      */
-    public List<D> getFailureDetails()
-    {
+    public List<D> getFailureDetails() {
         return failureDetails;
     }
 
     /**
      * @param failureDetails the failureDetails to set
      */
-    public void setFailureDetails( List<D> failureDetails )
-    {
+    public void setFailureDetails(List<D> failureDetails) {
         this.failureDetails = failureDetails;
     }
-}
\ No newline at end of file
+}
diff --git a/src/main/java/org/apache/maven/plugins/pmd/exec/CpdExecutor.java b/src/main/java/org/apache/maven/plugins/pmd/exec/CpdExecutor.java
index 998c8e3..43ba3c0 100644
--- a/src/main/java/org/apache/maven/plugins/pmd/exec/CpdExecutor.java
+++ b/src/main/java/org/apache/maven/plugins/pmd/exec/CpdExecutor.java
@@ -1,5 +1,3 @@
-package org.apache.maven.plugins.pmd.exec;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.maven.plugins.pmd.exec;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -32,13 +31,6 @@
 import java.util.List;
 import java.util.Objects;
 
-import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.plugins.pmd.ExcludeDuplicationsFromFile;
-import org.apache.maven.reporting.MavenReportException;
-import org.codehaus.plexus.util.FileUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
 import net.sourceforge.pmd.cpd.CPD;
 import net.sourceforge.pmd.cpd.CPDConfiguration;
 import net.sourceforge.pmd.cpd.CSVRenderer;
@@ -51,81 +43,70 @@
 import net.sourceforge.pmd.cpd.SimpleRenderer;
 import net.sourceforge.pmd.cpd.XMLRenderer;
 import net.sourceforge.pmd.cpd.renderer.CPDRenderer;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugins.pmd.ExcludeDuplicationsFromFile;
+import org.apache.maven.reporting.MavenReportException;
+import org.codehaus.plexus.util.FileUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Executes CPD with the configuration provided via {@link CpdRequest}.
  */
-public class CpdExecutor extends Executor
-{
-    private static final Logger LOG = LoggerFactory.getLogger( CpdExecutor.class );
+public class CpdExecutor extends Executor {
+    private static final Logger LOG = LoggerFactory.getLogger(CpdExecutor.class);
 
-    public static CpdResult execute( CpdRequest request ) throws MavenReportException
-    {
-        if ( request.getJavaExecutable() != null )
-        {
-            return fork( request );
+    public static CpdResult execute(CpdRequest request) throws MavenReportException {
+        if (request.getJavaExecutable() != null) {
+            return fork(request);
         }
 
         ClassLoader origLoader = Thread.currentThread().getContextClassLoader();
-        try
-        {
-            Thread.currentThread().setContextClassLoader( CpdExecutor.class.getClassLoader() );
-            CpdExecutor cpdExecutor = new CpdExecutor( request );
+        try {
+            Thread.currentThread().setContextClassLoader(CpdExecutor.class.getClassLoader());
+            CpdExecutor cpdExecutor = new CpdExecutor(request);
             return cpdExecutor.run();
-        }
-        finally
-        {
-            Thread.currentThread().setContextClassLoader( origLoader );
+        } finally {
+            Thread.currentThread().setContextClassLoader(origLoader);
         }
     }
 
-    private static CpdResult fork( CpdRequest request )
-            throws MavenReportException
-    {
-        File basePmdDir = new File ( request.getTargetDirectory(), "pmd" );
+    private static CpdResult fork(CpdRequest request) throws MavenReportException {
+        File basePmdDir = new File(request.getTargetDirectory(), "pmd");
         basePmdDir.mkdirs();
-        File cpdRequestFile = new File( basePmdDir, "cpdrequest.bin" );
-        try ( ObjectOutputStream out = new ObjectOutputStream( new FileOutputStream( cpdRequestFile ) ) )
-        {
-            out.writeObject( request );
-        }
-        catch ( IOException e )
-        {
-            throw new MavenReportException( e.getMessage(), e );
+        File cpdRequestFile = new File(basePmdDir, "cpdrequest.bin");
+        try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(cpdRequestFile))) {
+            out.writeObject(request);
+        } catch (IOException e) {
+            throw new MavenReportException(e.getMessage(), e);
         }
 
         String classpath = buildClasspath();
         ProcessBuilder pb = new ProcessBuilder();
         // note: using env variable instead of -cp cli arg to avoid length limitations under Windows
-        pb.environment().put( "CLASSPATH", classpath );
-        pb.command().add( request.getJavaExecutable() );
-        pb.command().add( CpdExecutor.class.getName() );
-        pb.command().add( cpdRequestFile.getAbsolutePath() );
+        pb.environment().put("CLASSPATH", classpath);
+        pb.command().add(request.getJavaExecutable());
+        pb.command().add(CpdExecutor.class.getName());
+        pb.command().add(cpdRequestFile.getAbsolutePath());
 
-        LOG.debug( "Executing: CLASSPATH={}, command={}", classpath, pb.command() );
-        try
-        {
+        LOG.debug("Executing: CLASSPATH={}, command={}", classpath, pb.command());
+        try {
             final Process p = pb.start();
             // Note: can't use pb.inheritIO(), since System.out/System.err has been modified after process start
             // and inheritIO would only inherit file handles, not the changed streams.
-            ProcessStreamHandler.start( p.getInputStream(), System.out );
-            ProcessStreamHandler.start( p.getErrorStream(), System.err );
+            ProcessStreamHandler.start(p.getInputStream(), System.out);
+            ProcessStreamHandler.start(p.getErrorStream(), System.err);
             int exit = p.waitFor();
-            LOG.debug( "CpdExecutor exit code: {}", exit );
-            if ( exit != 0 )
-            {
-                throw new MavenReportException( "CpdExecutor exited with exit code " + exit );
+            LOG.debug("CpdExecutor exit code: {}", exit);
+            if (exit != 0) {
+                throw new MavenReportException("CpdExecutor exited with exit code " + exit);
             }
-            return new CpdResult( new File( request.getTargetDirectory(), "cpd.xml" ), request.getOutputEncoding() );
-        }
-        catch ( IOException e )
-        {
-            throw new MavenReportException( e.getMessage(), e );
-        }
-        catch ( InterruptedException e )
-        {
+            return new CpdResult(new File(request.getTargetDirectory(), "cpd.xml"), request.getOutputEncoding());
+        } catch (IOException e) {
+            throw new MavenReportException(e.getMessage(), e);
+        } catch (InterruptedException e) {
             Thread.currentThread().interrupt();
-            throw new MavenReportException( e.getMessage(), e );
+            throw new MavenReportException(e.getMessage(), e);
         }
     }
 
@@ -140,22 +121,18 @@
      *
      * @param args
      */
-    public static void main( String[] args )
-    {
-        File requestFile = new File( args[0] );
-        try ( ObjectInputStream in = new ObjectInputStream( new FileInputStream( requestFile ) ) )
-        {
+    public static void main(String[] args) {
+        File requestFile = new File(args[0]);
+        try (ObjectInputStream in = new ObjectInputStream(new FileInputStream(requestFile))) {
             CpdRequest request = (CpdRequest) in.readObject();
-            CpdExecutor cpdExecutor = new CpdExecutor( request );
-            cpdExecutor.setupLogLevel( request.getLogLevel() );
+            CpdExecutor cpdExecutor = new CpdExecutor(request);
+            cpdExecutor.setupLogLevel(request.getLogLevel());
             cpdExecutor.run();
-            System.exit( 0 );
+            System.exit(0);
+        } catch (IOException | ClassNotFoundException | MavenReportException e) {
+            LOG.error(e.getMessage(), e);
         }
-        catch ( IOException | ClassNotFoundException | MavenReportException e )
-        {
-            LOG.error( e.getMessage(), e );
-        }
-        System.exit( 1 );
+        System.exit(1);
     }
 
     private final CpdRequest request;
@@ -163,124 +140,94 @@
     /** Helper to exclude duplications from the result. */
     private final ExcludeDuplicationsFromFile excludeDuplicationsFromFile = new ExcludeDuplicationsFromFile();
 
-    public CpdExecutor( CpdRequest request )
-    {
-        this.request = Objects.requireNonNull( request );
+    public CpdExecutor(CpdRequest request) {
+        this.request = Objects.requireNonNull(request);
     }
 
-    private CpdResult run() throws MavenReportException
-    {
-        setupPmdLogging( request.isShowPmdLog(), request.getLogLevel() );
+    private CpdResult run() throws MavenReportException {
+        setupPmdLogging(request.isShowPmdLog(), request.getLogLevel());
 
-        try
-        {
-            excludeDuplicationsFromFile.loadExcludeFromFailuresData( request.getExcludeFromFailureFile() );
-        }
-        catch ( MojoExecutionException e )
-        {
-            throw new MavenReportException( "Error loading exclusions", e );
+        try {
+            excludeDuplicationsFromFile.loadExcludeFromFailuresData(request.getExcludeFromFailureFile());
+        } catch (MojoExecutionException e) {
+            throw new MavenReportException("Error loading exclusions", e);
         }
 
         CPDConfiguration cpdConfiguration = new CPDConfiguration();
-        cpdConfiguration.setMinimumTileSize( request.getMinimumTokens() );
-        
+        cpdConfiguration.setMinimumTileSize(request.getMinimumTokens());
+
         Language cpdLanguage;
-        if ( "java".equals ( request.getLanguage() ) || null == request.getLanguage() )
-        {
-            cpdLanguage = new JavaLanguage( request.getLanguageProperties() );
-        }
-        else if ( "javascript".equals( request.getLanguage() ) )
-        {
+        if ("java".equals(request.getLanguage()) || null == request.getLanguage()) {
+            cpdLanguage = new JavaLanguage(request.getLanguageProperties());
+        } else if ("javascript".equals(request.getLanguage())) {
             cpdLanguage = new EcmascriptLanguage();
-        }
-        else if ( "jsp".equals( request.getLanguage() ) )
-        {
+        } else if ("jsp".equals(request.getLanguage())) {
             cpdLanguage = new JSPLanguage();
-        }
-        else
-        {
-            cpdLanguage = LanguageFactory.createLanguage( request.getLanguage(), request.getLanguageProperties() );
-        }
-        
-        cpdConfiguration.setLanguage( cpdLanguage );
-        cpdConfiguration.setSourceEncoding( request.getSourceEncoding() );
-
-        CPD cpd = new CPD( cpdConfiguration );
-        try
-        {
-            cpd.add( request.getFiles() );
-        }
-        catch ( IOException e )
-        {
-            throw new MavenReportException( e.getMessage(), e );
+        } else {
+            cpdLanguage = LanguageFactory.createLanguage(request.getLanguage(), request.getLanguageProperties());
         }
 
-        LOG.debug( "Executing CPD..." );
+        cpdConfiguration.setLanguage(cpdLanguage);
+        cpdConfiguration.setSourceEncoding(request.getSourceEncoding());
+
+        CPD cpd = new CPD(cpdConfiguration);
+        try {
+            cpd.add(request.getFiles());
+        } catch (IOException e) {
+            throw new MavenReportException(e.getMessage(), e);
+        }
+
+        LOG.debug("Executing CPD...");
         cpd.go();
-        LOG.debug( "CPD finished." );
+        LOG.debug("CPD finished.");
 
         // always create XML format. we need to output it even if the file list is empty or we have no duplications
         // so the "check" goals can check for violations
-        writeXmlReport( cpd );
+        writeXmlReport(cpd);
 
         // html format is handled by maven site report, xml format has already been rendered
         String format = request.getFormat();
-        if ( !"html".equals( format ) && !"xml".equals( format ) )
-        {
-            writeFormattedReport( cpd );
+        if (!"html".equals(format) && !"xml".equals(format)) {
+            writeFormattedReport(cpd);
         }
 
-        return new CpdResult( new File( request.getTargetDirectory(), "cpd.xml" ), request.getOutputEncoding() );
+        return new CpdResult(new File(request.getTargetDirectory(), "cpd.xml"), request.getOutputEncoding());
     }
 
-    private void writeXmlReport( CPD cpd ) throws MavenReportException
-    {
-        File targetFile = writeReport( cpd, new XMLRenderer( request.getOutputEncoding() ), "xml" );
-        if ( request.isIncludeXmlInSite() )
-        {
-            File siteDir = new File( request.getReportOutputDirectory() );
+    private void writeXmlReport(CPD cpd) throws MavenReportException {
+        File targetFile = writeReport(cpd, new XMLRenderer(request.getOutputEncoding()), "xml");
+        if (request.isIncludeXmlInSite()) {
+            File siteDir = new File(request.getReportOutputDirectory());
             siteDir.mkdirs();
-            try
-            {
-                FileUtils.copyFile( targetFile, new File( siteDir, "cpd.xml" ) );
-            }
-            catch ( IOException e )
-            {
-                throw new MavenReportException( e.getMessage(), e );
+            try {
+                FileUtils.copyFile(targetFile, new File(siteDir, "cpd.xml"));
+            } catch (IOException e) {
+                throw new MavenReportException(e.getMessage(), e);
             }
         }
     }
 
-    private File writeReport( CPD cpd, CPDRenderer r, String extension ) throws MavenReportException
-    {
-        if ( r == null )
-        {
+    private File writeReport(CPD cpd, CPDRenderer r, String extension) throws MavenReportException {
+        if (r == null) {
             return null;
         }
 
-        File targetDir = new File( request.getTargetDirectory() );
+        File targetDir = new File(request.getTargetDirectory());
         targetDir.mkdirs();
-        File targetFile = new File( targetDir, "cpd." + extension );
-        try ( Writer writer = new OutputStreamWriter( new FileOutputStream( targetFile ),
-                request.getOutputEncoding() ) )
-        {
-            r.render( filterMatches( cpd.getMatches() ), writer );
+        File targetFile = new File(targetDir, "cpd." + extension);
+        try (Writer writer = new OutputStreamWriter(new FileOutputStream(targetFile), request.getOutputEncoding())) {
+            r.render(filterMatches(cpd.getMatches()), writer);
             writer.flush();
-        }
-        catch ( IOException ioe )
-        {
-            throw new MavenReportException( ioe.getMessage(), ioe );
+        } catch (IOException ioe) {
+            throw new MavenReportException(ioe.getMessage(), ioe);
         }
         return targetFile;
     }
 
-    private void writeFormattedReport( CPD cpd )
-            throws MavenReportException
-        {
-            CPDRenderer r = createRenderer( request.getFormat(), request.getOutputEncoding() );
-            writeReport( cpd, r, request.getFormat() );
-
-        }
+    private void writeFormattedReport(CPD cpd) throws MavenReportException {
+        CPDRenderer r = createRenderer(request.getFormat(), request.getOutputEncoding());
+        writeReport(cpd, r, request.getFormat());
+    }
 
     /**
      * Create and return the correct renderer for the output type.
@@ -288,60 +235,44 @@
      * @return the renderer based on the configured output
      * @throws org.apache.maven.reporting.MavenReportException if no renderer found for the output type
      */
-    public static CPDRenderer createRenderer( String format, String outputEncoding )
-        throws MavenReportException
-    {
+    public static CPDRenderer createRenderer(String format, String outputEncoding) throws MavenReportException {
         CPDRenderer renderer = null;
-        if ( "xml".equals( format ) )
-        {
-            renderer = new XMLRenderer( outputEncoding );
-        }
-        else if ( "csv".equals( format ) )
-        {
+        if ("xml".equals(format)) {
+            renderer = new XMLRenderer(outputEncoding);
+        } else if ("csv".equals(format)) {
             renderer = new CSVRenderer();
-        }
-        else if ( "txt".equals( format ) )
-        {
+        } else if ("txt".equals(format)) {
             renderer = new SimpleRenderer();
-        }
-        else if ( !"".equals( format ) && !"none".equals( format ) )
-        {
-            try
-            {
-                renderer = (CPDRenderer) Class.forName( format ).getConstructor().newInstance();
-            }
-            catch ( Exception e )
-            {
-                throw new MavenReportException( "Can't find CPD custom format " + format + ": "
-                    + e.getClass().getName(), e );
+        } else if (!"".equals(format) && !"none".equals(format)) {
+            try {
+                renderer = (CPDRenderer) Class.forName(format).getConstructor().newInstance();
+            } catch (Exception e) {
+                throw new MavenReportException(
+                        "Can't find CPD custom format " + format + ": "
+                                + e.getClass().getName(),
+                        e);
             }
         }
 
         return renderer;
     }
 
-    private Iterator<Match> filterMatches( Iterator<Match> matches )
-    {
-        LOG.debug( "Filtering duplications. Using " + excludeDuplicationsFromFile.countExclusions()
-            + " configured exclusions." );
+    private Iterator<Match> filterMatches(Iterator<Match> matches) {
+        LOG.debug("Filtering duplications. Using " + excludeDuplicationsFromFile.countExclusions()
+                + " configured exclusions.");
 
         List<Match> filteredMatches = new ArrayList<>();
         int excludedDuplications = 0;
-        while ( matches.hasNext() )
-        {
+        while (matches.hasNext()) {
             Match match = matches.next();
-            if ( excludeDuplicationsFromFile.isExcludedFromFailure( match ) )
-            {
+            if (excludeDuplicationsFromFile.isExcludedFromFailure(match)) {
                 excludedDuplications++;
-            }
-            else
-            {
-                filteredMatches.add( match );
+            } else {
+                filteredMatches.add(match);
             }
         }
 
-        LOG.debug( "Excluded " + excludedDuplications + " duplications." );
+        LOG.debug("Excluded " + excludedDuplications + " duplications.");
         return filteredMatches.iterator();
     }
-
 }
diff --git a/src/main/java/org/apache/maven/plugins/pmd/exec/CpdRequest.java b/src/main/java/org/apache/maven/plugins/pmd/exec/CpdRequest.java
index 51c333a..ebbff04 100644
--- a/src/main/java/org/apache/maven/plugins/pmd/exec/CpdRequest.java
+++ b/src/main/java/org/apache/maven/plugins/pmd/exec/CpdRequest.java
@@ -1,5 +1,3 @@
-package org.apache.maven.plugins.pmd.exec;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.maven.plugins.pmd.exec;
 
 import java.io.File;
 import java.io.Serializable;
@@ -29,13 +28,12 @@
 /**
  * Data object to store all configuration options needed to execute CPD
  * as a separate process.
- * 
+ *
  * <p>This class is intended to be serialized and read back.
- * 
+ *
  * <p>Some properties might be optional and can be <code>null</code>.
  */
-public class CpdRequest implements Serializable
-{
+public class CpdRequest implements Serializable {
     private static final long serialVersionUID = -7585852992660240668L;
 
     private String javaExecutable;
@@ -56,143 +54,115 @@
     private boolean includeXmlInSite;
     private String reportOutputDirectory;
 
-    public void setJavaExecutable( String javaExecutable )
-    {
+    public void setJavaExecutable(String javaExecutable) {
         this.javaExecutable = javaExecutable;
     }
 
-    public void setMinimumTokens( int minimumTokens )
-    {
+    public void setMinimumTokens(int minimumTokens) {
         this.minimumTokens = minimumTokens;
     }
 
-    public void setLanguage( String language )
-    {
+    public void setLanguage(String language) {
         this.language = language;
     }
 
-    public void setLanguageProperties( Properties languageProperties )
-    {
+    public void setLanguageProperties(Properties languageProperties) {
         this.languageProperties = languageProperties;
     }
 
-    public void setSourceEncoding( String sourceEncoding )
-    {
+    public void setSourceEncoding(String sourceEncoding) {
         this.sourceEncoding = sourceEncoding;
     }
 
-    public void addFiles( Collection<File> files )
-    {
-        this.files.addAll( files );
+    public void addFiles(Collection<File> files) {
+        this.files.addAll(files);
     }
 
-    public void setExcludeFromFailureFile( String excludeFromFailureFile )
-    {
+    public void setExcludeFromFailureFile(String excludeFromFailureFile) {
         this.excludeFromFailureFile = excludeFromFailureFile;
     }
 
-    public void setTargetDirectory( String targetDirectory )
-    {
+    public void setTargetDirectory(String targetDirectory) {
         this.targetDirectory = targetDirectory;
     }
 
-    public void setOutputEncoding( String outputEncoding )
-    {
+    public void setOutputEncoding(String outputEncoding) {
         this.outputEncoding = outputEncoding;
     }
 
-    public void setFormat( String format )
-    {
+    public void setFormat(String format) {
         this.format = format;
     }
 
-    public void setIncludeXmlInSite( boolean includeXmlInSite )
-    {
+    public void setIncludeXmlInSite(boolean includeXmlInSite) {
         this.includeXmlInSite = includeXmlInSite;
     }
 
-    public void setReportOutputDirectory( String reportOutputDirectory )
-    {
+    public void setReportOutputDirectory(String reportOutputDirectory) {
         this.reportOutputDirectory = reportOutputDirectory;
     }
 
-    public void setShowPmdLog( boolean showPmdLog )
-    {
+    public void setShowPmdLog(boolean showPmdLog) {
         this.showPmdLog = showPmdLog;
     }
 
-    public void setLogLevel( String logLevel )
-    {
+    public void setLogLevel(String logLevel) {
         this.logLevel = logLevel;
     }
 
-    public String getJavaExecutable()
-    {
+    public String getJavaExecutable() {
         return javaExecutable;
     }
 
-    public int getMinimumTokens()
-    {
+    public int getMinimumTokens() {
         return minimumTokens;
     }
 
-    public String getLanguage()
-    {
+    public String getLanguage() {
         return language;
     }
 
-    public Properties getLanguageProperties()
-    {
+    public Properties getLanguageProperties() {
         return languageProperties;
     }
 
-    public String getSourceEncoding()
-    {
+    public String getSourceEncoding() {
         return sourceEncoding;
     }
 
-    public List<File> getFiles()
-    {
+    public List<File> getFiles() {
         return files;
     }
 
-    public String getExcludeFromFailureFile()
-    {
+    public String getExcludeFromFailureFile() {
         return excludeFromFailureFile;
     }
 
-    public String getTargetDirectory()
-    {
+    public String getTargetDirectory() {
         return targetDirectory;
     }
 
-    public String getOutputEncoding()
-    {
+    public String getOutputEncoding() {
         return outputEncoding;
     }
 
-    public String getFormat()
-    {
+    public String getFormat() {
         return format;
     }
 
-    public boolean isIncludeXmlInSite()
-    {
+    public boolean isIncludeXmlInSite() {
         return includeXmlInSite;
     }
 
-    public String getReportOutputDirectory()
-    {
+    public String getReportOutputDirectory() {
         return reportOutputDirectory;
     }
 
-    public boolean isShowPmdLog()
-    {
+    public boolean isShowPmdLog() {
         return showPmdLog;
     }
 
-    public String getLogLevel()
-    {
+    public String getLogLevel() {
         return logLevel;
     }
 }
diff --git a/src/main/java/org/apache/maven/plugins/pmd/exec/CpdResult.java b/src/main/java/org/apache/maven/plugins/pmd/exec/CpdResult.java
index 6ea18ce..283d135 100644
--- a/src/main/java/org/apache/maven/plugins/pmd/exec/CpdResult.java
+++ b/src/main/java/org/apache/maven/plugins/pmd/exec/CpdResult.java
@@ -1,5 +1,3 @@
-package org.apache.maven.plugins.pmd.exec;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.maven.plugins.pmd.exec;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -34,36 +33,28 @@
 /**
  * Provides access to the result of the CPD analysis.
  */
-public class CpdResult
-{
+public class CpdResult {
     private final List<Duplication> duplications = new ArrayList<>();
 
-    public CpdResult( File report, String encoding ) throws MavenReportException
-    {
-        loadResult( report, encoding );
+    public CpdResult(File report, String encoding) throws MavenReportException {
+        loadResult(report, encoding);
     }
 
-    public List<Duplication> getDuplications()
-    {
+    public List<Duplication> getDuplications() {
         return duplications;
     }
 
-    public boolean hasDuplications()
-    {
+    public boolean hasDuplications() {
         return !duplications.isEmpty();
     }
 
-    private void loadResult( File report, String encoding ) throws MavenReportException
-    {
-        try ( Reader reader1 = new InputStreamReader( new FileInputStream( report ), encoding ) )
-        {
+    private void loadResult(File report, String encoding) throws MavenReportException {
+        try (Reader reader1 = new InputStreamReader(new FileInputStream(report), encoding)) {
             CpdXpp3Reader reader = new CpdXpp3Reader();
-            CpdErrorDetail details = reader.read( reader1, false );
-            duplications.addAll( details.getDuplications() );
-        }
-        catch ( Exception e )
-        {
-            throw new MavenReportException( e.getMessage(), e );
+            CpdErrorDetail details = reader.read(reader1, false);
+            duplications.addAll(details.getDuplications());
+        } catch (Exception e) {
+            throw new MavenReportException(e.getMessage(), e);
         }
     }
 }
diff --git a/src/main/java/org/apache/maven/plugins/pmd/exec/Executor.java b/src/main/java/org/apache/maven/plugins/pmd/exec/Executor.java
index 3b3679c..d8f902c 100644
--- a/src/main/java/org/apache/maven/plugins/pmd/exec/Executor.java
+++ b/src/main/java/org/apache/maven/plugins/pmd/exec/Executor.java
@@ -1,5 +1,3 @@
-package org.apache.maven.plugins.pmd.exec;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.maven.plugins.pmd.exec;
 
 import java.io.BufferedInputStream;
 import java.io.BufferedOutputStream;
@@ -42,9 +41,8 @@
 import org.slf4j.LoggerFactory;
 import org.slf4j.bridge.SLF4JBridgeHandler;
 
-abstract class Executor
-{
-    private static final Logger LOG = LoggerFactory.getLogger( Executor.class );
+abstract class Executor {
+    private static final Logger LOG = LoggerFactory.getLogger(Executor.class);
 
     /**
      * This holds a strong reference in case we configured the logger to
@@ -53,137 +51,106 @@
      */
     private java.util.logging.Logger julLogger;
 
-    protected void setupPmdLogging( boolean showPmdLog, String logLevel )
-    {
-        if ( !showPmdLog )
-        {
+    protected void setupPmdLogging(boolean showPmdLog, String logLevel) {
+        if (!showPmdLog) {
             return;
         }
 
-        java.util.logging.Logger logger = java.util.logging.Logger.getLogger( "net.sourceforge.pmd" );
+        java.util.logging.Logger logger = java.util.logging.Logger.getLogger("net.sourceforge.pmd");
 
         boolean slf4jBridgeAlreadyAdded = false;
-        for ( Handler handler : logger.getHandlers() )
-        {
-            if ( handler instanceof SLF4JBridgeHandler )
-            {
+        for (Handler handler : logger.getHandlers()) {
+            if (handler instanceof SLF4JBridgeHandler) {
                 slf4jBridgeAlreadyAdded = true;
                 break;
             }
         }
 
-        if ( slf4jBridgeAlreadyAdded )
-        {
+        if (slf4jBridgeAlreadyAdded) {
             return;
         }
 
         SLF4JBridgeHandler handler = new SLF4JBridgeHandler();
         SimpleFormatter formatter = new SimpleFormatter();
-        handler.setFormatter( formatter );
-        logger.setUseParentHandlers( false );
-        logger.addHandler( handler );
-        handler.setLevel( Level.ALL );
-        logger.setLevel( Level.ALL );
+        handler.setFormatter(formatter);
+        logger.setUseParentHandlers(false);
+        logger.addHandler(handler);
+        handler.setLevel(Level.ALL);
+        logger.setLevel(Level.ALL);
         julLogger = logger;
-        julLogger.fine( "Configured jul-to-slf4j bridge for " + logger.getName() );
+        julLogger.fine("Configured jul-to-slf4j bridge for " + logger.getName());
     }
 
-    protected void setupLogLevel( String logLevel )
-    {
+    protected void setupLogLevel(String logLevel) {
         ILoggerFactory slf4jLoggerFactory = LoggerFactory.getILoggerFactory();
-        Slf4jConfiguration slf4jConfiguration = Slf4jConfigurationFactory
-                .getConfiguration( slf4jLoggerFactory );
-        if ( "debug".equals( logLevel ) )
-        {
-            slf4jConfiguration
-                    .setRootLoggerLevel( Slf4jConfiguration.Level.DEBUG );
-        }
-        else if ( "info".equals( logLevel ) )
-        {
-            slf4jConfiguration
-                    .setRootLoggerLevel( Slf4jConfiguration.Level.INFO );
-        }
-        else
-        {
-            slf4jConfiguration
-                    .setRootLoggerLevel( Slf4jConfiguration.Level.ERROR );
+        Slf4jConfiguration slf4jConfiguration = Slf4jConfigurationFactory.getConfiguration(slf4jLoggerFactory);
+        if ("debug".equals(logLevel)) {
+            slf4jConfiguration.setRootLoggerLevel(Slf4jConfiguration.Level.DEBUG);
+        } else if ("info".equals(logLevel)) {
+            slf4jConfiguration.setRootLoggerLevel(Slf4jConfiguration.Level.INFO);
+        } else {
+            slf4jConfiguration.setRootLoggerLevel(Slf4jConfiguration.Level.ERROR);
         }
         slf4jConfiguration.activate();
     }
 
-    protected static String buildClasspath()
-    {
+    protected static String buildClasspath() {
         StringBuilder classpath = new StringBuilder();
 
         // plugin classpath needs to come first
         ClassLoader pluginClassloader = Executor.class.getClassLoader();
-        buildClasspath( classpath, pluginClassloader );
+        buildClasspath(classpath, pluginClassloader);
 
         ClassLoader coreClassloader = ConsoleLogger.class.getClassLoader();
-        buildClasspath( classpath, coreClassloader );
+        buildClasspath(classpath, coreClassloader);
 
         return classpath.toString();
     }
 
-    static void buildClasspath( StringBuilder classpath, ClassLoader cl )
-    {
-        if ( cl instanceof URLClassLoader )
-        {
-            for ( URL url : ( (URLClassLoader) cl ).getURLs() )
-            {
-                if ( "file".equalsIgnoreCase( url.getProtocol() ) )
-                {
-                    try
-                    {
-                        String filename = URLDecoder.decode( url.getPath(), StandardCharsets.UTF_8.name() );
-                        classpath.append( new File( filename ).getPath() ).append( File.pathSeparatorChar );
-                    }
-                    catch ( UnsupportedEncodingException e )
-                    {
-                        LOG.warn( "Ignoring " + url + " in classpath due to UnsupportedEncodingException", e );
+    static void buildClasspath(StringBuilder classpath, ClassLoader cl) {
+        if (cl instanceof URLClassLoader) {
+            for (URL url : ((URLClassLoader) cl).getURLs()) {
+                if ("file".equalsIgnoreCase(url.getProtocol())) {
+                    try {
+                        String filename = URLDecoder.decode(url.getPath(), StandardCharsets.UTF_8.name());
+                        classpath.append(new File(filename).getPath()).append(File.pathSeparatorChar);
+                    } catch (UnsupportedEncodingException e) {
+                        LOG.warn("Ignoring " + url + " in classpath due to UnsupportedEncodingException", e);
                     }
                 }
             }
         }
     }
 
-    protected static class ProcessStreamHandler implements Runnable
-    {
+    protected static class ProcessStreamHandler implements Runnable {
         private static final int BUFFER_SIZE = 8192;
 
         private final BufferedInputStream in;
         private final BufferedOutputStream out;
 
-        public static void start( InputStream in, OutputStream out )
-        {
-            Thread t = new Thread( new ProcessStreamHandler( in, out ) );
+        public static void start(InputStream in, OutputStream out) {
+            Thread t = new Thread(new ProcessStreamHandler(in, out));
             t.start();
         }
 
-        private ProcessStreamHandler( InputStream in, OutputStream out )
-        {
-            this.in = new BufferedInputStream( in );
-            this.out = new BufferedOutputStream( out );
+        private ProcessStreamHandler(InputStream in, OutputStream out) {
+            this.in = new BufferedInputStream(in);
+            this.out = new BufferedOutputStream(out);
         }
 
         @Override
-        public void run()
-        {
+        public void run() {
             byte[] buffer = new byte[BUFFER_SIZE];
-            try
-            {
-                int count = in.read( buffer );
-                while ( count != -1 )
-                {
-                    out.write( buffer, 0, count );
+            try {
+                int count = in.read(buffer);
+                while (count != -1) {
+                    out.write(buffer, 0, count);
                     out.flush();
-                    count = in.read( buffer );
+                    count = in.read(buffer);
                 }
                 out.flush();
-            }
-            catch ( IOException e )
-            {
-                LOG.error( e.getMessage(), e );
+            } catch (IOException e) {
+                LOG.error(e.getMessage(), e);
             }
         }
     }
diff --git a/src/main/java/org/apache/maven/plugins/pmd/exec/PmdExecutor.java b/src/main/java/org/apache/maven/plugins/pmd/exec/PmdExecutor.java
index cc25c80..8e96bf4 100644
--- a/src/main/java/org/apache/maven/plugins/pmd/exec/PmdExecutor.java
+++ b/src/main/java/org/apache/maven/plugins/pmd/exec/PmdExecutor.java
@@ -1,5 +1,3 @@
-package org.apache.maven.plugins.pmd.exec;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.maven.plugins.pmd.exec;
 
 import java.io.Closeable;
 import java.io.File;
@@ -32,15 +31,8 @@
 import java.util.List;
 import java.util.Objects;
 
-import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.plugins.pmd.ExcludeViolationsFromFile;
-import org.apache.maven.reporting.MavenReportException;
-import org.codehaus.plexus.util.FileUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import net.sourceforge.pmd.PmdAnalysis;
 import net.sourceforge.pmd.PMDConfiguration;
+import net.sourceforge.pmd.PmdAnalysis;
 import net.sourceforge.pmd.Report;
 import net.sourceforge.pmd.RulePriority;
 import net.sourceforge.pmd.RuleSetLoadException;
@@ -59,82 +51,71 @@
 import net.sourceforge.pmd.renderers.TextRenderer;
 import net.sourceforge.pmd.renderers.XMLRenderer;
 import net.sourceforge.pmd.util.Predicate;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugins.pmd.ExcludeViolationsFromFile;
+import org.apache.maven.reporting.MavenReportException;
+import org.codehaus.plexus.util.FileUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Executes PMD with the configuration provided via {@link PmdRequest}.
  */
-public class PmdExecutor extends Executor
-{
-    private static final Logger LOG = LoggerFactory.getLogger( PmdExecutor.class );
+public class PmdExecutor extends Executor {
+    private static final Logger LOG = LoggerFactory.getLogger(PmdExecutor.class);
 
-    public static PmdResult execute( PmdRequest request ) throws MavenReportException
-    {
-        if ( request.getJavaExecutable() != null )
-        {
-            return fork( request );
+    public static PmdResult execute(PmdRequest request) throws MavenReportException {
+        if (request.getJavaExecutable() != null) {
+            return fork(request);
         }
 
         // make sure the class loaders are correct and call this in the same JVM
         ClassLoader origLoader = Thread.currentThread().getContextClassLoader();
-        try
-        {
-            Thread.currentThread().setContextClassLoader( PmdExecutor.class.getClassLoader() );
-            PmdExecutor executor = new PmdExecutor( request );
+        try {
+            Thread.currentThread().setContextClassLoader(PmdExecutor.class.getClassLoader());
+            PmdExecutor executor = new PmdExecutor(request);
             return executor.run();
-        }
-        finally
-        {
-            Thread.currentThread().setContextClassLoader( origLoader );
+        } finally {
+            Thread.currentThread().setContextClassLoader(origLoader);
         }
     }
 
-    private static PmdResult fork( PmdRequest request )
-            throws MavenReportException
-    {
-        File basePmdDir = new File ( request.getTargetDirectory(), "pmd" );
+    private static PmdResult fork(PmdRequest request) throws MavenReportException {
+        File basePmdDir = new File(request.getTargetDirectory(), "pmd");
         basePmdDir.mkdirs();
-        File pmdRequestFile = new File( basePmdDir, "pmdrequest.bin" );
-        try ( ObjectOutputStream out = new ObjectOutputStream( new FileOutputStream( pmdRequestFile ) ) )
-        {
-            out.writeObject( request );
-        }
-        catch ( IOException e )
-        {
-            throw new MavenReportException( e.getMessage(), e );
+        File pmdRequestFile = new File(basePmdDir, "pmdrequest.bin");
+        try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(pmdRequestFile))) {
+            out.writeObject(request);
+        } catch (IOException e) {
+            throw new MavenReportException(e.getMessage(), e);
         }
 
         String classpath = buildClasspath();
         ProcessBuilder pb = new ProcessBuilder();
         // note: using env variable instead of -cp cli arg to avoid length limitations under Windows
-        pb.environment().put( "CLASSPATH", classpath );
-        pb.command().add( request.getJavaExecutable() );
-        pb.command().add( PmdExecutor.class.getName() );
-        pb.command().add( pmdRequestFile.getAbsolutePath() );
+        pb.environment().put("CLASSPATH", classpath);
+        pb.command().add(request.getJavaExecutable());
+        pb.command().add(PmdExecutor.class.getName());
+        pb.command().add(pmdRequestFile.getAbsolutePath());
 
-        LOG.debug( "Executing: CLASSPATH={}, command={}", classpath, pb.command() );
-        try
-        {
+        LOG.debug("Executing: CLASSPATH={}, command={}", classpath, pb.command());
+        try {
             final Process p = pb.start();
             // Note: can't use pb.inheritIO(), since System.out/System.err has been modified after process start
             // and inheritIO would only inherit file handles, not the changed streams.
-            ProcessStreamHandler.start( p.getInputStream(), System.out );
-            ProcessStreamHandler.start( p.getErrorStream(), System.err );
+            ProcessStreamHandler.start(p.getInputStream(), System.out);
+            ProcessStreamHandler.start(p.getErrorStream(), System.err);
             int exit = p.waitFor();
-            LOG.debug( "PmdExecutor exit code: {}", exit );
-            if ( exit != 0 )
-            {
-                throw new MavenReportException( "PmdExecutor exited with exit code " + exit );
+            LOG.debug("PmdExecutor exit code: {}", exit);
+            if (exit != 0) {
+                throw new MavenReportException("PmdExecutor exited with exit code " + exit);
             }
-            return new PmdResult( new File( request.getTargetDirectory(), "pmd.xml" ), request.getOutputEncoding() );
-        }
-        catch ( IOException e )
-        {
-            throw new MavenReportException( e.getMessage(), e );
-        }
-        catch ( InterruptedException e )
-        {
+            return new PmdResult(new File(request.getTargetDirectory(), "pmd.xml"), request.getOutputEncoding());
+        } catch (IOException e) {
+            throw new MavenReportException(e.getMessage(), e);
+        } catch (InterruptedException e) {
             Thread.currentThread().interrupt();
-            throw new MavenReportException( e.getMessage(), e );
+            throw new MavenReportException(e.getMessage(), e);
         }
     }
 
@@ -149,162 +130,128 @@
      *
      * @param args
      */
-    public static void main( String[] args )
-    {
-        File requestFile = new File( args[0] );
-        try ( ObjectInputStream in = new ObjectInputStream( new FileInputStream( requestFile ) ) )
-        {
+    public static void main(String[] args) {
+        File requestFile = new File(args[0]);
+        try (ObjectInputStream in = new ObjectInputStream(new FileInputStream(requestFile))) {
             PmdRequest request = (PmdRequest) in.readObject();
-            PmdExecutor pmdExecutor = new PmdExecutor( request );
-            pmdExecutor.setupLogLevel( request.getLogLevel() );
+            PmdExecutor pmdExecutor = new PmdExecutor(request);
+            pmdExecutor.setupLogLevel(request.getLogLevel());
             pmdExecutor.run();
-            System.exit( 0 );
+            System.exit(0);
+        } catch (IOException | ClassNotFoundException | MavenReportException e) {
+            LOG.error(e.getMessage(), e);
         }
-        catch ( IOException | ClassNotFoundException | MavenReportException e )
-        {
-            LOG.error( e.getMessage(), e );
-        }
-        System.exit( 1 );
+        System.exit(1);
     }
 
     private final PmdRequest request;
 
-    public PmdExecutor( PmdRequest request )
-    {
-        this.request = Objects.requireNonNull( request );
+    public PmdExecutor(PmdRequest request) {
+        this.request = Objects.requireNonNull(request);
     }
 
-    private PmdResult run() throws MavenReportException
-    {
-        setupPmdLogging( request.isShowPmdLog(), request.getLogLevel() );
+    private PmdResult run() throws MavenReportException {
+        setupPmdLogging(request.isShowPmdLog(), request.getLogLevel());
 
         PMDConfiguration configuration = new PMDConfiguration();
         LanguageVersion languageVersion = null;
-        Language language = LanguageRegistry
-                .findLanguageByTerseName( request.getLanguage() != null ? request.getLanguage() : "java" );
-        if ( language == null )
-        {
-            throw new MavenReportException( "Unsupported language: " + request.getLanguage() );
+        Language language = LanguageRegistry.findLanguageByTerseName(
+                request.getLanguage() != null ? request.getLanguage() : "java");
+        if (language == null) {
+            throw new MavenReportException("Unsupported language: " + request.getLanguage());
         }
-        if ( request.getLanguageVersion() != null )
-        {
-            languageVersion = language.getVersion( request.getLanguageVersion() );
-            if ( languageVersion == null )
-            {
-                throw new MavenReportException( "Unsupported targetJdk value '" + request.getLanguageVersion() + "'." );
+        if (request.getLanguageVersion() != null) {
+            languageVersion = language.getVersion(request.getLanguageVersion());
+            if (languageVersion == null) {
+                throw new MavenReportException("Unsupported targetJdk value '" + request.getLanguageVersion() + "'.");
             }
-        }
-        else
-        {
+        } else {
             languageVersion = language.getDefaultVersion();
         }
-        LOG.debug( "Using language " + languageVersion );
-        configuration.setDefaultLanguageVersion( languageVersion );
+        LOG.debug("Using language " + languageVersion);
+        configuration.setDefaultLanguageVersion(languageVersion);
 
-        if ( request.getSourceEncoding() != null )
-        {
-            configuration.setSourceEncoding( request.getSourceEncoding() );
+        if (request.getSourceEncoding() != null) {
+            configuration.setSourceEncoding(request.getSourceEncoding());
         }
 
-        configuration.prependAuxClasspath( request.getAuxClasspath() );
+        configuration.prependAuxClasspath(request.getAuxClasspath());
 
-        if ( request.getSuppressMarker() != null )
-        {
-            configuration.setSuppressMarker( request.getSuppressMarker() );
+        if (request.getSuppressMarker() != null) {
+            configuration.setSuppressMarker(request.getSuppressMarker());
         }
-        if ( request.getAnalysisCacheLocation() != null )
-        {
-            configuration.setAnalysisCacheLocation( request.getAnalysisCacheLocation() );
-            LOG.debug( "Using analysis cache location: " + request.getAnalysisCacheLocation() );
-        }
-        else
-        {
-            configuration.setIgnoreIncrementalAnalysis( true );
+        if (request.getAnalysisCacheLocation() != null) {
+            configuration.setAnalysisCacheLocation(request.getAnalysisCacheLocation());
+            LOG.debug("Using analysis cache location: " + request.getAnalysisCacheLocation());
+        } else {
+            configuration.setIgnoreIncrementalAnalysis(true);
         }
 
-        configuration.setRuleSets( request.getRulesets() );
-        configuration.setMinimumPriority( RulePriority.valueOf( request.getMinimumPriority() ) );
-        if ( request.getBenchmarkOutputLocation() != null )
-        {
-            configuration.setBenchmark( true );
+        configuration.setRuleSets(request.getRulesets());
+        configuration.setMinimumPriority(RulePriority.valueOf(request.getMinimumPriority()));
+        if (request.getBenchmarkOutputLocation() != null) {
+            configuration.setBenchmark(true);
         }
         List<File> files = request.getFiles();
 
         Report report = null;
 
-        if ( request.getRulesets().isEmpty() )
-        {
-            LOG.debug( "Skipping PMD execution as no rulesets are defined." );
-        }
-        else
-        {
-            if ( request.getBenchmarkOutputLocation() != null )
-            {
+        if (request.getRulesets().isEmpty()) {
+            LOG.debug("Skipping PMD execution as no rulesets are defined.");
+        } else {
+            if (request.getBenchmarkOutputLocation() != null) {
                 TimeTracker.startGlobalTracking();
             }
 
-            try
-            {
-                report = processFilesWithPMD( configuration, files );
-            }
-            finally
-            {
-                if ( request.getAuxClasspath() != null )
-                {
+            try {
+                report = processFilesWithPMD(configuration, files);
+            } finally {
+                if (request.getAuxClasspath() != null) {
                     ClassLoader classLoader = configuration.getClassLoader();
-                    if ( classLoader instanceof Closeable )
-                    {
+                    if (classLoader instanceof Closeable) {
                         Closeable closeable = (Closeable) classLoader;
-                        try
-                        {
+                        try {
                             closeable.close();
-                        }
-                        catch ( IOException ex )
-                        {
+                        } catch (IOException ex) {
                             // ignore
                         }
                     }
                 }
-                if ( request.getBenchmarkOutputLocation() != null )
-                {
+                if (request.getBenchmarkOutputLocation() != null) {
                     TimingReport timingReport = TimeTracker.stopGlobalTracking();
-                    writeBenchmarkReport( timingReport, request.getBenchmarkOutputLocation(),
-                            request.getOutputEncoding() );
+                    writeBenchmarkReport(
+                            timingReport, request.getBenchmarkOutputLocation(), request.getOutputEncoding());
                 }
             }
         }
 
-        if ( report != null && !report.getProcessingErrors().isEmpty() )
-        {
+        if (report != null && !report.getProcessingErrors().isEmpty()) {
             List<Report.ProcessingError> errors = report.getProcessingErrors();
-            if ( !request.isSkipPmdError() )
-            {
-                LOG.error( "PMD processing errors:" );
-                LOG.error( getErrorsAsString( errors, request.isDebugEnabled() ) );
-                throw new MavenReportException( "Found " + errors.size()
-                        + " PMD processing errors" );
+            if (!request.isSkipPmdError()) {
+                LOG.error("PMD processing errors:");
+                LOG.error(getErrorsAsString(errors, request.isDebugEnabled()));
+                throw new MavenReportException("Found " + errors.size() + " PMD processing errors");
             }
-            LOG.warn( "There are {} PMD processing errors:", errors.size() );
-            LOG.warn( getErrorsAsString( errors, request.isDebugEnabled() ) );
+            LOG.warn("There are {} PMD processing errors:", errors.size());
+            LOG.warn(getErrorsAsString(errors, request.isDebugEnabled()));
         }
 
-        report = removeExcludedViolations( report );
+        report = removeExcludedViolations(report);
         // always write XML report, as this might be needed by the check mojo
         // we need to output it even if the file list is empty or we have no violations
         // so the "check" goals can check for violations
-        writeXmlReport( report );
+        writeXmlReport(report);
 
         // write any other format except for xml and html. xml has just been produced.
         // html format is produced by the maven site formatter. Excluding html here
         // avoids using PMD's own html formatter, which doesn't fit into the maven site
         // considering the html/css styling
         String format = request.getFormat();
-        if ( !"html".equals( format ) && !"xml".equals( format ) )
-        {
-            writeFormattedReport( report );
+        if (!"html".equals(format) && !"xml".equals(format)) {
+            writeFormattedReport(report);
         }
 
-        return new PmdResult( new File( request.getTargetDirectory(), "pmd.xml" ), request.getOutputEncoding() );
+        return new PmdResult(new File(request.getTargetDirectory(), "pmd.xml"), request.getOutputEncoding());
     }
 
     /**
@@ -312,68 +259,52 @@
      * @param withDetails if <code>true</code> then add the error details additionally (contains e.g. the stacktrace)
      * @return the errors as string
      */
-    private String getErrorsAsString( List<Report.ProcessingError> errors, boolean withDetails )
-    {
-        List<String> errorsAsString = new ArrayList<>( errors.size() );
-        for ( Report.ProcessingError error : errors )
-        {
-            errorsAsString.add( error.getFile() + ": " + error.getMsg() );
-            if ( withDetails )
-            {
-                errorsAsString.add( error.getDetail() );
+    private String getErrorsAsString(List<Report.ProcessingError> errors, boolean withDetails) {
+        List<String> errorsAsString = new ArrayList<>(errors.size());
+        for (Report.ProcessingError error : errors) {
+            errorsAsString.add(error.getFile() + ": " + error.getMsg());
+            if (withDetails) {
+                errorsAsString.add(error.getDetail());
             }
         }
-        return String.join( System.lineSeparator(), errorsAsString );
+        return String.join(System.lineSeparator(), errorsAsString);
     }
 
-    private void writeBenchmarkReport( TimingReport timingReport, String benchmarkOutputLocation, String encoding )
-    {
-        try ( Writer writer = new OutputStreamWriter( new FileOutputStream( benchmarkOutputLocation ), encoding ) )
-        {
+    private void writeBenchmarkReport(TimingReport timingReport, String benchmarkOutputLocation, String encoding) {
+        try (Writer writer = new OutputStreamWriter(new FileOutputStream(benchmarkOutputLocation), encoding)) {
             final TimingReportRenderer renderer = new TextTimingReportRenderer();
-            renderer.render( timingReport, writer );
-        }
-        catch ( IOException e )
-        {
-            LOG.error( "Unable to generate benchmark file: {}", benchmarkOutputLocation, e );
+            renderer.render(timingReport, writer);
+        } catch (IOException e) {
+            LOG.error("Unable to generate benchmark file: {}", benchmarkOutputLocation, e);
         }
     }
 
-    private Report processFilesWithPMD( PMDConfiguration pmdConfiguration, List<File> files )
-            throws MavenReportException
-    {
+    private Report processFilesWithPMD(PMDConfiguration pmdConfiguration, List<File> files)
+            throws MavenReportException {
         Report report = null;
-        RuleSetLoader rulesetLoader = RuleSetLoader.fromPmdConfig( pmdConfiguration )
-                .warnDeprecated( true );
-        try
-        {
+        RuleSetLoader rulesetLoader =
+                RuleSetLoader.fromPmdConfig(pmdConfiguration).warnDeprecated(true);
+        try {
             // load the ruleset once to log out any deprecated rules as warnings
-            rulesetLoader.loadFromResources( pmdConfiguration.getRuleSetPaths() );
-        }
-        catch ( RuleSetLoadException e1 )
-        {
-            throw new MavenReportException( "The ruleset could not be loaded", e1 );
+            rulesetLoader.loadFromResources(pmdConfiguration.getRuleSetPaths());
+        } catch (RuleSetLoadException e1) {
+            throw new MavenReportException("The ruleset could not be loaded", e1);
         }
 
-        try ( PmdAnalysis pmdAnalysis = PmdAnalysis.create( pmdConfiguration ) )
-        {
-            for ( File file : files )
-            {
-                pmdAnalysis.files().addFile( file.toPath() );
+        try (PmdAnalysis pmdAnalysis = PmdAnalysis.create(pmdConfiguration)) {
+            for (File file : files) {
+                pmdAnalysis.files().addFile(file.toPath());
             }
-            LOG.debug( "Executing PMD..." );
+            LOG.debug("Executing PMD...");
             report = pmdAnalysis.performAnalysisAndCollectReport();
-            LOG.debug( "PMD finished. Found {} violations.", report.getViolations().size() );
-        }
-        catch ( Exception e )
-        {
+            LOG.debug(
+                    "PMD finished. Found {} violations.", report.getViolations().size());
+        } catch (Exception e) {
             String message = "Failure executing PMD: " + e.getLocalizedMessage();
-            if ( !request.isSkipPmdError() )
-            {
-                throw new MavenReportException( message, e );
+            if (!request.isSkipPmdError()) {
+                throw new MavenReportException(message, e);
             }
-            LOG.warn( message, e );
-
+            LOG.warn(message, e);
         }
         return report;
     }
@@ -385,51 +316,39 @@
      * @param report
      * @throws MavenReportException
      */
-    private void writeXmlReport( Report report ) throws MavenReportException
-    {
-        File targetFile = writeReport( report, new XMLRenderer( request.getOutputEncoding() ) );
-        if ( request.isIncludeXmlInSite() )
-        {
-            File siteDir = new File( request.getReportOutputDirectory() );
+    private void writeXmlReport(Report report) throws MavenReportException {
+        File targetFile = writeReport(report, new XMLRenderer(request.getOutputEncoding()));
+        if (request.isIncludeXmlInSite()) {
+            File siteDir = new File(request.getReportOutputDirectory());
             siteDir.mkdirs();
-            try
-            {
-                FileUtils.copyFile( targetFile, new File( siteDir, "pmd.xml" ) );
-            }
-            catch ( IOException e )
-            {
-                throw new MavenReportException( e.getMessage(), e );
+            try {
+                FileUtils.copyFile(targetFile, new File(siteDir, "pmd.xml"));
+            } catch (IOException e) {
+                throw new MavenReportException(e.getMessage(), e);
             }
         }
     }
 
-    private File writeReport( Report report, Renderer r ) throws MavenReportException
-    {
-        if ( r == null )
-        {
+    private File writeReport(Report report, Renderer r) throws MavenReportException {
+        if (r == null) {
             return null;
         }
 
-        File targetDir = new File( request.getTargetDirectory() );
+        File targetDir = new File(request.getTargetDirectory());
         targetDir.mkdirs();
         String extension = r.defaultFileExtension();
-        File targetFile = new File( targetDir, "pmd." + extension );
-        LOG.debug( "Target PMD output file: {}", targetFile  );
-        try ( Writer writer = new OutputStreamWriter( new FileOutputStream( targetFile ),
-                request.getOutputEncoding() ) )
-        {
-            r.setWriter( writer );
+        File targetFile = new File(targetDir, "pmd." + extension);
+        LOG.debug("Target PMD output file: {}", targetFile);
+        try (Writer writer = new OutputStreamWriter(new FileOutputStream(targetFile), request.getOutputEncoding())) {
+            r.setWriter(writer);
             r.start();
-            if ( report != null )
-            {
-                r.renderFileReport( report );
+            if (report != null) {
+                r.renderFileReport(report);
             }
             r.end();
             r.flush();
-        }
-        catch ( IOException ioe )
-        {
-            throw new MavenReportException( ioe.getMessage(), ioe );
+        } catch (IOException ioe) {
+            throw new MavenReportException(ioe.getMessage(), ioe);
         }
 
         return targetFile;
@@ -441,11 +360,9 @@
      * @param report
      * @throws MavenReportException
      */
-    private void writeFormattedReport( Report report )
-            throws MavenReportException
-    {
-        Renderer renderer = createRenderer( request.getFormat(), request.getOutputEncoding() );
-        writeReport( report, renderer );
+    private void writeFormattedReport(Report report) throws MavenReportException {
+        Renderer renderer = createRenderer(request.getFormat(), request.getOutputEncoding());
+        writeReport(report, renderer);
     }
 
     /**
@@ -455,76 +372,57 @@
      * @throws org.apache.maven.reporting.MavenReportException
      *             if no renderer found for the output type
      */
-    public static Renderer createRenderer( String format, String outputEncoding ) throws MavenReportException
-    {
-        LOG.debug( "Renderer requested: {}", format );
+    public static Renderer createRenderer(String format, String outputEncoding) throws MavenReportException {
+        LOG.debug("Renderer requested: {}", format);
         Renderer result = null;
-        if ( "xml".equals( format ) )
-        {
-            result = new XMLRenderer( outputEncoding );
-        }
-        else if ( "txt".equals( format ) )
-        {
+        if ("xml".equals(format)) {
+            result = new XMLRenderer(outputEncoding);
+        } else if ("txt".equals(format)) {
             result = new TextRenderer();
-        }
-        else if ( "csv".equals( format ) )
-        {
+        } else if ("csv".equals(format)) {
             result = new CSVRenderer();
-        }
-        else if ( "html".equals( format ) )
-        {
+        } else if ("html".equals(format)) {
             result = new HTMLRenderer();
-        }
-        else if ( !"".equals( format ) && !"none".equals( format ) )
-        {
-            try
-            {
-                result = (Renderer) Class.forName( format ).getConstructor().newInstance();
-            }
-            catch ( Exception e )
-            {
+        } else if (!"".equals(format) && !"none".equals(format)) {
+            try {
+                result = (Renderer) Class.forName(format).getConstructor().newInstance();
+            } catch (Exception e) {
                 throw new MavenReportException(
-                        "Can't find PMD custom format " + format + ": " + e.getClass().getName(), e );
+                        "Can't find PMD custom format " + format + ": "
+                                + e.getClass().getName(),
+                        e);
             }
         }
 
         return result;
     }
 
-    private Report removeExcludedViolations( Report report )
-            throws MavenReportException
-    {
-        if ( report == null )
-        {
+    private Report removeExcludedViolations(Report report) throws MavenReportException {
+        if (report == null) {
             return null;
         }
 
         ExcludeViolationsFromFile excludeFromFile = new ExcludeViolationsFromFile();
 
-        try
-        {
-            excludeFromFile.loadExcludeFromFailuresData( request.getExcludeFromFailureFile() );
-        }
-        catch ( MojoExecutionException e )
-        {
-            throw new MavenReportException( "Unable to load exclusions", e );
+        try {
+            excludeFromFile.loadExcludeFromFailuresData(request.getExcludeFromFailureFile());
+        } catch (MojoExecutionException e) {
+            throw new MavenReportException("Unable to load exclusions", e);
         }
 
-        LOG.debug( "Removing excluded violations. Using {} configured exclusions.",
-                excludeFromFile.countExclusions() );
+        LOG.debug("Removing excluded violations. Using {} configured exclusions.", excludeFromFile.countExclusions());
         int violationsBefore = report.getViolations().size();
 
-        Report filtered = report.filterViolations( new Predicate<RuleViolation>()
-        {
+        Report filtered = report.filterViolations(new Predicate<RuleViolation>() {
             @Override
-            public boolean test( RuleViolation ruleViolation )
-            {
-                return !excludeFromFile.isExcludedFromFailure( ruleViolation );
+            public boolean test(RuleViolation ruleViolation) {
+                return !excludeFromFile.isExcludedFromFailure(ruleViolation);
             }
-        } );
+        });
 
-        int numberOfExcludedViolations = violationsBefore - filtered.getViolations().size();
-        LOG.debug( "Excluded {} violations.", numberOfExcludedViolations );
+        int numberOfExcludedViolations =
+                violationsBefore - filtered.getViolations().size();
+        LOG.debug("Excluded {} violations.", numberOfExcludedViolations);
         return filtered;
     }
 }
diff --git a/src/main/java/org/apache/maven/plugins/pmd/exec/PmdRequest.java b/src/main/java/org/apache/maven/plugins/pmd/exec/PmdRequest.java
index 0c3a5e9..d1a8099 100644
--- a/src/main/java/org/apache/maven/plugins/pmd/exec/PmdRequest.java
+++ b/src/main/java/org/apache/maven/plugins/pmd/exec/PmdRequest.java
@@ -1,5 +1,3 @@
-package org.apache.maven.plugins.pmd.exec;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.maven.plugins.pmd.exec;
 
 import java.io.File;
 import java.io.Serializable;
@@ -28,13 +27,12 @@
 /**
  * Data object to store all configuration options needed to execute PMD
  * as a separate process.
- * 
+ *
  * <p>This class is intended to be serialized and read back.
- * 
+ *
  * <p>Some properties might be optional and can be <code>null</code>.
  */
-public class PmdRequest implements Serializable
-{
+public class PmdRequest implements Serializable {
     private static final long serialVersionUID = -6324416880563476455L;
 
     private String javaExecutable;
@@ -67,223 +65,172 @@
      * @param language the language
      * @param targetJdk the language version, optional, can be <code>null</code>
      */
-    public void setLanguageAndVersion( String language, String targetJdk )
-    {
-        if ( "java".equals( language ) || null == language )
-        {
+    public void setLanguageAndVersion(String language, String targetJdk) {
+        if ("java".equals(language) || null == language) {
             this.language = "java";
             this.languageVersion = targetJdk;
-        }
-        else if ( "javascript".equals( language ) || "ecmascript".equals( language ) )
-        {
+        } else if ("javascript".equals(language) || "ecmascript".equals(language)) {
             this.language = "ecmascript";
-        }
-        else if ( "jsp".equals( language ) )
-        {
+        } else if ("jsp".equals(language)) {
             this.language = "jsp";
-        }
-        else
-        {
+        } else {
             this.language = language;
         }
     }
 
-    public void setJavaExecutable( String javaExecutable )
-    {
+    public void setJavaExecutable(String javaExecutable) {
         this.javaExecutable = javaExecutable;
     }
 
-    public void setMinimumPriority( int minimumPriority )
-    {
+    public void setMinimumPriority(int minimumPriority) {
         this.minimumPriority = minimumPriority;
     }
 
-    public void setAuxClasspath( String auxClasspath )
-    {
+    public void setAuxClasspath(String auxClasspath) {
         this.auxClasspath = auxClasspath;
     }
 
-    public void setSuppressMarker( String suppressMarker )
-    {
+    public void setSuppressMarker(String suppressMarker) {
         this.suppressMarker = suppressMarker;
     }
 
-    public void setAnalysisCacheLocation( String analysisCacheLocation )
-    {
+    public void setAnalysisCacheLocation(String analysisCacheLocation) {
         this.analysisCacheLocation = analysisCacheLocation;
     }
 
-    public void setRulesets( List<String> rulesets )
-    {
+    public void setRulesets(List<String> rulesets) {
         this.rulesets = rulesets;
     }
 
-    public void setSourceEncoding( String sourceEncoding )
-    {
+    public void setSourceEncoding(String sourceEncoding) {
         this.sourceEncoding = sourceEncoding;
     }
 
-    public void addFiles( Collection<File> files )
-    {
-        this.files.addAll( files );
+    public void addFiles(Collection<File> files) {
+        this.files.addAll(files);
     }
 
-    public void setBenchmarkOutputLocation( String benchmarkOutputLocation )
-    {
+    public void setBenchmarkOutputLocation(String benchmarkOutputLocation) {
         this.benchmarkOutputLocation = benchmarkOutputLocation;
     }
 
-    public void setTargetDirectory( String targetDirectory )
-    {
+    public void setTargetDirectory(String targetDirectory) {
         this.targetDirectory = targetDirectory;
     }
 
-    public void setOutputEncoding( String outputEncoding )
-    {
+    public void setOutputEncoding(String outputEncoding) {
         this.outputEncoding = outputEncoding;
     }
 
-    public void setFormat( String format )
-    {
+    public void setFormat(String format) {
         this.format = format;
     }
 
-    public void setShowPmdLog( boolean showPmdLog )
-    {
+    public void setShowPmdLog(boolean showPmdLog) {
         this.showPmdLog = showPmdLog;
     }
 
-    public void setLogLevel( String logLevel )
-    {
+    public void setLogLevel(String logLevel) {
         this.logLevel = logLevel;
     }
 
-    public void setSkipPmdError( boolean skipPmdError )
-    {
+    public void setSkipPmdError(boolean skipPmdError) {
         this.skipPmdError = skipPmdError;
     }
 
-    public void setIncludeXmlInSite( boolean includeXmlInSite )
-    {
+    public void setIncludeXmlInSite(boolean includeXmlInSite) {
         this.includeXmlInSite = includeXmlInSite;
     }
 
-    public void setReportOutputDirectory( String reportOutputDirectory )
-    {
+    public void setReportOutputDirectory(String reportOutputDirectory) {
         this.reportOutputDirectory = reportOutputDirectory;
     }
 
-    public void setExcludeFromFailureFile( String excludeFromFailureFile )
-    {
+    public void setExcludeFromFailureFile(String excludeFromFailureFile) {
         this.excludeFromFailureFile = excludeFromFailureFile;
     }
 
-
-
-
-
-    public String getJavaExecutable()
-    {
+    public String getJavaExecutable() {
         return javaExecutable;
     }
 
-    public String getLanguage()
-    {
+    public String getLanguage() {
         return language;
     }
 
-    public String getLanguageVersion()
-    {
+    public String getLanguageVersion() {
         return languageVersion;
     }
 
-    public int getMinimumPriority()
-    {
+    public int getMinimumPriority() {
         return minimumPriority;
     }
 
-    public String getAuxClasspath()
-    {
+    public String getAuxClasspath() {
         return auxClasspath;
     }
 
-    public String getSuppressMarker()
-    {
+    public String getSuppressMarker() {
         return suppressMarker;
     }
 
-    public String getAnalysisCacheLocation()
-    {
+    public String getAnalysisCacheLocation() {
         return analysisCacheLocation;
     }
 
-    public List<String> getRulesets()
-    {
+    public List<String> getRulesets() {
         return rulesets;
     }
 
-    public String getSourceEncoding()
-    {
+    public String getSourceEncoding() {
         return sourceEncoding;
     }
 
-    public List<File> getFiles()
-    {
+    public List<File> getFiles() {
         return files;
     }
 
-    public String getBenchmarkOutputLocation()
-    {
+    public String getBenchmarkOutputLocation() {
         return benchmarkOutputLocation;
     }
 
-    public String getTargetDirectory()
-    {
+    public String getTargetDirectory() {
         return targetDirectory;
     }
 
-    public String getOutputEncoding()
-    {
+    public String getOutputEncoding() {
         return outputEncoding;
     }
 
-    public String getFormat()
-    {
+    public String getFormat() {
         return format;
     }
 
-    public boolean isShowPmdLog()
-    {
+    public boolean isShowPmdLog() {
         return showPmdLog;
     }
 
-    public String getLogLevel()
-    {
+    public String getLogLevel() {
         return logLevel;
     }
 
-    public boolean isDebugEnabled()
-    {
-        return "debug".equals( logLevel );
+    public boolean isDebugEnabled() {
+        return "debug".equals(logLevel);
     }
 
-    public boolean isSkipPmdError()
-    {
+    public boolean isSkipPmdError() {
         return skipPmdError;
     }
 
-    public boolean isIncludeXmlInSite()
-    {
+    public boolean isIncludeXmlInSite() {
         return includeXmlInSite;
     }
 
-    public String getReportOutputDirectory()
-    {
+    public String getReportOutputDirectory() {
         return reportOutputDirectory;
     }
 
-    public String getExcludeFromFailureFile()
-    {
+    public String getExcludeFromFailureFile() {
         return excludeFromFailureFile;
     }
 }
diff --git a/src/main/java/org/apache/maven/plugins/pmd/exec/PmdResult.java b/src/main/java/org/apache/maven/plugins/pmd/exec/PmdResult.java
index 667b849..15cbe58 100644
--- a/src/main/java/org/apache/maven/plugins/pmd/exec/PmdResult.java
+++ b/src/main/java/org/apache/maven/plugins/pmd/exec/PmdResult.java
@@ -1,5 +1,3 @@
-package org.apache.maven.plugins.pmd.exec;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.maven.plugins.pmd.exec;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -40,103 +39,81 @@
 /**
  * Provides access to the result of the pmd analysis.
  */
-public class PmdResult
-{
+public class PmdResult {
     private final List<ProcessingError> processingErrors = new ArrayList<>();
     private final List<Violation> violations = new ArrayList<>();
     private final List<SuppressedViolation> suppressedViolations = new ArrayList<>();
 
     public static final PmdResult EMPTY = new PmdResult();
 
-    private PmdResult()
-    {
+    private PmdResult() {}
+
+    public PmdResult(File pmdFile, String encoding) throws MavenReportException {
+        loadResult(pmdFile, encoding);
     }
 
-    public PmdResult( File pmdFile, String encoding ) throws MavenReportException
-    {
-        loadResult( pmdFile, encoding );
-    }
-
-    public boolean hasViolations()
-    {
+    public boolean hasViolations() {
         return !violations.isEmpty();
     }
 
-    private void loadResult( File pmdFile, String encoding ) throws MavenReportException
-    {
-        try ( Reader reader1 = new BomFilter( encoding, new InputStreamReader(
-                new FileInputStream( pmdFile ), encoding ) ) )
-        {
+    private void loadResult(File pmdFile, String encoding) throws MavenReportException {
+        try (Reader reader1 = new BomFilter(encoding, new InputStreamReader(new FileInputStream(pmdFile), encoding))) {
             PmdXpp3Reader reader = new PmdXpp3Reader();
-            PmdErrorDetail details = reader.read( reader1, false );
-            processingErrors.addAll( details.getErrors() );
-            suppressedViolations.addAll( details.getSuppressedViolations() );
+            PmdErrorDetail details = reader.read(reader1, false);
+            processingErrors.addAll(details.getErrors());
+            suppressedViolations.addAll(details.getSuppressedViolations());
 
-            for ( PmdFile file : details.getFiles() )
-            {
+            for (PmdFile file : details.getFiles()) {
                 String filename = file.getName();
-                for ( Violation violation : file.getViolations() )
-                {
-                    violation.setFileName( filename );
-                    violations.add( violation );
+                for (Violation violation : file.getViolations()) {
+                    violation.setFileName(filename);
+                    violations.add(violation);
                 }
             }
-        }
-        catch ( Exception e )
-        {
-            throw new MavenReportException( e.getMessage(), e );
+        } catch (Exception e) {
+            throw new MavenReportException(e.getMessage(), e);
         }
     }
 
     // Note: This seems to be a bug in PMD's XMLRenderer. The BOM is rendered multiple times.
     // once at the beginning of the file, which is Ok, but also in the middle of the file.
     // This filter just skips all BOMs if the encoding is not UTF-8
-    private static class BomFilter extends FilterReader
-    {
+    private static class BomFilter extends FilterReader {
         private static final char BOM = '\uFEFF';
         private final boolean filter;
 
-        BomFilter( String encoding, Reader in )
-        {
-            super( in );
-            filter = !"UTF-8".equalsIgnoreCase( encoding );
+        BomFilter(String encoding, Reader in) {
+            super(in);
+            filter = !"UTF-8".equalsIgnoreCase(encoding);
         }
 
         @Override
-        public int read() throws IOException
-        {
+        public int read() throws IOException {
             int c = super.read();
 
-            if ( !filter )
-            {
+            if (!filter) {
                 return c;
             }
 
-            while ( c != -1 && c == BOM )
-            {
+            while (c != -1 && c == BOM) {
                 c = super.read();
             }
             return c;
         }
 
         @Override
-        public int read( char[] cbuf, int off, int len ) throws IOException
-        {
-            int count = super.read( cbuf, off, len );
+        public int read(char[] cbuf, int off, int len) throws IOException {
+            int count = super.read(cbuf, off, len);
 
-            if ( !filter )
-            {
+            if (!filter) {
                 return count;
             }
 
-            if ( count != -1 )
-            {
-                for ( int i = off; i < off + count; i++ )
-                {
-                    if ( cbuf[i] == BOM )
-                    {
+            if (count != -1) {
+                for (int i = off; i < off + count; i++) {
+                    if (cbuf[i] == BOM) {
                         // shift the content one char to the left
-                        System.arraycopy( cbuf, i + 1, cbuf, i, off + count - 1 - i );
+                        System.arraycopy(cbuf, i + 1, cbuf, i, off + count - 1 - i);
                         count--;
                     }
                 }
@@ -145,18 +122,15 @@
         }
     }
 
-    public Collection<Violation> getViolations()
-    {
+    public Collection<Violation> getViolations() {
         return violations;
     }
 
-    public Collection<SuppressedViolation> getSuppressedViolations()
-    {
+    public Collection<SuppressedViolation> getSuppressedViolations() {
         return suppressedViolations;
     }
 
-    public Collection<ProcessingError> getErrors()
-    {
+    public Collection<ProcessingError> getErrors() {
         return processingErrors;
     }
 }
diff --git a/src/test/java/org/apache/maven/plugins/pmd/AbstractPmdReportTestCase.java b/src/test/java/org/apache/maven/plugins/pmd/AbstractPmdReportTestCase.java
index f0d5524..fce2159 100644
--- a/src/test/java/org/apache/maven/plugins/pmd/AbstractPmdReportTestCase.java
+++ b/src/test/java/org/apache/maven/plugins/pmd/AbstractPmdReportTestCase.java
@@ -1,5 +1,3 @@
-package org.apache.maven.plugins.pmd;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.maven.plugins.pmd;
 
 import java.io.File;
 import java.io.IOException;
@@ -41,9 +40,7 @@
  * @version $Id$
  * @since 2.5
  */
-public abstract class AbstractPmdReportTestCase
-    extends AbstractMojoTestCase
-{
+public abstract class AbstractPmdReportTestCase extends AbstractMojoTestCase {
     private ArtifactStubFactory artifactStubFactory;
 
     /**
@@ -52,13 +49,11 @@
     private MavenProject testMavenProject;
 
     @Override
-    protected void setUp()
-        throws Exception
-    {
+    protected void setUp() throws Exception {
         super.setUp();
-        CapturingPrintStream.init( true );
+        CapturingPrintStream.init(true);
 
-        artifactStubFactory = new DependencyArtifactStubFactory( getTestFile( "target" ), true, false );
+        artifactStubFactory = new DependencyArtifactStubFactory(getTestFile("target"), true, false);
         artifactStubFactory.getWorkingDir().mkdirs();
     }
 
@@ -67,8 +62,7 @@
      *
      * @return the maven project
      */
-    protected MavenProject getTestMavenProject()
-    {
+    protected MavenProject getTestMavenProject() {
         return testMavenProject;
     }
 
@@ -79,15 +73,13 @@
      * @return the generated report as file
      * @throws IOException if the return file doesnt exist
      */
-    protected File getGeneratedReport( String name )
-        throws IOException
-    {
-        String outputDirectory = getBasedir() + "/target/test/unit/" + getTestMavenProject().getArtifactId();
+    protected File getGeneratedReport(String name) throws IOException {
+        String outputDirectory =
+                getBasedir() + "/target/test/unit/" + getTestMavenProject().getArtifactId();
 
-        File report = new File( outputDirectory, name );
-        if ( !report.exists() )
-        {
-            throw new IOException( "File not found. Attempted: " + report );
+        File report = new File(outputDirectory, name);
+        if (!report.exists()) {
+            throw new IOException("File not found. Attempted: " + report);
         }
 
         return report;
@@ -101,58 +93,51 @@
      * @return the generated HTML file
      * @throws Exception if any
      */
-    protected File generateReport( String goal, String pluginXml )
-        throws Exception
-    {
-        File pluginXmlFile = new File( getBasedir(), "src/test/resources/unit/" + pluginXml );
-        AbstractPmdReport mojo  = createReportMojo( goal, pluginXmlFile );
-        return generateReport( mojo, pluginXmlFile );
+    protected File generateReport(String goal, String pluginXml) throws Exception {
+        File pluginXmlFile = new File(getBasedir(), "src/test/resources/unit/" + pluginXml);
+        AbstractPmdReport mojo = createReportMojo(goal, pluginXmlFile);
+        return generateReport(mojo, pluginXmlFile);
     }
 
-    protected AbstractPmdReport createReportMojo( String goal, File pluginXmlFile )
-        throws Exception
-    {
-        AbstractPmdReport mojo = (AbstractPmdReport) lookupMojo( goal, pluginXmlFile );
-        assertNotNull( "Mojo not found.", mojo );
+    protected AbstractPmdReport createReportMojo(String goal, File pluginXmlFile) throws Exception {
+        AbstractPmdReport mojo = (AbstractPmdReport) lookupMojo(goal, pluginXmlFile);
+        assertNotNull("Mojo not found.", mojo);
 
-        LegacySupport legacySupport = lookup( LegacySupport.class );
-        legacySupport.setSession( newMavenSession( new MavenProjectStub() ) );
+        LegacySupport legacySupport = lookup(LegacySupport.class);
+        legacySupport.setSession(newMavenSession(new MavenProjectStub()));
         DefaultRepositorySystemSession repoSession =
-            (DefaultRepositorySystemSession) legacySupport.getRepositorySession();
-        repoSession.setLocalRepositoryManager( new SimpleLocalRepositoryManagerFactory().newInstance( repoSession, new LocalRepository( artifactStubFactory.getWorkingDir() ) ) );
+                (DefaultRepositorySystemSession) legacySupport.getRepositorySession();
+        repoSession.setLocalRepositoryManager(new SimpleLocalRepositoryManagerFactory()
+                .newInstance(repoSession, new LocalRepository(artifactStubFactory.getWorkingDir())));
 
-        setVariableValueToObject( mojo, "session", legacySupport.getSession() );
-        setVariableValueToObject( mojo, "remoteRepositories", mojo.getProject().getRemoteArtifactRepositories() );
+        setVariableValueToObject(mojo, "session", legacySupport.getSession());
+        setVariableValueToObject(mojo, "remoteRepositories", mojo.getProject().getRemoteArtifactRepositories());
         return mojo;
     }
 
-    protected File generateReport( AbstractPmdReport mojo, File pluginXmlFile )
-        throws Exception
-    {
+    protected File generateReport(AbstractPmdReport mojo, File pluginXmlFile) throws Exception {
         mojo.execute();
 
-        ProjectBuilder builder = lookup( ProjectBuilder.class );
+        ProjectBuilder builder = lookup(ProjectBuilder.class);
 
         ProjectBuildingRequest buildingRequest = new DefaultProjectBuildingRequest();
-        buildingRequest.setRepositorySession( lookup( LegacySupport.class ).getRepositorySession() );
+        buildingRequest.setRepositorySession(lookup(LegacySupport.class).getRepositorySession());
 
-        testMavenProject = builder.build( pluginXmlFile, buildingRequest ).getProject();
+        testMavenProject = builder.build(pluginXmlFile, buildingRequest).getProject();
 
         File outputDir = mojo.getReportOutputDirectory();
         String filename = mojo.getOutputName() + ".html";
 
-        return new File( outputDir, filename );
+        return new File(outputDir, filename);
     }
 
     /**
      * Read the contents of the specified file object into a string
      */
-    protected String readFile( File pmdTestDir, String fileName ) throws IOException
-    {
-        return new String( Files.readAllBytes( pmdTestDir.toPath().resolve( fileName ) ) );
+    protected String readFile(File pmdTestDir, String fileName) throws IOException {
+        return new String(Files.readAllBytes(pmdTestDir.toPath().resolve(fileName)));
     }
 
-
     /**
      * Checks, whether the string <code>contained</code> is contained in
      * the given <code>text</code> ignoring case.
@@ -161,8 +146,7 @@
      * @param contains the string, the should be searched
      * @return <code>true</code> if the string is contained, otherwise <code>false</code>.
      */
-    public static boolean lowerCaseContains( String text, String contains )
-    {
-        return text.toLowerCase( Locale.ROOT ).contains( contains.toLowerCase( Locale.ROOT ) );
+    public static boolean lowerCaseContains(String text, String contains) {
+        return text.toLowerCase(Locale.ROOT).contains(contains.toLowerCase(Locale.ROOT));
     }
 }
diff --git a/src/test/java/org/apache/maven/plugins/pmd/CapturingPrintStream.java b/src/test/java/org/apache/maven/plugins/pmd/CapturingPrintStream.java
index 272a302..f22d8fa 100644
--- a/src/test/java/org/apache/maven/plugins/pmd/CapturingPrintStream.java
+++ b/src/test/java/org/apache/maven/plugins/pmd/CapturingPrintStream.java
@@ -1,5 +1,3 @@
-package org.apache.maven.plugins.pmd;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -9,7 +7,7 @@
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
  *
- *  http://www.apache.org/licenses/LICENSE-2.0
+ *   http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
@@ -18,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.maven.plugins.pmd;
 
 import java.io.PrintStream;
 
@@ -30,54 +29,44 @@
     private boolean quiet;
     private StringBuilder buffer = new StringBuilder();
 
-    private CapturingPrintStream( boolean quiet ) {
-        super( System.out, true );
+    private CapturingPrintStream(boolean quiet) {
+        super(System.out, true);
         this.quiet = quiet;
     }
 
     @Override
-    public void println( String x )
-    {
-        if ( !quiet )
-        {
-            super.println( x );
+    public void println(String x) {
+        if (!quiet) {
+            super.println(x);
         }
-        buffer.append( x ).append( System.lineSeparator() );
+        buffer.append(x).append(System.lineSeparator());
     }
 
-    public static void init( boolean quiet )
-    {
+    public static void init(boolean quiet) {
         CapturingPrintStream capture = get();
-        if ( capture != null )
-        {
-            capture.buffer.setLength( 0 );
+        if (capture != null) {
+            capture.buffer.setLength(0);
             capture.quiet = quiet;
-        }
-        else
-        {
-            capture = new CapturingPrintStream( quiet );
-            System.setOut( capture );
+        } else {
+            capture = new CapturingPrintStream(quiet);
+            System.setOut(capture);
             MavenSlf4jSimpleFriend.init();
         }
     }
 
-    public static CapturingPrintStream get()
-    {
-        if ( System.out instanceof CapturingPrintStream )
-        {
+    public static CapturingPrintStream get() {
+        if (System.out instanceof CapturingPrintStream) {
             return (CapturingPrintStream) System.out;
         }
         return null;
     }
 
-    public static String getOutput()
-    {
+    public static String getOutput() {
         CapturingPrintStream stream = get();
-        if ( stream != null )
-        {
+        if (stream != null) {
             stream.flush();
             return stream.buffer.toString();
         }
         return "";
     }
-}
\ No newline at end of file
+}
diff --git a/src/test/java/org/apache/maven/plugins/pmd/CpdReportTest.java b/src/test/java/org/apache/maven/plugins/pmd/CpdReportTest.java
index efb3d58..ac49a29 100644
--- a/src/test/java/org/apache/maven/plugins/pmd/CpdReportTest.java
+++ b/src/test/java/org/apache/maven/plugins/pmd/CpdReportTest.java
@@ -1,5 +1,3 @@
-package org.apache.maven.plugins.pmd;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -9,7 +7,7 @@
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
  *
- *  http://www.apache.org/licenses/LICENSE-2.0
+ *   http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
@@ -18,6 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.maven.plugins.pmd;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
 
 import java.io.BufferedReader;
 import java.io.File;
@@ -25,9 +27,6 @@
 import java.io.IOException;
 import java.util.Locale;
 
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-
 import org.apache.commons.lang3.StringUtils;
 import org.codehaus.plexus.util.FileUtils;
 import org.w3c.dom.Document;
@@ -36,19 +35,15 @@
  * @author <a href="mailto:oching@apache.org">Maria Odea Ching</a>
  * @version $Id$
  */
-public class CpdReportTest
-    extends AbstractPmdReportTestCase
-{
+public class CpdReportTest extends AbstractPmdReportTestCase {
     /**
      * {@inheritDoc}
      */
     @Override
-    protected void setUp()
-        throws Exception
-    {
+    protected void setUp() throws Exception {
         super.setUp();
-        Locale.setDefault( Locale.ENGLISH );
-        FileUtils.deleteDirectory( new File( getBasedir(), "target/test/unit" ) );
+        Locale.setDefault(Locale.ENGLISH);
+        FileUtils.deleteDirectory(new File(getBasedir(), "target/test/unit"));
     }
 
     /**
@@ -56,26 +51,25 @@
      *
      * @throws Exception
      */
-    public void testDefaultConfiguration()
-        throws Exception
-    {
-        File generatedReport = generateReport( "cpd", "default-configuration/cpd-default-configuration-plugin-config.xml" );
-        assertTrue( FileUtils.fileExists( generatedReport.getAbsolutePath() ) );
+    public void testDefaultConfiguration() throws Exception {
+        File generatedReport =
+                generateReport("cpd", "default-configuration/cpd-default-configuration-plugin-config.xml");
+        assertTrue(FileUtils.fileExists(generatedReport.getAbsolutePath()));
 
         // check if the CPD files were generated
-        File generatedFile = new File( getBasedir(), "target/test/unit/default-configuration/target/cpd.xml" );
-        assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
+        File generatedFile = new File(getBasedir(), "target/test/unit/default-configuration/target/cpd.xml");
+        assertTrue(FileUtils.fileExists(generatedFile.getAbsolutePath()));
 
         // check the contents of cpd.html
-        String str = readFile( generatedReport );
-        assertTrue( lowerCaseContains( str, "AppSample.java" ) );
-        assertTrue( lowerCaseContains( str, "App.java" ) );
-        assertTrue( lowerCaseContains( str, "public String dup( String str )" ) );
-        assertTrue( lowerCaseContains( str, "tmp = tmp + str.substring( i, i + 1);" ) );
+        String str = readFile(generatedReport);
+        assertTrue(lowerCaseContains(str, "AppSample.java"));
+        assertTrue(lowerCaseContains(str, "App.java"));
+        assertTrue(lowerCaseContains(str, "public String dup( String str )"));
+        assertTrue(lowerCaseContains(str, "tmp = tmp + str.substring( i, i + 1);"));
 
         // the version should be logged
         String output = CapturingPrintStream.getOutput();
-        assertTrue ( output.contains( "PMD version: " + AbstractPmdReport.getPmdVersion() ) );
+        assertTrue(output.contains("PMD version: " + AbstractPmdReport.getPmdVersion()));
     }
 
     /**
@@ -83,23 +77,21 @@
      *
      * @throws Exception
      */
-    public void testTxtFormat()
-        throws Exception
-    {
-        generateReport( "cpd", "custom-configuration/cpd-txt-format-configuration-plugin-config.xml" );
+    public void testTxtFormat() throws Exception {
+        generateReport("cpd", "custom-configuration/cpd-txt-format-configuration-plugin-config.xml");
 
         // check if the CPD files were generated
-        File generatedFile = new File( getBasedir(), "target/test/unit/custom-configuration/target/cpd.xml" );
-        assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
-        generatedFile = new File( getBasedir(), "target/test/unit/custom-configuration/target/cpd.txt" );
-        assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
+        File generatedFile = new File(getBasedir(), "target/test/unit/custom-configuration/target/cpd.xml");
+        assertTrue(FileUtils.fileExists(generatedFile.getAbsolutePath()));
+        generatedFile = new File(getBasedir(), "target/test/unit/custom-configuration/target/cpd.txt");
+        assertTrue(FileUtils.fileExists(generatedFile.getAbsolutePath()));
 
         // check the contents of cpd.txt
-        String str = readFile( generatedFile );
+        String str = readFile(generatedFile);
         // Contents that should NOT be in the report
-        assertFalse( lowerCaseContains( str, "public static void main( String[] args )" ) );
+        assertFalse(lowerCaseContains(str, "public static void main( String[] args )"));
         // Contents that should be in the report
-        assertTrue( lowerCaseContains( str, "public void duplicateMethod( int i )" ) );
+        assertTrue(lowerCaseContains(str, "public void duplicateMethod( int i )"));
     }
 
     /**
@@ -107,24 +99,22 @@
      *
      * @throws Exception
      */
-    public void testCustomConfiguration()
-        throws Exception
-    {
-        File generatedReport = generateReport( "cpd", "custom-configuration/cpd-custom-configuration-plugin-config.xml" );
-        assertTrue( FileUtils.fileExists( generatedReport.getAbsolutePath() ) );
+    public void testCustomConfiguration() throws Exception {
+        File generatedReport = generateReport("cpd", "custom-configuration/cpd-custom-configuration-plugin-config.xml");
+        assertTrue(FileUtils.fileExists(generatedReport.getAbsolutePath()));
 
         // check if the CPD files were generated
-        File generatedFile = new File( getBasedir(), "target/test/unit/custom-configuration/target/cpd.csv" );
-        assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
+        File generatedFile = new File(getBasedir(), "target/test/unit/custom-configuration/target/cpd.csv");
+        assertTrue(FileUtils.fileExists(generatedFile.getAbsolutePath()));
 
-        String str = readFile( generatedReport );
+        String str = readFile(generatedReport);
         // Contents that should NOT be in the report
-        assertFalse( lowerCaseContains( str, "/Sample.java" ) );
-        assertFalse( lowerCaseContains( str, "public void duplicateMethod( int i )" ) );
+        assertFalse(lowerCaseContains(str, "/Sample.java"));
+        assertFalse(lowerCaseContains(str, "public void duplicateMethod( int i )"));
         // Contents that should be in the report
-        assertTrue( lowerCaseContains( str, "AnotherSample.java" ) );
-        assertTrue( lowerCaseContains( str, "public static void main( String[] args )" ) );
-        assertTrue( lowerCaseContains( str, "private String unusedMethod(" ) );
+        assertTrue(lowerCaseContains(str, "AnotherSample.java"));
+        assertTrue(lowerCaseContains(str, "public static void main( String[] args )"));
+        assertTrue(lowerCaseContains(str, "private String unusedMethod("));
     }
 
     /**
@@ -132,24 +122,19 @@
      *
      * @throws Exception
      */
-    public void testInvalidFormat()
-        throws Exception
-    {
-        try
-        {
-            File testPom =
-                    new File( getBasedir(), "src/test/resources/unit/invalid-format/cpd-invalid-format-plugin-config.xml" );
-            AbstractPmdReport mojo  = createReportMojo( "cpd", testPom );
-            setVariableValueToObject( mojo, "compileSourceRoots", mojo.getProject().getCompileSourceRoots() );
-            generateReport( mojo, testPom );
+    public void testInvalidFormat() throws Exception {
+        try {
+            File testPom = new File(
+                    getBasedir(), "src/test/resources/unit/invalid-format/cpd-invalid-format-plugin-config.xml");
+            AbstractPmdReport mojo = createReportMojo("cpd", testPom);
+            setVariableValueToObject(
+                    mojo, "compileSourceRoots", mojo.getProject().getCompileSourceRoots());
+            generateReport(mojo, testPom);
 
-            fail( "MavenReportException must be thrown" );
+            fail("MavenReportException must be thrown");
+        } catch (Exception e) {
+            assertTrue(true);
         }
-        catch ( Exception e )
-        {
-            assertTrue( true );
-        }
-
     }
 
     /**
@@ -159,147 +144,123 @@
      * @return a String object that contains the contents of the file
      * @throws java.io.IOException
      */
-    private String readFile( File file )
-        throws IOException
-    {
+    private String readFile(File file) throws IOException {
         String strTmp;
-        StringBuilder str = new StringBuilder( (int) file.length() );
-        try ( BufferedReader in = new BufferedReader( new FileReader( file ) ) )
-        {
-            while ( ( strTmp = in.readLine() ) != null )
-            {
-                str.append( ' ' );
-                str.append( strTmp );
+        StringBuilder str = new StringBuilder((int) file.length());
+        try (BufferedReader in = new BufferedReader(new FileReader(file))) {
+            while ((strTmp = in.readLine()) != null) {
+                str.append(' ');
+                str.append(strTmp);
             }
         }
 
         return str.toString();
     }
 
-    public void testWriteNonHtml()
-        throws Exception
-    {
-        generateReport( "cpd", "default-configuration/cpd-default-configuration-plugin-config.xml" );
+    public void testWriteNonHtml() throws Exception {
+        generateReport("cpd", "default-configuration/cpd-default-configuration-plugin-config.xml");
 
         // check if the CPD files were generated
-        File generatedFile = new File( getBasedir(), "target/test/unit/default-configuration/target/cpd.xml" );
-        assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
+        File generatedFile = new File(getBasedir(), "target/test/unit/default-configuration/target/cpd.xml");
+        assertTrue(FileUtils.fileExists(generatedFile.getAbsolutePath()));
 
         DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
-        Document pmdCpdDocument = builder.parse( generatedFile );
-        assertNotNull( pmdCpdDocument );
+        Document pmdCpdDocument = builder.parse(generatedFile);
+        assertNotNull(pmdCpdDocument);
 
-        String str = readFile( generatedFile );
-        assertTrue( lowerCaseContains( str, "AppSample.java" ) );
-        assertTrue( lowerCaseContains( str, "App.java" ) );
-        assertTrue( lowerCaseContains( str, "public String dup( String str )" ) );
-        assertTrue( lowerCaseContains( str, "tmp = tmp + str.substring( i, i + 1);" ) );
+        String str = readFile(generatedFile);
+        assertTrue(lowerCaseContains(str, "AppSample.java"));
+        assertTrue(lowerCaseContains(str, "App.java"));
+        assertTrue(lowerCaseContains(str, "public String dup( String str )"));
+        assertTrue(lowerCaseContains(str, "tmp = tmp + str.substring( i, i + 1);"));
     }
 
     /**
      * verify the cpd.xml file is included in the site when requested.
      * @throws Exception
      */
-    public void testIncludeXmlInSite()
-            throws Exception
-    {
-        generateReport( "cpd", "default-configuration/cpd-report-include-xml-in-site-plugin-config.xml" );
+    public void testIncludeXmlInSite() throws Exception {
+        generateReport("cpd", "default-configuration/cpd-report-include-xml-in-site-plugin-config.xml");
 
-        File generatedFile = new File( getBasedir(), "target/test/unit/default-configuration/target/cpd.xml" );
-        assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
+        File generatedFile = new File(getBasedir(), "target/test/unit/default-configuration/target/cpd.xml");
+        assertTrue(FileUtils.fileExists(generatedFile.getAbsolutePath()));
 
         DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
-        Document pmdCpdDocument = builder.parse( generatedFile );
-        assertNotNull( pmdCpdDocument );
+        Document pmdCpdDocument = builder.parse(generatedFile);
+        assertNotNull(pmdCpdDocument);
 
-        String str = readFile( generatedFile );
-        assertTrue( str.contains( "</pmd-cpd>" ) );
+        String str = readFile(generatedFile);
+        assertTrue(str.contains("</pmd-cpd>"));
 
-        File siteReport = new File( getBasedir(), "target/test/unit/default-configuration/target/site/cpd.xml" );
-        assertTrue( FileUtils.fileExists( siteReport.getAbsolutePath() ) );
-        String siteReportContent = readFile( siteReport );
-        assertTrue( siteReportContent.contains( "</pmd-cpd>" ) );
-        assertEquals( str, siteReportContent );
+        File siteReport = new File(getBasedir(), "target/test/unit/default-configuration/target/site/cpd.xml");
+        assertTrue(FileUtils.fileExists(siteReport.getAbsolutePath()));
+        String siteReportContent = readFile(siteReport);
+        assertTrue(siteReportContent.contains("</pmd-cpd>"));
+        assertEquals(str, siteReportContent);
     }
 
-
-    public void testSkipEmptyReportConfiguration()
-        throws Exception
-    {
+    public void testSkipEmptyReportConfiguration() throws Exception {
         // verify the generated files do not exist because PMD was skipped
-        File generatedReport = generateReport( "cpd", "empty-report/cpd-skip-empty-report-plugin-config.xml" );
-        assertFalse( FileUtils.fileExists( generatedReport.getAbsolutePath() ) );
+        File generatedReport = generateReport("cpd", "empty-report/cpd-skip-empty-report-plugin-config.xml");
+        assertFalse(FileUtils.fileExists(generatedReport.getAbsolutePath()));
     }
 
-    public void testEmptyReportConfiguration()
-        throws Exception
-    {
+    public void testEmptyReportConfiguration() throws Exception {
         // verify the generated files do exist, even if there are no violations
-        File generatedReport = generateReport( "cpd", "empty-report/cpd-empty-report-plugin-config.xml" );
-        assertTrue( FileUtils.fileExists( generatedReport.getAbsolutePath() ) );
+        File generatedReport = generateReport("cpd", "empty-report/cpd-empty-report-plugin-config.xml");
+        assertTrue(FileUtils.fileExists(generatedReport.getAbsolutePath()));
 
-        String str = readFile( generatedReport );
-        assertFalse( lowerCaseContains( str, "Hello.java" ) );
-        assertTrue( str.contains( "CPD found no problems in your source code." ) );
+        String str = readFile(generatedReport);
+        assertFalse(lowerCaseContains(str, "Hello.java"));
+        assertTrue(str.contains("CPD found no problems in your source code."));
     }
 
-    public void testCpdEncodingConfiguration()
-        throws Exception
-    {
-        String originalEncoding = System.getProperty( "file.encoding" );
-        try
-        {
-            System.setProperty( "file.encoding", "UTF-16" );
+    public void testCpdEncodingConfiguration() throws Exception {
+        String originalEncoding = System.getProperty("file.encoding");
+        try {
+            System.setProperty("file.encoding", "UTF-16");
 
-            generateReport( "cpd", "default-configuration/cpd-default-configuration-plugin-config.xml" );
+            generateReport("cpd", "default-configuration/cpd-default-configuration-plugin-config.xml");
 
             // check if the CPD files were generated
-            File generatedFile = new File( getBasedir(), "target/test/unit/default-configuration/target/cpd.xml" );
-            assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
-            String str = readFile( generatedFile );
-            assertTrue( lowerCaseContains( str, "AppSample.java" ) );
-        }
-        finally
-        {
-            System.setProperty( "file.encoding", originalEncoding );
+            File generatedFile = new File(getBasedir(), "target/test/unit/default-configuration/target/cpd.xml");
+            assertTrue(FileUtils.fileExists(generatedFile.getAbsolutePath()));
+            String str = readFile(generatedFile);
+            assertTrue(lowerCaseContains(str, "AppSample.java"));
+        } finally {
+            System.setProperty("file.encoding", originalEncoding);
         }
     }
 
-    public void testCpdJavascriptConfiguration()
-        throws Exception
-    {
-        generateReport( "cpd", "default-configuration/cpd-javascript-plugin-config.xml" );
+    public void testCpdJavascriptConfiguration() throws Exception {
+        generateReport("cpd", "default-configuration/cpd-javascript-plugin-config.xml");
 
         // verify  the generated file to exist and violations are reported
-        File generatedFile = new File( getBasedir(), "target/test/unit/default-configuration/target/cpd.xml" );
-        assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
-        String str = readFile( generatedFile );
-        assertTrue( lowerCaseContains( str, "Sample.js" ) );
-        assertTrue( lowerCaseContains( str, "SampleDup.js" ) );
+        File generatedFile = new File(getBasedir(), "target/test/unit/default-configuration/target/cpd.xml");
+        assertTrue(FileUtils.fileExists(generatedFile.getAbsolutePath()));
+        String str = readFile(generatedFile);
+        assertTrue(lowerCaseContains(str, "Sample.js"));
+        assertTrue(lowerCaseContains(str, "SampleDup.js"));
     }
 
-    public void testCpdJspConfiguration()
-            throws Exception
-    {
-        generateReport( "cpd", "default-configuration/cpd-jsp-plugin-config.xml" );
+    public void testCpdJspConfiguration() throws Exception {
+        generateReport("cpd", "default-configuration/cpd-jsp-plugin-config.xml");
 
         // verify  the generated file to exist and violations are reported
-        File generatedFile = new File( getBasedir(), "target/test/unit/default-configuration/target/cpd.xml" );
-        assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
-        String str = readFile( generatedFile );
-        assertTrue( lowerCaseContains( str, "sample.jsp" ) );
-        assertTrue( lowerCaseContains( str, "sampleDup.jsp" ) );
+        File generatedFile = new File(getBasedir(), "target/test/unit/default-configuration/target/cpd.xml");
+        assertTrue(FileUtils.fileExists(generatedFile.getAbsolutePath()));
+        String str = readFile(generatedFile);
+        assertTrue(lowerCaseContains(str, "sample.jsp"));
+        assertTrue(lowerCaseContains(str, "sampleDup.jsp"));
     }
 
-    public void testExclusionsConfiguration()
-            throws Exception
-    {
-        generateReport( "cpd", "default-configuration/cpd-report-cpd-exclusions-configuration-plugin-config.xml" );
+    public void testExclusionsConfiguration() throws Exception {
+        generateReport("cpd", "default-configuration/cpd-report-cpd-exclusions-configuration-plugin-config.xml");
 
         // verify  the generated file to exist and no duplications are reported
-        File generatedFile = new File( getBasedir(), "target/test/unit/default-configuration/target/cpd.xml" );
-        assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
-        String str = readFile( generatedFile );
-        assertEquals( 0, StringUtils.countMatches( str, "<duplication" ) );
+        File generatedFile = new File(getBasedir(), "target/test/unit/default-configuration/target/cpd.xml");
+        assertTrue(FileUtils.fileExists(generatedFile.getAbsolutePath()));
+        String str = readFile(generatedFile);
+        assertEquals(0, StringUtils.countMatches(str, "<duplication"));
     }
 }
diff --git a/src/test/java/org/apache/maven/plugins/pmd/CpdViolationCheckMojoTest.java b/src/test/java/org/apache/maven/plugins/pmd/CpdViolationCheckMojoTest.java
index 31adb8c..5d7db5b 100644
--- a/src/test/java/org/apache/maven/plugins/pmd/CpdViolationCheckMojoTest.java
+++ b/src/test/java/org/apache/maven/plugins/pmd/CpdViolationCheckMojoTest.java
@@ -1,5 +1,3 @@
-package org.apache.maven.plugins.pmd;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -9,7 +7,7 @@
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
  *
- *  http://www.apache.org/licenses/LICENSE-2.0
+ *   http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
@@ -18,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.maven.plugins.pmd;
 
 import java.io.File;
 
@@ -25,81 +24,65 @@
  * @author <a href="mailto:oching@apache.org">Maria Odea Ching</a>
  * @version $Id$
  */
-public class CpdViolationCheckMojoTest
-    extends AbstractPmdReportTestCase
-{
+public class CpdViolationCheckMojoTest extends AbstractPmdReportTestCase {
 
-    public void testDefaultConfiguration()
-        throws Exception
-    {
-        generateReport( "cpd", "default-configuration/cpd-default-configuration-plugin-config.xml" );
+    public void testDefaultConfiguration() throws Exception {
+        generateReport("cpd", "default-configuration/cpd-default-configuration-plugin-config.xml");
 
         // clear the output from previous pmd:cpd execution
-        CapturingPrintStream.init( true );
+        CapturingPrintStream.init(true);
 
-        try
-        {
-            File testPom =
-                new File( getBasedir(),
-                          "src/test/resources/unit/default-configuration/pmd-check-default-configuration-plugin-config.xml" );
-            final CpdViolationCheckMojo cpdViolationMojo = (CpdViolationCheckMojo) lookupMojo( "cpd-check", testPom );
+        try {
+            File testPom = new File(
+                    getBasedir(),
+                    "src/test/resources/unit/default-configuration/pmd-check-default-configuration-plugin-config.xml");
+            final CpdViolationCheckMojo cpdViolationMojo = (CpdViolationCheckMojo) lookupMojo("cpd-check", testPom);
             cpdViolationMojo.execute();
 
-            fail( "MojoFailureException should be thrown." );
-        }
-        catch ( final Exception e )
-        {
+            fail("MojoFailureException should be thrown.");
+        } catch (final Exception e) {
             // the version should be logged
             String output = CapturingPrintStream.getOutput();
-            assertTrue ( output.contains( "PMD version: " + AbstractPmdReport.getPmdVersion() ) );
+            assertTrue(output.contains("PMD version: " + AbstractPmdReport.getPmdVersion()));
 
-            assertTrue( e.getMessage().startsWith( "You have 1 CPD duplication." ) );
+            assertTrue(e.getMessage().startsWith("You have 1 CPD duplication."));
         }
     }
 
-    public void testNotFailOnViolation()
-        throws Exception
-    {
+    public void testNotFailOnViolation() throws Exception {
 
-        generateReport( "cpd", "default-configuration/cpd-default-configuration-plugin-config.xml" );
+        generateReport("cpd", "default-configuration/cpd-default-configuration-plugin-config.xml");
 
-        File testPom =
-            new File( getBasedir(),
-                      "src/test/resources/unit/default-configuration/cpd-check-notfailonviolation-plugin-config.xml" );
-        final CpdViolationCheckMojo cpdViolationMojo = (CpdViolationCheckMojo) lookupMojo( "cpd-check", testPom );
+        File testPom = new File(
+                getBasedir(),
+                "src/test/resources/unit/default-configuration/cpd-check-notfailonviolation-plugin-config.xml");
+        final CpdViolationCheckMojo cpdViolationMojo = (CpdViolationCheckMojo) lookupMojo("cpd-check", testPom);
         cpdViolationMojo.execute();
 
-        assertTrue( true );
+        assertTrue(true);
     }
 
-    public void testException()
-        throws Exception
-    {
-        try
-        {
-            final File testPom =
-                new File( getBasedir(),
-                          "src/test/resources/unit/custom-configuration/pmd-check-exception-test-plugin-config.xml" );
-            final CpdViolationCheckMojo mojo = (CpdViolationCheckMojo) lookupMojo( "cpd-check", testPom );
+    public void testException() throws Exception {
+        try {
+            final File testPom = new File(
+                    getBasedir(),
+                    "src/test/resources/unit/custom-configuration/pmd-check-exception-test-plugin-config.xml");
+            final CpdViolationCheckMojo mojo = (CpdViolationCheckMojo) lookupMojo("cpd-check", testPom);
             mojo.execute();
 
-            fail( "MojoFailureException should be thrown." );
-        }
-        catch ( final Exception e )
-        {
-            assertTrue( true );
+            fail("MojoFailureException should be thrown.");
+        } catch (final Exception e) {
+            assertTrue(true);
         }
     }
 
-    public void testExclusionsConfiguration()
-        throws Exception
-    {
-        generateReport( "cpd", "default-configuration/cpd-default-configuration-plugin-config.xml" );
+    public void testExclusionsConfiguration() throws Exception {
+        generateReport("cpd", "default-configuration/cpd-default-configuration-plugin-config.xml");
 
-        File testPom =
-            new File( getBasedir(),
-                      "src/test/resources/unit/default-configuration/cpd-check-cpd-exclusions-configuration-plugin-config.xml" );
-        final CpdViolationCheckMojo cpdViolationMojo = (CpdViolationCheckMojo) lookupMojo( "cpd-check", testPom );
+        File testPom = new File(
+                getBasedir(),
+                "src/test/resources/unit/default-configuration/cpd-check-cpd-exclusions-configuration-plugin-config.xml");
+        final CpdViolationCheckMojo cpdViolationMojo = (CpdViolationCheckMojo) lookupMojo("cpd-check", testPom);
 
         // this call shouldn't throw an exception, as the classes with duplications have been excluded
         cpdViolationMojo.execute();
diff --git a/src/test/java/org/apache/maven/plugins/pmd/DependencyArtifactStubFactory.java b/src/test/java/org/apache/maven/plugins/pmd/DependencyArtifactStubFactory.java
index 7cd70cd..881286c 100644
--- a/src/test/java/org/apache/maven/plugins/pmd/DependencyArtifactStubFactory.java
+++ b/src/test/java/org/apache/maven/plugins/pmd/DependencyArtifactStubFactory.java
@@ -1,5 +1,3 @@
-package org.apache.maven.plugins.pmd;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -9,7 +7,7 @@
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
  *
- * http://www.apache.org/licenses/LICENSE-2.0
+ *   http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
@@ -18,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.maven.plugins.pmd;
 
 import java.io.File;
 import java.io.IOException;
@@ -27,42 +26,44 @@
 import org.apache.maven.artifact.versioning.VersionRange;
 import org.apache.maven.plugin.testing.ArtifactStubFactory;
 
-public class DependencyArtifactStubFactory
-    extends ArtifactStubFactory
-{
+public class DependencyArtifactStubFactory extends ArtifactStubFactory {
     private boolean flattenedPath = true;
 
-    public DependencyArtifactStubFactory( File theWorkingDir, boolean theCreateFiles, boolean flattenedPath )
-    {
-        this( theWorkingDir, theCreateFiles );
+    public DependencyArtifactStubFactory(File theWorkingDir, boolean theCreateFiles, boolean flattenedPath) {
+        this(theWorkingDir, theCreateFiles);
         this.flattenedPath = flattenedPath;
     }
 
-    public DependencyArtifactStubFactory( File theWorkingDir, boolean theCreateFiles )
-    {
-        super( theWorkingDir, theCreateFiles );
+    public DependencyArtifactStubFactory(File theWorkingDir, boolean theCreateFiles) {
+        super(theWorkingDir, theCreateFiles);
     }
 
     @Override
-    public Artifact createArtifact( String groupId, String artifactId, VersionRange versionRange, String scope,
-                                    String type, String classifier, boolean optional )
-        throws IOException
-    {
+    public Artifact createArtifact(
+            String groupId,
+            String artifactId,
+            VersionRange versionRange,
+            String scope,
+            String type,
+            String classifier,
+            boolean optional)
+            throws IOException {
         File workingDir = getWorkingDir();
 
-        if ( !flattenedPath )
-        {
+        if (!flattenedPath) {
             // don't use flatten directories, won't happen at runtime
-            String path = groupId.replace( '.', '/' ) + '/' +
-                    artifactId + '/' +
-                    ArtifactUtils.toSnapshotVersion( versionRange.getRecommendedVersion().toString() );
-            setWorkingDir( new File( workingDir, path ) );
+            String path = groupId.replace('.', '/')
+                    + '/'
+                    + artifactId
+                    + '/'
+                    + ArtifactUtils.toSnapshotVersion(
+                            versionRange.getRecommendedVersion().toString());
+            setWorkingDir(new File(workingDir, path));
         }
 
-        Artifact artifact =
-            super.createArtifact( groupId, artifactId, versionRange, scope, type, classifier, optional );
+        Artifact artifact = super.createArtifact(groupId, artifactId, versionRange, scope, type, classifier, optional);
 
-        setWorkingDir( workingDir );
+        setWorkingDir(workingDir);
 
         return artifact;
     }
diff --git a/src/test/java/org/apache/maven/plugins/pmd/PmdReportTest.java b/src/test/java/org/apache/maven/plugins/pmd/PmdReportTest.java
index d53ba48..eed633a 100644
--- a/src/test/java/org/apache/maven/plugins/pmd/PmdReportTest.java
+++ b/src/test/java/org/apache/maven/plugins/pmd/PmdReportTest.java
@@ -1,5 +1,3 @@
-package org.apache.maven.plugins.pmd;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -9,7 +7,7 @@
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
  *
- *  http://www.apache.org/licenses/LICENSE-2.0
+ *   http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
@@ -18,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.maven.plugins.pmd;
 
 import java.io.BufferedReader;
 import java.io.File;
@@ -28,241 +27,241 @@
 import java.nio.charset.StandardCharsets;
 import java.util.Locale;
 
+import com.github.tomakehurst.wiremock.WireMockServer;
+import com.github.tomakehurst.wiremock.client.WireMock;
+import net.sourceforge.pmd.renderers.Renderer;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.maven.plugins.pmd.exec.PmdExecutor;
 import org.apache.maven.reporting.MavenReportException;
 import org.codehaus.plexus.util.FileUtils;
 
-import net.sourceforge.pmd.renderers.Renderer;
-
-import com.github.tomakehurst.wiremock.WireMockServer;
-import com.github.tomakehurst.wiremock.client.WireMock;
-
 /**
  * @author <a href="mailto:oching@apache.org">Maria Odea Ching</a>
  * @version $Id$
  */
-public class PmdReportTest
-    extends AbstractPmdReportTestCase
-{
+public class PmdReportTest extends AbstractPmdReportTestCase {
 
     /**
      * {@inheritDoc}
      */
     @Override
-    protected void setUp()
-        throws Exception
-    {
+    protected void setUp() throws Exception {
         super.setUp();
-        Locale.setDefault( Locale.ENGLISH );
-        FileUtils.deleteDirectory( new File( getBasedir(), "target/test/unit" ) );
+        Locale.setDefault(Locale.ENGLISH);
+        FileUtils.deleteDirectory(new File(getBasedir(), "target/test/unit"));
     }
 
-    public void testDefaultConfiguration()
-        throws Exception
-    {
-        FileUtils.copyDirectoryStructure( new File( getBasedir(),
-                                                    "src/test/resources/unit/default-configuration/jxr-files" ),
-                                          new File( getBasedir(), "target/test/unit/default-configuration/target/site" ) );
+    public void testDefaultConfiguration() throws Exception {
+        FileUtils.copyDirectoryStructure(
+                new File(getBasedir(), "src/test/resources/unit/default-configuration/jxr-files"),
+                new File(getBasedir(), "target/test/unit/default-configuration/target/site"));
 
-        File generatedReport = generateReport( "pmd", "default-configuration/default-configuration-plugin-config.xml" );
-        assertTrue( FileUtils.fileExists( generatedReport.getAbsolutePath() ) );
+        File generatedReport = generateReport("pmd", "default-configuration/default-configuration-plugin-config.xml");
+        assertTrue(FileUtils.fileExists(generatedReport.getAbsolutePath()));
 
         // check if the PMD files were generated
-        File generatedFile = new File( getBasedir(), "target/test/unit/default-configuration/target/pmd.xml" );
-        assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
+        File generatedFile = new File(getBasedir(), "target/test/unit/default-configuration/target/pmd.xml");
+        assertTrue(FileUtils.fileExists(generatedFile.getAbsolutePath()));
 
         // check if the rulesets, that have been applied, have been copied
-        generatedFile = new File( getBasedir(), "target/test/unit/default-configuration/target/pmd/rulesets/maven-pmd-plugin-default.xml" );
-        assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
+        generatedFile = new File(
+                getBasedir(),
+                "target/test/unit/default-configuration/target/pmd/rulesets/maven-pmd-plugin-default.xml");
+        assertTrue(FileUtils.fileExists(generatedFile.getAbsolutePath()));
 
         // check if there's a link to the JXR files
-        String str = readFile( generatedReport );
+        String str = readFile(generatedReport);
 
-        assertTrue( str.contains( "/xref/def/configuration/App.html#L31" ) );
+        assertTrue(str.contains("/xref/def/configuration/App.html#L31"));
 
-        assertTrue( str.contains( "/xref/def/configuration/AppSample.html#L45" ) );
+        assertTrue(str.contains("/xref/def/configuration/AppSample.html#L45"));
 
         // check if there's a priority column
-        assertTrue( str.contains( "<th>Priority</th>" ) );
+        assertTrue(str.contains("<th>Priority</th>"));
 
         // there should be a rule column
-        assertTrue( str.contains( "<th>Rule</th>" ) );
+        assertTrue(str.contains("<th>Rule</th>"));
         // along with a link to the rule
-        assertTrue( str.contains( "pmd_rules_java_bestpractices.html#unusedprivatefield\">UnusedPrivateField</a>" ) );
+        assertTrue(str.contains("pmd_rules_java_bestpractices.html#unusedprivatefield\">UnusedPrivateField</a>"));
 
         // there should be the section Violations By Priority
-        assertTrue( str.contains( "Violations By Priority</h2>" ) );
-        assertTrue( str.contains( "Priority 3</h3>" ) );
-        assertTrue( str.contains( "Priority 4</h3>" ) );
+        assertTrue(str.contains("Violations By Priority</h2>"));
+        assertTrue(str.contains("Priority 3</h3>"));
+        assertTrue(str.contains("Priority 4</h3>"));
         // the file App.java is mentioned 3 times: in prio 3, in prio 4 and in the files section
-        assertEquals( 3, StringUtils.countMatches( str, "def/configuration/App.java" ) );
+        assertEquals(3, StringUtils.countMatches(str, "def/configuration/App.java"));
 
         // there must be no warnings (like deprecated rules) in the log output
         String output = CapturingPrintStream.getOutput();
-        assertFalse( output.contains( "deprecated Rule name" ) );
-        assertFalse( output.contains( "Discontinue using Rule name" ) );
-        assertFalse( output.contains( "is referenced multiple times" ) );
+        assertFalse(output.contains("deprecated Rule name"));
+        assertFalse(output.contains("Discontinue using Rule name"));
+        assertFalse(output.contains("is referenced multiple times"));
 
         // the version should be logged
-        assertTrue ( output.contains( "PMD version: " + AbstractPmdReport.getPmdVersion() ) );
+        assertTrue(output.contains("PMD version: " + AbstractPmdReport.getPmdVersion()));
     }
 
-    public void testDefaultConfigurationNotRenderRuleViolationPriority()
-            throws Exception
-    {
-        FileUtils.copyDirectoryStructure( new File( getBasedir(),
-                                                    "src/test/resources/unit/default-configuration/jxr-files" ),
-                                          new File( getBasedir(), "target/test/unit/default-configuration/target/site" ) );
+    public void testDefaultConfigurationNotRenderRuleViolationPriority() throws Exception {
+        FileUtils.copyDirectoryStructure(
+                new File(getBasedir(), "src/test/resources/unit/default-configuration/jxr-files"),
+                new File(getBasedir(), "target/test/unit/default-configuration/target/site"));
 
-        File generatedReport = generateReport( "pmd", "default-configuration/pmd-report-not-render-rule-priority-plugin-config.xml" );
-        assertTrue( FileUtils.fileExists( generatedReport.getAbsolutePath() ) );
+        File generatedReport =
+                generateReport("pmd", "default-configuration/pmd-report-not-render-rule-priority-plugin-config.xml");
+        assertTrue(FileUtils.fileExists(generatedReport.getAbsolutePath()));
 
-        String str = readFile( generatedReport );
+        String str = readFile(generatedReport);
 
         // check that there's no priority column
-        assertFalse( str.contains( "<th>Priority</th>" ) );
+        assertFalse(str.contains("<th>Priority</th>"));
     }
 
-    public void testDefaultConfigurationNoRenderViolationsByPriority()
-            throws Exception
-    {
-        FileUtils.copyDirectoryStructure( new File( getBasedir(),
-                                                    "src/test/resources/unit/default-configuration/jxr-files" ),
-                                          new File( getBasedir(), "target/test/unit/default-configuration/target/site" ) );
+    public void testDefaultConfigurationNoRenderViolationsByPriority() throws Exception {
+        FileUtils.copyDirectoryStructure(
+                new File(getBasedir(), "src/test/resources/unit/default-configuration/jxr-files"),
+                new File(getBasedir(), "target/test/unit/default-configuration/target/site"));
 
-        File generatedReport = generateReport( "pmd", "default-configuration/pmd-report-no-render-violations-by-priority.xml" );
-        assertTrue( FileUtils.fileExists( generatedReport.getAbsolutePath() ) );
+        File generatedReport =
+                generateReport("pmd", "default-configuration/pmd-report-no-render-violations-by-priority.xml");
+        assertTrue(FileUtils.fileExists(generatedReport.getAbsolutePath()));
 
-        String str = readFile( generatedReport );
+        String str = readFile(generatedReport);
 
         // there should be no section Violations By Priority
-        assertFalse( str.contains( "Violations By Priority</h2>" ) );
-        assertFalse( str.contains( "Priority 3</h3>" ) );
-        assertFalse( str.contains( "Priority 4</h3>" ) );
+        assertFalse(str.contains("Violations By Priority</h2>"));
+        assertFalse(str.contains("Priority 3</h3>"));
+        assertFalse(str.contains("Priority 4</h3>"));
         // the file App.java is mentioned once: in the files section
-        assertEquals( 1, StringUtils.countMatches( str, "def/configuration/App.java" ) );
+        assertEquals(1, StringUtils.countMatches(str, "def/configuration/App.java"));
     }
 
+    public void testDefaultConfigurationWithAnalysisCache() throws Exception {
+        FileUtils.copyDirectoryStructure(
+                new File(getBasedir(), "src/test/resources/unit/default-configuration/jxr-files"),
+                new File(getBasedir(), "target/test/unit/pmd-with-analysis-cache-plugin-config/target/site"));
 
-    public void testDefaultConfigurationWithAnalysisCache()
-            throws Exception
-    {
-        FileUtils.copyDirectoryStructure( new File( getBasedir(),
-                                                    "src/test/resources/unit/default-configuration/jxr-files" ),
-                                          new File( getBasedir(), "target/test/unit/pmd-with-analysis-cache-plugin-config/target/site" ) );
-
-        generateReport( "pmd", "default-configuration/pmd-with-analysis-cache-plugin-config.xml" );
+        generateReport("pmd", "default-configuration/pmd-with-analysis-cache-plugin-config.xml");
 
         // check if the PMD analysis cache file has been generated
-        File cacheFile = new File( getBasedir(), "target/test/unit/pmd-with-analysis-cache-plugin-config/target/pmd/pmd.cache" );
-        assertTrue( FileUtils.fileExists( cacheFile.getAbsolutePath() ) );
+        File cacheFile =
+                new File(getBasedir(), "target/test/unit/pmd-with-analysis-cache-plugin-config/target/pmd/pmd.cache");
+        assertTrue(FileUtils.fileExists(cacheFile.getAbsolutePath()));
     }
 
-    public void testJavascriptConfiguration()
-        throws Exception
-    {
-        File generatedReport = generateReport( "pmd", "default-configuration/javascript-configuration-plugin-config.xml" );
-        assertTrue( FileUtils.fileExists( generatedReport.getAbsolutePath() ) );
+    public void testJavascriptConfiguration() throws Exception {
+        File generatedReport =
+                generateReport("pmd", "default-configuration/javascript-configuration-plugin-config.xml");
+        assertTrue(FileUtils.fileExists(generatedReport.getAbsolutePath()));
 
         // check if the PMD files were generated
-        File generatedFile = new File( getBasedir(), "target/test/unit/default-configuration/target/pmd.xml" );
-        assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
+        File generatedFile = new File(getBasedir(), "target/test/unit/default-configuration/target/pmd.xml");
+        assertTrue(FileUtils.fileExists(generatedFile.getAbsolutePath()));
 
         // these are the rulesets, that have been applied...
-        generatedFile = new File( getBasedir(), "target/test/unit/default-configuration/target/pmd/rulesets/bestpractices.xml" );
-        assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
+        generatedFile =
+                new File(getBasedir(), "target/test/unit/default-configuration/target/pmd/rulesets/bestpractices.xml");
+        assertTrue(FileUtils.fileExists(generatedFile.getAbsolutePath()));
 
-        generatedFile = new File( getBasedir(), "target/test/unit/default-configuration/target/pmd/rulesets/codestyle.xml" );
-        assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
+        generatedFile =
+                new File(getBasedir(), "target/test/unit/default-configuration/target/pmd/rulesets/codestyle.xml");
+        assertTrue(FileUtils.fileExists(generatedFile.getAbsolutePath()));
 
-        generatedFile = new File( getBasedir(), "target/test/unit/default-configuration/target/pmd/rulesets/errorprone.xml" );
-        assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
+        generatedFile =
+                new File(getBasedir(), "target/test/unit/default-configuration/target/pmd/rulesets/errorprone.xml");
+        assertTrue(FileUtils.fileExists(generatedFile.getAbsolutePath()));
 
-        String str = readFile( generatedReport );
-        assertTrue( str.contains( "Avoid using global variables" ) );
+        String str = readFile(generatedReport);
+        assertTrue(str.contains("Avoid using global variables"));
     }
 
-    public void testFileURL()
-        throws Exception
-    {
-        FileUtils.copyDirectoryStructure( new File( getBasedir(),
-                                                    "src/test/resources/unit/default-configuration/jxr-files" ),
-                                          new File( getBasedir(), "target/test/unit/default-configuration/target/site" ) );
+    public void testFileURL() throws Exception {
+        FileUtils.copyDirectoryStructure(
+                new File(getBasedir(), "src/test/resources/unit/default-configuration/jxr-files"),
+                new File(getBasedir(), "target/test/unit/default-configuration/target/site"));
 
-        File testPom =
-            new File( getBasedir(),
-                      "src/test/resources/unit/default-configuration/default-configuration-plugin-config.xml" );
-        PmdReport mojo = (PmdReport) createReportMojo( "pmd", testPom );
+        File testPom = new File(
+                getBasedir(), "src/test/resources/unit/default-configuration/default-configuration-plugin-config.xml");
+        PmdReport mojo = (PmdReport) createReportMojo("pmd", testPom);
 
         // Additional test case for MPMD-174 (https://issues.apache.org/jira/browse/MPMD-174).
         int port = determineFreePort();
-        WireMockServer mockServer = new WireMockServer( port );
+        WireMockServer mockServer = new WireMockServer(port);
         mockServer.start();
 
-        String sonarRuleset =
-            IOUtils.toString( getClass().getClassLoader().getResourceAsStream( "unit/default-configuration/rulesets/sonar-way-ruleset.xml" ),
-                    StandardCharsets.UTF_8 );
+        String sonarRuleset = IOUtils.toString(
+                getClass()
+                        .getClassLoader()
+                        .getResourceAsStream("unit/default-configuration/rulesets/sonar-way-ruleset.xml"),
+                StandardCharsets.UTF_8);
 
-        String sonarMainPageHtml =
-            IOUtils.toString( getClass().getClassLoader().getResourceAsStream( "unit/default-configuration/rulesets/sonar-main-page.html" ),
-                    StandardCharsets.UTF_8 );
+        String sonarMainPageHtml = IOUtils.toString(
+                getClass()
+                        .getClassLoader()
+                        .getResourceAsStream("unit/default-configuration/rulesets/sonar-main-page.html"),
+                StandardCharsets.UTF_8);
 
         final String sonarBaseUrl = "/profiles";
         final String sonarProfileUrl = sonarBaseUrl + "/export?format=pmd&language=java&name=Sonar%2520way";
         final String sonarExportRulesetUrl = "http://localhost:" + mockServer.port() + sonarProfileUrl;
 
-        WireMock.configureFor( "localhost", port );
-        WireMock.stubFor( WireMock.get( WireMock.urlEqualTo( sonarBaseUrl ) ).willReturn( WireMock.aResponse().withStatus( 200 ).withHeader( "Content-Type",
-                                                                                                                                               "text/html" ).withBody( sonarMainPageHtml ) ) );
+        WireMock.configureFor("localhost", port);
+        WireMock.stubFor(WireMock.get(WireMock.urlEqualTo(sonarBaseUrl))
+                .willReturn(WireMock.aResponse()
+                        .withStatus(200)
+                        .withHeader("Content-Type", "text/html")
+                        .withBody(sonarMainPageHtml)));
 
-        WireMock.stubFor( WireMock.get( WireMock.urlEqualTo( sonarProfileUrl ) ).willReturn( WireMock.aResponse().withStatus( 200 ).withHeader( "Content-Type",
-                                                                                                                                                  "text/xml" ).withBody( sonarRuleset ) ) );
+        WireMock.stubFor(WireMock.get(WireMock.urlEqualTo(sonarProfileUrl))
+                .willReturn(WireMock.aResponse()
+                        .withStatus(200)
+                        .withHeader("Content-Type", "text/xml")
+                        .withBody(sonarRuleset)));
 
-        URL url = getClass().getClassLoader().getResource( "rulesets/java/basic.xml" );
-        URL url2 = getClass().getClassLoader().getResource( "rulesets/java/unusedcode.xml" );
-        URL url3 = getClass().getClassLoader().getResource( "rulesets/java/imports.xml" );
-        mojo.setRulesets( new String[] { url.toString(), url2.toString(), url3.toString(), sonarExportRulesetUrl } );
+        URL url = getClass().getClassLoader().getResource("rulesets/java/basic.xml");
+        URL url2 = getClass().getClassLoader().getResource("rulesets/java/unusedcode.xml");
+        URL url3 = getClass().getClassLoader().getResource("rulesets/java/imports.xml");
+        mojo.setRulesets(new String[] {url.toString(), url2.toString(), url3.toString(), sonarExportRulesetUrl});
 
-        File generatedReport = generateReport( mojo, testPom );
-        assertTrue( FileUtils.fileExists( generatedReport.getAbsolutePath() ) );
+        File generatedReport = generateReport(mojo, testPom);
+        assertTrue(FileUtils.fileExists(generatedReport.getAbsolutePath()));
 
         // check if the PMD files were generated
-        File generatedFile = new File( getBasedir(), "target/test/unit/default-configuration/target/pmd.xml" );
-        assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
+        File generatedFile = new File(getBasedir(), "target/test/unit/default-configuration/target/pmd.xml");
+        assertTrue(FileUtils.fileExists(generatedFile.getAbsolutePath()));
 
         // the resolved and extracted rulesets
-        generatedFile = new File( getBasedir(), "target/test/unit/default-configuration/target/pmd/rulesets/basic.xml" );
-        assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
-
-        generatedFile = new File( getBasedir(), "target/test/unit/default-configuration/target/pmd/rulesets/imports.xml" );
-        assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
-
-        generatedFile = new File( getBasedir(), "target/test/unit/default-configuration/target/pmd/rulesets/unusedcode.xml" );
-        assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
+        generatedFile = new File(getBasedir(), "target/test/unit/default-configuration/target/pmd/rulesets/basic.xml");
+        assertTrue(FileUtils.fileExists(generatedFile.getAbsolutePath()));
 
         generatedFile =
-            new File( getBasedir(),
-                      "target/test/unit/default-configuration/target/pmd/rulesets/export_format_pmd_language_java_name_Sonar_2520way.xml" );
-        assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
+                new File(getBasedir(), "target/test/unit/default-configuration/target/pmd/rulesets/imports.xml");
+        assertTrue(FileUtils.fileExists(generatedFile.getAbsolutePath()));
+
+        generatedFile =
+                new File(getBasedir(), "target/test/unit/default-configuration/target/pmd/rulesets/unusedcode.xml");
+        assertTrue(FileUtils.fileExists(generatedFile.getAbsolutePath()));
+
+        generatedFile = new File(
+                getBasedir(),
+                "target/test/unit/default-configuration/target/pmd/rulesets/export_format_pmd_language_java_name_Sonar_2520way.xml");
+        assertTrue(FileUtils.fileExists(generatedFile.getAbsolutePath()));
 
         // check if there's a link to the JXR files
-        String str = readFile( generatedReport );
+        String str = readFile(generatedReport);
 
-        assertTrue( str.contains( "/xref/def/configuration/App.html#L31" ) );
+        assertTrue(str.contains("/xref/def/configuration/App.html#L31"));
 
-        assertTrue( str.contains( "/xref/def/configuration/AppSample.html#L45" ) );
+        assertTrue(str.contains("/xref/def/configuration/AppSample.html#L45"));
 
         mockServer.stop();
     }
 
-    private int determineFreePort()
-    {
+    private int determineFreePort() {
         try (ServerSocket socket = new ServerSocket(0)) {
             return socket.getLocalPort();
         } catch (IOException e) {
-            throw new RuntimeException( "Couldn't find a free port.", e );
+            throw new RuntimeException("Couldn't find a free port.", e);
         }
     }
 
@@ -271,35 +270,34 @@
      *
      * @throws Exception
      */
-    public void testCustomConfiguration()
-        throws Exception
-    {
-        File generatedReport = generateReport( "pmd", "custom-configuration/custom-configuration-plugin-config.xml" );
-        assertTrue( FileUtils.fileExists( generatedReport.getAbsolutePath() ) );
+    public void testCustomConfiguration() throws Exception {
+        File generatedReport = generateReport("pmd", "custom-configuration/custom-configuration-plugin-config.xml");
+        assertTrue(FileUtils.fileExists(generatedReport.getAbsolutePath()));
 
         // check the generated files
-        File generatedFile = new File( getBasedir(), "target/test/unit/custom-configuration/target/pmd.csv" );
-        assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
+        File generatedFile = new File(getBasedir(), "target/test/unit/custom-configuration/target/pmd.csv");
+        assertTrue(FileUtils.fileExists(generatedFile.getAbsolutePath()));
 
-        generatedFile = new File( getBasedir(), "target/test/unit/custom-configuration/target/pmd/rulesets/custom.xml" );
-        assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
+        generatedFile = new File(getBasedir(), "target/test/unit/custom-configuration/target/pmd/rulesets/custom.xml");
+        assertTrue(FileUtils.fileExists(generatedFile.getAbsolutePath()));
 
         // check if custom ruleset was applied
-        String str = readFile( generatedReport );
+        String str = readFile(generatedReport);
 
         // codestyle.xml/ControlStatementBraces:
-        assertTrue( lowerCaseContains( str, "This statement should have braces" ) );
+        assertTrue(lowerCaseContains(str, "This statement should have braces"));
 
         // Must be false as codestyle.xml/ControlStatementBraces with checkIfElseStmt=false is used
-        assertFalse( lowerCaseContains( str, "Avoid using if...else statements without curly braces" ) );
+        assertFalse(lowerCaseContains(str, "Avoid using if...else statements without curly braces"));
 
-        assertFalse( "unnecessary constructor should not be triggered because of low priority",
-                    lowerCaseContains( str, "Avoid unnecessary constructors - the compiler will generate these for you" ) );
+        assertFalse(
+                "unnecessary constructor should not be triggered because of low priority",
+                lowerCaseContains(str, "Avoid unnecessary constructors - the compiler will generate these for you"));
 
         // veryLongVariableNameWithViolation is really too long
-        assertTrue( lowerCaseContains( str, "veryLongVariableNameWithViolation" ) );
+        assertTrue(lowerCaseContains(str, "veryLongVariableNameWithViolation"));
         // notSoLongVariableName should not be reported
-        assertFalse( lowerCaseContains( str, "notSoLongVariableName" ) );
+        assertFalse(lowerCaseContains(str, "notSoLongVariableName"));
     }
 
     /**
@@ -307,78 +305,63 @@
      *
      * @throws Exception
      */
-    public void testSkipConfiguration()
-        throws Exception
-    {
-        File generatedReport = generateReport( "pmd", "custom-configuration/skip-plugin-config.xml" );
-        assertFalse( FileUtils.fileExists( generatedReport.getAbsolutePath() ) );
+    public void testSkipConfiguration() throws Exception {
+        File generatedReport = generateReport("pmd", "custom-configuration/skip-plugin-config.xml");
+        assertFalse(FileUtils.fileExists(generatedReport.getAbsolutePath()));
 
         // verify the generated files do not exist because PMD was skipped
-        File generatedFile = new File( getBasedir(), "target/test/unit/skip-configuration/target/pmd.csv" );
-        assertFalse( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
+        File generatedFile = new File(getBasedir(), "target/test/unit/skip-configuration/target/pmd.csv");
+        assertFalse(FileUtils.fileExists(generatedFile.getAbsolutePath()));
 
-        generatedFile = new File( getBasedir(), "target/test/unit/custom-configuration/target/custom.xml" );
-        assertFalse( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
+        generatedFile = new File(getBasedir(), "target/test/unit/custom-configuration/target/custom.xml");
+        assertFalse(FileUtils.fileExists(generatedFile.getAbsolutePath()));
 
         // the fact, the PMD execution has been skipped, should be logged
         String output = CapturingPrintStream.getOutput();
-        assertTrue ( output.contains( "Skipping PMD execution" ) );
+        assertTrue(output.contains("Skipping PMD execution"));
     }
 
-    public void testSkipEmptyReportConfiguration()
-        throws Exception
-    {
+    public void testSkipEmptyReportConfiguration() throws Exception {
         // verify the generated files do not exist because PMD was skipped
-        File generatedReport = generateReport( "pmd", "empty-report/skip-empty-report-plugin-config.xml" );
-        assertFalse( FileUtils.fileExists( generatedReport.getAbsolutePath() ) );
+        File generatedReport = generateReport("pmd", "empty-report/skip-empty-report-plugin-config.xml");
+        assertFalse(FileUtils.fileExists(generatedReport.getAbsolutePath()));
     }
 
-    public void testEmptyReportConfiguration()
-        throws Exception
-    {
-        File generatedReport = generateReport( "pmd", "empty-report/empty-report-plugin-config.xml" );
-        assertTrue( FileUtils.fileExists( generatedReport.getAbsolutePath() ) );
+    public void testEmptyReportConfiguration() throws Exception {
+        File generatedReport = generateReport("pmd", "empty-report/empty-report-plugin-config.xml");
+        assertTrue(FileUtils.fileExists(generatedReport.getAbsolutePath()));
 
         // verify the generated files do exist, even if there are no violations
-        String str = readFile( generatedReport );
-        assertFalse( lowerCaseContains( str, "Hello.java" ) );
-        assertEquals( 1, StringUtils.countMatches( str, "PMD found no problems in your source code." ) );
+        String str = readFile(generatedReport);
+        assertFalse(lowerCaseContains(str, "Hello.java"));
+        assertEquals(1, StringUtils.countMatches(str, "PMD found no problems in your source code."));
         // no sections files or violations by priority
-        assertFalse( str.contains( "Files</h2>" ) );
-        assertFalse( str.contains( "Violations By Priority</h2>" ) );
+        assertFalse(str.contains("Files</h2>"));
+        assertFalse(str.contains("Violations By Priority</h2>"));
     }
 
-    public void testInvalidFormat()
-        throws Exception
-    {
-        try
-        {
+    public void testInvalidFormat() throws Exception {
+        try {
             File testPom =
-                    new File( getBasedir(), "src/test/resources/unit/invalid-format/invalid-format-plugin-config.xml" );
-            AbstractPmdReport mojo = createReportMojo( "pmd", testPom );
-            setVariableValueToObject( mojo, "compileSourceRoots", mojo.getProject().getCompileSourceRoots() );
-            generateReport( mojo, testPom );
+                    new File(getBasedir(), "src/test/resources/unit/invalid-format/invalid-format-plugin-config.xml");
+            AbstractPmdReport mojo = createReportMojo("pmd", testPom);
+            setVariableValueToObject(
+                    mojo, "compileSourceRoots", mojo.getProject().getCompileSourceRoots());
+            generateReport(mojo, testPom);
 
-            fail( "Must throw MavenReportException." );
-        }
-        catch ( Exception e )
-        {
-            assertTrue( true );
+            fail("Must throw MavenReportException.");
+        } catch (Exception e) {
+            assertTrue(true);
         }
     }
 
-    public void testInvalidTargetJdk()
-        throws Exception
-    {
-        try
-        {
-            generateReport( "pmd", "empty-report/invalid-format/invalid-target-jdk-plugin-config.xml" );
+    public void testInvalidTargetJdk() throws Exception {
+        try {
+            generateReport("pmd", "empty-report/invalid-format/invalid-target-jdk-plugin-config.xml");
 
-            fail( "Must throw MavenReportException." );
-        }
-        catch ( Exception e )
-        {
-            assertTrue( true );
+            fail("Must throw MavenReportException.");
+        } catch (Exception e) {
+            assertTrue(true);
         }
     }
 
@@ -386,22 +369,21 @@
      * verify the pmd.xml file is included in the site when requested.
      * @throws Exception
      */
-    public void testIncludeXmlInSite()
-            throws Exception
-    {
-        File generatedReport = generateReport( "pmd", "default-configuration/pmd-report-include-xml-in-site-plugin-config.xml" );
-        assertTrue( FileUtils.fileExists( generatedReport.getAbsolutePath() ) );
+    public void testIncludeXmlInSite() throws Exception {
+        File generatedReport =
+                generateReport("pmd", "default-configuration/pmd-report-include-xml-in-site-plugin-config.xml");
+        assertTrue(FileUtils.fileExists(generatedReport.getAbsolutePath()));
 
         // verify the pmd file is included in site
-        File generatedXmlFile = new File( getBasedir(), "target/test/unit/default-configuration/target/site/pmd.xml" );
-        assertTrue( FileUtils.fileExists( generatedXmlFile.getAbsolutePath() ) );
+        File generatedXmlFile = new File(getBasedir(), "target/test/unit/default-configuration/target/site/pmd.xml");
+        assertTrue(FileUtils.fileExists(generatedXmlFile.getAbsolutePath()));
 
-        String pmdXmlTarget = readFile( new File( getBasedir(), "target/test/unit/default-configuration/target/pmd.xml" ) );
-        assertTrue( pmdXmlTarget.contains( "</pmd>" ) );
+        String pmdXmlTarget = readFile(new File(getBasedir(), "target/test/unit/default-configuration/target/pmd.xml"));
+        assertTrue(pmdXmlTarget.contains("</pmd>"));
 
         // check that pmd.xml file has the closing element
-        String pmdXml = readFile( generatedXmlFile );
-        assertTrue( pmdXml.contains( "</pmd>" ) );
+        String pmdXml = readFile(generatedXmlFile);
+        assertTrue(pmdXml.contains("</pmd>"));
     }
 
     /**
@@ -411,18 +393,14 @@
      * @return a String object that contains the contents of the file
      * @throws java.io.IOException
      */
-    private String readFile( File file )
-        throws IOException
-    {
-        try ( BufferedReader reader = new BufferedReader( new FileReader( file ) ) )
-        {
-            final StringBuilder str = new StringBuilder( (int) file.length() );
+    private String readFile(File file) throws IOException {
+        try (BufferedReader reader = new BufferedReader(new FileReader(file))) {
+            final StringBuilder str = new StringBuilder((int) file.length());
 
-            for ( String line = reader.readLine(); line != null; line = reader.readLine() )
-            {
-                str.append( ' ' );
-                str.append( line );
-                str.append( '\n' );
+            for (String line = reader.readLine(); line != null; line = reader.readLine()) {
+                str.append(' ');
+                str.append(line);
+                str.append('\n');
             }
             return str.toString();
         }
@@ -433,19 +411,17 @@
      *
      * @throws Exception
      */
-    public void testLocationTemp()
-        throws Exception
-    {
+    public void testLocationTemp() throws Exception {
 
-        File testPom =
-            new File( getBasedir(),
-                      "src/test/resources/unit/default-configuration/default-configuration-plugin-config.xml" );
-        PmdReport mojo = (PmdReport) lookupMojo( "pmd", testPom );
+        File testPom = new File(
+                getBasedir(), "src/test/resources/unit/default-configuration/default-configuration-plugin-config.xml");
+        PmdReport mojo = (PmdReport) lookupMojo("pmd", testPom);
 
-        assertEquals( "locationTemp is not correctly encoding filename",
-                      "export_format_pmd_language_java_name_some_2520name.xml",
-                      mojo.getLocationTemp( "http://nemo.sonarsource.org/sonar/profiles/export?format=pmd&language=java&name=some%2520name" ) );
-
+        assertEquals(
+                "locationTemp is not correctly encoding filename",
+                "export_format_pmd_language_java_name_some_2520name.xml",
+                mojo.getLocationTemp(
+                        "http://nemo.sonarsource.org/sonar/profiles/export?format=pmd&language=java&name=some%2520name"));
     }
 
     /**
@@ -453,259 +429,262 @@
      *
      * @throws Exception
      */
-    public void testSuppressMarkerConfiguration()
-        throws Exception
-    {
-        File generatedReport = generateReport( "pmd", "default-configuration/pmd-with-suppressMarker-plugin-config.xml" );
-        assertTrue( FileUtils.fileExists( generatedReport.getAbsolutePath() ) );
+    public void testSuppressMarkerConfiguration() throws Exception {
+        File generatedReport = generateReport("pmd", "default-configuration/pmd-with-suppressMarker-plugin-config.xml");
+        assertTrue(FileUtils.fileExists(generatedReport.getAbsolutePath()));
 
         // check if the PMD files were generated
-        File generatedFile = new File( getBasedir(), "target/test/unit/default-configuration/target/pmd.xml" );
-        assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
+        File generatedFile = new File(getBasedir(), "target/test/unit/default-configuration/target/pmd.xml");
+        assertTrue(FileUtils.fileExists(generatedFile.getAbsolutePath()));
 
-        String str = readFile( generatedFile );
+        String str = readFile(generatedFile);
 
         // check that there is no violation reported for "unusedVar2" - as it is suppressed
-        assertFalse( str.contains( "Avoid unused private fields such as 'unusedVar2'.\n </violation>" ) );
+        assertFalse(str.contains("Avoid unused private fields such as 'unusedVar2'.\n </violation>"));
         // but it appears as suppressed
-        assertTrue( str.contains( "suppressiontype=\"nopmd\" msg=\"Avoid unused private fields such as 'unusedVar2'.\"" ));
+        assertTrue(str.contains("suppressiontype=\"nopmd\" msg=\"Avoid unused private fields such as 'unusedVar2'.\""));
 
         // check if there's a link to the JXR files
-        str = readFile( generatedReport );
+        str = readFile(generatedReport);
 
-        assertTrue( str.contains( "/xref/def/configuration/AppSample.html#L27" ) );
+        assertTrue(str.contains("/xref/def/configuration/AppSample.html#L27"));
         // suppressed violation
-        assertTrue( str.contains( "Avoid unused private fields such as 'unusedVar2'." ) );
+        assertTrue(str.contains("Avoid unused private fields such as 'unusedVar2'."));
     }
 
-    public void testSuppressMarkerConfigurationWithoutRendering()
-        throws Exception
-    {
-        File generatedReport = generateReport( "pmd", "default-configuration/pmd-with-suppressMarker-no-render-plugin-config.xml" );
-        assertTrue( FileUtils.fileExists( generatedReport.getAbsolutePath() ) );
+    public void testSuppressMarkerConfigurationWithoutRendering() throws Exception {
+        File generatedReport =
+                generateReport("pmd", "default-configuration/pmd-with-suppressMarker-no-render-plugin-config.xml");
+        assertTrue(FileUtils.fileExists(generatedReport.getAbsolutePath()));
 
         // check if the PMD files were generated
-        File generatedFile = new File( getBasedir(), "target/test/unit/default-configuration/target/pmd.xml" );
-        assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
+        File generatedFile = new File(getBasedir(), "target/test/unit/default-configuration/target/pmd.xml");
+        assertTrue(FileUtils.fileExists(generatedFile.getAbsolutePath()));
 
-        String str = readFile( generatedFile );
+        String str = readFile(generatedFile);
 
         // check that there is no violation reported for "unusedVar2" - as it is suppressed
-        assertFalse( str.contains( "Avoid unused private fields such as 'unusedVar2'.\n </violation>" ) );
+        assertFalse(str.contains("Avoid unused private fields such as 'unusedVar2'.\n </violation>"));
         // but it appears as suppressed
-        assertTrue( str.contains( "suppressiontype=\"nopmd\" msg=\"Avoid unused private fields such as 'unusedVar2'.\"" ));
+        assertTrue(str.contains("suppressiontype=\"nopmd\" msg=\"Avoid unused private fields such as 'unusedVar2'.\""));
 
         // check if there's a link to the JXR files
-        str = readFile( generatedReport );
+        str = readFile(generatedReport);
 
-        assertTrue( str.contains( "/xref/def/configuration/AppSample.html#L27" ) );
+        assertTrue(str.contains("/xref/def/configuration/AppSample.html#L27"));
         // suppressed violations are not rendered
-        assertFalse( str.contains( "Avoid unused private fields such as 'unusedVar2'." ) );
+        assertFalse(str.contains("Avoid unused private fields such as 'unusedVar2'."));
     }
 
-    public void testJspConfiguration()
-        throws Exception
-    {
-        File generatedReport = generateReport( "pmd", "default-configuration/jsp-configuration-plugin-config.xml" );
-        assertTrue( FileUtils.fileExists( generatedReport.getAbsolutePath() ) );
+    public void testJspConfiguration() throws Exception {
+        File generatedReport = generateReport("pmd", "default-configuration/jsp-configuration-plugin-config.xml");
+        assertTrue(FileUtils.fileExists(generatedReport.getAbsolutePath()));
 
         // check if the PMD files were generated
-        File generatedFile = new File( getBasedir(), "target/test/unit/default-configuration/target/pmd.xml" );
-        assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
+        File generatedFile = new File(getBasedir(), "target/test/unit/default-configuration/target/pmd.xml");
+        assertTrue(FileUtils.fileExists(generatedFile.getAbsolutePath()));
 
         // these are the rulesets, that have been applied...
-        generatedFile = new File( getBasedir(), "target/test/unit/default-configuration/target/pmd/rulesets/bestpractices.xml" );
-        assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
+        generatedFile =
+                new File(getBasedir(), "target/test/unit/default-configuration/target/pmd/rulesets/bestpractices.xml");
+        assertTrue(FileUtils.fileExists(generatedFile.getAbsolutePath()));
 
-        generatedFile = new File( getBasedir(), "target/test/unit/default-configuration/target/pmd/rulesets/codestyle.xml" );
-        assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
+        generatedFile =
+                new File(getBasedir(), "target/test/unit/default-configuration/target/pmd/rulesets/codestyle.xml");
+        assertTrue(FileUtils.fileExists(generatedFile.getAbsolutePath()));
 
-        generatedFile = new File( getBasedir(), "target/test/unit/default-configuration/target/pmd/rulesets/design.xml" );
-        assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
+        generatedFile = new File(getBasedir(), "target/test/unit/default-configuration/target/pmd/rulesets/design.xml");
+        assertTrue(FileUtils.fileExists(generatedFile.getAbsolutePath()));
 
-        generatedFile = new File( getBasedir(), "target/test/unit/default-configuration/target/pmd/rulesets/errorprone.xml" );
-        assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
+        generatedFile =
+                new File(getBasedir(), "target/test/unit/default-configuration/target/pmd/rulesets/errorprone.xml");
+        assertTrue(FileUtils.fileExists(generatedFile.getAbsolutePath()));
 
-        generatedFile = new File( getBasedir(), "target/test/unit/default-configuration/target/pmd/rulesets/security.xml" );
-        assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
+        generatedFile =
+                new File(getBasedir(), "target/test/unit/default-configuration/target/pmd/rulesets/security.xml");
+        assertTrue(FileUtils.fileExists(generatedFile.getAbsolutePath()));
 
-        String str = readFile( generatedReport );
+        String str = readFile(generatedReport);
         assertTrue(str.contains("JSP file should use UTF-8 encoding"));
         assertTrue(str.contains("Using unsanitized JSP expression can lead to Cross Site Scripting (XSS) attacks"));
         assertTrue(str.contains("Avoid having style information in JSP files."));
     }
 
-    public void testPMDProcessingError()
-        throws Exception
-    {
+    public void testPMDProcessingError() throws Exception {
         try {
-            generateReport( "pmd", "processing-error/pmd-processing-error-plugin-config.xml" );
+            generateReport("pmd", "processing-error/pmd-processing-error-plugin-config.xml");
             fail("Expected exception");
         } catch (RuntimeException e) {
-            assertTrue( e.getMessage().endsWith( "Found 1 PMD processing errors" ) );
+            assertTrue(e.getMessage().endsWith("Found 1 PMD processing errors"));
         }
     }
 
-    public void testPMDProcessingErrorWithDetailsSkipped()
-        throws Exception
-    {
-        File generatedReport = generateReport( "pmd", "processing-error/pmd-processing-error-skip-plugin-config.xml" );
-        assertTrue( FileUtils.fileExists( generatedReport.getAbsolutePath() ) );
+    public void testPMDProcessingErrorWithDetailsSkipped() throws Exception {
+        File generatedReport = generateReport("pmd", "processing-error/pmd-processing-error-skip-plugin-config.xml");
+        assertTrue(FileUtils.fileExists(generatedReport.getAbsolutePath()));
 
         String output = CapturingPrintStream.getOutput();
-        assertTrue ( output.contains( "There are 1 PMD processing errors:" ) );
+        assertTrue(output.contains("There are 1 PMD processing errors:"));
 
-        File generatedFile = new File( getBasedir(), "target/test/unit/parse-error/target/pmd.xml" );
-        assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
-        String str = readFile( generatedFile );
-        assertTrue( str.contains( "Error while parsing" ) );
+        File generatedFile = new File(getBasedir(), "target/test/unit/parse-error/target/pmd.xml");
+        assertTrue(FileUtils.fileExists(generatedFile.getAbsolutePath()));
+        String str = readFile(generatedFile);
+        assertTrue(str.contains("Error while parsing"));
         // The parse exception must be in the XML report
-        assertTrue( str.contains( "ParseException: Encountered \"\" at line 23, column 5." ) );
+        assertTrue(str.contains("ParseException: Encountered \"\" at line 23, column 5."));
 
-        str = readFile( generatedReport );
+        str = readFile(generatedReport);
         // The parse exception must also be in the HTML report
-        assertTrue( str.contains( "ParseException: Encountered \"\" at line 23, column 5." ) );
+        assertTrue(str.contains("ParseException: Encountered \"\" at line 23, column 5."));
     }
 
-    public void testPMDProcessingErrorWithDetailsNoReport()
-        throws Exception
-    {
-        File generatedReport = generateReport( "pmd", "processing-error/pmd-processing-error-no-report-plugin-config.xml" );
-        assertTrue( FileUtils.fileExists( generatedReport.getAbsolutePath() ) );
+    public void testPMDProcessingErrorWithDetailsNoReport() throws Exception {
+        File generatedReport =
+                generateReport("pmd", "processing-error/pmd-processing-error-no-report-plugin-config.xml");
+        assertTrue(FileUtils.fileExists(generatedReport.getAbsolutePath()));
 
         String output = CapturingPrintStream.getOutput();
-        assertTrue ( output.contains( "There are 1 PMD processing errors:" ) );
+        assertTrue(output.contains("There are 1 PMD processing errors:"));
 
-        File generatedFile = new File( getBasedir(), "target/test/unit/parse-error/target/pmd.xml" );
-        assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
-        String str = readFile( generatedFile );
-        assertTrue( str.contains( "Error while parsing" ) );
+        File generatedFile = new File(getBasedir(), "target/test/unit/parse-error/target/pmd.xml");
+        assertTrue(FileUtils.fileExists(generatedFile.getAbsolutePath()));
+        String str = readFile(generatedFile);
+        assertTrue(str.contains("Error while parsing"));
         // The parse exception must be in the XML report
-        assertTrue( str.contains( "ParseException: Encountered \"\" at line 23, column 5." ) );
+        assertTrue(str.contains("ParseException: Encountered \"\" at line 23, column 5."));
 
-        str = readFile( generatedReport );
+        str = readFile(generatedReport);
         // The parse exception must NOT be in the HTML report, since reportProcessingErrors is false
-        assertFalse( str.contains( "ParseException: Encountered \"\" at line 23, column 5." ) );
+        assertFalse(str.contains("ParseException: Encountered \"\" at line 23, column 5."));
     }
 
-    public void testPMDExcludeRootsShouldExcludeSubdirectories()
-        throws Exception
-    {
-        generateReport( "pmd", "exclude-roots/pmd-exclude-roots-plugin-config.xml" );
+    public void testPMDExcludeRootsShouldExcludeSubdirectories() throws Exception {
+        generateReport("pmd", "exclude-roots/pmd-exclude-roots-plugin-config.xml");
 
-        File generatedFile = new File( getBasedir(), "target/test/unit/exclude-roots/target/pmd.xml" );
-        assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
-        String str = readFile( generatedFile );
+        File generatedFile = new File(getBasedir(), "target/test/unit/exclude-roots/target/pmd.xml");
+        assertTrue(FileUtils.fileExists(generatedFile.getAbsolutePath()));
+        String str = readFile(generatedFile);
 
-        assertTrue( "Seems like all directories are excluded now", str.contains( "ForLoopShouldBeWhileLoop" ) );
-        assertFalse( "Exclusion of an exact source directory not working", str.contains( "OverrideBothEqualsAndHashcode" ) );
-        assertFalse( "Exclusion of basedirectory with subdirectories not working (MPMD-178)", str.contains( "JumbledIncrementer") );
+        assertTrue("Seems like all directories are excluded now", str.contains("ForLoopShouldBeWhileLoop"));
+        assertFalse(
+                "Exclusion of an exact source directory not working", str.contains("OverrideBothEqualsAndHashcode"));
+        assertFalse(
+                "Exclusion of basedirectory with subdirectories not working (MPMD-178)",
+                str.contains("JumbledIncrementer"));
     }
 
-    public void testViolationExclusion()
-        throws Exception
-    {
-        generateReport( "pmd", "default-configuration/pmd-report-pmd-exclusions-configuration-plugin-config.xml" );
+    public void testViolationExclusion() throws Exception {
+        generateReport("pmd", "default-configuration/pmd-report-pmd-exclusions-configuration-plugin-config.xml");
 
-        File generatedFile = new File( getBasedir(), "target/test/unit/default-configuration/target/pmd.xml" );
-        assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
-        String str = readFile( generatedFile );
+        File generatedFile = new File(getBasedir(), "target/test/unit/default-configuration/target/pmd.xml");
+        assertTrue(FileUtils.fileExists(generatedFile.getAbsolutePath()));
+        String str = readFile(generatedFile);
 
         assertEquals(0, StringUtils.countMatches(str, "<violation"));
     }
 
-    public void testCustomRenderer() throws MavenReportException
-    {
-        final Renderer renderer = PmdExecutor.createRenderer( "net.sourceforge.pmd.renderers.TextRenderer", "UTF-8" );
+    public void testCustomRenderer() throws MavenReportException {
+        final Renderer renderer = PmdExecutor.createRenderer("net.sourceforge.pmd.renderers.TextRenderer", "UTF-8");
         assertNotNull(renderer);
     }
 
-    public void testCodeClimateRenderer() throws MavenReportException
-    {
-        final Renderer renderer = PmdExecutor.createRenderer( "net.sourceforge.pmd.renderers.CodeClimateRenderer", "UTF-8" );
+    public void testCodeClimateRenderer() throws MavenReportException {
+        final Renderer renderer =
+                PmdExecutor.createRenderer("net.sourceforge.pmd.renderers.CodeClimateRenderer", "UTF-8");
         assertNotNull(renderer);
     }
 
-    public void testPmdReportCustomRulesNoExternalInfoUrl()
-            throws Exception
-    {
-        FileUtils.copyDirectoryStructure( new File( getBasedir(),
-                                                    "src/test/resources/unit/default-configuration/jxr-files" ),
-                                          new File( getBasedir(), "target/test/unit/default-configuration/target/site" ) );
+    public void testPmdReportCustomRulesNoExternalInfoUrl() throws Exception {
+        FileUtils.copyDirectoryStructure(
+                new File(getBasedir(), "src/test/resources/unit/default-configuration/jxr-files"),
+                new File(getBasedir(), "target/test/unit/default-configuration/target/site"));
 
-        File generatedReport = generateReport( "pmd", "default-configuration/pmd-report-custom-rules.xml" );
-        assertTrue( FileUtils.fileExists( generatedReport.getAbsolutePath() ) );
+        File generatedReport = generateReport("pmd", "default-configuration/pmd-report-custom-rules.xml");
+        assertTrue(FileUtils.fileExists(generatedReport.getAbsolutePath()));
 
-        String str = readFile( generatedReport );
+        String str = readFile(generatedReport);
 
         // custom rule without link
-        assertEquals( 2, StringUtils.countMatches( str, "<td>CustomRule</td>" ) );
+        assertEquals(2, StringUtils.countMatches(str, "<td>CustomRule</td>"));
         // standard rule with link
-        assertEquals( 4, StringUtils.countMatches( str, "\">UnusedPrivateField</a></td>" ) );
+        assertEquals(4, StringUtils.countMatches(str, "\">UnusedPrivateField</a></td>"));
     }
 
-    public void testPmdReportResolveRulesets()
-            throws Exception
-    {
+    public void testPmdReportResolveRulesets() throws Exception {
         int port = determineFreePort();
-        WireMockServer mockServer = new WireMockServer( port );
+        WireMockServer mockServer = new WireMockServer(port);
         mockServer.start();
 
-        String sonarRuleset =
-            IOUtils.toString( getClass().getClassLoader().getResourceAsStream( "unit/default-configuration/rulesets/sonar-way-ruleset.xml" ),
-                    StandardCharsets.UTF_8 );
+        String sonarRuleset = IOUtils.toString(
+                getClass()
+                        .getClassLoader()
+                        .getResourceAsStream("unit/default-configuration/rulesets/sonar-way-ruleset.xml"),
+                StandardCharsets.UTF_8);
 
         final String sonarProfileUrl = "/profiles/export?format=pmd&language=java&name=Sonar%2520way";
         final String sonarExportRulesetUrl = "http://localhost:" + mockServer.port() + sonarProfileUrl;
         final String myRulesetBaseUrl = "/config/my-ruleset.xml";
         final String myRulesetUrl = "http://localhost:" + mockServer.port() + myRulesetBaseUrl;
-        final String notAInternalRulesetBaseUrl = "/projects/OURPROJECT/repos/ourproject-pmd/raw/InProgressRuleset.xml?at=refs%2Fheads%2Fmaster";
+        final String notAInternalRulesetBaseUrl =
+                "/projects/OURPROJECT/repos/ourproject-pmd/raw/InProgressRuleset.xml?at=refs%2Fheads%2Fmaster";
         final String notAInternalRulesetUrl = "http://localhost:" + mockServer.port() + notAInternalRulesetBaseUrl;
 
-        WireMock.configureFor( "localhost", port );
-        WireMock.stubFor( WireMock.get( WireMock.urlEqualTo( sonarProfileUrl ) )
-                .willReturn( WireMock.aResponse().withStatus( 200 ).withHeader( "Content-Type",
-                                                                                "text/xml" ).withBody( sonarRuleset ) ) );
-        WireMock.stubFor( WireMock.get( WireMock.urlEqualTo( myRulesetBaseUrl ) )
-                .willReturn( WireMock.aResponse().withStatus( 200 ).withHeader( "Content-Type",
-                                                                                "text/xml" ).withBody( sonarRuleset ) ) );
-        WireMock.stubFor( WireMock.get( WireMock.urlEqualTo( notAInternalRulesetBaseUrl ) )
-                .willReturn( WireMock.aResponse().withStatus( 200 ).withHeader( "Content-Type",
-                                                                                "text/xml" ).withBody( sonarRuleset ) ) );
+        WireMock.configureFor("localhost", port);
+        WireMock.stubFor(WireMock.get(WireMock.urlEqualTo(sonarProfileUrl))
+                .willReturn(WireMock.aResponse()
+                        .withStatus(200)
+                        .withHeader("Content-Type", "text/xml")
+                        .withBody(sonarRuleset)));
+        WireMock.stubFor(WireMock.get(WireMock.urlEqualTo(myRulesetBaseUrl))
+                .willReturn(WireMock.aResponse()
+                        .withStatus(200)
+                        .withHeader("Content-Type", "text/xml")
+                        .withBody(sonarRuleset)));
+        WireMock.stubFor(WireMock.get(WireMock.urlEqualTo(notAInternalRulesetBaseUrl))
+                .willReturn(WireMock.aResponse()
+                        .withStatus(200)
+                        .withHeader("Content-Type", "text/xml")
+                        .withBody(sonarRuleset)));
 
-        FileUtils.copyDirectoryStructure( new File( getBasedir(),
-                                                    "src/test/resources/unit/default-configuration/jxr-files" ),
-                                          new File( getBasedir(), "target/test/unit/default-configuration/target/site" ) );
+        FileUtils.copyDirectoryStructure(
+                new File(getBasedir(), "src/test/resources/unit/default-configuration/jxr-files"),
+                new File(getBasedir(), "target/test/unit/default-configuration/target/site"));
 
         File testPom =
-            new File( getBasedir(),
-                      "src/test/resources/unit/default-configuration/pmd-report-resolve-rulesets.xml" );
-        PmdReport mojo = (PmdReport) createReportMojo( "pmd", testPom );
+                new File(getBasedir(), "src/test/resources/unit/default-configuration/pmd-report-resolve-rulesets.xml");
+        PmdReport mojo = (PmdReport) createReportMojo("pmd", testPom);
         mojo.rulesets[3] = sonarExportRulesetUrl;
         mojo.rulesets[4] = myRulesetUrl;
         mojo.rulesets[5] = notAInternalRulesetUrl;
-        generateReport( mojo, testPom );
+        generateReport(mojo, testPom);
 
         // these are the rulesets, that have been copied to target/pmd/rulesets
-        File generatedFile = new File( getBasedir(), "target/test/unit/default-configuration/target/pmd/rulesets/custom-rules.xml" );
-        assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
+        File generatedFile =
+                new File(getBasedir(), "target/test/unit/default-configuration/target/pmd/rulesets/custom-rules.xml");
+        assertTrue(FileUtils.fileExists(generatedFile.getAbsolutePath()));
 
-        generatedFile = new File( getBasedir(), "target/test/unit/default-configuration/target/pmd/rulesets/bestpractices.xml" );
-        assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
+        generatedFile =
+                new File(getBasedir(), "target/test/unit/default-configuration/target/pmd/rulesets/bestpractices.xml");
+        assertTrue(FileUtils.fileExists(generatedFile.getAbsolutePath()));
 
-        generatedFile = new File( getBasedir(), "target/test/unit/default-configuration/target/pmd/rulesets/java-design.xml" );
-        assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
+        generatedFile =
+                new File(getBasedir(), "target/test/unit/default-configuration/target/pmd/rulesets/java-design.xml");
+        assertTrue(FileUtils.fileExists(generatedFile.getAbsolutePath()));
 
-        generatedFile = new File( getBasedir(), "target/test/unit/default-configuration/target/pmd/rulesets/export_format_pmd_language_java_name_Sonar_2520way.xml" );
-        assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
+        generatedFile = new File(
+                getBasedir(),
+                "target/test/unit/default-configuration/target/pmd/rulesets/export_format_pmd_language_java_name_Sonar_2520way.xml");
+        assertTrue(FileUtils.fileExists(generatedFile.getAbsolutePath()));
 
-        generatedFile = new File( getBasedir(), "target/test/unit/default-configuration/target/pmd/rulesets/my-ruleset.xml" );
-        assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
+        generatedFile =
+                new File(getBasedir(), "target/test/unit/default-configuration/target/pmd/rulesets/my-ruleset.xml");
+        assertTrue(FileUtils.fileExists(generatedFile.getAbsolutePath()));
 
-        generatedFile = new File( getBasedir(), "target/test/unit/default-configuration/target/pmd/rulesets/InProgressRuleset.xml_at_refs_2Fheads_2Fmaster.xml" );
-        assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
+        generatedFile = new File(
+                getBasedir(),
+                "target/test/unit/default-configuration/target/pmd/rulesets/InProgressRuleset.xml_at_refs_2Fheads_2Fmaster.xml");
+        assertTrue(FileUtils.fileExists(generatedFile.getAbsolutePath()));
 
         mockServer.stop();
     }
-
 }
diff --git a/src/test/java/org/apache/maven/plugins/pmd/PmdViolationCheckMojoTest.java b/src/test/java/org/apache/maven/plugins/pmd/PmdViolationCheckMojoTest.java
index e97fc8a..b47508b 100644
--- a/src/test/java/org/apache/maven/plugins/pmd/PmdViolationCheckMojoTest.java
+++ b/src/test/java/org/apache/maven/plugins/pmd/PmdViolationCheckMojoTest.java
@@ -1,5 +1,3 @@
-package org.apache.maven.plugins.pmd;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -9,7 +7,7 @@
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
  *
- *  http://www.apache.org/licenses/LICENSE-2.0
+ *   http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
@@ -18,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.maven.plugins.pmd;
 
 import java.io.File;
 
@@ -27,154 +26,119 @@
  * @author <a href="mailto:oching@apache.org">Maria Odea Ching</a>
  * @version $Id$
  */
-public class PmdViolationCheckMojoTest
-    extends AbstractPmdReportTestCase
-{
+public class PmdViolationCheckMojoTest extends AbstractPmdReportTestCase {
 
-    public void testDefaultConfiguration()
-        throws Exception
-    {
-        generateReport( "pmd", "default-configuration/default-configuration-plugin-config.xml" );
+    public void testDefaultConfiguration() throws Exception {
+        generateReport("pmd", "default-configuration/default-configuration-plugin-config.xml");
 
         // clear the output from previous pmd:pmd execution
-        CapturingPrintStream.init( true );
+        CapturingPrintStream.init(true);
 
-        try
-        {
-            final File testPom =
-                new File( getBasedir(),
-                          "src/test/resources/unit/default-configuration/pmd-check-default-configuration-plugin-config.xml" );
-            final PmdViolationCheckMojo mojo = (PmdViolationCheckMojo) lookupMojo( "check", testPom );
+        try {
+            final File testPom = new File(
+                    getBasedir(),
+                    "src/test/resources/unit/default-configuration/pmd-check-default-configuration-plugin-config.xml");
+            final PmdViolationCheckMojo mojo = (PmdViolationCheckMojo) lookupMojo("check", testPom);
             mojo.execute();
 
-            fail( "MojoFailureException should be thrown." );
-        }
-        catch ( final Exception e )
-        {
+            fail("MojoFailureException should be thrown.");
+        } catch (final Exception e) {
             // the version should be logged
             String output = CapturingPrintStream.getOutput();
-            assertTrue ( output.contains( "PMD version: " + AbstractPmdReport.getPmdVersion() ) );
+            assertTrue(output.contains("PMD version: " + AbstractPmdReport.getPmdVersion()));
 
-            assertTrue( e.getMessage().startsWith( "You have 8 PMD violations." ) );
+            assertTrue(e.getMessage().startsWith("You have 8 PMD violations."));
         }
     }
 
-    public void testNotFailOnViolation()
-        throws Exception
-    {
-        generateReport( "pmd", "default-configuration/default-configuration-plugin-config.xml" );
+    public void testNotFailOnViolation() throws Exception {
+        generateReport("pmd", "default-configuration/default-configuration-plugin-config.xml");
 
-        File testPom =
-            new File( getBasedir(),
-                      "src/test/resources/unit/default-configuration/pmd-check-notfailonviolation-plugin-config.xml" );
-        final PmdViolationCheckMojo pmdViolationMojo = (PmdViolationCheckMojo) lookupMojo( "check", testPom );
+        File testPom = new File(
+                getBasedir(),
+                "src/test/resources/unit/default-configuration/pmd-check-notfailonviolation-plugin-config.xml");
+        final PmdViolationCheckMojo pmdViolationMojo = (PmdViolationCheckMojo) lookupMojo("check", testPom);
         pmdViolationMojo.execute();
 
-        assertTrue( true );
+        assertTrue(true);
     }
 
-    public void testMaxAllowedViolations()
-        throws Exception
-    {
-        generateReport( "pmd", "default-configuration/default-configuration-plugin-config.xml" );
+    public void testMaxAllowedViolations() throws Exception {
+        generateReport("pmd", "default-configuration/default-configuration-plugin-config.xml");
 
-        File testPom =
-            new File( getBasedir(),
-                "src/test/resources/unit/default-configuration/pmd-check-notfailmaxviolation-plugin-config.xml" );
-        final PmdViolationCheckMojo pmdViolationMojo = (PmdViolationCheckMojo) lookupMojo( "check", testPom );
+        File testPom = new File(
+                getBasedir(),
+                "src/test/resources/unit/default-configuration/pmd-check-notfailmaxviolation-plugin-config.xml");
+        final PmdViolationCheckMojo pmdViolationMojo = (PmdViolationCheckMojo) lookupMojo("check", testPom);
         pmdViolationMojo.execute();
 
-        testPom =
-            new File( getBasedir(),
-                "src/test/resources/unit/default-configuration/pmd-check-failmaxviolation-plugin-config.xml" );
-        final PmdViolationCheckMojo pmdViolationMojoFail = (PmdViolationCheckMojo) lookupMojo( "check", testPom );
+        testPom = new File(
+                getBasedir(),
+                "src/test/resources/unit/default-configuration/pmd-check-failmaxviolation-plugin-config.xml");
+        final PmdViolationCheckMojo pmdViolationMojoFail = (PmdViolationCheckMojo) lookupMojo("check", testPom);
 
-        try
-        {
+        try {
             pmdViolationMojoFail.execute();
-            fail( "Exception Expected" );
-        }
-        catch ( final MojoFailureException e )
-        {
+            fail("Exception Expected");
+        } catch (final MojoFailureException e) {
             String message = e.getMessage();
-            if ( message.contains( "You have 5 PMD violations and 3 warnings." ) )
-            {
-                System.out.println( "Caught expected message: " + e.getMessage() );// expected
-            }
-            else
-            {
-                throw new AssertionError( "Expected: '" + message
-                    + "' to contain 'You have 5 PMD violations and 3 warnings.'" );
+            if (message.contains("You have 5 PMD violations and 3 warnings.")) {
+                System.out.println("Caught expected message: " + e.getMessage()); // expected
+            } else {
+                throw new AssertionError(
+                        "Expected: '" + message + "' to contain 'You have 5 PMD violations and 3 warnings.'");
             }
         }
-
     }
 
-    public void testFailurePriority()
-        throws Exception
-    {
-        generateReport( "pmd", "default-configuration/default-configuration-plugin-config.xml" );
+    public void testFailurePriority() throws Exception {
+        generateReport("pmd", "default-configuration/default-configuration-plugin-config.xml");
 
-        File testPom =
-            new File( getBasedir(),
-                      "src/test/resources/unit/default-configuration/pmd-check-failonpriority-plugin-config.xml" );
-        PmdViolationCheckMojo pmdViolationMojo = (PmdViolationCheckMojo) lookupMojo( "check", testPom );
+        File testPom = new File(
+                getBasedir(),
+                "src/test/resources/unit/default-configuration/pmd-check-failonpriority-plugin-config.xml");
+        PmdViolationCheckMojo pmdViolationMojo = (PmdViolationCheckMojo) lookupMojo("check", testPom);
         pmdViolationMojo.execute();
 
-        testPom =
-            new File( getBasedir(),
-                      "src/test/resources/unit/default-configuration/pmd-check-failandwarnonpriority-plugin-config.xml" );
-        pmdViolationMojo = (PmdViolationCheckMojo) lookupMojo( "check", testPom );
-        try
-        {
+        testPom = new File(
+                getBasedir(),
+                "src/test/resources/unit/default-configuration/pmd-check-failandwarnonpriority-plugin-config.xml");
+        pmdViolationMojo = (PmdViolationCheckMojo) lookupMojo("check", testPom);
+        try {
             pmdViolationMojo.execute();
-            fail( "Exception Expected" );
-        }
-        catch ( final MojoFailureException e )
-        {
+            fail("Exception Expected");
+        } catch (final MojoFailureException e) {
             String message = e.getMessage();
-            if ( message.contains( "You have 5 PMD violations and 3 warnings." ) )
-            {
-                System.out.println( "Caught expected message: " + e.getMessage() );// expected
-            }
-            else
-            {
-                throw new AssertionError( "Expected: '" + message
-                    + "' to contain 'You have 5 PMD violations and 3 warnings.'" );
+            if (message.contains("You have 5 PMD violations and 3 warnings.")) {
+                System.out.println("Caught expected message: " + e.getMessage()); // expected
+            } else {
+                throw new AssertionError(
+                        "Expected: '" + message + "' to contain 'You have 5 PMD violations and 3 warnings.'");
             }
         }
-
     }
 
-    public void testException()
-        throws Exception
-    {
-        try
-        {
-            final File testPom =
-                new File( getBasedir(),
-                          "src/test/resources/unit/custom-configuration/pmd-check-exception-test-plugin-config.xml" );
-            final PmdViolationCheckMojo mojo = (PmdViolationCheckMojo) lookupMojo( "check", testPom );
+    public void testException() throws Exception {
+        try {
+            final File testPom = new File(
+                    getBasedir(),
+                    "src/test/resources/unit/custom-configuration/pmd-check-exception-test-plugin-config.xml");
+            final PmdViolationCheckMojo mojo = (PmdViolationCheckMojo) lookupMojo("check", testPom);
             mojo.execute();
 
-            fail( "MojoFailureException should be thrown." );
+            fail("MojoFailureException should be thrown.");
+        } catch (final Exception e) {
+            assertTrue(true);
         }
-        catch ( final Exception e )
-        {
-            assertTrue( true );
-        }
-
     }
 
-    public void testViolationExclusion()
-        throws Exception
-    {
-        generateReport( "pmd", "default-configuration/default-configuration-plugin-config.xml" );
+    public void testViolationExclusion() throws Exception {
+        generateReport("pmd", "default-configuration/default-configuration-plugin-config.xml");
 
-        File testPom =
-            new File( getBasedir(),
-                      "src/test/resources/unit/default-configuration/pmd-check-pmd-exclusions-configuration-plugin-config.xml" );
-        final PmdViolationCheckMojo pmdViolationMojo = (PmdViolationCheckMojo) lookupMojo( "check", testPom );
+        File testPom = new File(
+                getBasedir(),
+                "src/test/resources/unit/default-configuration/pmd-check-pmd-exclusions-configuration-plugin-config.xml");
+        final PmdViolationCheckMojo pmdViolationMojo = (PmdViolationCheckMojo) lookupMojo("check", testPom);
 
         // this call shouldn't throw an exception, as the classes with violations have been excluded
         pmdViolationMojo.execute();
diff --git a/src/test/java/org/apache/maven/plugins/pmd/exec/ExecutorTest.java b/src/test/java/org/apache/maven/plugins/pmd/exec/ExecutorTest.java
index d63eecb..fadd719 100644
--- a/src/test/java/org/apache/maven/plugins/pmd/exec/ExecutorTest.java
+++ b/src/test/java/org/apache/maven/plugins/pmd/exec/ExecutorTest.java
@@ -1,5 +1,3 @@
-package org.apache.maven.plugins.pmd.exec;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,31 +16,29 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.maven.plugins.pmd.exec;
 
 import java.io.File;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.net.URLClassLoader;
 
-import org.apache.commons.lang3.SystemUtils;
-
 import junit.framework.Assert;
 import junit.framework.TestCase;
+import org.apache.commons.lang3.SystemUtils;
 
-public class ExecutorTest extends TestCase
-{
+public class ExecutorTest extends TestCase {
     public void testBuildClasspath() throws MalformedURLException {
         String basename = "home/test/dir with space/mylib.jar";
         String pathname = new File("/", basename).getPath();
-        if ( SystemUtils.IS_OS_WINDOWS )
-        {
-            pathname = new File( File.listRoots()[0], basename ).getPath();
+        if (SystemUtils.IS_OS_WINDOWS) {
+            pathname = new File(File.listRoots()[0], basename).getPath();
         }
-        URL[] urls = new URL[] { new File(pathname).toURI().toURL() };
-        URLClassLoader mockedClassLoader = new URLClassLoader( urls );
+        URL[] urls = new URL[] {new File(pathname).toURI().toURL()};
+        URLClassLoader mockedClassLoader = new URLClassLoader(urls);
 
         StringBuilder classpath = new StringBuilder();
         Executor.buildClasspath(classpath, mockedClassLoader);
-        Assert.assertEquals( pathname + File.pathSeparator, classpath.toString() );
+        Assert.assertEquals(pathname + File.pathSeparator, classpath.toString());
     }
 }
diff --git a/src/test/java/org/apache/maven/plugins/pmd/stubs/CustomConfigurationMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/pmd/stubs/CustomConfigurationMavenProjectStub.java
index 4fe1d67..93609dc 100644
--- a/src/test/java/org/apache/maven/plugins/pmd/stubs/CustomConfigurationMavenProjectStub.java
+++ b/src/test/java/org/apache/maven/plugins/pmd/stubs/CustomConfigurationMavenProjectStub.java
@@ -1,5 +1,3 @@
-package org.apache.maven.plugins.pmd.stubs;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -9,7 +7,7 @@
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
  *
- *  http://www.apache.org/licenses/LICENSE-2.0
+ *   http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
@@ -18,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.maven.plugins.pmd.stubs;
 
 import java.io.File;
 import java.io.FileReader;
@@ -35,85 +34,73 @@
  * @author <a href="mailto:oching@apache.org">Maria Odea Ching</a>
  * @version $Id$
  */
-public class CustomConfigurationMavenProjectStub
-    extends PmdProjectStub
-{
+public class CustomConfigurationMavenProjectStub extends PmdProjectStub {
     private Build build;
 
     private List<ReportPlugin> reportPlugins = new ArrayList<>();
 
-    public CustomConfigurationMavenProjectStub()
-    {
+    public CustomConfigurationMavenProjectStub() {
         MavenXpp3Reader pomReader = new MavenXpp3Reader();
         Model model = null;
 
-        try
-        {
-            model =
-                pomReader.read( new FileReader( new File( getBasedir()
-                    + "/src/test/resources/unit/custom-configuration/custom-configuration-plugin-config.xml" ) ) );
-            setModel( model );
-        }
-        catch ( Exception e )
-        {
+        try {
+            model = pomReader.read(new FileReader(new File(getBasedir()
+                    + "/src/test/resources/unit/custom-configuration/custom-configuration-plugin-config.xml")));
+            setModel(model);
+        } catch (Exception e) {
 
         }
 
-        setGroupId( model.getGroupId() );
-        setArtifactId( model.getArtifactId() );
-        setVersion( model.getVersion() );
-        setName( model.getName() );
-        setUrl( model.getUrl() );
-        setPackaging( model.getPackaging() );
+        setGroupId(model.getGroupId());
+        setArtifactId(model.getArtifactId());
+        setVersion(model.getVersion());
+        setName(model.getName());
+        setUrl(model.getUrl());
+        setPackaging(model.getPackaging());
 
         Scm scm = new Scm();
-        scm.setConnection( "scm:svn:http://svn.apache.org/maven/sample/trunk" );
-        setScm( scm );
+        scm.setConnection("scm:svn:http://svn.apache.org/maven/sample/trunk");
+        setScm(scm);
 
         Build build = new Build();
-        build.setFinalName( model.getBuild().getFinalName() );
-        build.setDirectory( getBasedir() + "/target/test/unit/custom-configuration/target" );
-        build.setSourceDirectory( getBasedir() + "/src/test/resources/unit/custom-configuration" );
-        setBuild( build );
+        build.setFinalName(model.getBuild().getFinalName());
+        build.setDirectory(getBasedir() + "/target/test/unit/custom-configuration/target");
+        build.setSourceDirectory(getBasedir() + "/src/test/resources/unit/custom-configuration");
+        setBuild(build);
 
-        setReportPlugins( model.getReporting().getPlugins() );
+        setReportPlugins(model.getReporting().getPlugins());
 
         String basedir = getBasedir().getAbsolutePath();
         List<String> compileSourceRoots = new ArrayList<>();
-        compileSourceRoots.add( basedir + "/src/test/resources/unit/custom-configuration/custom/configuration" );
-        setCompileSourceRoots( compileSourceRoots );
+        compileSourceRoots.add(basedir + "/src/test/resources/unit/custom-configuration/custom/configuration");
+        setCompileSourceRoots(compileSourceRoots);
 
-        Artifact artifact = new PmdPluginArtifactStub( getGroupId(), getArtifactId(), getVersion(), getPackaging() );
-        artifact.setArtifactHandler( new DefaultArtifactHandlerStub() );
-        setArtifact( artifact );
+        Artifact artifact = new PmdPluginArtifactStub(getGroupId(), getArtifactId(), getVersion(), getPackaging());
+        artifact.setArtifactHandler(new DefaultArtifactHandlerStub());
+        setArtifact(artifact);
 
-        setFile( new File( getBasedir().getAbsolutePath() + "/pom.xml" ) );
+        setFile(new File(getBasedir().getAbsolutePath() + "/pom.xml"));
     }
 
     /** {@inheritDoc} */
     @Override
-    public void setBuild( Build build )
-    {
+    public void setBuild(Build build) {
         this.build = build;
     }
 
     /** {@inheritDoc} */
     @Override
-    public Build getBuild()
-    {
+    public Build getBuild() {
         return build;
     }
 
-    public void setReportPlugins( List<ReportPlugin> plugins )
-    {
+    public void setReportPlugins(List<ReportPlugin> plugins) {
         this.reportPlugins = plugins;
     }
 
     /** {@inheritDoc} */
     @Override
-    public List<ReportPlugin> getReportPlugins()
-    {
+    public List<ReportPlugin> getReportPlugins() {
         return reportPlugins;
     }
-
 }
diff --git a/src/test/java/org/apache/maven/plugins/pmd/stubs/DefaultArtifactHandlerStub.java b/src/test/java/org/apache/maven/plugins/pmd/stubs/DefaultArtifactHandlerStub.java
index 4e9d7a9..388d4c5 100644
--- a/src/test/java/org/apache/maven/plugins/pmd/stubs/DefaultArtifactHandlerStub.java
+++ b/src/test/java/org/apache/maven/plugins/pmd/stubs/DefaultArtifactHandlerStub.java
@@ -1,5 +1,3 @@
-package org.apache.maven.plugins.pmd.stubs;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -9,7 +7,7 @@
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
  *
- *  http://www.apache.org/licenses/LICENSE-2.0
+ *   http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
@@ -18,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.maven.plugins.pmd.stubs;
 
 import org.apache.maven.artifact.handler.DefaultArtifactHandler;
 
@@ -25,25 +24,20 @@
  * @author <a href="mailto:oching@apache.org">Maria Odea Ching</a>
  * @version $Id$
  */
-public class DefaultArtifactHandlerStub
-    extends DefaultArtifactHandler
-{
+public class DefaultArtifactHandlerStub extends DefaultArtifactHandler {
     private String language;
 
     /** {@inheritDoc} */
     @Override
-    public String getLanguage()
-    {
-        if ( language == null )
-        {
+    public String getLanguage() {
+        if (language == null) {
             language = "java";
         }
 
         return language;
     }
 
-    public void setLanguage( String language )
-    {
+    public void setLanguage(String language) {
         this.language = language;
     }
 }
diff --git a/src/test/java/org/apache/maven/plugins/pmd/stubs/DefaultConfigurationMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/pmd/stubs/DefaultConfigurationMavenProjectStub.java
index daac795..b16da8d 100644
--- a/src/test/java/org/apache/maven/plugins/pmd/stubs/DefaultConfigurationMavenProjectStub.java
+++ b/src/test/java/org/apache/maven/plugins/pmd/stubs/DefaultConfigurationMavenProjectStub.java
@@ -1,5 +1,3 @@
-package org.apache.maven.plugins.pmd.stubs;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -9,7 +7,7 @@
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
  *
- *  http://www.apache.org/licenses/LICENSE-2.0
+ *   http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
@@ -18,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.maven.plugins.pmd.stubs;
 
 import java.io.File;
 import java.io.FileReader;
@@ -35,87 +34,74 @@
  * @author <a href="mailto:oching@apache.org">Maria Odea Ching</a>
  * @version $Id$
  */
-public class DefaultConfigurationMavenProjectStub
-    extends PmdProjectStub
-{
+public class DefaultConfigurationMavenProjectStub extends PmdProjectStub {
     private List<ReportPlugin> reportPlugins = new ArrayList<>();
 
     private Build build;
 
-    public DefaultConfigurationMavenProjectStub()
-    {
+    public DefaultConfigurationMavenProjectStub() {
         MavenXpp3Reader pomReader = new MavenXpp3Reader();
         Model model = null;
 
-        try ( FileReader reader = new FileReader( new File( getBasedir()
-            + "/src/test/resources/unit/default-configuration/default-configuration-plugin-config.xml" ) ) )
-        {
-            model = pomReader.read( reader );
-            setModel( model );
-        }
-        catch ( Exception e )
-        {
+        try (FileReader reader = new FileReader(new File(getBasedir()
+                + "/src/test/resources/unit/default-configuration/default-configuration-plugin-config.xml"))) {
+            model = pomReader.read(reader);
+            setModel(model);
+        } catch (Exception e) {
 
         }
 
-        setGroupId( model.getGroupId() );
-        setArtifactId( model.getArtifactId() );
-        setVersion( model.getVersion() );
-        setName( model.getName() );
-        setUrl( model.getUrl() );
-        setPackaging( model.getPackaging() );
+        setGroupId(model.getGroupId());
+        setArtifactId(model.getArtifactId());
+        setVersion(model.getVersion());
+        setName(model.getName());
+        setUrl(model.getUrl());
+        setPackaging(model.getPackaging());
 
         Scm scm = new Scm();
-        scm.setConnection( "scm:svn:http://svn.apache.org/maven/sample/trunk" );
-        setScm( scm );
+        scm.setConnection("scm:svn:http://svn.apache.org/maven/sample/trunk");
+        setScm(scm);
 
         Build build = new Build();
-        build.setFinalName( model.getBuild()
-                                 .getFinalName() );
-        build.setDirectory( getBasedir() + "/target/test/unit/default-configuration/target" );
-        build.setSourceDirectory( getBasedir() + "/src/test/resources/unit/default-configuration" );
-        setBuild( build );
+        build.setFinalName(model.getBuild().getFinalName());
+        build.setDirectory(getBasedir() + "/target/test/unit/default-configuration/target");
+        build.setSourceDirectory(getBasedir() + "/src/test/resources/unit/default-configuration");
+        setBuild(build);
 
-        setReportPlugins( model.getReporting()
-                               .getPlugins() );
+        setReportPlugins(model.getReporting().getPlugins());
 
         String basedir = getBasedir().getAbsolutePath();
         List<String> compileSourceRoots = new ArrayList<>();
-        compileSourceRoots.add( basedir + "/src/test/resources/unit/default-configuration/def/configuration" );
-        setCompileSourceRoots( compileSourceRoots );
+        compileSourceRoots.add(basedir + "/src/test/resources/unit/default-configuration/def/configuration");
+        setCompileSourceRoots(compileSourceRoots);
 
-        File file = new File( getBasedir().getAbsolutePath() + "/pom.xml" );
-        setFile( file );
+        File file = new File(getBasedir().getAbsolutePath() + "/pom.xml");
+        setFile(file);
 
-        Artifact artifact = new PmdPluginArtifactStub( getGroupId(), getArtifactId(), getVersion(), getPackaging() );
-        artifact.setArtifactHandler( new DefaultArtifactHandlerStub() );
-        setArtifact( artifact );
-
+        Artifact artifact = new PmdPluginArtifactStub(getGroupId(), getArtifactId(), getVersion(), getPackaging());
+        artifact.setArtifactHandler(new DefaultArtifactHandlerStub());
+        setArtifact(artifact);
     }
 
-    public void setReportPlugins( List<ReportPlugin> plugins )
-    {
+    public void setReportPlugins(List<ReportPlugin> plugins) {
         this.reportPlugins = plugins;
     }
 
     /** {@inheritDoc} */
     @Override
-    public List<ReportPlugin> getReportPlugins()
-    {
+    public List<ReportPlugin> getReportPlugins() {
         return reportPlugins;
     }
 
     /** {@inheritDoc} */
     @Override
-    public void setBuild( Build build )
-    {
+    public void setBuild(Build build) {
         this.build = build;
     }
 
     /** {@inheritDoc} */
     @Override
-    public Build getBuild()
-    {
+    public Build getBuild() {
         return build;
     }
 }
diff --git a/src/test/java/org/apache/maven/plugins/pmd/stubs/InvalidFormatMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/pmd/stubs/InvalidFormatMavenProjectStub.java
index f700313..c08e19c 100644
--- a/src/test/java/org/apache/maven/plugins/pmd/stubs/InvalidFormatMavenProjectStub.java
+++ b/src/test/java/org/apache/maven/plugins/pmd/stubs/InvalidFormatMavenProjectStub.java
@@ -1,5 +1,3 @@
-package org.apache.maven.plugins.pmd.stubs;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -9,7 +7,7 @@
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
  *
- *  http://www.apache.org/licenses/LICENSE-2.0
+ *   http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
@@ -18,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.maven.plugins.pmd.stubs;
 
 import java.io.File;
 import java.io.FileReader;
@@ -34,70 +33,59 @@
  * @author <a href="mailto:oching@apache.org">Maria Odea Ching</a>
  * @version $Id$
  */
-public class InvalidFormatMavenProjectStub
-    extends PmdProjectStub
-{
+public class InvalidFormatMavenProjectStub extends PmdProjectStub {
     private Build build;
 
-    public InvalidFormatMavenProjectStub()
-    {
+    public InvalidFormatMavenProjectStub() {
         MavenXpp3Reader pomReader = new MavenXpp3Reader();
         Model model = null;
 
-        try
-        {
-            model =
-                pomReader.read( new FileReader( new File( getBasedir()
-                    + "/src/test/resources/unit/invalid-format/invalid-format-plugin-config.xml" ) ) );
-            setModel( model );
-        }
-        catch ( Exception e )
-        {
+        try {
+            model = pomReader.read(new FileReader(new File(
+                    getBasedir() + "/src/test/resources/unit/invalid-format/invalid-format-plugin-config.xml")));
+            setModel(model);
+        } catch (Exception e) {
 
         }
 
-        setGroupId( model.getGroupId() );
-        setArtifactId( model.getArtifactId() );
-        setVersion( model.getVersion() );
-        setName( model.getName() );
-        setUrl( model.getUrl() );
-        setPackaging( model.getPackaging() );
+        setGroupId(model.getGroupId());
+        setArtifactId(model.getArtifactId());
+        setVersion(model.getVersion());
+        setName(model.getName());
+        setUrl(model.getUrl());
+        setPackaging(model.getPackaging());
 
         Scm scm = new Scm();
-        scm.setConnection( "scm:svn:http://svn.apache.org/maven/sample/trunk" );
-        setScm( scm );
+        scm.setConnection("scm:svn:http://svn.apache.org/maven/sample/trunk");
+        setScm(scm);
 
         Build build = new Build();
-        build.setFinalName( model.getBuild().getFinalName() );
-        build.setDirectory( getBasedir() + "/target/test/unit/invalid-format/target" );
-        build.setSourceDirectory( getBasedir() + "/src/test/resources/unit/invalid-format" );
-        setBuild( build );
+        build.setFinalName(model.getBuild().getFinalName());
+        build.setDirectory(getBasedir() + "/target/test/unit/invalid-format/target");
+        build.setSourceDirectory(getBasedir() + "/src/test/resources/unit/invalid-format");
+        setBuild(build);
 
         String basedir = getBasedir().getAbsolutePath();
         List<String> compileSourceRoots = new ArrayList<>();
-        compileSourceRoots.add( basedir + "/src/test/resources/unit/invalid-format/invalid/format" );
-        setCompileSourceRoots( compileSourceRoots );
+        compileSourceRoots.add(basedir + "/src/test/resources/unit/invalid-format/invalid/format");
+        setCompileSourceRoots(compileSourceRoots);
 
-        Artifact artifact = new PmdPluginArtifactStub( getGroupId(), getArtifactId(), getVersion(), getPackaging() );
-        artifact.setArtifactHandler( new DefaultArtifactHandlerStub() );
-        setArtifact( artifact );
+        Artifact artifact = new PmdPluginArtifactStub(getGroupId(), getArtifactId(), getVersion(), getPackaging());
+        artifact.setArtifactHandler(new DefaultArtifactHandlerStub());
+        setArtifact(artifact);
 
-        setFile( new File( getBasedir().getAbsolutePath() + "/pom.xml" ) );
-
+        setFile(new File(getBasedir().getAbsolutePath() + "/pom.xml"));
     }
 
     /** {@inheritDoc} */
     @Override
-    public void setBuild( Build build )
-    {
+    public void setBuild(Build build) {
         this.build = build;
     }
 
     /** {@inheritDoc} */
     @Override
-    public Build getBuild()
-    {
+    public Build getBuild() {
         return build;
     }
-
 }
diff --git a/src/test/java/org/apache/maven/plugins/pmd/stubs/PmdPluginArtifactStub.java b/src/test/java/org/apache/maven/plugins/pmd/stubs/PmdPluginArtifactStub.java
index 7ce2471..89df085 100644
--- a/src/test/java/org/apache/maven/plugins/pmd/stubs/PmdPluginArtifactStub.java
+++ b/src/test/java/org/apache/maven/plugins/pmd/stubs/PmdPluginArtifactStub.java
@@ -1,5 +1,3 @@
-package org.apache.maven.plugins.pmd.stubs;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -9,7 +7,7 @@
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
  *
- *  http://www.apache.org/licenses/LICENSE-2.0
+ *   http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
@@ -18,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.maven.plugins.pmd.stubs;
 
 import org.apache.maven.artifact.handler.ArtifactHandler;
 import org.apache.maven.artifact.versioning.VersionRange;
@@ -27,9 +26,7 @@
  * @author <a href="mailto:oching@apache.org">Maria Odea Ching</a>
  * @version $Id$
  */
-public class PmdPluginArtifactStub
-    extends ArtifactStub
-{
+public class PmdPluginArtifactStub extends ArtifactStub {
     private String groupId;
 
     private String artifactId;
@@ -42,92 +39,79 @@
 
     private ArtifactHandler handler;
 
-    public PmdPluginArtifactStub( String groupId, String artifactId, String version, String packaging )
-    {
+    public PmdPluginArtifactStub(String groupId, String artifactId, String version, String packaging) {
         this.groupId = groupId;
         this.artifactId = artifactId;
         this.version = version;
         this.packaging = packaging;
-        versionRange = VersionRange.createFromVersion( version );
+        versionRange = VersionRange.createFromVersion(version);
     }
 
     /** {@inheritDoc} */
     @Override
-    public void setGroupId( String groupId )
-    {
+    public void setGroupId(String groupId) {
         this.groupId = groupId;
     }
 
     /** {@inheritDoc} */
     @Override
-    public String getGroupId()
-    {
+    public String getGroupId() {
         return groupId;
     }
 
     /** {@inheritDoc} */
     @Override
-    public void setArtifactId( String artifactId )
-    {
+    public void setArtifactId(String artifactId) {
         this.artifactId = artifactId;
     }
 
     /** {@inheritDoc} */
     @Override
-    public String getArtifactId()
-    {
+    public String getArtifactId() {
         return artifactId;
     }
 
     /** {@inheritDoc} */
     @Override
-    public void setVersion( String version )
-    {
+    public void setVersion(String version) {
         this.version = version;
     }
 
     /** {@inheritDoc} */
     @Override
-    public String getVersion()
-    {
+    public String getVersion() {
         return version;
     }
 
-    public void setPackaging( String packaging )
-    {
+    public void setPackaging(String packaging) {
         this.packaging = packaging;
     }
 
-    public String getPackaging()
-    {
+    public String getPackaging() {
         return packaging;
     }
 
     /** {@inheritDoc} */
     @Override
-    public VersionRange getVersionRange()
-    {
+    public VersionRange getVersionRange() {
         return versionRange;
     }
 
     /** {@inheritDoc} */
     @Override
-    public void setVersionRange( VersionRange versionRange )
-    {
+    public void setVersionRange(VersionRange versionRange) {
         this.versionRange = versionRange;
     }
 
     /** {@inheritDoc} */
     @Override
-    public ArtifactHandler getArtifactHandler()
-    {
+    public ArtifactHandler getArtifactHandler() {
         return handler;
     }
 
     /** {@inheritDoc} */
     @Override
-    public void setArtifactHandler( ArtifactHandler handler )
-    {
+    public void setArtifactHandler(ArtifactHandler handler) {
         this.handler = handler;
     }
 }
diff --git a/src/test/java/org/apache/maven/plugins/pmd/stubs/PmdProjectStub.java b/src/test/java/org/apache/maven/plugins/pmd/stubs/PmdProjectStub.java
index 0b8f6f9..fd34c4f 100644
--- a/src/test/java/org/apache/maven/plugins/pmd/stubs/PmdProjectStub.java
+++ b/src/test/java/org/apache/maven/plugins/pmd/stubs/PmdProjectStub.java
@@ -1,5 +1,3 @@
-package org.apache.maven.plugins.pmd.stubs;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -9,7 +7,7 @@
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
  *
- *  http://www.apache.org/licenses/LICENSE-2.0
+ *   http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
@@ -18,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.maven.plugins.pmd.stubs;
 
 import java.util.Collections;
 import java.util.List;
@@ -28,15 +27,16 @@
 import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
 import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
 
-public abstract class PmdProjectStub
-    extends MavenProjectStub
-{
+public abstract class PmdProjectStub extends MavenProjectStub {
     @Override
-    public List<ArtifactRepository> getRemoteArtifactRepositories()
-    {
-        ArtifactRepository repository = new MavenArtifactRepository( "central", "https://repo1.maven.org/maven2",
-                                                                       new DefaultRepositoryLayout(), new ArtifactRepositoryPolicy(), new ArtifactRepositoryPolicy() );
+    public List<ArtifactRepository> getRemoteArtifactRepositories() {
+        ArtifactRepository repository = new MavenArtifactRepository(
+                "central",
+                "https://repo1.maven.org/maven2",
+                new DefaultRepositoryLayout(),
+                new ArtifactRepositoryPolicy(),
+                new ArtifactRepositoryPolicy());
 
-        return Collections.singletonList( repository );
+        return Collections.singletonList(repository);
     }
 }