Class MergeFilesTransformer

  • All Implemented Interfaces:
    org.apache.maven.plugins.shade.resource.ResourceTransformer

    public class MergeFilesTransformer
    extends java.lang.Object
    implements org.apache.maven.plugins.shade.resource.ResourceTransformer

    This transformer (used by Maven Shade plugin will merge few files files content in the resource within the shaded jar.

    Per default the current content of the resource (if existing) will preserved. This can be changed using the parameter preserveResourceContent

    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.io.ByteArrayOutputStream data  
      private java.util.List<java.lang.String> files
      paths to files to merge in the jar
      private boolean preserveResourceContent
      if the content of the resource must be preserve true per default
      private java.lang.String resource
      the resource in the jar file to generate/modify
    • Constructor Summary

      Constructors 
      Constructor Description
      MergeFilesTransformer()  
      MergeFilesTransformer​(java.util.List<java.lang.String> files, java.lang.String resource, boolean preserveResourceContent)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean canTransformResource​(java.lang.String resource)  
      boolean hasTransformedResource()  
      void modifyOutputStream​(java.util.jar.JarOutputStream jos)  
      void processResource​(java.lang.String resource, java.io.InputStream is, java.util.List<org.apache.maven.plugins.shade.relocation.Relocator> relocators)  
      • Methods inherited from class java.lang.Object

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

      • files

        private java.util.List<java.lang.String> files
        paths to files to merge in the jar
      • resource

        private java.lang.String resource
        the resource in the jar file to generate/modify
      • preserveResourceContent

        private boolean preserveResourceContent
        if the content of the resource must be preserve true per default
      • data

        private java.io.ByteArrayOutputStream data
    • Constructor Detail

      • MergeFilesTransformer

        public MergeFilesTransformer()
      • MergeFilesTransformer

        public MergeFilesTransformer​(java.util.List<java.lang.String> files,
                                     java.lang.String resource,
                                     boolean preserveResourceContent)
    • Method Detail

      • canTransformResource

        public boolean canTransformResource​(java.lang.String resource)
        Specified by:
        canTransformResource in interface org.apache.maven.plugins.shade.resource.ResourceTransformer
      • processResource

        public void processResource​(java.lang.String resource,
                                    java.io.InputStream is,
                                    java.util.List<org.apache.maven.plugins.shade.relocation.Relocator> relocators)
                             throws java.io.IOException
        Specified by:
        processResource in interface org.apache.maven.plugins.shade.resource.ResourceTransformer
        Throws:
        java.io.IOException
      • hasTransformedResource

        public boolean hasTransformedResource()
        Specified by:
        hasTransformedResource in interface org.apache.maven.plugins.shade.resource.ResourceTransformer
      • modifyOutputStream

        public void modifyOutputStream​(java.util.jar.JarOutputStream jos)
                                throws java.io.IOException
        Specified by:
        modifyOutputStream in interface org.apache.maven.plugins.shade.resource.ResourceTransformer
        Throws:
        java.io.IOException