You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Bruno Dumon (JIRA)" <ji...@apache.org> on 2019/02/22 11:58:00 UTC

[jira] [Created] (MSHADE-312) META-INF/services incorrectly adjusted when relocation pattern occurs twice in package name

Bruno Dumon created MSHADE-312:
----------------------------------

             Summary: META-INF/services incorrectly adjusted when relocation pattern occurs twice in package name
                 Key: MSHADE-312
                 URL: https://issues.apache.org/jira/browse/MSHADE-312
             Project: Maven Shade Plugin
          Issue Type: Bug
    Affects Versions: 3.2.1
            Reporter: Bruno Dumon


I am creating a relocated gRPC.

gRPC itself contains a relocated netty, in a package name like this:

{noformat}
io.grpc.netty.shaded.io.grpc.netty
{noformat}

Note that this package name contains "io.grpc" twice.

This package name occurs in a META-INF/services file as well. The relocation of the content of the services files is handled through Relocation.applyToSourceContent(), which does a simple find-and-replace-all.

This will make that both occurrences of "io.grpc" are relocated, rather than only the first one.

So suppose I relocate "io.grpc" to "my.io.grpc", this will be produced:

{noformat}
my.io.grpc.netty.shaded.my.io.grpc.netty
{noformat}

while it should be:

{noformat}
my.io.grpc.netty.shaded.io.grpc.netty
{noformat}

Given that we know that services files contain class names, the substitution could probably be smarter.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)