This is an automated email from the ASF dual-hosted git repository.

rmaucher pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/tomcat-maven-plugin.git


The following commit(s) were added to refs/heads/trunk by this push:
     new 6c84375  Basic cleanups and refactorings
6c84375 is described below

commit 6c84375d7a8177090c5d8ef5bef2a937b4c6b6cc
Author: remm <[email protected]>
AuthorDate: Fri Apr 17 23:14:58 2026 +0200

    Basic cleanups and refactorings
---
 pom.xml                                            | 16 ----
 .../maven/common/deployer/TomcatManager.java       | 78 ++++++++----------
 .../common/deployer/TomcatManagerException.java    |  3 +-
 .../common/deployer/TomcatManagerResponse.java     |  2 +-
 .../common/messages/DefaultMessagesProvider.java   | 15 +---
 .../maven/common/messages/MessagesProvider.java    |  3 +-
 .../common/run/ClassLoaderEntriesCalculator.java   |  5 +-
 .../run/ClassLoaderEntriesCalculatorRequest.java   |  2 +-
 .../run/ClassLoaderEntriesCalculatorResult.java    |  4 +-
 .../run/DefaultClassLoaderEntriesCalculator.java   | 38 ++++-----
 .../tomcat/maven/common/run/EmbeddedRegistry.java  | 26 +++---
 .../maven/common/run/TomcatRunException.java       |  3 +-
 .../maven/plugin/tomcat/AbstractCatalinaMojo.java  |  3 +-
 .../maven/plugin/tomcat/AbstractTomcatMojo.java    |  2 +-
 .../plugin/tomcat/AbstractWarCatalinaMojo.java     |  3 +-
 .../plugin/tomcat/deploy/AbstractDeployMojo.java   |  3 +-
 .../tomcat/deploy/AbstractDeployWarMojo.java       |  3 +-
 .../maven/plugin/tomcat/deploy/DeployMojo.java     |  3 +-
 .../maven/plugin/tomcat/deploy/DeployOnlyMojo.java |  3 +-
 .../maven/plugin/tomcat/deploy/ListMojo.java       |  3 +-
 .../maven/plugin/tomcat/deploy/RedeployMojo.java   |  3 +-
 .../plugin/tomcat/deploy/RedeployOnlyMojo.java     |  3 +-
 .../maven/plugin/tomcat/deploy/ReloadMojo.java     |  3 +-
 .../maven/plugin/tomcat/deploy/ResourcesMojo.java  |  3 +-
 .../maven/plugin/tomcat/deploy/ServerInfoMojo.java |  3 +-
 .../maven/plugin/tomcat/deploy/SessionsMojo.java   |  3 +-
 .../maven/plugin/tomcat/deploy/StartMojo.java      |  3 +-
 .../maven/plugin/tomcat/deploy/StopMojo.java       |  3 +-
 .../maven/plugin/tomcat/deploy/UndeployMojo.java   |  3 +-
 .../maven/plugin/tomcat/deploy/WaitMojo.java       |  3 +-
 .../plugin/tomcat/run/AbstractExecWarMojo.java     | 25 ++----
 .../maven/plugin/tomcat/run/AbstractRunMojo.java   | 32 ++------
 .../plugin/tomcat/run/AbstractRunWarMojo.java      |  3 +-
 .../tomcat/run/AbstractStandaloneWarMojo.java      |  2 +-
 .../maven/plugin/tomcat/run/ExecWarMojo.java       |  2 +-
 .../maven/plugin/tomcat/run/ExecWarOnlyMojo.java   |  2 +-
 .../maven/plugin/tomcat/run/ExtendedTomcat.java    |  2 +-
 .../maven/plugin/tomcat/run/ExtraDependency.java   |  2 +-
 .../maven/plugin/tomcat/run/ExtraResource.java     |  2 +-
 .../tomcat/maven/plugin/tomcat/run/RunMojo.java    | 71 ++++++----------
 .../tomcat/maven/plugin/tomcat/run/RunWarMojo.java |  4 +-
 .../maven/plugin/tomcat/run/RunWarOnlyMojo.java    |  4 +-
 .../maven/plugin/tomcat/run/ShutdownMojo.java      |  4 +-
 .../maven/plugin/tomcat/run/StandaloneWarMojo.java |  2 +-
 .../plugin/tomcat/run/StandaloneWarOnlyMojo.java   |  2 +-
 .../maven/plugin/tomcat/run/WarRunDependency.java  |  2 +-
 .../tomcat/maven/plugin/tomcat/run/Webapp.java     | 18 ++++
 .../apache/tomcat/maven/runner/PasswordUtil.java   |  3 +-
 .../apache/tomcat/maven/runner/TomcatRunner.java   | 95 +++++++---------------
 .../tomcat/maven/runner/TomcatRunnerCli.java       |  2 +-
 .../maven/it/AbstractDeployWarOnlyProjectIT.java   |  4 +-
 .../maven/it/AbstractDeployWarProjectIT.java       |  4 +-
 .../maven/it/AbstractSimpleWarProjectIT.java       |  4 +-
 .../maven/it/AbstractTomcatRunMultiConfigIT.java   |  4 +-
 .../maven/it/AbstractUsageContextpathIT.java       |  4 +-
 .../tomcat/maven/it/AbstractWarProjectIT.java      |  4 +-
 .../tomcat/maven/it/TomcatContainerGoalsIT.java    |  3 +-
 .../tomcat/maven/it/TomcatContextGoalsIT.java      |  3 +-
 .../maven/it/TomcatDeployWarOnlyProjectIT.java     |  2 +-
 .../tomcat/maven/it/TomcatDeployWarProjectIT.java  |  2 +-
 .../tomcat/maven/it/TomcatRunMultiConfigIT.java    |  2 +-
 .../tomcat/maven/it/TomcatSimpleWarProjectIT.java  |  2 +-
 62 files changed, 206 insertions(+), 359 deletions(-)

diff --git a/pom.xml b/pom.xml
index e5abeb2..be1e97d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -366,22 +366,6 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-invoker-plugin</artifactId>
-                    <executions>
-                        <execution>
-                            <goals>
-                                <goal>integration-test</goal>
-                            </goals>
-                            <configuration>
-                                <pomIncludes>
-                                    
<include>**/simple-war-exec-project/pom.xml</include>
-                                </pomIncludes>
-                                <showErrors>true</showErrors>
-                                
<localRepositoryPath>${basedir}/target/it-repo</localRepositoryPath>
-                                
<settingsFile>src/it/settings.xml</settingsFile>
-                                
<postBuildHookScript>verify</postBuildHookScript>
-                            </configuration>
-                        </execution>
-                    </executions>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
diff --git 
a/src/main/java/org/apache/tomcat/maven/common/deployer/TomcatManager.java 
b/src/main/java/org/apache/tomcat/maven/common/deployer/TomcatManager.java
index 6a8d728..7226223 100644
--- a/src/main/java/org/apache/tomcat/maven/common/deployer/TomcatManager.java
+++ b/src/main/java/org/apache/tomcat/maven/common/deployer/TomcatManager.java
@@ -1,5 +1,3 @@
-package org.apache.tomcat.maven.common.deployer;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@ package org.apache.tomcat.maven.common.deployer;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.tomcat.maven.common.deployer;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -85,17 +84,17 @@ public class TomcatManager
     /**
      * The username to use when authenticating with Tomcat manager.
      */
-    private String username;
+    private final String username;
 
     /**
      * The password to use when authenticating with Tomcat manager.
      */
-    private String password;
+    private final String password;
 
     /**
      * The URL encoding charset to use when communicating with Tomcat manager.
      */
-    private String charset;
+    private final String charset;
 
     /**
      * The user agent name to use when communicating with Tomcat manager.
@@ -105,7 +104,7 @@ public class TomcatManager
     /**
      * @since 2.0
      */
-    private DefaultHttpClient httpClient;
+    private final DefaultHttpClient httpClient;
 
     /**
      * @since 2.0
@@ -117,7 +116,7 @@ public class TomcatManager
     /**
      * @since 2.2
      */
-    private boolean verbose;
+    private final boolean verbose;
 
     // ----------------------------------------------------------------------
     // Constructors
@@ -652,12 +651,12 @@ public class TomcatManager
     public TomcatManagerResponse getResources( String type )
         throws TomcatManagerException, IOException
     {
-        StringBuffer buffer = new StringBuffer();
+        StringBuilder buffer = new StringBuilder();
         buffer.append( "/resources" );
 
         if ( type != null )
         {
-            buffer.append( "?type=" + URLEncoder.encode( type, charset ) );
+            buffer.append("?type=").append(URLEncoder.encode(type, charset));
         }
         return invoke( buffer.toString() );
     }
@@ -770,7 +769,7 @@ public class TomcatManager
         {
             HttpPut httpPut = new HttpPut( url + path );
 
-            httpPut.setEntity( new RequestEntityImplementation( data, length, 
url + path, verbose ) );
+            httpPut.setEntity(new RequestEntityImplementation(data, length, 
url + path, verbose));
 
             httpRequestBase = httpPut;
 
@@ -825,7 +824,7 @@ public class TomcatManager
      */
     private String toAuthorization( String username, String password )
     {
-        StringBuffer buffer = new StringBuffer();
+        StringBuilder buffer = new StringBuilder();
         buffer.append( username ).append( ':' );
         if ( password != null )
         {
@@ -834,13 +833,13 @@ public class TomcatManager
         return "Basic " + new String( Base64.encodeBase64( 
buffer.toString().getBytes() ) );
     }
 
-    private final class RequestEntityImplementation
+    private static final class RequestEntityImplementation
         extends AbstractHttpEntity
     {
 
         private final static int BUFFER_SIZE = 2048;
 
-        private File file;
+        private final File file;
 
         PrintStream out = System.out;
 
@@ -848,11 +847,11 @@ public class TomcatManager
 
         private int lastLength;
 
-        private String url;
+        private final String url;
 
         private long startTime;
 
-        private boolean verbose;
+        private final boolean verbose;
 
         private RequestEntityImplementation( final File file, long length, 
String url, boolean verbose )
         {
@@ -865,7 +864,11 @@ public class TomcatManager
         @Override
         public long getContentLength()
         {
-            return length >= 0 ? length : ( file.length() >= 0 ? file.length() 
: -1 );
+            if (length >= 0) {
+                return length;
+            } else {
+                return file.length();
+            }
         }
 
 
@@ -892,47 +895,36 @@ public class TomcatManager
             {
                 throw new IllegalArgumentException( "Output stream may not be 
null" );
             }
-            FileInputStream stream = new FileInputStream( this.file );
-            transferInitiated( this.url );
-            this.startTime = System.currentTimeMillis();
-            try
-            {
+            try (FileInputStream stream = new FileInputStream(this.file)) {
+                transferInitiated(this.url);
+                this.startTime = System.currentTimeMillis();
                 byte[] buffer = new byte[BUFFER_SIZE];
 
                 int l;
-                if ( this.length < 0 )
-                {
+                if (this.length < 0) {
                     // until EOF
-                    while ( ( l = stream.read( buffer ) ) != -1 )
-                    {
-                        transferProgressed( completed += buffer.length, -1 );
-                        outstream.write( buffer, 0, l );
+                    while ((l = stream.read(buffer)) != -1) {
+                        transferProgressed(completed += buffer.length, -1);
+                        outstream.write(buffer, 0, l);
                     }
-                }
-                else
-                {
+                } else {
                     // no need to consume more than length
                     long remaining = this.length;
-                    while ( remaining > 0 )
-                    {
-                        int transferSize = (int) Math.min( BUFFER_SIZE, 
remaining );
+                    while (remaining > 0) {
+                        int transferSize = (int) Math.min(BUFFER_SIZE, 
remaining);
                         completed += transferSize;
-                        l = stream.read( buffer, 0, transferSize );
-                        if ( l == -1 )
-                        {
+                        l = stream.read(buffer, 0, transferSize);
+                        if (l == -1) {
                             break;
                         }
 
-                        outstream.write( buffer, 0, l );
+                        outstream.write(buffer, 0, l);
                         remaining -= l;
-                        transferProgressed( completed, this.length );
+                        transferProgressed(completed, this.length);
                     }
                 }
-                transferSucceeded( completed );
-            }
-            finally
-            {
-                stream.close();
+                transferSucceeded(completed);
+            } finally {
                 out.println();
             }
             // end transfer
diff --git 
a/src/main/java/org/apache/tomcat/maven/common/deployer/TomcatManagerException.java
 
b/src/main/java/org/apache/tomcat/maven/common/deployer/TomcatManagerException.java
index 7cda147..dff7f62 100644
--- 
a/src/main/java/org/apache/tomcat/maven/common/deployer/TomcatManagerException.java
+++ 
b/src/main/java/org/apache/tomcat/maven/common/deployer/TomcatManagerException.java
@@ -1,5 +1,3 @@
-package org.apache.tomcat.maven.common.deployer;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@ package org.apache.tomcat.maven.common.deployer;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.tomcat.maven.common.deployer;
 
 /**
  * Indicates an error received from Tomcat manager.
diff --git 
a/src/main/java/org/apache/tomcat/maven/common/deployer/TomcatManagerResponse.java
 
b/src/main/java/org/apache/tomcat/maven/common/deployer/TomcatManagerResponse.java
index 7dc4eb7..a481883 100644
--- 
a/src/main/java/org/apache/tomcat/maven/common/deployer/TomcatManagerResponse.java
+++ 
b/src/main/java/org/apache/tomcat/maven/common/deployer/TomcatManagerResponse.java
@@ -1,4 +1,3 @@
-package org.apache.tomcat.maven.common.deployer;
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -17,6 +16,7 @@ package org.apache.tomcat.maven.common.deployer;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.tomcat.maven.common.deployer;
 
 /**
  * @author Olivier Lamy
diff --git 
a/src/main/java/org/apache/tomcat/maven/common/messages/DefaultMessagesProvider.java
 
b/src/main/java/org/apache/tomcat/maven/common/messages/DefaultMessagesProvider.java
index e11cf2c..1401645 100644
--- 
a/src/main/java/org/apache/tomcat/maven/common/messages/DefaultMessagesProvider.java
+++ 
b/src/main/java/org/apache/tomcat/maven/common/messages/DefaultMessagesProvider.java
@@ -1,5 +1,3 @@
-package org.apache.tomcat.maven.common.messages;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@ package org.apache.tomcat.maven.common.messages;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.tomcat.maven.common.messages;
 
 import org.codehaus.plexus.component.annotations.Component;
 
@@ -37,7 +36,7 @@ public class DefaultMessagesProvider
     /**
      * plugin messages
      */
-    private ResourceBundle messages;
+    private final ResourceBundle messages;
 
 
     public DefaultMessagesProvider()
@@ -65,15 +64,7 @@ public class DefaultMessagesProvider
         {
             return getResourceBundle().getString( key );
         }
-        catch ( NullPointerException exception )
-        {
-            return "???" + key + "???";
-        }
-        catch ( MissingResourceException exception )
-        {
-            return "???" + key + "???";
-        }
-        catch ( ClassCastException exception )
+        catch (NullPointerException | MissingResourceException | 
ClassCastException exception )
         {
             return "???" + key + "???";
         }
diff --git 
a/src/main/java/org/apache/tomcat/maven/common/messages/MessagesProvider.java 
b/src/main/java/org/apache/tomcat/maven/common/messages/MessagesProvider.java
index 85e6209..03df6d0 100644
--- 
a/src/main/java/org/apache/tomcat/maven/common/messages/MessagesProvider.java
+++ 
b/src/main/java/org/apache/tomcat/maven/common/messages/MessagesProvider.java
@@ -1,5 +1,3 @@
-package org.apache.tomcat.maven.common.messages;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@ package org.apache.tomcat.maven.common.messages;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.tomcat.maven.common.messages;
 
 /**
  * messages provider
diff --git 
a/src/main/java/org/apache/tomcat/maven/common/run/ClassLoaderEntriesCalculator.java
 
b/src/main/java/org/apache/tomcat/maven/common/run/ClassLoaderEntriesCalculator.java
index 4d3de79..85b6cab 100644
--- 
a/src/main/java/org/apache/tomcat/maven/common/run/ClassLoaderEntriesCalculator.java
+++ 
b/src/main/java/org/apache/tomcat/maven/common/run/ClassLoaderEntriesCalculator.java
@@ -1,5 +1,3 @@
-package org.apache.tomcat.maven.common.run;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,8 +16,7 @@ package org.apache.tomcat.maven.common.run;
  * specific language governing permissions and limitations
  * under the License.
  */
-
-
+package org.apache.tomcat.maven.common.run;
 
 /**
  * @author Olivier Lamy
diff --git 
a/src/main/java/org/apache/tomcat/maven/common/run/ClassLoaderEntriesCalculatorRequest.java
 
b/src/main/java/org/apache/tomcat/maven/common/run/ClassLoaderEntriesCalculatorRequest.java
index f7a84bd..d25b9bf 100644
--- 
a/src/main/java/org/apache/tomcat/maven/common/run/ClassLoaderEntriesCalculatorRequest.java
+++ 
b/src/main/java/org/apache/tomcat/maven/common/run/ClassLoaderEntriesCalculatorRequest.java
@@ -1,4 +1,3 @@
-package org.apache.tomcat.maven.common.run;
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -17,6 +16,7 @@ package org.apache.tomcat.maven.common.run;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.tomcat.maven.common.run;
 
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.plugin.logging.Log;
diff --git 
a/src/main/java/org/apache/tomcat/maven/common/run/ClassLoaderEntriesCalculatorResult.java
 
b/src/main/java/org/apache/tomcat/maven/common/run/ClassLoaderEntriesCalculatorResult.java
index 64247bb..2446b04 100644
--- 
a/src/main/java/org/apache/tomcat/maven/common/run/ClassLoaderEntriesCalculatorResult.java
+++ 
b/src/main/java/org/apache/tomcat/maven/common/run/ClassLoaderEntriesCalculatorResult.java
@@ -1,4 +1,3 @@
-package org.apache.tomcat.maven.common.run;
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -17,6 +16,7 @@ package org.apache.tomcat.maven.common.run;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.tomcat.maven.common.run;
 
 import java.io.File;
 import java.util.List;
@@ -41,7 +41,7 @@ public class ClassLoaderEntriesCalculatorResult
     /**
      * directory part of webapp classpath (project.build.directory and reactor 
projects)
      */
-    private List<String> buildDirectories;
+    private final List<String> buildDirectories;
 
     /**
      * @param classPathEntries  Classpath entries File .toURI().toString()
diff --git 
a/src/main/java/org/apache/tomcat/maven/common/run/DefaultClassLoaderEntriesCalculator.java
 
b/src/main/java/org/apache/tomcat/maven/common/run/DefaultClassLoaderEntriesCalculator.java
index 4eaf05c..d9dc30a 100644
--- 
a/src/main/java/org/apache/tomcat/maven/common/run/DefaultClassLoaderEntriesCalculator.java
+++ 
b/src/main/java/org/apache/tomcat/maven/common/run/DefaultClassLoaderEntriesCalculator.java
@@ -1,5 +1,3 @@
-package org.apache.tomcat.maven.common.run;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@ package org.apache.tomcat.maven.common.run;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.tomcat.maven.common.run;
 
 import org.apache.commons.io.FileUtils;
 import org.apache.maven.artifact.Artifact;
@@ -58,13 +57,13 @@ public class DefaultClassLoaderEntriesCalculator
     public ClassLoaderEntriesCalculatorResult calculateClassPathEntries( 
ClassLoaderEntriesCalculatorRequest request )
         throws TomcatRunException
     {
-        Set<String> classLoaderEntries = new LinkedHashSet<String>();
+        Set<String> classLoaderEntries = new LinkedHashSet<>();
 
-        List<String> fileInClassLoaderEntries = new ArrayList<String>();
+        List<String> fileInClassLoaderEntries = new ArrayList<>();
 
-        List<File> tmpDirectories = new ArrayList<File>();
+        List<File> tmpDirectories = new ArrayList<>();
 
-        List<String> buildDirectories = new ArrayList<String>();
+        List<String> buildDirectories = new ArrayList<>();
 
         // add classes directories to loader
         try
@@ -186,18 +185,16 @@ public class DefaultClassLoaderEntriesCalculator
                                     return s.endsWith( ".jar" );
                                 }
                             } );
-                            for ( String jar : jars )
-                            {
-                                File jarFile = new File( libsDirectory, jar );
-                                if ( !fileInClassLoaderEntries.contains( 
jarFile.getName() ) )
-                                {
-                                    classLoaderEntries.add( 
jarFile.toURI().toString() );
-                                    fileInClassLoaderEntries.add( 
jarFile.getName() );
-                                }
-                                else
-                                {
-                                    request.getLog().debug( "skip adding file 
" + jarFile.getPath()
-                                                                + " as it's 
already in classloader entries" );
+                            if (jars != null) {
+                                for (String jar : jars) {
+                                    File jarFile = new File(libsDirectory, 
jar);
+                                    if 
(!fileInClassLoaderEntries.contains(jarFile.getName())) {
+                                        
classLoaderEntries.add(jarFile.toURI().toString());
+                                        
fileInClassLoaderEntries.add(jarFile.getName());
+                                    } else {
+                                        request.getLog().debug("skip adding 
file " + jarFile.getPath()
+                                                + " as it's already in 
classloader entries");
+                                    }
                                 }
                             }
                         }
@@ -221,7 +218,7 @@ public class DefaultClassLoaderEntriesCalculator
             }
         }
 
-        return new ClassLoaderEntriesCalculatorResult( new ArrayList<String>( 
classLoaderEntries ), //
+        return new ClassLoaderEntriesCalculatorResult( new ArrayList<>( 
classLoaderEntries ), //
                                                        tmpDirectories, //
                                                        buildDirectories );
 
@@ -247,8 +244,7 @@ public class DefaultClassLoaderEntriesCalculator
         {
             return false;
         }
-        @SuppressWarnings( "unchecked" ) Collection<MavenProject> 
mavenProjects =
-            project.getProjectReferences().values();
+        Collection<MavenProject> mavenProjects = 
project.getProjectReferences().values();
         for ( MavenProject mavenProject : mavenProjects )
         {
             if ( mavenProject.getId() != null && mavenProject.getId().equals( 
artifact.getId() ) )
diff --git 
a/src/main/java/org/apache/tomcat/maven/common/run/EmbeddedRegistry.java 
b/src/main/java/org/apache/tomcat/maven/common/run/EmbeddedRegistry.java
index 63ccdcd..17ea862 100644
--- a/src/main/java/org/apache/tomcat/maven/common/run/EmbeddedRegistry.java
+++ b/src/main/java/org/apache/tomcat/maven/common/run/EmbeddedRegistry.java
@@ -1,5 +1,3 @@
-package org.apache.tomcat.maven.common.run;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@ package org.apache.tomcat.maven.common.run;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.tomcat.maven.common.run;
 
 import org.apache.maven.plugin.logging.Log;
 
@@ -39,7 +38,7 @@ public final class EmbeddedRegistry
 {
     private static EmbeddedRegistry instance;
 
-    private Set<Object> containers = new HashSet<>( 1 );
+    private final Set<Object> containers = new HashSet<>( 1 );
 
     /**
      * Don't instantiate - use the instance through {@link #getInstance()}.
@@ -59,21 +58,16 @@ public final class EmbeddedRegistry
         if ( instance == null )
         {
             instance = new EmbeddedRegistry();
-            Runtime.getRuntime().addShutdownHook( new Thread()
-            {
-                @Override
-                public void run()
+            Runtime.getRuntime().addShutdownHook(new Thread(() -> {
+                try
+                {
+                    getInstance().shutdownAll( null );
+                }
+                catch ( Exception e )
                 {
-                    try
-                    {
-                        getInstance().shutdownAll( null );
-                    }
-                    catch ( Exception e )
-                    {
-                        // ignore, the exception should already have been 
reported
-                    }
+                    // ignore, the exception should already have been reported
                 }
-            } );
+            }));
         }
         return instance;
     }
diff --git 
a/src/main/java/org/apache/tomcat/maven/common/run/TomcatRunException.java 
b/src/main/java/org/apache/tomcat/maven/common/run/TomcatRunException.java
index 08751bd..26dd14e 100644
--- a/src/main/java/org/apache/tomcat/maven/common/run/TomcatRunException.java
+++ b/src/main/java/org/apache/tomcat/maven/common/run/TomcatRunException.java
@@ -1,5 +1,3 @@
-package org.apache.tomcat.maven.common.run;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@ package org.apache.tomcat.maven.common.run;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.tomcat.maven.common.run;
 
 /**
  * @author Olivier Lamy
diff --git 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/AbstractCatalinaMojo.java 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/AbstractCatalinaMojo.java
index 890c536..438f7ec 100644
--- 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/AbstractCatalinaMojo.java
+++ 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/AbstractCatalinaMojo.java
@@ -1,5 +1,3 @@
-package org.apache.tomcat.maven.plugin.tomcat;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@ package org.apache.tomcat.maven.plugin.tomcat;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.tomcat.maven.plugin.tomcat;
 
 import org.apache.maven.artifact.manager.WagonManager;
 import org.apache.maven.plugin.MojoExecutionException;
diff --git 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/AbstractTomcatMojo.java 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/AbstractTomcatMojo.java
index 43ac7fb..c053972 100644
--- 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/AbstractTomcatMojo.java
+++ 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/AbstractTomcatMojo.java
@@ -1,4 +1,3 @@
-package org.apache.tomcat.maven.plugin.tomcat;
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -17,6 +16,7 @@ package org.apache.tomcat.maven.plugin.tomcat;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.tomcat.maven.plugin.tomcat;
 
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
diff --git 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/AbstractWarCatalinaMojo.java
 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/AbstractWarCatalinaMojo.java
index f6fad55..54ddd49 100644
--- 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/AbstractWarCatalinaMojo.java
+++ 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/AbstractWarCatalinaMojo.java
@@ -1,5 +1,3 @@
-package org.apache.tomcat.maven.plugin.tomcat;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@ package org.apache.tomcat.maven.plugin.tomcat;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.tomcat.maven.plugin.tomcat;
 
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugins.annotations.Parameter;
diff --git 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/AbstractDeployMojo.java
 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/AbstractDeployMojo.java
index 08a099f..fe2f9dd 100644
--- 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/AbstractDeployMojo.java
+++ 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/AbstractDeployMojo.java
@@ -1,5 +1,3 @@
-package org.apache.tomcat.maven.plugin.tomcat.deploy;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@ package org.apache.tomcat.maven.plugin.tomcat.deploy;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.tomcat.maven.plugin.tomcat.deploy;
 
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugins.annotations.Parameter;
diff --git 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/AbstractDeployWarMojo.java
 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/AbstractDeployWarMojo.java
index a890379..62c5995 100644
--- 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/AbstractDeployWarMojo.java
+++ 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/AbstractDeployWarMojo.java
@@ -1,5 +1,3 @@
-package org.apache.tomcat.maven.plugin.tomcat.deploy;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@ package org.apache.tomcat.maven.plugin.tomcat.deploy;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.tomcat.maven.plugin.tomcat.deploy;
 
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugins.annotations.Parameter;
diff --git 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/DeployMojo.java 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/DeployMojo.java
index be00b3f..255d563 100644
--- a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/DeployMojo.java
+++ b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/DeployMojo.java
@@ -1,5 +1,3 @@
-package org.apache.tomcat.maven.plugin.tomcat.deploy;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@ package org.apache.tomcat.maven.plugin.tomcat.deploy;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.tomcat.maven.plugin.tomcat.deploy;
 
 import org.apache.maven.plugins.annotations.Execute;
 import org.apache.maven.plugins.annotations.LifecyclePhase;
diff --git 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/DeployOnlyMojo.java
 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/DeployOnlyMojo.java
index 9c10601..cb4ca53 100644
--- 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/DeployOnlyMojo.java
+++ 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/DeployOnlyMojo.java
@@ -1,5 +1,3 @@
-package org.apache.tomcat.maven.plugin.tomcat.deploy;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@ package org.apache.tomcat.maven.plugin.tomcat.deploy;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.tomcat.maven.plugin.tomcat.deploy;
 
 import org.apache.maven.plugins.annotations.Mojo;
 
diff --git 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/ListMojo.java 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/ListMojo.java
index 5937dd9..72a350a 100644
--- a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/ListMojo.java
+++ b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/ListMojo.java
@@ -1,5 +1,3 @@
-package org.apache.tomcat.maven.plugin.tomcat.deploy;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@ package org.apache.tomcat.maven.plugin.tomcat.deploy;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.tomcat.maven.plugin.tomcat.deploy;
 
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugins.annotations.Mojo;
diff --git 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/RedeployMojo.java 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/RedeployMojo.java
index a9b0384..e21b3b5 100644
--- 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/RedeployMojo.java
+++ 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/RedeployMojo.java
@@ -1,5 +1,3 @@
-package org.apache.tomcat.maven.plugin.tomcat.deploy;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@ package org.apache.tomcat.maven.plugin.tomcat.deploy;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.tomcat.maven.plugin.tomcat.deploy;
 
 import org.apache.maven.plugins.annotations.Execute;
 import org.apache.maven.plugins.annotations.LifecyclePhase;
diff --git 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/RedeployOnlyMojo.java
 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/RedeployOnlyMojo.java
index c70fbc1..f435abe 100644
--- 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/RedeployOnlyMojo.java
+++ 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/RedeployOnlyMojo.java
@@ -1,5 +1,3 @@
-package org.apache.tomcat.maven.plugin.tomcat.deploy;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@ package org.apache.tomcat.maven.plugin.tomcat.deploy;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.tomcat.maven.plugin.tomcat.deploy;
 
 import org.apache.maven.plugins.annotations.Mojo;
 
diff --git 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/ReloadMojo.java 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/ReloadMojo.java
index cf35c06..c9b7e51 100644
--- a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/ReloadMojo.java
+++ b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/ReloadMojo.java
@@ -1,5 +1,3 @@
-package org.apache.tomcat.maven.plugin.tomcat.deploy;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@ package org.apache.tomcat.maven.plugin.tomcat.deploy;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.tomcat.maven.plugin.tomcat.deploy;
 
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugins.annotations.Mojo;
diff --git 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/ResourcesMojo.java 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/ResourcesMojo.java
index d570702..0c1488e 100644
--- 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/ResourcesMojo.java
+++ 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/ResourcesMojo.java
@@ -1,5 +1,3 @@
-package org.apache.tomcat.maven.plugin.tomcat.deploy;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@ package org.apache.tomcat.maven.plugin.tomcat.deploy;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.tomcat.maven.plugin.tomcat.deploy;
 
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugins.annotations.Mojo;
diff --git 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/ServerInfoMojo.java
 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/ServerInfoMojo.java
index bd7e97c..b83abb3 100644
--- 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/ServerInfoMojo.java
+++ 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/ServerInfoMojo.java
@@ -1,5 +1,3 @@
-package org.apache.tomcat.maven.plugin.tomcat.deploy;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@ package org.apache.tomcat.maven.plugin.tomcat.deploy;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.tomcat.maven.plugin.tomcat.deploy;
 
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugins.annotations.Mojo;
diff --git 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/SessionsMojo.java 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/SessionsMojo.java
index 72e6084..5a630bb 100644
--- 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/SessionsMojo.java
+++ 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/SessionsMojo.java
@@ -1,5 +1,3 @@
-package org.apache.tomcat.maven.plugin.tomcat.deploy;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@ package org.apache.tomcat.maven.plugin.tomcat.deploy;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.tomcat.maven.plugin.tomcat.deploy;
 
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugins.annotations.Mojo;
diff --git 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/StartMojo.java 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/StartMojo.java
index 0adffa6..45bb86f 100644
--- a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/StartMojo.java
+++ b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/StartMojo.java
@@ -1,5 +1,3 @@
-package org.apache.tomcat.maven.plugin.tomcat.deploy;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@ package org.apache.tomcat.maven.plugin.tomcat.deploy;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.tomcat.maven.plugin.tomcat.deploy;
 
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugins.annotations.Mojo;
diff --git 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/StopMojo.java 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/StopMojo.java
index 2d96647..167a76b 100644
--- a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/StopMojo.java
+++ b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/StopMojo.java
@@ -1,5 +1,3 @@
-package org.apache.tomcat.maven.plugin.tomcat.deploy;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@ package org.apache.tomcat.maven.plugin.tomcat.deploy;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.tomcat.maven.plugin.tomcat.deploy;
 
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugins.annotations.Mojo;
diff --git 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/UndeployMojo.java 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/UndeployMojo.java
index 50d9eb5..e7f3e6f 100644
--- 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/UndeployMojo.java
+++ 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/UndeployMojo.java
@@ -1,5 +1,3 @@
-package org.apache.tomcat.maven.plugin.tomcat.deploy;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@ package org.apache.tomcat.maven.plugin.tomcat.deploy;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.tomcat.maven.plugin.tomcat.deploy;
 
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugins.annotations.Mojo;
diff --git 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/WaitMojo.java 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/WaitMojo.java
index 61b8196..7635396 100644
--- a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/WaitMojo.java
+++ b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/deploy/WaitMojo.java
@@ -1,5 +1,3 @@
-package org.apache.tomcat.maven.plugin.tomcat.deploy;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@ package org.apache.tomcat.maven.plugin.tomcat.deploy;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.tomcat.maven.plugin.tomcat.deploy;
 
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugins.annotations.Mojo;
diff --git 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/AbstractExecWarMojo.java
 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/AbstractExecWarMojo.java
index 157d966..25b108f 100644
--- 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/AbstractExecWarMojo.java
+++ 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/AbstractExecWarMojo.java
@@ -1,4 +1,3 @@
-package org.apache.tomcat.maven.plugin.tomcat.run;
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -17,6 +16,7 @@ package org.apache.tomcat.maven.plugin.tomcat.run;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.tomcat.maven.plugin.tomcat.run;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -172,7 +172,7 @@ public abstract class AbstractExecWarMojo
     protected boolean enableNaming;
 
     /**
-     * see http://tomcat.apache.org/tomcat-7.0-doc/config/valve.html
+     * see http://tomcat.apache.org/tomcat-9.0-doc/config/valve.html
      */
     @Parameter( property = "maven.tomcat.exec.war.accessLogValveFormat", 
defaultValue = "%h %l %u %t %r %s %b %I %D",
                 required = true )
@@ -480,19 +480,7 @@ public abstract class AbstractExecWarMojo
             }
 
         }
-        catch ( ManifestException e )
-        {
-            throw new MojoExecutionException( e.getMessage(), e );
-        }
-        catch ( IOException e )
-        {
-            throw new MojoExecutionException( e.getMessage(), e );
-        }
-        catch ( ArtifactNotFoundException e )
-        {
-            throw new MojoExecutionException( e.getMessage(), e );
-        }
-        catch ( ArtifactResolutionException e )
+        catch (ManifestException | IOException | ArtifactNotFoundException | 
ArtifactResolutionException e )
         {
             throw new MojoExecutionException( e.getMessage(), e );
         }
@@ -649,7 +637,7 @@ public abstract class AbstractExecWarMojo
         {
             JarEntry j = entries.nextElement();
 
-            if ( excludes != null && excludes.length > 0 )
+            if (excludes != null)
             {
                 for ( String exclude : excludes )
                 {
@@ -672,9 +660,6 @@ public abstract class AbstractExecWarMojo
             IOUtils.copy( file.getInputStream( j ), os );
             os.closeArchiveEntry();
         }
-        if ( file != null )
-        {
-            file.close();
-        }
+        file.close();
     }
 }
diff --git 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/AbstractRunMojo.java 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/AbstractRunMojo.java
index adc33fb..0db4a8c 100644
--- 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/AbstractRunMojo.java
+++ 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/AbstractRunMojo.java
@@ -1,4 +1,3 @@
-package org.apache.tomcat.maven.plugin.tomcat.run;
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -17,6 +16,7 @@ package org.apache.tomcat.maven.plugin.tomcat.run;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.tomcat.maven.plugin.tomcat.run;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -773,11 +773,7 @@ public abstract class AbstractRunMojo
 
             return standardContext;
         }
-        catch ( XMLStreamException e )
-        {
-            throw new MojoExecutionException( e.getMessage(), e );
-        }
-        catch ( FileNotFoundException e )
+        catch (XMLStreamException | FileNotFoundException e )
         {
             throw new MojoExecutionException( e.getMessage(), e );
         }
@@ -826,7 +822,7 @@ public abstract class AbstractRunMojo
             }
             getLog().debug( "context reloadable: " + reloadable );
         }
-        catch ( IOException ioe )
+        catch (IOException | SAXException ioe )
         {
             getLog().error( "Could not parse file: [" + 
contextFile.getAbsolutePath() + "]", ioe );
         }
@@ -834,10 +830,6 @@ public abstract class AbstractRunMojo
         {
             getLog().error( "Could not configure XML parser", pce );
         }
-        catch ( SAXException se )
-        {
-            getLog().error( "Could not parse file: [" + 
contextFile.getAbsolutePath() + "]", se );
-        }
 
         return reloadable;
     }
@@ -1291,13 +1283,10 @@ public abstract class AbstractRunMojo
             ClassWorld world = new ClassWorld();
             ClassRealm root = world.newRealm( "tomcat", 
Thread.currentThread().getContextClassLoader() );
 
-            for ( Iterator<Artifact> i = pluginArtifacts.iterator(); 
i.hasNext(); )
-            {
-                Artifact pluginArtifact = i.next();
+            for (Artifact pluginArtifact : pluginArtifacts) {
                 // add all plugin artifacts see 
https://issues.apache.org/jira/browse/MTOMCAT-122
-                if ( pluginArtifact.getFile() != null )
-                {
-                    root.addURL( pluginArtifact.getFile().toURI().toURL() );
+                if (pluginArtifact.getFile() != null) {
+                    root.addURL(pluginArtifact.getFile().toURI().toURL());
                 }
 
             }
@@ -1379,7 +1368,7 @@ public abstract class AbstractRunMojo
     {
         getLog().info( "Deploying dependency wars" );
         // Let's add other modules
-        List<Context> contexts = new ArrayList<Context>();
+        List<Context> contexts = new ArrayList<>();
 
         ScopeArtifactFilter filter = new ScopeArtifactFilter( "tomcat" );
         Set<Artifact> artifacts = project.getArtifacts();
@@ -1428,12 +1417,7 @@ public abstract class AbstractRunMojo
                 // Extract the module
                 unArchiver.extract();
             }
-            catch ( NoSuchArchiverException e )
-            {
-                getLog().error( e );
-                return;
-            }
-            catch ( ArchiverException e )
+            catch (NoSuchArchiverException | ArchiverException e )
             {
                 getLog().error( e );
                 return;
diff --git 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/AbstractRunWarMojo.java
 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/AbstractRunWarMojo.java
index 1a8871f..36bb737 100644
--- 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/AbstractRunWarMojo.java
+++ 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/AbstractRunWarMojo.java
@@ -1,5 +1,3 @@
-package org.apache.tomcat.maven.plugin.tomcat.run;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@ package org.apache.tomcat.maven.plugin.tomcat.run;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.tomcat.maven.plugin.tomcat.run;
 
 import org.apache.maven.plugins.annotations.Parameter;
 
diff --git 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/AbstractStandaloneWarMojo.java
 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/AbstractStandaloneWarMojo.java
index 4c68d38..a6a1e41 100644
--- 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/AbstractStandaloneWarMojo.java
+++ 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/AbstractStandaloneWarMojo.java
@@ -1,4 +1,3 @@
-package org.apache.tomcat.maven.plugin.tomcat.run;
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -17,6 +16,7 @@ package org.apache.tomcat.maven.plugin.tomcat.run;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.tomcat.maven.plugin.tomcat.run;
 
 import java.io.File;
 import java.io.FileInputStream;
diff --git 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/ExecWarMojo.java 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/ExecWarMojo.java
index 5aa9598..a5e820b 100644
--- a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/ExecWarMojo.java
+++ b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/ExecWarMojo.java
@@ -1,4 +1,3 @@
-package org.apache.tomcat.maven.plugin.tomcat.run;
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -17,6 +16,7 @@ package org.apache.tomcat.maven.plugin.tomcat.run;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.tomcat.maven.plugin.tomcat.run;
 
 import org.apache.maven.plugins.annotations.Execute;
 import org.apache.maven.plugins.annotations.LifecyclePhase;
diff --git 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/ExecWarOnlyMojo.java 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/ExecWarOnlyMojo.java
index eb78910..1718f91 100644
--- 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/ExecWarOnlyMojo.java
+++ 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/ExecWarOnlyMojo.java
@@ -1,4 +1,3 @@
-package org.apache.tomcat.maven.plugin.tomcat.run;
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -17,6 +16,7 @@ package org.apache.tomcat.maven.plugin.tomcat.run;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.tomcat.maven.plugin.tomcat.run;
 
 import org.apache.maven.plugins.annotations.Mojo;
 
diff --git 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/ExtendedTomcat.java 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/ExtendedTomcat.java
index 6b6634a..6877397 100644
--- 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/ExtendedTomcat.java
+++ 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/ExtendedTomcat.java
@@ -1,4 +1,3 @@
-package org.apache.tomcat.maven.plugin.tomcat.run;
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -17,6 +16,7 @@ package org.apache.tomcat.maven.plugin.tomcat.run;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.tomcat.maven.plugin.tomcat.run;
 
 import org.apache.catalina.Context;
 import org.apache.catalina.Host;
diff --git 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/ExtraDependency.java 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/ExtraDependency.java
index f9b78b3..1446e06 100644
--- 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/ExtraDependency.java
+++ 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/ExtraDependency.java
@@ -1,4 +1,3 @@
-package org.apache.tomcat.maven.plugin.tomcat.run;
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -17,6 +16,7 @@ package org.apache.tomcat.maven.plugin.tomcat.run;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.tomcat.maven.plugin.tomcat.run;
 
 import org.apache.maven.model.Dependency;
 
diff --git 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/ExtraResource.java 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/ExtraResource.java
index a3113ad..c9dfc45 100644
--- a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/ExtraResource.java
+++ b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/ExtraResource.java
@@ -1,4 +1,3 @@
-package org.apache.tomcat.maven.plugin.tomcat.run;
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -17,6 +16,7 @@ package org.apache.tomcat.maven.plugin.tomcat.run;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.tomcat.maven.plugin.tomcat.run;
 
 import org.apache.maven.model.Resource;
 
diff --git 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/RunMojo.java 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/RunMojo.java
index 2b81eb5..9611b14 100644
--- a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/RunMojo.java
+++ b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/RunMojo.java
@@ -1,4 +1,3 @@
-package org.apache.tomcat.maven.plugin.tomcat.run;
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -17,6 +16,7 @@ package org.apache.tomcat.maven.plugin.tomcat.run;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.tomcat.maven.plugin.tomcat.run;
 
 import java.io.File;
 import java.io.FileReader;
@@ -92,8 +92,8 @@ public class RunMojo
     /**
      * Set the "follow standard delegation model" flag used to configure our 
ClassLoader.
      *
-     * @see <a 
href="http://tomcat.apache.org/tomcat-7.0-doc/api/org/apache/catalina/loader/WebappLoader.html#setDelegate(boolean)">
-     *      
http://tomcat.apache.org/tomcat-7.0-doc/api/org/apache/catalina/loader/WebappLoader.html#setDelegate(boolean)</a>
+     * @see <a 
href="http://tomcat.apache.org/tomcat-9.0-doc/api/org/apache/catalina/loader/WebappLoader.html#setDelegate(boolean)">
+     *      
http://tomcat.apache.org/tomcat-9.0-doc/api/org/apache/catalina/loader/WebappLoader.html#setDelegate(boolean)</a>
      * @since 1.0
      */
     @Parameter( property = "tomcat.delegate", defaultValue = "true" )
@@ -148,21 +148,16 @@ public class RunMojo
         {
             // we create a temporary file in build.directory
             final File tempDocBase = createTempDirectory( new File( 
project.getBuild().getDirectory() ) );
-            Runtime.getRuntime().addShutdownHook( new Thread()
-            {
-                @Override
-                public void run()
+            Runtime.getRuntime().addShutdownHook(new Thread(() -> {
+                try
                 {
-                    try
-                    {
-                        FileUtils.deleteDirectory( tempDocBase );
-                    }
-                    catch ( Exception e )
-                    {
-                        // we can consider as safe to ignore as it's located 
in build directory
-                    }
+                    FileUtils.deleteDirectory( tempDocBase );
                 }
-            } );
+                catch ( Exception e )
+                {
+                    // we can consider as safe to ignore as it's located in 
build directory
+                }
+            }));
             return tempDocBase;
         }
         return warSourceDirectory;
@@ -171,9 +166,7 @@ public class RunMojo
     private static File createTempDirectory( File baseTmpDirectory )
         throws IOException
     {
-        final File temp = Files.createTempDirectory(baseTmpDirectory.toPath(), 
"temp" + Long.toString(System.nanoTime())).toFile();
-
-        return temp;
+        return Files.createTempDirectory(baseTmpDirectory.toPath(), "temp" + 
Long.toString(System.nanoTime())).toFile();
     }
 
     /**
@@ -224,9 +217,9 @@ public class RunMojo
                 if ( contextReloadable )
                 {
                     // don't care about using a complicated xml api to create 
one xml line :-)
-                    StringBuilder sb = new StringBuilder( "<Context " 
).append( "backgroundProcessorDelay=\"" ).append(
-                        Integer.toString( backgroundProcessorDelay ) ).append( 
"\"" ).append(
-                        " reloadable=\"" + Boolean.toString( 
isContextReloadable() ) + "\"/>" );
+                    StringBuilder sb = new StringBuilder("<Context 
").append("backgroundProcessorDelay=\"").append(
+                            
Integer.toString(backgroundProcessorDelay)).append("\"").append(" 
reloadable=\"")
+                            
.append(Boolean.toString(isContextReloadable())).append("\"/>");
 
                     getLog().debug( " generated context file " + sb.toString() 
);
                     fw = new FileWriter( temporaryContextFile );
@@ -239,12 +232,7 @@ public class RunMojo
                 }
             }
         }
-        catch ( IOException e )
-        {
-            getLog().error( "error creating fake context.xml : " + 
e.getMessage(), e );
-            throw new MojoExecutionException( "error creating fake context.xml 
: " + e.getMessage(), e );
-        }
-        catch ( XmlPullParserException e )
+        catch (IOException | XmlPullParserException e )
         {
             getLog().error( "error creating fake context.xml : " + 
e.getMessage(), e );
             throw new MojoExecutionException( "error creating fake context.xml 
: " + e.getMessage(), e );
@@ -367,7 +355,7 @@ public class RunMojo
             }
 
             /* Support the maven-war-plugin's webResources configuration to 
add resources */
-            final Plugin warPlugin = (Plugin) 
project.getBuild().getPluginsAsMap().get("org.apache.maven.plugins:maven-war-plugin");
+            final Plugin warPlugin = 
project.getBuild().getPluginsAsMap().get("org.apache.maven.plugins:maven-war-plugin");
             if (warPlugin != null && warPlugin.getConfiguration() instanceof 
Xpp3Dom) {
                 final Xpp3Dom cfg = (Xpp3Dom) warPlugin.getConfiguration();
                 Xpp3Dom webResources = cfg.getChild("webResources");
@@ -400,24 +388,19 @@ public class RunMojo
                 }
             }
 
-            Runtime.getRuntime().addShutdownHook( new Thread()
-            {
-                @Override
-                public void run()
+            Runtime.getRuntime().addShutdownHook(new Thread(() -> {
+                for ( File tmpDir : tmpDirectories )
                 {
-                    for ( File tmpDir : tmpDirectories )
+                    try
                     {
-                        try
-                        {
-                            FileUtils.deleteDirectory( tmpDir );
-                        }
-                        catch ( IOException e )
-                        {
-                            // ignore
-                        }
+                        FileUtils.deleteDirectory( tmpDir );
+                    }
+                    catch ( IOException e )
+                    {
+                        // ignore
                     }
                 }
-            } );
+            }));
         }
         catch ( TomcatRunException e )
         {
@@ -437,7 +420,7 @@ public class RunMojo
         throws MojoExecutionException
     {
 
-        List<String> jarPaths = new ArrayList<String>();
+        List<String> jarPaths = new ArrayList<>();
 
         try
         {
diff --git 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/RunWarMojo.java 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/RunWarMojo.java
index 6d484ce..5949aa4 100644
--- a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/RunWarMojo.java
+++ b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/RunWarMojo.java
@@ -1,5 +1,3 @@
-package org.apache.tomcat.maven.plugin.tomcat.run;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,7 +16,7 @@ package org.apache.tomcat.maven.plugin.tomcat.run;
  * specific language governing permissions and limitations
  * under the License.
  */
-
+package org.apache.tomcat.maven.plugin.tomcat.run;
 
 import org.apache.maven.plugins.annotations.Execute;
 import org.apache.maven.plugins.annotations.LifecyclePhase;
diff --git 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/RunWarOnlyMojo.java 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/RunWarOnlyMojo.java
index 25ff4ca..3978bc4 100644
--- 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/RunWarOnlyMojo.java
+++ 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/RunWarOnlyMojo.java
@@ -1,5 +1,3 @@
-package org.apache.tomcat.maven.plugin.tomcat.run;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,7 +16,7 @@ package org.apache.tomcat.maven.plugin.tomcat.run;
  * specific language governing permissions and limitations
  * under the License.
  */
-
+package org.apache.tomcat.maven.plugin.tomcat.run;
 
 import org.apache.maven.plugins.annotations.Mojo;
 import org.apache.maven.plugins.annotations.ResolutionScope;
diff --git 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/ShutdownMojo.java 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/ShutdownMojo.java
index 97e74a8..8b4fc08 100644
--- a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/ShutdownMojo.java
+++ b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/ShutdownMojo.java
@@ -1,5 +1,3 @@
-package org.apache.tomcat.maven.plugin.tomcat.run;
-
 /*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@ package org.apache.tomcat.maven.plugin.tomcat.run;
 * specific language governing permissions and limitations
 * under the License.
 */
+package org.apache.tomcat.maven.plugin.tomcat.run;
 
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugins.annotations.Mojo;
@@ -26,7 +25,6 @@ import org.apache.maven.plugins.annotations.ResolutionScope;
 import org.apache.tomcat.maven.common.run.EmbeddedRegistry;
 import org.apache.tomcat.maven.plugin.tomcat.AbstractTomcatMojo;
 
-
 /**
  * <p>
  * Shuts down all possibly started embedded Tomcat servers. This will be 
automatically done
diff --git 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/StandaloneWarMojo.java
 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/StandaloneWarMojo.java
index 6335ee2..19ca250 100644
--- 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/StandaloneWarMojo.java
+++ 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/StandaloneWarMojo.java
@@ -1,4 +1,3 @@
-package org.apache.tomcat.maven.plugin.tomcat.run;
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -17,6 +16,7 @@ package org.apache.tomcat.maven.plugin.tomcat.run;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.tomcat.maven.plugin.tomcat.run;
 
 import org.apache.maven.plugins.annotations.Execute;
 import org.apache.maven.plugins.annotations.LifecyclePhase;
diff --git 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/StandaloneWarOnlyMojo.java
 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/StandaloneWarOnlyMojo.java
index c4ee36b..935e2b4 100644
--- 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/StandaloneWarOnlyMojo.java
+++ 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/StandaloneWarOnlyMojo.java
@@ -1,4 +1,3 @@
-package org.apache.tomcat.maven.plugin.tomcat.run;
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -17,6 +16,7 @@ package org.apache.tomcat.maven.plugin.tomcat.run;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.tomcat.maven.plugin.tomcat.run;
 
 import org.apache.maven.plugins.annotations.Mojo;
 
diff --git 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/WarRunDependency.java 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/WarRunDependency.java
index 2d78a32..24e7bbd 100644
--- 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/WarRunDependency.java
+++ 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/WarRunDependency.java
@@ -1,4 +1,3 @@
-package org.apache.tomcat.maven.plugin.tomcat.run;
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -17,6 +16,7 @@ package org.apache.tomcat.maven.plugin.tomcat.run;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.tomcat.maven.plugin.tomcat.run;
 
 import org.apache.maven.model.Dependency;
 
diff --git 
a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/Webapp.java 
b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/Webapp.java
index a1f78ed..59373c4 100644
--- a/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/Webapp.java
+++ b/src/main/java/org/apache/tomcat/maven/plugin/tomcat/run/Webapp.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "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
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.tomcat.maven.plugin.tomcat.run;
 
 import java.io.File;
diff --git a/src/main/java/org/apache/tomcat/maven/runner/PasswordUtil.java 
b/src/main/java/org/apache/tomcat/maven/runner/PasswordUtil.java
index b32f4eb..96da4b0 100644
--- a/src/main/java/org/apache/tomcat/maven/runner/PasswordUtil.java
+++ b/src/main/java/org/apache/tomcat/maven/runner/PasswordUtil.java
@@ -1,5 +1,3 @@
-package org.apache.tomcat.maven.runner;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@ package org.apache.tomcat.maven.runner;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.tomcat.maven.runner;
 
 import java.util.Properties;
 
diff --git a/src/main/java/org/apache/tomcat/maven/runner/TomcatRunner.java 
b/src/main/java/org/apache/tomcat/maven/runner/TomcatRunner.java
index e95aa34..5377810 100644
--- a/src/main/java/org/apache/tomcat/maven/runner/TomcatRunner.java
+++ b/src/main/java/org/apache/tomcat/maven/runner/TomcatRunner.java
@@ -1,4 +1,3 @@
-package org.apache.tomcat.maven.runner;
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -17,6 +16,7 @@ package org.apache.tomcat.maven.runner;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.tomcat.maven.runner;
 
 import java.io.BufferedOutputStream;
 import java.io.File;
@@ -164,32 +164,27 @@ public class TomcatRunner
         codeSourceContextPath = runtimeProperties.getProperty( 
CODE_SOURCE_CONTEXT_PATH );
         if ( codeSourceContextPath != null && !codeSourceContextPath.isEmpty() 
)
         {
-            codeSourceWar = AccessController.doPrivileged( new 
PrivilegedAction<File>()
-            {
-                @Override
-                public File run()
+            codeSourceWar = 
AccessController.doPrivileged((PrivilegedAction<File>) () -> {
+                try
                 {
-                    try
+                    File src =
+                        new File( 
TomcatRunner.class.getProtectionDomain().getCodeSource().getLocation().toURI() 
);
+                    if ( src.getName().endsWith( ".war" ) )
                     {
-                        File src =
-                            new File( 
TomcatRunner.class.getProtectionDomain().getCodeSource().getLocation().toURI() 
);
-                        if ( src.getName().endsWith( ".war" ) )
-                        {
-                            return src;
-                        }
-                        else
-                        {
-                            debugMessage( "ERROR: Code source is not a war 
file, ignoring." );
-                        }
+                        return src;
                     }
-                    catch ( URISyntaxException e )
+                    else
                     {
-                        debugMessage( "ERROR: Could not find code source. " + 
e.getMessage() );
-
+                        debugMessage( "ERROR: Code source is not a war file, 
ignoring." );
                     }
-                    return null;
                 }
-            } );
+                catch ( URISyntaxException e )
+                {
+                    debugMessage( "ERROR: Could not find code source. " + 
e.getMessage() );
+
+                }
+                return null;
+            });
         }
 
         // do we have to extract content
@@ -264,7 +259,7 @@ public class TomcatRunner
 
             String connectorHttpProtocol = runtimeProperties.getProperty( 
HTTP_PROTOCOL_KEY );
 
-            if ( httpProtocol != null && httpProtocol.trim().length() > 0 )
+            if ( httpProtocol != null && !httpProtocol.trim().isEmpty())
             {
                 connectorHttpProtocol = httpProtocol;
             }
@@ -614,25 +609,13 @@ public class TomcatRunner
     private static void expandConfigurationFile( String fileName, File 
extractDirectory )
         throws Exception
     {
-        InputStream inputStream = null;
-        try
-        {
-            inputStream = 
Thread.currentThread().getContextClassLoader().getResourceAsStream( "conf/" + 
fileName );
-            if ( inputStream != null )
-            {
-                File confDirectory = new File( extractDirectory, "conf" );
-                if ( !confDirectory.exists() )
-                {
+        try (InputStream inputStream = 
Thread.currentThread().getContextClassLoader().getResourceAsStream("conf/" + 
fileName)) {
+            if (inputStream != null) {
+                File confDirectory = new File(extractDirectory, "conf");
+                if (!confDirectory.exists()) {
                     confDirectory.mkdirs();
                 }
-                expand( inputStream, new File( confDirectory, fileName ) );
-            }
-        }
-        finally
-        {
-            if ( inputStream != null )
-            {
-                inputStream.close();
+                expand(inputStream, new File(confDirectory, fileName));
             }
         }
 
@@ -660,7 +643,7 @@ public class TomcatRunner
             if ( separatorIndex >= 0 )
             {
                 warFileName = warValue.substring( 0, separatorIndex );
-                contextValue = warValue.substring( separatorIndex + 1, 
warValue.length() );
+                contextValue = warValue.substring( separatorIndex + 1);
 
             }
             else
@@ -683,35 +666,17 @@ public class TomcatRunner
     private static void expand( InputStream input, File file )
         throws IOException
     {
-        BufferedOutputStream output = null;
-        try
-        {
-            output = new BufferedOutputStream( new FileOutputStream( file ) );
-            byte buffer[] = new byte[2048];
-            while ( true )
-            {
-                int n = input.read( buffer );
-                if ( n <= 0 )
-                {
+        try (BufferedOutputStream output = new BufferedOutputStream(new 
FileOutputStream(file))) {
+            byte[] buffer = new byte[2048];
+            while (true) {
+                int n = input.read(buffer);
+                if (n <= 0) {
                     break;
                 }
-                output.write( buffer, 0, n );
-            }
-        }
-        finally
-        {
-            if ( output != null )
-            {
-                try
-                {
-                    output.close();
-                }
-                catch ( IOException e )
-                {
-                    // Ignore
-                }
+                output.write(buffer, 0, n);
             }
         }
+        // Ignore
     }
 
     public boolean useServerXml()
diff --git a/src/main/java/org/apache/tomcat/maven/runner/TomcatRunnerCli.java 
b/src/main/java/org/apache/tomcat/maven/runner/TomcatRunnerCli.java
index 9f95e48..8a2d179 100644
--- a/src/main/java/org/apache/tomcat/maven/runner/TomcatRunnerCli.java
+++ b/src/main/java/org/apache/tomcat/maven/runner/TomcatRunnerCli.java
@@ -1,4 +1,3 @@
-package org.apache.tomcat.maven.runner;
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -17,6 +16,7 @@ package org.apache.tomcat.maven.runner;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.tomcat.maven.runner;
 
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.CommandLineParser;
diff --git 
a/src/test/java/org/apache/tomcat/maven/it/AbstractDeployWarOnlyProjectIT.java 
b/src/test/java/org/apache/tomcat/maven/it/AbstractDeployWarOnlyProjectIT.java
index 3e7f713..30328e1 100644
--- 
a/src/test/java/org/apache/tomcat/maven/it/AbstractDeployWarOnlyProjectIT.java
+++ 
b/src/test/java/org/apache/tomcat/maven/it/AbstractDeployWarOnlyProjectIT.java
@@ -1,5 +1,3 @@
-package org.apache.tomcat.maven.it;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,7 +16,7 @@ package org.apache.tomcat.maven.it;
  * specific language governing permissions and limitations
  * under the License.
  */
-
+package org.apache.tomcat.maven.it;
 
 import org.junit.Test;
 import java.io.File;
diff --git 
a/src/test/java/org/apache/tomcat/maven/it/AbstractDeployWarProjectIT.java 
b/src/test/java/org/apache/tomcat/maven/it/AbstractDeployWarProjectIT.java
index 591abab..64cbbbf 100644
--- a/src/test/java/org/apache/tomcat/maven/it/AbstractDeployWarProjectIT.java
+++ b/src/test/java/org/apache/tomcat/maven/it/AbstractDeployWarProjectIT.java
@@ -1,5 +1,3 @@
-package org.apache.tomcat.maven.it;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,7 +16,7 @@ package org.apache.tomcat.maven.it;
  * specific language governing permissions and limitations
  * under the License.
  */
-
+package org.apache.tomcat.maven.it;
 
 import org.junit.Test;
 import java.io.File;
diff --git 
a/src/test/java/org/apache/tomcat/maven/it/AbstractSimpleWarProjectIT.java 
b/src/test/java/org/apache/tomcat/maven/it/AbstractSimpleWarProjectIT.java
index 6a4780e..a0b46cf 100644
--- a/src/test/java/org/apache/tomcat/maven/it/AbstractSimpleWarProjectIT.java
+++ b/src/test/java/org/apache/tomcat/maven/it/AbstractSimpleWarProjectIT.java
@@ -1,5 +1,3 @@
-package org.apache.tomcat.maven.it;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,7 +16,7 @@ package org.apache.tomcat.maven.it;
  * specific language governing permissions and limitations
  * under the License.
  */
-
+package org.apache.tomcat.maven.it;
 
 import org.apache.maven.it.VerificationException;
 import org.junit.Test;
diff --git 
a/src/test/java/org/apache/tomcat/maven/it/AbstractTomcatRunMultiConfigIT.java 
b/src/test/java/org/apache/tomcat/maven/it/AbstractTomcatRunMultiConfigIT.java
index 99580a5..efc9759 100644
--- 
a/src/test/java/org/apache/tomcat/maven/it/AbstractTomcatRunMultiConfigIT.java
+++ 
b/src/test/java/org/apache/tomcat/maven/it/AbstractTomcatRunMultiConfigIT.java
@@ -1,5 +1,3 @@
-package org.apache.tomcat.maven.it;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,7 +16,7 @@ package org.apache.tomcat.maven.it;
  * specific language governing permissions and limitations
  * under the License.
  */
-
+package org.apache.tomcat.maven.it;
 
 import org.apache.maven.it.VerificationException;
 import org.junit.Test;
diff --git 
a/src/test/java/org/apache/tomcat/maven/it/AbstractUsageContextpathIT.java 
b/src/test/java/org/apache/tomcat/maven/it/AbstractUsageContextpathIT.java
index 367f266..72e5007 100644
--- a/src/test/java/org/apache/tomcat/maven/it/AbstractUsageContextpathIT.java
+++ b/src/test/java/org/apache/tomcat/maven/it/AbstractUsageContextpathIT.java
@@ -1,5 +1,3 @@
-package org.apache.tomcat.maven.it;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,7 +16,7 @@ package org.apache.tomcat.maven.it;
  * specific language governing permissions and limitations
  * under the License.
  */
-
+package org.apache.tomcat.maven.it;
 
 import org.junit.Test;
 import static junitx.framework.StringAssert.assertContains;
diff --git a/src/test/java/org/apache/tomcat/maven/it/AbstractWarProjectIT.java 
b/src/test/java/org/apache/tomcat/maven/it/AbstractWarProjectIT.java
index 410e26f..8b8d7aa 100644
--- a/src/test/java/org/apache/tomcat/maven/it/AbstractWarProjectIT.java
+++ b/src/test/java/org/apache/tomcat/maven/it/AbstractWarProjectIT.java
@@ -1,5 +1,3 @@
-package org.apache.tomcat.maven.it;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,7 +16,7 @@ package org.apache.tomcat.maven.it;
  * specific language governing permissions and limitations
  * under the License.
  */
-
+package org.apache.tomcat.maven.it;
 
 import org.apache.http.HttpResponse;
 import org.apache.http.client.ResponseHandler;
diff --git 
a/src/test/java/org/apache/tomcat/maven/it/TomcatContainerGoalsIT.java 
b/src/test/java/org/apache/tomcat/maven/it/TomcatContainerGoalsIT.java
index bc7a162..3b46b26 100644
--- a/src/test/java/org/apache/tomcat/maven/it/TomcatContainerGoalsIT.java
+++ b/src/test/java/org/apache/tomcat/maven/it/TomcatContainerGoalsIT.java
@@ -1,5 +1,3 @@
-package org.apache.tomcat.maven.it;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@ package org.apache.tomcat.maven.it;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.tomcat.maven.it;
 
 import org.junit.Test;
 
diff --git a/src/test/java/org/apache/tomcat/maven/it/TomcatContextGoalsIT.java 
b/src/test/java/org/apache/tomcat/maven/it/TomcatContextGoalsIT.java
index fcc12ee..b3fe7c8 100644
--- a/src/test/java/org/apache/tomcat/maven/it/TomcatContextGoalsIT.java
+++ b/src/test/java/org/apache/tomcat/maven/it/TomcatContextGoalsIT.java
@@ -1,5 +1,3 @@
-package org.apache.tomcat.maven.it;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,6 +16,7 @@ package org.apache.tomcat.maven.it;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.tomcat.maven.it;
 
 import org.junit.Test;
 
diff --git 
a/src/test/java/org/apache/tomcat/maven/it/TomcatDeployWarOnlyProjectIT.java 
b/src/test/java/org/apache/tomcat/maven/it/TomcatDeployWarOnlyProjectIT.java
index eac29bb..a2932fa 100644
--- a/src/test/java/org/apache/tomcat/maven/it/TomcatDeployWarOnlyProjectIT.java
+++ b/src/test/java/org/apache/tomcat/maven/it/TomcatDeployWarOnlyProjectIT.java
@@ -1,4 +1,3 @@
-package org.apache.tomcat.maven.it;
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -17,6 +16,7 @@ package org.apache.tomcat.maven.it;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.tomcat.maven.it;
 
 /**
  * @author Olivier Lamy
diff --git 
a/src/test/java/org/apache/tomcat/maven/it/TomcatDeployWarProjectIT.java 
b/src/test/java/org/apache/tomcat/maven/it/TomcatDeployWarProjectIT.java
index fb68a3d..33743f9 100644
--- a/src/test/java/org/apache/tomcat/maven/it/TomcatDeployWarProjectIT.java
+++ b/src/test/java/org/apache/tomcat/maven/it/TomcatDeployWarProjectIT.java
@@ -1,4 +1,3 @@
-package org.apache.tomcat.maven.it;
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -17,6 +16,7 @@ package org.apache.tomcat.maven.it;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.tomcat.maven.it;
 
 /**
  * @author Olivier Lamy
diff --git 
a/src/test/java/org/apache/tomcat/maven/it/TomcatRunMultiConfigIT.java 
b/src/test/java/org/apache/tomcat/maven/it/TomcatRunMultiConfigIT.java
index c7f2326..e4d0d33 100644
--- a/src/test/java/org/apache/tomcat/maven/it/TomcatRunMultiConfigIT.java
+++ b/src/test/java/org/apache/tomcat/maven/it/TomcatRunMultiConfigIT.java
@@ -1,4 +1,3 @@
-package org.apache.tomcat.maven.it;
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -17,6 +16,7 @@ package org.apache.tomcat.maven.it;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.tomcat.maven.it;
 
 import org.apache.maven.it.VerificationException;
 
diff --git 
a/src/test/java/org/apache/tomcat/maven/it/TomcatSimpleWarProjectIT.java 
b/src/test/java/org/apache/tomcat/maven/it/TomcatSimpleWarProjectIT.java
index 90adbd3..8a56701 100644
--- a/src/test/java/org/apache/tomcat/maven/it/TomcatSimpleWarProjectIT.java
+++ b/src/test/java/org/apache/tomcat/maven/it/TomcatSimpleWarProjectIT.java
@@ -1,4 +1,3 @@
-package org.apache.tomcat.maven.it;
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -17,6 +16,7 @@ package org.apache.tomcat.maven.it;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.tomcat.maven.it;
 
 import org.apache.maven.it.VerificationException;
 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to