org.apache.tomcat.maven.plugin.tomcat7.run
Class AbstractRunMojo

java.lang.Object
  extended by org.apache.maven.plugin.AbstractMojo
      extended by org.apache.tomcat.maven.plugin.tomcat7.AbstractTomcat7Mojo
          extended by org.apache.tomcat.maven.plugin.tomcat7.run.AbstractRunMojo
All Implemented Interfaces:
ContextEnabled, Mojo
Direct Known Subclasses:
AbstractRunWarMojo, RunMojo

public abstract class AbstractRunMojo
extends AbstractTomcat7Mojo

Since:
2.0
Author:
Olivier Lamy

Field Summary
protected  String[] aliases
          configure aliases see Host Name aliases
protected  String classLoaderClass
          Class loader class to set.
protected  File contextFile
          The path of the Tomcat context XML file.
protected  boolean contextReloadable
          Force context scanning if you don't use a context file with reloadable = "true".
protected  org.apache.maven.artifact.factory.ArtifactFactory factory
          Used to look up Artifacts in the remote repository.
protected  String hostName
          configure host name
protected  org.apache.maven.project.MavenProject project
          The maven project.
protected  String propertiesPortFilePath
          Will dump port in a properties file (see ports for property names).
protected  org.apache.maven.artifact.resolver.ArtifactResolver resolver
          Used to look up Artifacts in the remote repository.
protected  org.apache.maven.execution.MavenSession session
           
protected  boolean skip
          Skip execution
protected  boolean useSeparateTomcatClassLoader
          if true a new classLoader separated from maven core will be created to start tomcat.
 
Fields inherited from class org.apache.tomcat.maven.plugin.tomcat7.AbstractTomcat7Mojo
messagesProvider, path
 
Fields inherited from interface org.apache.maven.plugin.Mojo
ROLE
 
Constructor Summary
AbstractRunMojo()
           
 
Method Summary
protected  Context createContext(Tomcat container)
          Gets the context to run this web application under for the specified embedded Tomcat.
protected  WebappLoader createWebappLoader()
          Gets the webapp loader to run this web application under.
 void execute()
          
protected  org.apache.maven.artifact.Artifact getArtifact(AbstractWebapp additionalWebapp)
          Resolves the Artifact from the remote repository if necessary.
protected abstract  File getContextFile()
          Gets the Tomcat context XML file to use.
protected abstract  File getDocBase()
          Gets the webapp directory to run.
protected  String getPath()
          Gets the webapp context path to use for the web application being run.
 Set<org.apache.maven.artifact.Artifact> getProjectArtifacts()
           
protected  ClassRealm getTomcatClassLoader()
           
protected  boolean isContextReloadable()
          Determine whether the passed context.xml file declares the context as reloadable or not.
protected  boolean isWar()
          Gets whether this project uses WAR packaging.
protected  StandardContext parseContextFile(File file)
           
 
Methods inherited from class org.apache.maven.plugin.AbstractMojo
getLog, getPluginContext, setLog, setPluginContext
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

factory

@Component
protected org.apache.maven.artifact.factory.ArtifactFactory factory
Used to look up Artifacts in the remote repository.


resolver

@Component
protected org.apache.maven.artifact.resolver.ArtifactResolver resolver
Used to look up Artifacts in the remote repository.


project

@Component
protected org.apache.maven.project.MavenProject project
The maven project.

Since:
1.0

useSeparateTomcatClassLoader

@Parameter(property="tomcat.useSeparateTomcatClassLoader",
           defaultValue="false")
protected boolean useSeparateTomcatClassLoader
if true a new classLoader separated from maven core will be created to start tomcat.

Since:
1.0

contextReloadable

@Parameter(property="maven.tomcat.contextReloadable",
           defaultValue="false")
protected boolean contextReloadable
Force context scanning if you don't use a context file with reloadable = "true". The other way to use contextReloadable is to add attribute reloadable = "true" in your context file.

Since:
2.0

contextFile

@Parameter(property="maven.tomcat.contextFile")
protected File contextFile

The path of the Tomcat context XML file.

Since release 2.0, the file is filtered as a maven resource so you can use interpolation tokens ${ }


skip

@Parameter(property="maven.tomcat.skip",
           defaultValue="false")
protected boolean skip
Skip execution

Since:
2.0

classLoaderClass

@Parameter
protected String classLoaderClass
Class loader class to set.

Since:
2.0

session

@Parameter(defaultValue="${session}",
           readonly=true,
           required=true)
protected org.apache.maven.execution.MavenSession session

propertiesPortFilePath

@Parameter(property="maven.tomcat.propertiesPortFilePath")
protected String propertiesPortFilePath
Will dump port in a properties file (see ports for property names). If empty no file generated


hostName

@Parameter(property="maven.tomcat.hostName",
           defaultValue="localhost")
protected String hostName
configure host name

Since:
2.0

aliases

@Parameter
protected String[] aliases
configure aliases see Host Name aliases

Since:
2.0
Constructor Detail

AbstractRunMojo

public AbstractRunMojo()
Method Detail

execute

public void execute()
             throws MojoExecutionException,
                    MojoFailureException

Throws:
MojoExecutionException
MojoFailureException

getPath

protected String getPath()
Gets the webapp context path to use for the web application being run.

Overrides:
getPath in class AbstractTomcat7Mojo
Returns:
the webapp context path

createContext

protected Context createContext(Tomcat container)
                         throws IOException,
                                MojoExecutionException,
                                javax.servlet.ServletException
Gets the context to run this web application under for the specified embedded Tomcat.

Parameters:
container - the embedded Tomcat container being used
Returns:
the context to run this web application under
Throws:
IOException - if the context could not be created
MojoExecutionException - in case of an error creating the context
javax.servlet.ServletException

parseContextFile

protected StandardContext parseContextFile(File file)
                                    throws MojoExecutionException
Throws:
MojoExecutionException

createWebappLoader

protected WebappLoader createWebappLoader()
                                   throws IOException,
                                          MojoExecutionException
Gets the webapp loader to run this web application under.

Returns:
the webapp loader to use
Throws:
IOException - if the webapp loader could not be created
MojoExecutionException - in case of an error creating the webapp loader

isContextReloadable

protected boolean isContextReloadable()
                               throws MojoExecutionException
Determine whether the passed context.xml file declares the context as reloadable or not.

Returns:
false by default, true if reloadable="true" in context.xml.
Throws:
MojoExecutionException

getDocBase

protected abstract File getDocBase()
Gets the webapp directory to run.

Returns:
the webapp directory

getContextFile

protected abstract File getContextFile()
                                throws MojoExecutionException
Gets the Tomcat context XML file to use.

Returns:
the context XML file
Throws:
MojoExecutionException

isWar

protected boolean isWar()
Gets whether this project uses WAR packaging.

Returns:
whether this project uses WAR packaging

getTomcatClassLoader

protected ClassRealm getTomcatClassLoader()
                                   throws MojoExecutionException
Throws:
MojoExecutionException

getProjectArtifacts

public Set<org.apache.maven.artifact.Artifact> getProjectArtifacts()

getArtifact

protected org.apache.maven.artifact.Artifact getArtifact(AbstractWebapp additionalWebapp)
                                                  throws MojoExecutionException
Resolves the Artifact from the remote repository if necessary. If no version is specified, it will be retrieved from the dependency list or from the DependencyManagement section of the pom.

Parameters:
additionalWebapp - containing information about artifact from plugin configuration.
Returns:
Artifact object representing the specified file.
Throws:
MojoExecutionException - with a message if the version can't be found in DependencyManagement.


Copyright © 2005-2012 The Apache Software Foundation. All Rights Reserved.