in tomcat8-maven-plugin/src/main/java/org/apache/tomcat/maven/plugin/tomcat8/run/AbstractRunMojo.java [1517:1570]
private void addContextFromArtifact( Tomcat container, List<Context> contexts, Artifact artifact,
String contextPath, File contextXml, boolean asWebApp )
throws MojoExecutionException, ServletException, IOException
{
getLog().info( "Deploy warfile: " + String.valueOf( artifact.getFile() ) + " to contextPath: " + contextPath );
File webapps = new File( configurationDir, "webapps" );
File artifactWarDir = new File( webapps, artifact.getArtifactId() );
if ( !artifactWarDir.exists() )
{
//dont extract if exists
artifactWarDir.mkdir();
try
{
UnArchiver unArchiver = archiverManager.getUnArchiver( "zip" );
unArchiver.setSourceFile( artifact.getFile() );
unArchiver.setDestDirectory( artifactWarDir );
// Extract the module
unArchiver.extract();
}
catch ( NoSuchArchiverException e )
{
getLog().error( e );
return;
}
catch ( ArchiverException e )
{
getLog().error( e );
return;
}
}
// TODO make that configurable ?
//WebappLoader webappLoader = new WebappLoader( Thread.currentThread().getContextClassLoader() );
WebappLoader webappLoader = createWebappLoader();
Context context = null;
if ( asWebApp )
{
context = container.addWebapp( contextPath, artifactWarDir.getAbsolutePath() );
}
else
{
context = container.addContext( contextPath, artifactWarDir.getAbsolutePath() );
}
context.setLoader( webappLoader );
File contextFile = contextXml != null ? contextXml : getContextFile();
if ( contextFile != null )
{
context.setConfigFile( contextFile.toURI().toURL() );
}
contexts.add( context );
// container.getHost().addChild(context);
}