Class ServicesResourceTransformer

java.lang.Object
org.apache.maven.plugins.shade.resource.ServicesResourceTransformer
All Implemented Interfaces:
ReproducibleResourceTransformer, ResourceTransformer

public class ServicesResourceTransformer extends Object
Resources transformer that relocates classes in META-INF/services and appends entries in META-INF/services resources into a single resource. For example, if there are several META-INF/services/org.apache.maven.project.ProjectBuilder resources spread across many JARs the individual entries will all be concatenated into a single META-INF/services/org.apache.maven.project.ProjectBuilder resource packaged into the resultant JAR produced by the shading process.
  • Constructor Details

    • ServicesResourceTransformer

      public ServicesResourceTransformer()
  • Method Details

    • canTransformResource

      public boolean canTransformResource(String resource)
    • processResource

      public void processResource(String resource, InputStream is, List<Relocator> relocators, long time) throws IOException
      Description copied from interface: ReproducibleResourceTransformer
      Transform an individual resource
      Parameters:
      resource - The resource name
      is - An input stream for the resource, the implementation should *not* close this stream
      relocators - A list of relocators
      time - the time of the resource to process
      Throws:
      IOException - When the IO blows up
    • hasTransformedResource

      public boolean hasTransformedResource()
    • modifyOutputStream

      public void modifyOutputStream(JarOutputStream jos) throws IOException
      Throws:
      IOException
    • processResource

      public final void processResource(String resource, InputStream is, List<Relocator> relocators) throws IOException
      Description copied from interface: ResourceTransformer
      Transform an individual resource
      Specified by:
      processResource in interface ResourceTransformer
      Parameters:
      resource - The resource name
      is - An input stream for the resource, the implementation should *not* close this stream
      relocators - A list of relocators
      Throws:
      IOException - When the IO blows up