Class AbstractWarPackagingTask

    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String CLASSES_PATH
      The classes path.
      static java.lang.String[] DEFAULT_INCLUDES
      The default list of includes.
      static java.lang.String LIB_PATH
      The lib path.
      static java.lang.String META_INF_PATH
      The META-INF path.
      static java.lang.String WEB_INF_PATH
      The WEB-INF path.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void copyFile​(java.lang.String sourceId, WarPackagingContext context, java.io.File file, java.lang.String targetFilename)
      Copy the specified file if the target location has not yet already been used.
      protected boolean copyFile​(WarPackagingContext context, java.io.File source, java.io.File destination, java.lang.String targetFilename, boolean onlyIfModified)
      Copy file from source to destination.
      protected void copyFiles​(java.lang.String sourceId, WarPackagingContext context, java.io.File sourceBaseDir, PathSet sourceFilesSet, boolean filtered)
      Copies the files if possible as is.
      protected void copyFiles​(java.lang.String sourceId, WarPackagingContext context, java.io.File sourceBaseDir, PathSet sourceFilesSet, java.lang.String targetPrefix, boolean filtered)
      Copies the files if possible with an optional target prefix.
      protected boolean copyFilteredFile​(java.lang.String sourceId, WarPackagingContext context, java.io.File file, java.lang.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, java.io.File file, java.io.File unpackDirectory)
      Unpacks the specified file to the specified directory.
      protected java.lang.String getArtifactFinalName​(WarPackagingContext context, org.apache.maven.artifact.Artifact artifact)
      Returns the final name of the specified artifact.
      protected java.lang.String getEncoding​(java.io.File webXml)
      Get the encoding from an XML-file.
      protected PathSet getFilesToIncludes​(java.io.File baseDir, java.lang.String[] includes, java.lang.String[] excludes)
      Returns the file to copy.
      protected PathSet getFilesToIncludes​(java.io.File baseDir, java.lang.String[] includes, java.lang.String[] excludes, boolean includeDirectories)
      Returns the file to copy.
      private boolean isFileOfType​(java.io.File file, java.lang.String extension)
      Determine whether a file is of a certain type, by looking at the file extension.
      private boolean isPropertiesFile​(java.io.File file)
      Determine whether a file is a properties file or not.
      private boolean isXmlFile​(java.io.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".
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • DEFAULT_INCLUDES

        public static final java.lang.String[] DEFAULT_INCLUDES
        The default list of includes.
      • WEB_INF_PATH

        public static final java.lang.String WEB_INF_PATH
        The WEB-INF path.
        See Also:
        Constant Field Values
      • META_INF_PATH

        public static final java.lang.String META_INF_PATH
        The META-INF path.
        See Also:
        Constant Field Values
      • CLASSES_PATH

        public static final java.lang.String CLASSES_PATH
        The classes path.
        See Also:
        Constant Field Values
    • Constructor Detail

      • AbstractWarPackagingTask

        public AbstractWarPackagingTask()
    • Method Detail

      • copyFiles

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

        protected void copyFiles​(java.lang.String sourceId,
                                 WarPackagingContext context,
                                 java.io.File sourceBaseDir,
                                 PathSet sourceFilesSet,
                                 boolean filtered)
                          throws java.io.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:
        java.io.IOException - if an error occurred while copying the files
        org.apache.maven.plugin.MojoExecutionException - break the build.
      • copyFile

        protected void copyFile​(java.lang.String sourceId,
                                WarPackagingContext context,
                                java.io.File file,
                                java.lang.String targetFilename)
                         throws java.io.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:
        java.io.IOException - if an error occurred while copying
      • copyFilteredFile

        protected boolean copyFilteredFile​(java.lang.String sourceId,
                                           WarPackagingContext context,
                                           java.io.File file,
                                           java.lang.String targetFilename)
                                    throws java.io.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:
        java.io.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,
                                java.io.File file,
                                java.io.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,
                                   java.io.File source,
                                   java.io.File destination,
                                   java.lang.String targetFilename,
                                   boolean onlyIfModified)
                            throws java.io.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:
        java.io.IOException - if source does not exist, destination cannot be written to, or an IO error occurs during copying
      • getEncoding

        protected java.lang.String getEncoding​(java.io.File webXml)
                                        throws java.io.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:
        java.io.IOException - if an error occurred while reading the file
      • getFilesToIncludes

        protected PathSet getFilesToIncludes​(java.io.File baseDir,
                                             java.lang.String[] includes,
                                             java.lang.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​(java.io.File baseDir,
                                             java.lang.String[] includes,
                                             java.lang.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 java.lang.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​(java.io.File file,
                                     java.lang.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​(java.io.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​(java.io.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