Class DefaultShader

  • All Implemented Interfaces:
    Shader

    @Singleton
    @Named
    public class DefaultShader
    extends java.lang.Object
    implements Shader
    • Field Detail

      • logger

        private final org.slf4j.Logger logger
    • Constructor Detail

      • DefaultShader

        public DefaultShader()
      • DefaultShader

        public DefaultShader​(org.slf4j.Logger logger)
    • Method Detail

      • getTime

        private long getTime​(java.util.zip.ZipEntry entry)
      • shade

        public void shade​(ShadeRequest shadeRequest)
                   throws java.io.IOException,
                          org.apache.maven.plugin.MojoExecutionException
        Description copied from interface: Shader
        Perform a shading operation.
        Specified by:
        shade in interface Shader
        Parameters:
        shadeRequest - holds the many parameters to this method
        Throws:
        java.io.IOException - for IO errors reading the thing
        org.apache.maven.plugin.MojoExecutionException - for anything else that goes wrong.
      • shadeJars

        private void shadeJars​(ShadeRequest shadeRequest,
                               java.util.Set<java.lang.String> resources,
                               java.util.List<ResourceTransformer> transformers,
                               java.util.jar.JarOutputStream jos,
                               java.util.Map<java.lang.String,​java.util.HashSet<java.io.File>> duplicates,
                               DefaultShader.DefaultPackageMapper packageMapper)
                        throws java.io.IOException
        Throws:
        java.io.IOException
      • shadeDir

        private void shadeDir​(ShadeRequest shadeRequest,
                              java.util.Set<java.lang.String> resources,
                              java.util.List<ResourceTransformer> transformers,
                              DefaultShader.DefaultPackageMapper packageMapper,
                              java.util.jar.JarOutputStream jos,
                              java.util.Map<java.lang.String,​java.util.HashSet<java.io.File>> duplicates,
                              java.io.File jar,
                              java.io.File current,
                              java.lang.String prefix,
                              java.util.List<Filter> jarFilters)
                       throws java.io.IOException
        Throws:
        java.io.IOException
      • shadeJar

        private void shadeJar​(ShadeRequest shadeRequest,
                              java.util.Set<java.lang.String> resources,
                              java.util.List<ResourceTransformer> transformers,
                              DefaultShader.DefaultPackageMapper packageMapper,
                              java.util.jar.JarOutputStream jos,
                              java.util.Map<java.lang.String,​java.util.HashSet<java.io.File>> duplicates,
                              java.io.File jar,
                              java.util.List<Filter> jarFilters)
                       throws java.io.IOException
        Throws:
        java.io.IOException
      • isExcludedEntry

        private boolean isExcludedEntry​(java.lang.String name)
      • shadeJarEntry

        private void shadeJarEntry​(ShadeRequest shadeRequest,
                                   java.util.Set<java.lang.String> resources,
                                   java.util.List<ResourceTransformer> transformers,
                                   DefaultShader.DefaultPackageMapper packageMapper,
                                   java.util.jar.JarOutputStream jos,
                                   java.util.Map<java.lang.String,​java.util.HashSet<java.io.File>> duplicates,
                                   java.io.File jar,
                                   java.util.concurrent.Callable<java.io.InputStream> inputProvider,
                                   java.lang.String name,
                                   long time,
                                   int method)
                            throws java.lang.Exception
        Throws:
        java.lang.Exception
      • goThroughAllJarEntriesForManifestTransformer

        private void goThroughAllJarEntriesForManifestTransformer​(ShadeRequest shadeRequest,
                                                                  java.util.Set<java.lang.String> resources,
                                                                  ManifestResourceTransformer manifestTransformer,
                                                                  java.util.jar.JarOutputStream jos)
                                                           throws java.io.IOException
        Throws:
        java.io.IOException
      • showOverlappingWarning

        private void showOverlappingWarning()
      • logSummaryOfDuplicates

        private void logSummaryOfDuplicates​(java.util.Map<java.util.Collection<java.io.File>,​java.util.HashSet<java.lang.String>> overlapping)
      • newJarFile

        private java.util.jar.JarFile newJarFile​(java.io.File jar)
                                          throws java.io.IOException
        Throws:
        java.io.IOException
      • getFilters

        private java.util.List<Filter> getFilters​(java.io.File jar,
                                                  java.util.List<Filter> filters)
      • addDirectory

        private void addDirectory​(java.util.Set<java.lang.String> resources,
                                  java.util.jar.JarOutputStream jos,
                                  java.lang.String name,
                                  long time)
                           throws java.io.IOException
        Throws:
        java.io.IOException
      • addRemappedClass

        private void addRemappedClass​(java.util.jar.JarOutputStream jos,
                                      java.io.File jar,
                                      java.lang.String name,
                                      long time,
                                      java.io.InputStream is,
                                      DefaultShader.DefaultPackageMapper packageMapper)
                               throws java.io.IOException,
                                      org.apache.maven.plugin.MojoExecutionException
        Throws:
        java.io.IOException
        org.apache.maven.plugin.MojoExecutionException
      • isFiltered

        private boolean isFiltered​(java.util.List<Filter> filters,
                                   java.lang.String name)
      • resourceTransformed

        private boolean resourceTransformed​(java.util.List<ResourceTransformer> resourceTransformers,
                                            java.lang.String name,
                                            java.io.InputStream is,
                                            java.util.List<Relocator> relocators,
                                            long time)
                                     throws java.io.IOException
        Throws:
        java.io.IOException
      • addJavaSource

        private void addJavaSource​(java.util.Set<java.lang.String> resources,
                                   java.util.jar.JarOutputStream jos,
                                   java.lang.String name,
                                   long time,
                                   java.io.InputStream is,
                                   java.util.List<Relocator> relocators)
                            throws java.io.IOException
        Throws:
        java.io.IOException
      • addResource

        private void addResource​(java.util.Set<java.lang.String> resources,
                                 java.util.jar.JarOutputStream jos,
                                 java.lang.String name,
                                 java.util.concurrent.Callable<java.io.InputStream> input,
                                 long time,
                                 int method)
                          throws java.lang.Exception
        Throws:
        java.lang.Exception