Class AbstractWarPackagingTask

java.lang.Object
org.apache.maven.plugins.war.packaging.AbstractWarPackagingTask
All Implemented Interfaces:
WarPackagingTask
Direct Known Subclasses:
ArtifactsPackagingTask, ClassesPackagingTask, CopyUserManifestTask, OverlayPackagingTask, WarProjectPackagingTask

public abstract class AbstractWarPackagingTask extends Object implements WarPackagingTask
  • Field Details

  • Constructor Details

    • AbstractWarPackagingTask

      public AbstractWarPackagingTask()
  • Method Details

    • copyFiles

      protected void copyFiles(String sourceId, WarPackagingContext context, File sourceBaseDir, PathSet sourceFilesSet, String targetPrefix, boolean filtered) throws IOException, org.apache.maven.plugin.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
      filtered - filter or not.
      Throws:
      IOException - if an error occurred while copying the files
      org.apache.maven.plugin.MojoExecutionException - if an error occurs.
    • copyFiles

      protected void copyFiles(String sourceId, WarPackagingContext context, File sourceBaseDir, PathSet sourceFilesSet, boolean filtered) throws IOException, org.apache.maven.plugin.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
      filtered - filter or not.
      Throws:
      IOException - if an error occurred while copying the files
      org.apache.maven.plugin.MojoExecutionException - break the build.
    • 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, org.apache.maven.plugin.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
      org.apache.maven.plugin.MojoExecutionException - if an error occurred while retrieving the filter properties
    • doUnpack

      protected void doUnpack(WarPackagingContext context, File file, File unpackDirectory) throws org.apache.maven.plugin.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:
      org.apache.maven.plugin.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
      includeDirectories - include directories yes or not.
      Returns:
      the files to copy
    • getArtifactFinalName

      protected String getArtifactFinalName(WarPackagingContext context, org.apache.maven.artifact.Artifact artifact) throws org.codehaus.plexus.interpolation.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:
      org.codehaus.plexus.interpolation.InterpolationException - in case of interpolation problem.
    • isFileOfType

      private boolean isFileOfType(File file, String extension)
      Determine whether a file is of a certain type, by looking at the file extension.
      Parameters:
      file - The file to check
      extension - The extension for a file type, including the '.'
      Returns:
      true if the file is a file of the specified type, otherwise false
      Since:
      3.4.0
    • isPropertiesFile

      private boolean isPropertiesFile(File file)
      Determine whether a file is a properties file or not.
      Parameters:
      file - The file to check
      Returns:
      true if the file is a properties file, otherwise false
      Since:
      3.4.0
    • isXmlFile

      private boolean isXmlFile(File file)
      Returns true if the File-object is a file (not a directory) that is not null and has a file name that ends in ".xml".
      Parameters:
      file - The file to check
      Returns:
      true if the file is an xml-file, otherwise false
      Since:
      2.3