org.apache.maven.plugin.war.packaging
Class AbstractWarPackagingTask

java.lang.Object
  extended by org.apache.maven.plugin.war.packaging.AbstractWarPackagingTask
All Implemented Interfaces:
WarPackagingTask
Direct Known Subclasses:
ArtifactsPackagingTask, ClassesPackagingTask, DependenciesAnalysisPackagingTask, OverlayPackagingTask, WarProjectPackagingTask

public abstract class AbstractWarPackagingTask
extends Object
implements WarPackagingTask

Version:
$Id: AbstractWarPackagingTask.html 868453 2013-07-05 11:25:41Z olamy $
Author:
Stephane Nicoll

Field Summary
static String CLASSES_PATH
           
static String[] DEFAULT_INCLUDES
           
static String LIB_PATH
           
static String META_INF_PATH
           
static String WEB_INF_PATH
           
 
Constructor Summary
AbstractWarPackagingTask()
           
 
Method Summary
protected  void copyFile(String sourceId, WarPackagingContext context, File file, String targetFilename)
          Copy the specified file if the target location has not yet already been used.
protected  boolean copyFile(WarPackagingContext context, File source, File destination, String targetFilename, boolean onlyIfModified)
          Copy file from source to destination.
protected  void copyFiles(String sourceId, WarPackagingContext context, File sourceBaseDir, PathSet sourceFilesSet, boolean filtered)
          Copies the files if possible as is.
protected  void copyFiles(String sourceId, WarPackagingContext context, File sourceBaseDir, PathSet sourceFilesSet, String targetPrefix, boolean filtered)
          Copies the files if possible with an optional target prefix.
protected  boolean copyFilteredFile(String sourceId, WarPackagingContext context, File file, String targetFilename)
          Copy the specified file if the target location has not yet already been used and filter its content with the configured filter properties.
protected  void doUnpack(WarPackagingContext context, File file, File unpackDirectory)
          Unpacks the specified file to the specified directory.
protected  String getArtifactFinalName(WarPackagingContext context, Artifact artifact)
          Returns the final name of the specified artifact.
protected  String getEncoding(File webXml)
          Get the encoding from an XML-file.
protected  PathSet getFilesToIncludes(File baseDir, String[] includes, String[] excludes)
          Returns the file to copy.
protected  PathSet getFilesToIncludes(File baseDir, String[] includes, String[] excludes, boolean includeDirectories)
          Returns the file to copy.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.apache.maven.plugin.war.packaging.WarPackagingTask
performPackaging
 

Field Detail

DEFAULT_INCLUDES

public static final String[] DEFAULT_INCLUDES

WEB_INF_PATH

public static final String WEB_INF_PATH
See Also:
Constant Field Values

META_INF_PATH

public static final String META_INF_PATH
See Also:
Constant Field Values

CLASSES_PATH

public static final String CLASSES_PATH
See Also:
Constant Field Values

LIB_PATH

public static final String LIB_PATH
See Also:
Constant Field Values
Constructor Detail

AbstractWarPackagingTask

public AbstractWarPackagingTask()
Method Detail

copyFiles

protected void copyFiles(String sourceId,
                         WarPackagingContext context,
                         File sourceBaseDir,
                         PathSet sourceFilesSet,
                         String targetPrefix,
                         boolean filtered)
                  throws IOException,
                         MojoExecutionException
Copies the files if possible with an optional target prefix.

Copy uses a first-win strategy: files that have already been copied by previous tasks are ignored. This method makes sure to update the list of protected files which gives the list of files that have already been copied.

If the structure of the source directory is not the same as the root of the webapp, use the targetPrefix parameter to specify in which particular directory the files should be copied. Use null to copy the files with the same structure

Parameters:
sourceId - the source id
context - the context to use
sourceBaseDir - the base directory from which the sourceFilesSet will be copied
sourceFilesSet - the files to be copied
targetPrefix - the prefix to add to the target file name
Throws:
IOException - if an error occurred while copying the files
MojoExecutionException

copyFiles

protected void copyFiles(String sourceId,
                         WarPackagingContext context,
                         File sourceBaseDir,
                         PathSet sourceFilesSet,
                         boolean filtered)
                  throws IOException,
                         MojoExecutionException
Copies the files if possible as is.

Copy uses a first-win strategy: files that have already been copied by previous tasks are ignored. This method makes sure to update the list of protected files which gives the list of files that have already been copied.

Parameters:
sourceId - the source id
context - the context to use
sourceBaseDir - the base directory from which the sourceFilesSet will be copied
sourceFilesSet - the files to be copied
Throws:
IOException - if an error occurred while copying the files
MojoExecutionException

copyFile

protected void copyFile(String sourceId,
                        WarPackagingContext context,
                        File file,
                        String targetFilename)
                 throws IOException
Copy the specified file if the target location has not yet already been used.

The targetFileName is the relative path according to the root of the generated web application.

Parameters:
sourceId - the source id
context - the context to use
file - the file to copy
targetFilename - the relative path according to the root of the webapp
Throws:
IOException - if an error occurred while copying

copyFilteredFile

protected boolean copyFilteredFile(String sourceId,
                                   WarPackagingContext context,
                                   File file,
                                   String targetFilename)
                            throws IOException,
                                   MojoExecutionException
Copy the specified file if the target location has not yet already been used and filter its content with the configured filter properties.

The targetFileName is the relative path according to the root of the generated web application.

Parameters:
sourceId - the source id
context - the context to use
file - the file to copy
targetFilename - the relative path according to the root of the webapp
Returns:
true if the file has been copied, false otherwise
Throws:
IOException - if an error occurred while copying
MojoExecutionException - if an error occurred while retrieving the filter properties

doUnpack

protected void doUnpack(WarPackagingContext context,
                        File file,
                        File unpackDirectory)
                 throws MojoExecutionException
Unpacks the specified file to the specified directory.

Parameters:
context - the packaging context
file - the file to unpack
unpackDirectory - the directory to use for th unpacked file
Throws:
MojoExecutionException - if an error occurred while unpacking the file

copyFile

protected boolean copyFile(WarPackagingContext context,
                           File source,
                           File destination,
                           String targetFilename,
                           boolean onlyIfModified)
                    throws IOException
Copy file from source to destination. The directories up to destination will be created if they don't already exist. if the onlyIfModified flag is false, destination will be overwritten if it already exists. If the flag is true destination will be overwritten if it's not up to date.

Parameters:
context - the packaging context
source - an existing non-directory File to copy bytes from
destination - a non-directory File to write bytes to (possibly overwriting).
targetFilename - the relative path of the file from the webapp root directory
onlyIfModified - if true, copy the file only if the source has changed, always copy otherwise
Returns:
true if the file has been copied/updated, false otherwise
Throws:
IOException - if source does not exist, destination cannot be written to, or an IO error occurs during copying

getEncoding

protected String getEncoding(File webXml)
                      throws IOException
Get the encoding from an XML-file.

Parameters:
webXml - the XML-file
Returns:
The encoding of the XML-file, or UTF-8 if it's not specified in the file
Throws:
IOException - if an error occurred while reading the file

getFilesToIncludes

protected PathSet getFilesToIncludes(File baseDir,
                                     String[] includes,
                                     String[] excludes)
Returns the file to copy. If the includes are null or empty, the default includes are used.

Parameters:
baseDir - the base directory to start from
includes - the includes
excludes - the excludes
Returns:
the files to copy

getFilesToIncludes

protected PathSet getFilesToIncludes(File baseDir,
                                     String[] includes,
                                     String[] excludes,
                                     boolean includeDirectories)
Returns the file to copy. If the includes are null or empty, the default includes are used.

Parameters:
baseDir - the base directory to start from
includes - the includes
excludes - the excludes
Returns:
the files to copy

getArtifactFinalName

protected String getArtifactFinalName(WarPackagingContext context,
                                      Artifact artifact)
                               throws InterpolationException
Returns the final name of the specified artifact.

If the outputFileNameMapping is set, it is used, otherwise the standard naming scheme is used.

Parameters:
context - the packaging context
artifact - the artifact
Returns:
the converted filename of the artifact
Throws:
InterpolationException


Copyright © 2002–2013 The Apache Software Foundation. All rights reserved.