// Path: common-tomcat-maven-plugin/src/main/java/org/apache/tomcat/maven/common/deployer/TomcatManagerException.java
// public class TomcatManagerException
//     extends Exception
// {
//     // ----------------------------------------------------------------------
//     // Constants
//     // ----------------------------------------------------------------------
// 
//     /**
//      * The Java serialization UID for this class.
//      */
//     private static final long serialVersionUID = 4167819069046408371L;
// 
//     // ----------------------------------------------------------------------
//     // Constructors
//     // ----------------------------------------------------------------------
// 
//     /**
//      * Creates a new <code>TomcatManagerException</code> with no message or cause.
//      */
//     public TomcatManagerException()
//     {
//         super();
//     }
// 
//     /**
//      * Creates a new <code>TomcatManagerException</code> with the specified message and no cause.
//      *
//      * @param message the message for this exception
//      */
//     public TomcatManagerException( String message )
//     {
//         super( message );
//     }
// 
//     /**
//      * Creates a new <code>TomcatManagerException</code> with the specified message and cause.
//      *
//      * @param message the message for this exception
//      * @param cause   the cause of this exception
//      */
//     public TomcatManagerException( String message, Throwable cause )
//     {
//         super( message, cause );
//     }
// }
// 
// Path: tomcat8-maven-plugin/src/main/java/org/apache/tomcat/maven/plugin/tomcat8/AbstractWarCatalinaMojo.java
// public abstract class AbstractWarCatalinaMojo
//     extends AbstractCatalinaMojo
// {
//     // ----------------------------------------------------------------------
//     // Mojo Parameters
//     // ----------------------------------------------------------------------
// 
//     /**
//      * The packaging of the Maven project that this goal operates upon.
//      */
//     @Parameter( defaultValue = "${project.packaging}", required = true, readonly = true )
//     private String packaging;
// 
//     /**
//      * If set to true ignore if packaging of project is not 'war'.
//      *
//      * @since 1.1
//      */
//     @Parameter( property = "tomcat.ignorePackaging", defaultValue = "false" )
//     private boolean ignorePackaging;
// 
//     // ----------------------------------------------------------------------
//     // Mojo Implementation
//     // ----------------------------------------------------------------------
// 
//     /**
//      * {@inheritDoc}
//      */
//     @Override
//     public void execute()
//         throws MojoExecutionException
//     {
//         if ( !isWar() )
//         {
//             getLog().info( messagesProvider.getMessage( "AbstractWarCatalinaMojo.nonWar" ) );
//             return;
//         }
// 
//         super.execute();
//     }
// 
//     // ----------------------------------------------------------------------
//     // Protected Methods
//     // ----------------------------------------------------------------------
// 
//     /**
//      * Gets whether this project uses WAR packaging.
//      *
//      * @return whether this project uses WAR packaging
//      */
//     protected boolean isWar()
//     {
//         return "war".equals( packaging ) || ignorePackaging;
//     }
// }


import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugins.annotations.Parameter;
import org.apache.tomcat.maven.common.deployer.TomcatManagerException;
import org.apache.tomcat.maven.common.deployer.TomcatManagerResponse;
import org.apache.tomcat.maven.plugin.tomcat8.AbstractWarCatalinaMojo;
import java.io.File;
import java.io.IOException;
import java.net.URL;
    /**
     * Deploys the WAR to Tomcat.
     *
     * @throws org.apache.maven.plugin.MojoExecutionException
     *                             if there was a problem locating the WAR
     * @throws org.apache.tomcat.maven.common.deployer.TomcatManagerException
     *                             if the Tomcat manager request fails
     * @throws java.io.IOException if an i/o error occurs
     */
    protected void deployWar()
        throws MojoExecutionException, TomcatManagerException, IOException
    {
        validateWarFile();

        getLog().info( messagesProvider.getMessage( "AbstractDeployMojo.deployingWar", getDeployedURL() ) );

        URL warURL = getWarFile().toURL();
        log( getManager().deploy( getPath(), warURL, isUpdate(), getTag() ).getHttpResponseBody() );
    }

    /**
     * Deploys the context XML file to Tomcat.
     *
     * @throws org.apache.maven.plugin.MojoExecutionException
     *                             if there was a problem locating the context XML file
     * @throws org.apache.tomcat.maven.common.deployer.TomcatManagerException
     *                             if the Tomcat manager request fails
     * @throws java.io.IOException if an i/o error occurs
     */
    protected void deployContext()
// Path: common-tomcat-maven-plugin/src/main/java/org/apache/tomcat/maven/common/deployer/TomcatManagerException.java
// public class TomcatManagerException
//     extends Exception
// {
//     // ----------------------------------------------------------------------
//     // Constants
//     // ----------------------------------------------------------------------
// 
//     /**
//      * The Java serialization UID for this class.
//      */
//     private static final long serialVersionUID = 4167819069046408371L;
// 
//     // ----------------------------------------------------------------------
//     // Constructors
//     // ----------------------------------------------------------------------
// 
//     /**
//      * Creates a new <code>TomcatManagerException</code> with no message or cause.
//      */
//     public TomcatManagerException()
//     {
//         super();
//     }
// 
//     /**
//      * Creates a new <code>TomcatManagerException</code> with the specified message and no cause.
//      *
//      * @param message the message for this exception
//      */
//     public TomcatManagerException( String message )
//     {
//         super( message );
//     }
// 
//     /**
//      * Creates a new <code>TomcatManagerException</code> with the specified message and cause.
//      *
//      * @param message the message for this exception
//      * @param cause   the cause of this exception
//      */
//     public TomcatManagerException( String message, Throwable cause )
//     {
//         super( message, cause );
//     }
// }
// 
// Path: tomcat8-maven-plugin/src/main/java/org/apache/tomcat/maven/plugin/tomcat8/AbstractWarCatalinaMojo.java
// public abstract class AbstractWarCatalinaMojo
//     extends AbstractCatalinaMojo
// {
//     // ----------------------------------------------------------------------
//     // Mojo Parameters
//     // ----------------------------------------------------------------------
// 
//     /**
//      * The packaging of the Maven project that this goal operates upon.
//      */
//     @Parameter( defaultValue = "${project.packaging}", required = true, readonly = true )
//     private String packaging;
// 
//     /**
//      * If set to true ignore if packaging of project is not 'war'.
//      *
//      * @since 1.1
//      */
//     @Parameter( property = "tomcat.ignorePackaging", defaultValue = "false" )
//     private boolean ignorePackaging;
// 
//     // ----------------------------------------------------------------------
//     // Mojo Implementation
//     // ----------------------------------------------------------------------
// 
//     /**
//      * {@inheritDoc}
//      */
//     @Override
//     public void execute()
//         throws MojoExecutionException
//     {
//         if ( !isWar() )
//         {
//             getLog().info( messagesProvider.getMessage( "AbstractWarCatalinaMojo.nonWar" ) );
//             return;
//         }
// 
//         super.execute();
//     }
// 
//     // ----------------------------------------------------------------------
//     // Protected Methods
//     // ----------------------------------------------------------------------
// 
//     /**
//      * Gets whether this project uses WAR packaging.
//      *
//      * @return whether this project uses WAR packaging
//      */
//     protected boolean isWar()
//     {
//         return "war".equals( packaging ) || ignorePackaging;
//     }
// }


// Path: tomcat8-maven-plugin/src/main/java/org/apache/tomcat/maven/plugin/tomcat8/deploy/AbstractDeployMojo.java
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugins.annotations.Parameter;
import org.apache.tomcat.maven.common.deployer.TomcatManagerException;
import org.apache.tomcat.maven.common.deployer.TomcatManagerResponse;
import org.apache.tomcat.maven.plugin.tomcat8.AbstractWarCatalinaMojo;
import java.io.File;
import java.io.IOException;
import java.net.URL;

    /**
     * Deploys the WAR to Tomcat.
     *
     * @throws org.apache.maven.plugin.MojoExecutionException
     *                             if there was a problem locating the WAR
     * @throws org.apache.tomcat.maven.common.deployer.TomcatManagerException
     *                             if the Tomcat manager request fails
     * @throws java.io.IOException if an i/o error occurs
     */
    protected void deployWar()
        throws MojoExecutionException, TomcatManagerException, IOException
    {
        validateWarFile();

        getLog().info( messagesProvider.getMessage( "AbstractDeployMojo.deployingWar", getDeployedURL() ) );

        URL warURL = getWarFile().toURL();
        log( getManager().deploy( getPath(), warURL, isUpdate(), getTag() ).getHttpResponseBody() );
    }

    /**
     * Deploys the context XML file to Tomcat.
     *
     * @throws org.apache.maven.plugin.MojoExecutionException
     *                             if there was a problem locating the context XML file
     * @throws org.apache.tomcat.maven.common.deployer.TomcatManagerException
     *                             if the Tomcat manager request fails
     * @throws java.io.IOException if an i/o error occurs
     */
    protected void deployContext()
        throws MojoExecutionException, TomcatManagerException, IOException