Class AbstractFilterSourcesMojo

    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static int CHECKSUM_BUFFER  
      private int copied  
      protected java.util.List<java.lang.String> delimiters
      Set of delimiters for expressions to filter within the resources.
      private java.lang.String encoding
      The character encoding scheme to be applied when filtering resources.
      protected java.lang.String escapeString
      Expression preceded with the String won't be interpolated \${foo} will be replaced with ${foo}
      protected org.apache.maven.shared.filtering.MavenResourcesFiltering mavenResourcesFiltering
      The resources filtering which is used.
      protected boolean overwrite
      Controls whether to overwrite files that are not changed, by default files will not be overwritten
      private org.apache.maven.project.MavenProject project  
      private org.apache.maven.execution.MavenSession session  
      protected boolean skipPoms
      Skips POM projects if set to true, which is the default option.
      protected boolean useDefaultDelimiters
      Controls whether the default delimiters are included in addition to those configured delimiters.
      • Fields inherited from interface org.apache.maven.plugin.Mojo

        ROLE
    • Field Detail

      • copied

        private int copied
      • encoding

        @Parameter(defaultValue="${project.build.sourceEncoding}")
        private java.lang.String encoding
        The character encoding scheme to be applied when filtering resources.
      • escapeString

        @Parameter(property="maven.resources.escapeString")
        protected java.lang.String escapeString
        Expression preceded with the String won't be interpolated \${foo} will be replaced with ${foo}
      • delimiters

        @Parameter
        protected java.util.List<java.lang.String> delimiters
        Set of delimiters for expressions to filter within the resources. These delimiters are specified in the form 'beginToken*endToken'. If no '*' is given, the delimiter is assumed to be the same for start and end. So, the default filtering delimiters might be specified as:
         <delimiters>
           <delimiter>${*}</delimiter>
           <delimiter>@</delimiter>
         </delimiters>
         
        Since the '@' delimiter is the same on both ends, we don't need to specify '@*@' (though we can).
      • useDefaultDelimiters

        @Parameter(defaultValue="true")
        protected boolean useDefaultDelimiters
        Controls whether the default delimiters are included in addition to those configured delimiters. Does not have any effect if delimiters is empty when the defaults will be included anyway.
      • session

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

        @Parameter(defaultValue="${project}",
                   required=true,
                   readonly=true)
        private org.apache.maven.project.MavenProject project
      • overwrite

        @Parameter(defaultValue="false")
        protected boolean overwrite
        Controls whether to overwrite files that are not changed, by default files will not be overwritten
      • skipPoms

        @Parameter(defaultValue="true")
        protected boolean skipPoms
        Skips POM projects if set to true, which is the default option.
      • mavenResourcesFiltering

        @Component(hint="default")
        protected org.apache.maven.shared.filtering.MavenResourcesFiltering mavenResourcesFiltering
        The resources filtering which is used.
    • Constructor Detail

      • AbstractFilterSourcesMojo

        public AbstractFilterSourcesMojo()
    • Method Detail

      • getSourceDirectory

        protected abstract java.io.File getSourceDirectory()
        Returns:
        The location of the source directory.
      • getOutputDirectory

        protected abstract java.io.File getOutputDirectory()
        Returns:
        The location of the output directory.
      • execute

        public void execute()
                     throws org.apache.maven.plugin.MojoExecutionException
        Throws:
        org.apache.maven.plugin.MojoExecutionException
      • countCopiedFiles

        protected int countCopiedFiles()
        Returns:
        number of copied files.
      • logInfo

        private void logInfo​(java.lang.String format,
                             java.lang.Object... args)
      • logDebug

        private void logDebug​(java.lang.String format,
                              java.lang.Object... args)
      • isSomethingBeenUpdated

        private boolean isSomethingBeenUpdated()
      • cleanupTemporaryDirectory

        private void cleanupTemporaryDirectory​(java.io.File temporaryDirectory)
                                        throws org.apache.maven.plugin.MojoExecutionException
        Throws:
        org.apache.maven.plugin.MojoExecutionException
      • filterSourceToTemporaryDir

        private void filterSourceToTemporaryDir​(java.io.File sourceDirectory,
                                                java.io.File temporaryDirectory)
                                         throws org.apache.maven.plugin.MojoExecutionException
        Throws:
        org.apache.maven.plugin.MojoExecutionException
      • setDelimitersForExecution

        private void setDelimitersForExecution​(org.apache.maven.shared.filtering.MavenResourcesExecution mavenResourcesExecution)
      • preconditionsCopyDirectoryStructure

        private void preconditionsCopyDirectoryStructure​(java.io.File sourceDirectory,
                                                         java.io.File destinationDirectory,
                                                         java.io.File rootDestinationDirectory)
                                                  throws java.io.IOException
        Throws:
        java.io.IOException
      • copyDirectoryStructure

        private void copyDirectoryStructure​(java.io.File sourceDirectory,
                                            java.io.File destinationDirectory)
                                     throws org.apache.maven.plugin.MojoExecutionException
        Throws:
        org.apache.maven.plugin.MojoExecutionException
      • copyDirectoryStructureWithIO

        private void copyDirectoryStructureWithIO​(java.io.File sourceDirectory,
                                                  java.io.File destinationDirectory,
                                                  java.io.File rootDestinationDirectory)
                                           throws java.io.IOException
        Throws:
        java.io.IOException
      • resolve

        private java.io.File resolve​(java.io.File file,
                                     java.lang.String... subfile)
      • isFileDifferent

        private boolean isFileDifferent​(java.io.File file,
                                        java.io.File directory)
                                 throws java.io.IOException
        Throws:
        java.io.IOException
      • getCrc32OfFile

        private long getCrc32OfFile​(java.io.File target)
                             throws java.io.IOException
        Throws:
        java.io.IOException
      • close

        private void close​(java.io.Closeable is)
                    throws java.io.IOException
        Throws:
        java.io.IOException
      • getTemporaryDirectory

        private java.io.File getTemporaryDirectory​(java.io.File sourceDirectory)
      • preconditionsFulfilled

        private boolean preconditionsFulfilled​(java.io.File sourceDirectory)
      • addSourceFolderToProject

        protected abstract void addSourceFolderToProject​(org.apache.maven.project.MavenProject mavenProject)
        Parameters:
        mavenProject - MavenProject