[jira] [Comment Edited] (MSHADE-345) Package relocation appears not to work with Scala
[ https://issues.apache.org/jira/browse/MSHADE-345?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17693720#comment-17693720 ] Javier Neira Sanchez edited comment on MSHADE-345 at 2/26/23 10:19 PM: --- [~icshuo] hey, thanks for the hint to try to reroduce the issue. I followed it, you can check that version at [https://github.com/jneira/maven-shade-plugin/tree/SHADE-345_scala-package-relocation/src/it/projects/MSHADE-345_scala-package-relocation/src/main/scala] The scala app looks like: {code:java} import org.apache.logging.log4j.scala.Logger; import org.apache.logging.log4j.scala.Logging; object MyApp extends App with Logging { println("Logger FQCN: " + Logger.FQCN) logger.info("Test Logging") } {code} Executing the app shows {code:java} Logger FQCN: relocated.scala.Logger${code}{code} Which still seems to be correct And, well, the bytecode generated for relocated classes also looks good, for example: {code:java} {code:java} public void delayedInit(relocated.scala.Function0https://github.com/jneira/maven-shade-plugin/tree/SHADE-345_scala-package-relocation/src/it/projects/MSHADE-345_scala-package-relocation/src/main/scala] The scala app looks like: {code:java} import org.apache.logging.log4j.scala.Logger; import org.apache.logging.log4j.scala.Logging; object MyApp extends App with Logging { println("Logger FQCN: " + Logger.FQCN) logger.info("Test Logging") } {code} Executing the app shows {code:java} Logger FQCN: relocated.scala.Logger${code} Which still seems to be correct And, well, the bytecode generated for relocated classes also looks good, for example: {code:java} public void delayedInit(relocated.scala.Function0 Package relocation appears not to work with Scala > - > > Key: MSHADE-345 > URL: https://issues.apache.org/jira/browse/MSHADE-345 > Project: Maven Shade Plugin > Issue Type: Bug >Reporter: Graham Pople >Priority: Major > Attachments: image (4).png > > > (Apologies if this is a known issue, I searched but couldn't find it.) > I have a small pom.xml that's simply pulling in two dependent libraries from > Maven, and shading them: > {code:java} > > http://maven.apache.org/POM/4.0.0"; > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; > xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 > http://maven.apache.org/maven-v4_0_0.xsd";> > 4.0.0 > com.couchbase.client > scala-deps > 1.1.1-SNAPSHOT > jar > Couchbase Scala Dependencies > Shadowing dependencies for Scala prokect > > > com.github.plokhotnyuk.jsoniter-scala > jsoniter-scala-core_2.12 > 1.0.0 > > > com.github.plokhotnyuk.jsoniter-scala > jsoniter-scala-macros_2.12 > 1.0.0 > > > > > > org.apache.maven.plugins > maven-shade-plugin > 3.2.1 > > > > com.github.plokhotnyuk > > com.couchbase.client.scala.deps.plokhotnyuk > > > true > true > true > > > > package > > shade > > > > > > > {code} > From this I expect to get an uber-jar containing those dependencies, with > classfiles inside > com/couchbase/client/scala/deps/plokhotnyuk/jsoniter_scala/..., and with > those files starting "package com.couchbase.client.scala.deps.plokhotnyuk...". > However, while the files are moved to the correct file structure, the package > names aren't adjusted. Here's a screenshot from the sources jar: > !image (4).png! > > And my experiments with the binary jar itself seem to indicate that the same > issue exists at the bytecode level in the regular jar too, e.g. the > classfiles are in the right place but the package hasn't been changed. > -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Comment Edited] (MSHADE-345) Package relocation appears not to work with Scala
[ https://issues.apache.org/jira/browse/MSHADE-345?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17693720#comment-17693720 ] Javier Neira Sanchez edited comment on MSHADE-345 at 2/26/23 10:16 PM: --- [~icshuo] hey, thanks for the hint to try to reroduce the issue. I followed it, you can check that version at [https://github.com/jneira/maven-shade-plugin/tree/SHADE-345_scala-package-relocation/src/it/projects/MSHADE-345_scala-package-relocation/src/main/scala] The scala app looks like: {code:java} import org.apache.logging.log4j.scala.Logger; import org.apache.logging.log4j.scala.Logging; object MyApp extends App with Logging { println("Logger FQCN: " + Logger.FQCN) logger.info("Test Logging") } {code} Executing the app shows {code:java} Logger FQCN: relocated.scala.Logger${code} Which still seems to be correct And, well, the bytecode generated for relocated classes also looks good, for example: {code:java} public void delayedInit(relocated.scala.Function0https://github.com/jneira/maven-shade-plugin/tree/SHADE-345_scala-package-relocation/src/it/projects/MSHADE-345_scala-package-relocation/src/main/scala] The scala app looks like: ``` import org.apache.logging.log4j.scala.Logger; import org.apache.logging.log4j.scala.Logging; object MyApp extends App with Logging { println("Logger FQCN: " + Logger.FQCN) logger.info("Test Logging") } ``` Executing the app shows ``` Logger FQCN: relocated.scala.Logger$ ``` Which still seems to be correct And, well, the bytecode generated for relocated classes also looks good, for example: ``` public void delayedInit(relocated.scala.Function0 Package relocation appears not to work with Scala > - > > Key: MSHADE-345 > URL: https://issues.apache.org/jira/browse/MSHADE-345 > Project: Maven Shade Plugin > Issue Type: Bug >Reporter: Graham Pople >Priority: Major > Attachments: image (4).png > > > (Apologies if this is a known issue, I searched but couldn't find it.) > I have a small pom.xml that's simply pulling in two dependent libraries from > Maven, and shading them: > {code:java} > > http://maven.apache.org/POM/4.0.0"; > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; > xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 > http://maven.apache.org/maven-v4_0_0.xsd";> > 4.0.0 > com.couchbase.client > scala-deps > 1.1.1-SNAPSHOT > jar > Couchbase Scala Dependencies > Shadowing dependencies for Scala prokect > > > com.github.plokhotnyuk.jsoniter-scala > jsoniter-scala-core_2.12 > 1.0.0 > > > com.github.plokhotnyuk.jsoniter-scala > jsoniter-scala-macros_2.12 > 1.0.0 > > > > > > org.apache.maven.plugins > maven-shade-plugin > 3.2.1 > > > > com.github.plokhotnyuk > > com.couchbase.client.scala.deps.plokhotnyuk > > > true > true > true > > > > package > > shade > > > > > > > {code} > From this I expect to get an uber-jar containing those dependencies, with > classfiles inside > com/couchbase/client/scala/deps/plokhotnyuk/jsoniter_scala/..., and with > those files starting "package com.couchbase.client.scala.deps.plokhotnyuk...". > However, while the files are moved to the correct file structure, the package > names aren't adjusted. Here's a screenshot from the sources jar: > !image (4).png! > > And my experiments with the binary jar itself seem to indicate that the same > issue exists at the bytecode level in the regular jar too, e.g. the > classfiles are in the right place but the package hasn't been changed. > -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Comment Edited] (MSHADE-345) Package relocation appears not to work with Scala
[ https://issues.apache.org/jira/browse/MSHADE-345?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17684326#comment-17684326 ] Javier Neira Sanchez edited comment on MSHADE-345 at 2/6/23 9:02 AM: - Hi! i am trying to reproduce the issue but i am not able to do it. >From my tests i would say that the plugin is relocating scala code correctly. {{package}} sentences are not included in the bytecode when compiling any jvm lang to bytecode. So i think that maybe the ide is interfering in the result and it is showing a wrong package, cause it still think the class is the original and not the shaded one. In fact my ide is showing me a similar decompiled class file with the wrong package. My tests so far (i've upload them here: [https://github.com/jneira/maven-shade-plugin/tree/SHADE-345_scala-package-relocation/src/it/projects/MSHADE-345_scala-package-relocation] ) * I have this pom.xml: {noformat} 4.0.0 org.apache.maven.its.shade.rie test 1.0 jar MSHADE-345 Test handling scala package relocation. org.apache.logging.log4j log4j-api-scala_2.11 12.0 org.apache.logging.log4j log4j-api-scala_2.12 12.0 org.apache.logging.log4j log4j-api-scala_2.13 12.0 org.apache.maven.plugins maven-shade-plugin 3.2.4 attach-shade-211 package shade false org.apache.logging.log4j:log4j-api-scala_2.11 org.scala-lang:scala-library org.apache.logging.log4j.scala relocated.scala211 scala relocated.scala211 {noformat} * And i have a Main class using the classes being relocated: {noformat} import org.apache.logging.log4j.scala.Logger; import org.apache.logging.log4j.scala.Logging; import org.apache.logging.log4j.spi.ExtendedLogger; public class Main { public static void main(String[] args) { System.out.println("Test" + Logger.FQCN()); Test t = new Test(); System.out.println("Logger: " + t.logger()); } public static class Test implements Logging{ public ExtendedLogger logger() { return null; } public void org$apache$logging$log4j$scala$Logging$_setter_$logger_$eq(ExtendedLogger arg0) { return; } } } {noformat} * The bytecode genetated for Main.class inside the shaded jar is: {noformat} Compiled from "Main.java" public class Main { public Main(); Code: 0: aload_0 1: invokespecial #12 // Method java/lang/Object."":()V 4: return public static void main(java.lang.String[]); Code: 0: getstatic #22 // Field java/lang/System.out:Ljava/io/PrintStream; 3: new #24 // class java/lang/StringBuilder 6: dup 7: invokespecial #25 // Method java/lang/StringBuilder."":()V 10: ldc #26 // String Test 12: invokevirtual #30 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 15: invokestatic #36 // Method relocated/scala211/Logger.FQCN:()Ljava/lang/String; 18: invokevirtual #30 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 21: invokevirtual #39 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; 24: invokevirtual #45 // Method java/io/PrintStream.println:(Ljava/lang/String;)V 27: new #7 // class Main$Test 30: dup 31: invokespecial #46 // Method Main$Test."":()V 34: astore_1 35: getstatic #22 // Field java/lang/System.out:Ljava/io/PrintStream; 38: new #24 // class java/lang/StringBuilder 41: dup 42: invokespecial #25 // Method java/lang/StringBuilder."":()V 45: ldc #48 // String Logger: 47: invokevirtual #30 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 50: aload_1 51: invokevirtual #52 // Method Main$Test.logger:()Lorg/apache/logging/log4j/spi/ExtendedLogger; 54: invokevirtual #55 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; 57: invokevirtual #39 // Method java/lang/String
[jira] [Comment Edited] (MSHADE-345) Package relocation appears not to work with Scala
[ https://issues.apache.org/jira/browse/MSHADE-345?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17684326#comment-17684326 ] Javier Neira Sanchez edited comment on MSHADE-345 at 2/6/23 8:22 AM: - Hi! i am trying to reproduce the issue but i am not able to do it. >From my tests i would say that the plugin is relocating scala code correctly. {{package}} sentences are not included int he bytecode when compiling any jvm lang to bytecode. So i think that maybe the ide is interfering in the result and it is showing a wrong package, cause it still think the class is the original and not the shaded one. In fact my ide is showing me a similar decompiled class file with the wrong package. My tests so far (i've upload them here: [https://github.com/jneira/maven-shade-plugin/tree/SHADE-345_scala-package-relocation/src/it/projects/MSHADE-345_scala-package-relocation] ) * I have this pom.xml: {noformat} 4.0.0 org.apache.maven.its.shade.rie test 1.0 jar MSHADE-345 Test handling scala package relocation. org.apache.logging.log4j log4j-api-scala_2.11 12.0 org.apache.logging.log4j log4j-api-scala_2.12 12.0 org.apache.logging.log4j log4j-api-scala_2.13 12.0 org.apache.maven.plugins maven-shade-plugin 3.2.4 attach-shade-211 package shade false org.apache.logging.log4j:log4j-api-scala_2.11 org.scala-lang:scala-library org.apache.logging.log4j.scala relocated.scala211 scala relocated.scala211 {noformat} * And i have a Main class using the classes being relocated: {noformat} import org.apache.logging.log4j.scala.Logger; import org.apache.logging.log4j.scala.Logging; import org.apache.logging.log4j.spi.ExtendedLogger; public class Main { public static void main(String[] args) { System.out.println("Test" + Logger.FQCN()); Test t = new Test(); System.out.println("Logger: " + t.logger()); } public static class Test implements Logging{ public ExtendedLogger logger() { return null; } public void org$apache$logging$log4j$scala$Logging$_setter_$logger_$eq(ExtendedLogger arg0) { return; } } } {noformat} * The bytecode genetated for Main.class inside the shaded jar is: {noformat} Compiled from "Main.java" public class Main { public Main(); Code: 0: aload_0 1: invokespecial #12 // Method java/lang/Object."":()V 4: return public static void main(java.lang.String[]); Code: 0: getstatic #22 // Field java/lang/System.out:Ljava/io/PrintStream; 3: new #24 // class java/lang/StringBuilder 6: dup 7: invokespecial #25 // Method java/lang/StringBuilder."":()V 10: ldc #26 // String Test 12: invokevirtual #30 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 15: invokestatic #36 // Method relocated/scala211/Logger.FQCN:()Ljava/lang/String; 18: invokevirtual #30 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 21: invokevirtual #39 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; 24: invokevirtual #45 // Method java/io/PrintStream.println:(Ljava/lang/String;)V 27: new #7 // class Main$Test 30: dup 31: invokespecial #46 // Method Main$Test."":()V 34: astore_1 35: getstatic #22 // Field java/lang/System.out:Ljava/io/PrintStream; 38: new #24 // class java/lang/StringBuilder 41: dup 42: invokespecial #25 // Method java/lang/StringBuilder."":()V 45: ldc #48 // String Logger: 47: invokevirtual #30 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 50: aload_1 51: invokevirtual #52 // Method Main$Test.logger:()Lorg/apache/logging/log4j/spi/ExtendedLogger; 54: invokevirtual #55 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; 57: invokevirtual #39 // Method java/lang/String
[jira] [Comment Edited] (MSHADE-345) Package relocation appears not to work with Scala
[ https://issues.apache.org/jira/browse/MSHADE-345?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17684326#comment-17684326 ] Javier Neira Sanchez edited comment on MSHADE-345 at 2/6/23 8:22 AM: - Hi! i am trying to reproduce the issue but i am not able to do it. >From my tests i would say that the plugin is relocating scala code correctly. {{package}} sentences are not included int he bytecode when compiling any jvm lang to bytecode. So i think that maybe the ide is interfering in the result and it is showing a wrong package, cause it still think the class is the original and not the shaded one. In fact my ide is showing me a similar decompiled class file with the wrong package. My tests so far (i've upload them here: [https://github.com/jneira/maven-shade-plugin/tree/SHADE-345_scala-package-relocation/src/it/projects/MSHADE-345_scala-package-relocation] ) * I have this pom.xml: {noformat} 4.0.0 org.apache.maven.its.shade.rie test 1.0 jar MSHADE-345 Test handling scala package relocation. org.apache.logging.log4j log4j-api-scala_2.11 12.0 org.apache.logging.log4j log4j-api-scala_2.12 12.0 org.apache.logging.log4j log4j-api-scala_2.13 12.0 org.apache.maven.plugins maven-shade-plugin 3.2.4 attach-shade-211 package shade false org.apache.logging.log4j:log4j-api-scala_2.11 org.scala-lang:scala-library org.apache.logging.log4j.scala relocated.scala211 scala relocated.scala211 {noformat} * And i have a Main class using the classes being relocated: {noformat} import org.apache.logging.log4j.scala.Logger; import org.apache.logging.log4j.scala.Logging; import org.apache.logging.log4j.spi.ExtendedLogger; public class Main { public static void main(String[] args) { System.out.println("Test" + Logger.FQCN()); Test t = new Test(); System.out.println("Logger: " + t.logger()); } public static class Test implements Logging{ public ExtendedLogger logger() { return null; } public void org$apache$logging$log4j$scala$Logging$_setter_$logger_$eq(ExtendedLogger arg0) { return; } } } {noformat} * The bytecode genetated for Main.class inside the shaded jar is: {noformat} Compiled from "Main.java" public class Main { public Main(); Code: 0: aload_0 1: invokespecial #12 // Method java/lang/Object."":()V 4: return public static void main(java.lang.String[]); Code: 0: getstatic #22 // Field java/lang/System.out:Ljava/io/PrintStream; 3: new #24 // class java/lang/StringBuilder 6: dup 7: invokespecial #25 // Method java/lang/StringBuilder."":()V 10: ldc #26 // String Test 12: invokevirtual #30 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 15: invokestatic #36 // Method relocated/scala211/Logger.FQCN:()Ljava/lang/String; 18: invokevirtual #30 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 21: invokevirtual #39 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; 24: invokevirtual #45 // Method java/io/PrintStream.println:(Ljava/lang/String;)V 27: new #7 // class Main$Test 30: dup 31: invokespecial #46 // Method Main$Test."":()V 34: astore_1 35: getstatic #22 // Field java/lang/System.out:Ljava/io/PrintStream; 38: new #24 // class java/lang/StringBuilder 41: dup 42: invokespecial #25 // Method java/lang/StringBuilder."":()V 45: ldc #48 // String Logger: 47: invokevirtual #30 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 50: aload_1 51: invokevirtual #52 // Method Main$Test.logger:()Lorg/apache/logging/log4j/spi/ExtendedLogger; 54: invokevirtual #55 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; 57: invokevirtual #39 // Method java/lang/String
[jira] [Comment Edited] (MSHADE-345) Package relocation appears not to work with Scala
[ https://issues.apache.org/jira/browse/MSHADE-345?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17684326#comment-17684326 ] Javier Neira Sanchez edited comment on MSHADE-345 at 2/6/23 8:21 AM: - Hi! i am trying to reproduce the issue but i am not able to do it. >From my tests i would say that the plugin is relocating scala code correctly. {{package}} sentences are not included int he bytecode when compiling any jvm lang to bytecode. So i think that maybe the ide is interfering in the result and it is showing a wrong package, cause it still think the class is the original and not the shaded one. In fact my ide is showing me a similar decompiled class file with the wrong package. My tests so far (i've upload them here: [https://github.com/jneira/maven-shade-plugin/tree/SHADE-345_scala-package-relocation/src/it/projects/MSHADE-345_scala-package-relocation] ) * I have this pom.xml: {noformat} 4.0.0 org.apache.maven.its.shade.rie test 1.0 jar MSHADE-345 Test handling scala package relocation. org.apache.logging.log4j log4j-api-scala_2.11 12.0 org.apache.logging.log4j log4j-api-scala_2.12 12.0 org.apache.logging.log4j log4j-api-scala_2.13 12.0 org.apache.maven.plugins maven-shade-plugin 3.2.4 attach-shade-211 package shade false org.apache.logging.log4j:log4j-api-scala_2.11 org.scala-lang:scala-library org.apache.logging.log4j.scala relocated.scala211 scala relocated.scala211 {noformat} * And i have a Main class using the classes being relocated: {noformat} import org.apache.logging.log4j.scala.Logger; import org.apache.logging.log4j.scala.Logging; import org.apache.logging.log4j.spi.ExtendedLogger; public class Main { public static void main(String[] args) { System.out.println("Test" + Logger.FQCN()); Test t = new Test(); System.out.println("Logger: " + t.logger()); } public static class Test implements Logging{ public ExtendedLogger logger() { return null; } public void org$apache$logging$log4j$scala$Logging$_setter_$logger_$eq(ExtendedLogger arg0) { return; } } } {noformat} * The bytecode genetated for Main.class inside the shaded jar is: {noformat} Compiled from "Main.java" public class Main { public Main(); Code: 0: aload_0 1: invokespecial #12 // Method java/lang/Object."":()V 4: return public static void main(java.lang.String[]); Code: 0: getstatic #22 // Field java/lang/System.out:Ljava/io/PrintStream; 3: new #24 // class java/lang/StringBuilder 6: dup 7: invokespecial #25 // Method java/lang/StringBuilder."":()V 10: ldc #26 // String Test 12: invokevirtual #30 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 15: invokestatic #36 // Method relocated/scala211/Logger.FQCN:()Ljava/lang/String; 18: invokevirtual #30 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 21: invokevirtual #39 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; 24: invokevirtual #45 // Method java/io/PrintStream.println:(Ljava/lang/String;)V 27: new #7 // class Main$Test 30: dup 31: invokespecial #46 // Method Main$Test."":()V 34: astore_1 35: getstatic #22 // Field java/lang/System.out:Ljava/io/PrintStream; 38: new #24 // class java/lang/StringBuilder 41: dup 42: invokespecial #25 // Method java/lang/StringBuilder."":()V 45: ldc #48 // String Logger: 47: invokevirtual #30 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 50: aload_1 51: invokevirtual #52 // Method Main$Test.logger:()Lorg/apache/logging/log4j/spi/ExtendedLogger; 54: invokevirtual #55 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; 57: invokevirtual #39 // Method java/lang/String
[jira] [Comment Edited] (MSHADE-345) Package relocation appears not to work with Scala
[ https://issues.apache.org/jira/browse/MSHADE-345?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17684326#comment-17684326 ] Javier Neira Sanchez edited comment on MSHADE-345 at 2/6/23 8:20 AM: - Hi! i am trying to reproduce the issue but i am not able to do it. >From my tests i would say that the plugin is relocating scala code correctly. {{package}} sentences are not included int he bytecode when compiling any jvm lang to bytecode. So i think that maybe the ide is interfering in the result and it is showing a wrong package, cause it still think the class is the original and not the shaded one. In fact my ide is showing me a similar decompiled class file with the wrong package. My tests so far (i've upload them here: [https://github.com/jneira/maven-shade-plugin/tree/SHADE-345_scala-package-relocation/src/it/projects/MSHADE-345_scala-package-relocation] ) * I have this pom.xml: {noformat} 4.0.0 org.apache.maven.its.shade.rie test 1.0 jar MSHADE-345 Test handling scala package relocation. org.apache.logging.log4j log4j-api-scala_2.11 12.0 org.apache.logging.log4j log4j-api-scala_2.12 12.0 org.apache.logging.log4j log4j-api-scala_2.13 12.0 org.apache.maven.plugins maven-shade-plugin 3.2.4 attach-shade-211 package shade false org.apache.logging.log4j:log4j-api-scala_2.11 org.scala-lang:scala-library org.apache.logging.log4j.scala relocated.scala211 scala relocated.scala211 {noformat} * And i have a Main class using the classes being relocated: {noformat} import org.apache.logging.log4j.scala.Logger; import org.apache.logging.log4j.scala.Logging; import org.apache.logging.log4j.spi.ExtendedLogger; public class Main { public static void main(String[] args) { System.out.println("Test" + Logger.FQCN()); Test t = new Test(); System.out.println("Logger: " + t.logger()); } public static class Test implements Logging{ public ExtendedLogger logger() { return null; } public void org$apache$logging$log4j$scala$Logging$_setter_$logger_$eq(ExtendedLogger arg0) { return; } } } {noformat} * The bytecode genetated for Main.class inside the shaded jar is: {noformat} Compiled from "Main.java" public class Main { public Main(); Code: 0: aload_0 1: invokespecial #12 // Method java/lang/Object."":()V 4: return public static void main(java.lang.String[]); Code: 0: getstatic #22 // Field java/lang/System.out:Ljava/io/PrintStream; 3: new #24 // class java/lang/StringBuilder 6: dup 7: invokespecial #25 // Method java/lang/StringBuilder."":()V 10: ldc #26 // String Test 12: invokevirtual #30 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 15: invokestatic #36 // Method relocated/scala211/Logger.FQCN:()Ljava/lang/String; 18: invokevirtual #30 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 21: invokevirtual #39 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; 24: invokevirtual #45 // Method java/io/PrintStream.println:(Ljava/lang/String;)V 27: new #7 // class Main$Test 30: dup 31: invokespecial #46 // Method Main$Test."":()V 34: astore_1 35: getstatic #22 // Field java/lang/System.out:Ljava/io/PrintStream; 38: new #24 // class java/lang/StringBuilder 41: dup 42: invokespecial #25 // Method java/lang/StringBuilder."":()V 45: ldc #48 // String Logger: 47: invokevirtual #30 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 50: aload_1 51: invokevirtual #52 // Method Main$Test.logger:()Lorg/apache/logging/log4j/spi/ExtendedLogger; 54: invokevirtual #55 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; 57: invokevirtual #39 // Method java/lang/String
[jira] [Comment Edited] (MSHADE-345) Package relocation appears not to work with Scala
[ https://issues.apache.org/jira/browse/MSHADE-345?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17684326#comment-17684326 ] Javier Neira Sanchez edited comment on MSHADE-345 at 2/6/23 8:17 AM: - Hi! i am trying to reproduce the issue but i am not able to do it. >From my tests i would say that the plugin is relocating scala code correctly. {{package}} sentences are not included int he bytecode when compiling any jvm lang to bytecode. So i think that maybe the ide is interfering in the result and it is showing a wrong package, cause it still think the class is the original and not the shaded one. In fact my ide is showing me a similar decompiled class file with the wrong package. My tests so far (i've upload them here: [https://github.com/jneira/maven-shade-plugin/tree/SHADE-345_scala-package-relocation/src/it/projects/MSHADE-345_scala-package-relocation] ) * I have this pom.xml: {noformat} 4.0.0 org.apache.maven.its.shade.rie test 1.0 jar MSHADE-345 Test handling scala package relocation. org.apache.logging.log4j log4j-api-scala_2.11 12.0 org.apache.logging.log4j log4j-api-scala_2.12 12.0 org.apache.logging.log4j log4j-api-scala_2.13 12.0 org.apache.maven.plugins maven-shade-plugin 3.2.4 attach-shade-211 package shade false org.apache.logging.log4j:log4j-api-scala_2.11 org.scala-lang:scala-library org.apache.logging.log4j.scala relocated.scala211 scala relocated.scala211 {noformat} * And i have a Main class using the classes being relocated: {noformat} import org.apache.logging.log4j.scala.Logger; import org.apache.logging.log4j.scala.Logging; import org.apache.logging.log4j.spi.ExtendedLogger; public class Main { public static void main(String[] args) { System.out.println("Test" + Logger.FQCN()); Test t = new Test(); System.out.println("Logger: " + t.logger()); } public static class Test implements Logging{ public ExtendedLogger logger() { return null; } public void org$apache$logging$log4j$scala$Logging$_setter_$logger_$eq(ExtendedLogger arg0) { return; } } } {noformat} * The bytecode genetated for Main.class inside the shaded jar is: {noformat} Compiled from "Main.java" public class Main { public Main(); Code: 0: aload_0 1: invokespecial #12 // Method java/lang/Object."":()V 4: return public static void main(java.lang.String[]); Code: 0: getstatic #22 // Field java/lang/System.out:Ljava/io/PrintStream; 3: new #24 // class java/lang/StringBuilder 6: dup 7: invokespecial #25 // Method java/lang/StringBuilder."":()V 10: ldc #26 // String Test 12: invokevirtual #30 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 15: invokestatic #36 // Method relocated/scala211/Logger.FQCN:()Ljava/lang/String; 18: invokevirtual #30 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 21: invokevirtual #39 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; 24: invokevirtual #45 // Method java/io/PrintStream.println:(Ljava/lang/String;)V 27: new #7 // class Main$Test 30: dup 31: invokespecial #46 // Method Main$Test."":()V 34: astore_1 35: getstatic #22 // Field java/lang/System.out:Ljava/io/PrintStream; 38: new #24 // class java/lang/StringBuilder 41: dup 42: invokespecial #25 // Method java/lang/StringBuilder."":()V 45: ldc #48 // String Logger: 47: invokevirtual #30 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 50: aload_1 51: invokevirtual #52 // Method Main$Test.logger:()Lorg/apache/logging/log4j/spi/ExtendedLogger; 54: invokevirtual #55 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; 57: invokevirtual #39 // Method java/lang/String
[jira] [Comment Edited] (MSHADE-345) Package relocation appears not to work with Scala
[ https://issues.apache.org/jira/browse/MSHADE-345?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17684326#comment-17684326 ] Javier Neira Sanchez edited comment on MSHADE-345 at 2/6/23 6:55 AM: - Hi! i am trying to reproduce the issue but i am not able to do it. >From my tests i would say that the plugin is relocating scala code correctly. {{package}} sentences are not included int he bytecode when compiling any jvm lang to bytecode. So i think that maybe the ide is interfering in the result and it is showing a wrong package, cause it still think the class is the original and not the shaded one. In fact my ide is showing me a similar decompiled class file with the wrong package. My tests so far (i've upload them here: https://github.com/jneira/maven-shade-plugin/tree/SHADE-345_scala-package-relocation/src/it/projects/MSHADE-345_scala-package-relocation ) * I have this pom.xml: {noformat} 4.0.0 org.apache.maven.its.shade.rie test 1.0 jar MSHADE-345 Test handling scala package relocation. org.apache.logging.log4j log4j-api-scala_2.11 12.0 org.apache.logging.log4j log4j-api-scala_2.12 12.0 org.apache.logging.log4j log4j-api-scala_2.13 12.0 org.apache.maven.plugins maven-shade-plugin 3.2.4 attach-shade-211 package shade false org.apache.logging.log4j:log4j-api-scala_2.11 org.scala-lang:scala-library org.apache.logging.log4j.scala relocated.scala211 scala relocated.scala211 {noformat} * And i have a Main class using the classes being relocated: {noformat} import org.apache.logging.log4j.scala.Logger; import org.apache.logging.log4j.scala.Logging; import org.apache.logging.log4j.spi.ExtendedLogger; public class Main { public static void main(String[] args) { System.out.println("Test" + Logger.FQCN()); Test t = new Test(); System.out.println("Logger: " + t.logger()); } public static class Test implements Logging{ public ExtendedLogger logger() { return null; } public void org$apache$logging$log4j$scala$Logging$_setter_$logger_$eq(ExtendedLogger arg0) { return; } } } {noformat} * The bytecode genetated for Main.class inside the shaded jar is: {noformat} Compiled from "Main.java" public class Main { public Main(); Code: 0: aload_0 1: invokespecial #12 // Method java/lang/Object."":()V 4: return public static void main(java.lang.String[]); Code: 0: getstatic #22 // Field java/lang/System.out:Ljava/io/PrintStream; 3: new #24 // class java/lang/StringBuilder 6: dup 7: invokespecial #25 // Method java/lang/StringBuilder."":()V 10: ldc #26 // String Test 12: invokevirtual #30 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 15: invokestatic #36 // Method relocated/scala211/Logger.FQCN:()Ljava/lang/String; 18: invokevirtual #30 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 21: invokevirtual #39 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; 24: invokevirtual #45 // Method java/io/PrintStream.println:(Ljava/lang/String;)V 27: new #7 // class Main$Test 30: dup 31: invokespecial #46 // Method Main$Test."":()V 34: astore_1 35: getstatic #22 // Field java/lang/System.out:Ljava/io/PrintStream; 38: new #24 // class java/lang/StringBuilder 41: dup 42: invokespecial #25 // Method java/lang/StringBuilder."":()V 45: ldc #48 // String Logger: 47: invokevirtual #30 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 50: aload_1 51: invokevirtual #52 // Method Main$Test.logger:()Lorg/apache/logging/log4j/spi/ExtendedLogger; 54: invokevirtual #55 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; 57: invokevirtual #39 // Method java/lang/StringBu
[jira] [Comment Edited] (MSHADE-345) Package relocation appears not to work with Scala
[ https://issues.apache.org/jira/browse/MSHADE-345?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17684326#comment-17684326 ] Javier Neira Sanchez edited comment on MSHADE-345 at 2/6/23 6:55 AM: - Hi! i am trying to reproduce the issue but i am not able to do it. >From my tests i would say that the plugin is relocating scala code correctly. {{package}} sentences are not included int he bytecode when compiling any jvm lang to bytecode. So i think that maybe the ide is interfering in the result and it is showing a wrong package, cause it still think the class is the original and not the shaded one. In fact my ide is showing me a similar decompiled class file with the wrong package. My tests so far (i've upload them here: [https://github.com/jneira/maven-shade-plugin/tree/SHADE-345_scala-package-relocation/src/it/projects/MSHADE-345_scala-package-relocation|https://github.com/jneira/maven-shade-plugin/tree/SHADE-345_scala-package-relocation/src/it/projects/MSHADE-345_scala-package-relocation:] * I have this pom.xml: {noformat} 4.0.0 org.apache.maven.its.shade.rie test 1.0 jar MSHADE-345 Test handling scala package relocation. org.apache.logging.log4j log4j-api-scala_2.11 12.0 org.apache.logging.log4j log4j-api-scala_2.12 12.0 org.apache.logging.log4j log4j-api-scala_2.13 12.0 org.apache.maven.plugins maven-shade-plugin 3.2.4 attach-shade-211 package shade false org.apache.logging.log4j:log4j-api-scala_2.11 org.scala-lang:scala-library org.apache.logging.log4j.scala relocated.scala211 scala relocated.scala211 {noformat} * And i have a Main class using the classes being relocated: {noformat} import org.apache.logging.log4j.scala.Logger; import org.apache.logging.log4j.scala.Logging; import org.apache.logging.log4j.spi.ExtendedLogger; public class Main { public static void main(String[] args) { System.out.println("Test" + Logger.FQCN()); Test t = new Test(); System.out.println("Logger: " + t.logger()); } public static class Test implements Logging{ public ExtendedLogger logger() { return null; } public void org$apache$logging$log4j$scala$Logging$_setter_$logger_$eq(ExtendedLogger arg0) { return; } } } {noformat} * The bytecode genetated for Main.class inside the shaded jar is: {noformat} Compiled from "Main.java" public class Main { public Main(); Code: 0: aload_0 1: invokespecial #12 // Method java/lang/Object."":()V 4: return public static void main(java.lang.String[]); Code: 0: getstatic #22 // Field java/lang/System.out:Ljava/io/PrintStream; 3: new #24 // class java/lang/StringBuilder 6: dup 7: invokespecial #25 // Method java/lang/StringBuilder."":()V 10: ldc #26 // String Test 12: invokevirtual #30 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 15: invokestatic #36 // Method relocated/scala211/Logger.FQCN:()Ljava/lang/String; 18: invokevirtual #30 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 21: invokevirtual #39 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; 24: invokevirtual #45 // Method java/io/PrintStream.println:(Ljava/lang/String;)V 27: new #7 // class Main$Test 30: dup 31: invokespecial #46 // Method Main$Test."":()V 34: astore_1 35: getstatic #22 // Field java/lang/System.out:Ljava/io/PrintStream; 38: new #24 // class java/lang/StringBuilder 41: dup 42: invokespecial #25 // Method java/lang/StringBuilder."":()V 45: ldc #48 // String Logger: 47: invokevirtual #30 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 50: aload_1 51: invokevirtual #52 // Method Main$Test.logger:()Lorg/apache/logging/log4j/spi/ExtendedLogger; 54: invokevirtual #55 // Method java/lang/Str
[jira] [Comment Edited] (MSHADE-345) Package relocation appears not to work with Scala
[ https://issues.apache.org/jira/browse/MSHADE-345?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17684326#comment-17684326 ] Javier Neira Sanchez edited comment on MSHADE-345 at 2/6/23 6:54 AM: - Hi! i am trying to reproduce the issue but i am not able to do it. >From my tests i would say that the plugin is relocating scala code correctly. {{package}} sentences are not included int he bytecode when compiling any jvm lang to bytecode. So i think that maybe the ide is interfering in the result and it is showing a wrong package, cause it still think the class is the original and not the shaded one. In fact my ide is showing me a similar decompiled class file with the wrong package. My tests so far (i've uploas them here: https://github.com/jneira/maven-shade-plugin/tree/SHADE-345_scala-package-relocation/src/it/projects/MSHADE-345_scala-package-relocation: * I have this pom.xml: {noformat} 4.0.0 org.apache.maven.its.shade.rie test 1.0 jar MSHADE-345 Test handling scala package relocation. org.apache.logging.log4j log4j-api-scala_2.11 12.0 org.apache.logging.log4j log4j-api-scala_2.12 12.0 org.apache.logging.log4j log4j-api-scala_2.13 12.0 org.apache.maven.plugins maven-shade-plugin 3.2.4 attach-shade-211 package shade false org.apache.logging.log4j:log4j-api-scala_2.11 org.scala-lang:scala-library org.apache.logging.log4j.scala relocated.scala211 scala relocated.scala211 {noformat} * And i have a Main class using the classes being relocated: {noformat} import org.apache.logging.log4j.scala.Logger; import org.apache.logging.log4j.scala.Logging; import org.apache.logging.log4j.spi.ExtendedLogger; public class Main { public static void main(String[] args) { System.out.println("Test" + Logger.FQCN()); Test t = new Test(); System.out.println("Logger: " + t.logger()); } public static class Test implements Logging{ public ExtendedLogger logger() { return null; } public void org$apache$logging$log4j$scala$Logging$_setter_$logger_$eq(ExtendedLogger arg0) { return; } } } {noformat} * The bytecode genetated for Main.class inside the shaded jar is: {noformat} Compiled from "Main.java" public class Main { public Main(); Code: 0: aload_0 1: invokespecial #12 // Method java/lang/Object."":()V 4: return public static void main(java.lang.String[]); Code: 0: getstatic #22 // Field java/lang/System.out:Ljava/io/PrintStream; 3: new #24 // class java/lang/StringBuilder 6: dup 7: invokespecial #25 // Method java/lang/StringBuilder."":()V 10: ldc #26 // String Test 12: invokevirtual #30 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 15: invokestatic #36 // Method relocated/scala211/Logger.FQCN:()Ljava/lang/String; 18: invokevirtual #30 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 21: invokevirtual #39 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; 24: invokevirtual #45 // Method java/io/PrintStream.println:(Ljava/lang/String;)V 27: new #7 // class Main$Test 30: dup 31: invokespecial #46 // Method Main$Test."":()V 34: astore_1 35: getstatic #22 // Field java/lang/System.out:Ljava/io/PrintStream; 38: new #24 // class java/lang/StringBuilder 41: dup 42: invokespecial #25 // Method java/lang/StringBuilder."":()V 45: ldc #48 // String Logger: 47: invokevirtual #30 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 50: aload_1 51: invokevirtual #52 // Method Main$Test.logger:()Lorg/apache/logging/log4j/spi/ExtendedLogger; 54: invokevirtual #55 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; 57: invokevirtual #39 // Method java/lang/StringBuil
[jira] [Comment Edited] (MSHADE-345) Package relocation appears not to work with Scala
[ https://issues.apache.org/jira/browse/MSHADE-345?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17684326#comment-17684326 ] Javier Neira Sanchez edited comment on MSHADE-345 at 2/6/23 6:53 AM: - Hi! i am trying to reproduce the issue but i am not able to do it. >From my tests i would say that the plugin is relocating scala code correctly. {{package}} sentences are not included int he bytecode when compiling any jvm lang to bytecode. So i think that maybe the ide is interfering in the result and it is showing a wrong package, cause it still think the class is the original and not the shaded one. In fact my ide is showing me a similar decompiled class file with the wrong package. My tests so far: * I have this pom.xml: {noformat} 4.0.0 org.apache.maven.its.shade.rie test 1.0 jar MSHADE-345 Test handling scala package relocation. org.apache.logging.log4j log4j-api-scala_2.11 12.0 org.apache.logging.log4j log4j-api-scala_2.12 12.0 org.apache.logging.log4j log4j-api-scala_2.13 12.0 org.apache.maven.plugins maven-shade-plugin 3.2.4 attach-shade-211 package shade false org.apache.logging.log4j:log4j-api-scala_2.11 org.scala-lang:scala-library org.apache.logging.log4j.scala relocated.scala211 scala relocated.scala211 {noformat} * And i have a Main class using the classes being relocated: {noformat} import org.apache.logging.log4j.scala.Logger; import org.apache.logging.log4j.scala.Logging; import org.apache.logging.log4j.spi.ExtendedLogger; public class Main { public static void main(String[] args) { System.out.println("Test" + Logger.FQCN()); Test t = new Test(); System.out.println("Logger: " + t.logger()); } public static class Test implements Logging{ public ExtendedLogger logger() { return null; } public void org$apache$logging$log4j$scala$Logging$_setter_$logger_$eq(ExtendedLogger arg0) { return; } } } {noformat} * The bytecode genetated for Main.class inside the shaded jar is: {noformat} Compiled from "Main.java" public class Main { public Main(); Code: 0: aload_0 1: invokespecial #12 // Method java/lang/Object."":()V 4: return public static void main(java.lang.String[]); Code: 0: getstatic #22 // Field java/lang/System.out:Ljava/io/PrintStream; 3: new #24 // class java/lang/StringBuilder 6: dup 7: invokespecial #25 // Method java/lang/StringBuilder."":()V 10: ldc #26 // String Test 12: invokevirtual #30 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 15: invokestatic #36 // Method relocated/scala211/Logger.FQCN:()Ljava/lang/String; 18: invokevirtual #30 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 21: invokevirtual #39 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; 24: invokevirtual #45 // Method java/io/PrintStream.println:(Ljava/lang/String;)V 27: new #7 // class Main$Test 30: dup 31: invokespecial #46 // Method Main$Test."":()V 34: astore_1 35: getstatic #22 // Field java/lang/System.out:Ljava/io/PrintStream; 38: new #24 // class java/lang/StringBuilder 41: dup 42: invokespecial #25 // Method java/lang/StringBuilder."":()V 45: ldc #48 // String Logger: 47: invokevirtual #30 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 50: aload_1 51: invokevirtual #52 // Method Main$Test.logger:()Lorg/apache/logging/log4j/spi/ExtendedLogger; 54: invokevirtual #55 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; 57: invokevirtual #39 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; 60: invokevirtual #45 // Method java/io/PrintStream.println:(Ljava/lang/String;)V 63: return }{no
[jira] [Comment Edited] (MSHADE-345) Package relocation appears not to work with Scala
[ https://issues.apache.org/jira/browse/MSHADE-345?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17684326#comment-17684326 ] Javier Neira Sanchez edited comment on MSHADE-345 at 2/6/23 6:52 AM: - Hi! i am trying to reproduce the issue but i am not able to do it. >From my tests i would say that the plugin is relocating scala code correctly. {{package}} sentences are not included int he bytecode when compiling any jvm lang to bytecode. So i think that maybe the ide is interfering in the result and it is showing a wrong package, cause it still think the class is the original and not the shaded one. In fact my ide is showing me a similar decompiled class file with the wrong package. My tests so far: * I have this pom.xml: {noformat} 4.0.0 org.apache.maven.its.shade.rie test 1.0 jar MSHADE-345 Test handling scala package relocation. org.apache.logging.log4j log4j-api-scala_2.11 12.0 org.apache.logging.log4j log4j-api-scala_2.12 12.0 org.apache.logging.log4j log4j-api-scala_2.13 12.0 org.apache.maven.plugins maven-shade-plugin 3.2.4 attach-shade-211 package shade false org.apache.logging.log4j:log4j-api-scala_2.11 org.scala-lang:scala-library org.apache.logging.log4j.scala relocated.scala211 scala relocated.scala211 {noformat} * And i have a Main class using the classes being relocated: {noformat} import org.apache.logging.log4j.scala.Logger; import org.apache.logging.log4j.scala.Logging; import org.apache.logging.log4j.spi.ExtendedLogger; public class Main { public static void main(String[] args) { System.out.println("Test" + Logger.FQCN()); Test t = new Test(); System.out.println("Logger: " + t.logger()); } public static class Test implements Logging{ public ExtendedLogger logger() { return null; } public void org$apache$logging$log4j$scala$Logging$_setter_$logger_$eq(ExtendedLogger arg0) { return; } } } {noformat} * The bytecode genetated for Main.class inside the shaded jar is: {noformat} Compiled from "Main.java" public class Main { public Main(); Code: 0: aload_0 1: invokespecial #12 // Method java/lang/Object."":()V 4: return public static void main(java.lang.String[]); Code: 0: getstatic #22 // Field java/lang/System.out:Ljava/io/PrintStream; 3: new #24 // class java/lang/StringBuilder 6: dup 7: invokespecial #25 // Method java/lang/StringBuilder."":()V 10: ldc #26 // String Test 12: invokevirtual #30 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 15: invokestatic #36 // Method relocated/scala211/Logger.FQCN:()Ljava/lang/String; 18: invokevirtual #30 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 21: invokevirtual #39 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; 24: invokevirtual #45 // Method java/io/PrintStream.println:(Ljava/lang/String;)V 27: new #7 // class Main$Test 30: dup 31: invokespecial #46 // Method Main$Test."":()V 34: astore_1 35: getstatic #22 // Field java/lang/System.out:Ljava/io/PrintStream; 38: new #24 // class java/lang/StringBuilder 41: dup 42: invokespecial #25 // Method java/lang/StringBuilder."":()V 45: ldc #48 // String Logger: 47: invokevirtual #30 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 50: aload_1 51: invokevirtual #52 // Method Main$Test.logger:()Lorg/apache/logging/log4j/spi/ExtendedLogger; 54: invokevirtual #55 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; 57: invokevirtual #39 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; 60: invokevirtual #45 // Method java/io/PrintStream.println:(Ljava/lang/String;)V 6
[jira] [Comment Edited] (MSHADE-345) Package relocation appears not to work with Scala
[ https://issues.apache.org/jira/browse/MSHADE-345?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17684326#comment-17684326 ] Javier Neira Sanchez edited comment on MSHADE-345 at 2/6/23 6:50 AM: - Hi! i am trying to reproduce the issue but i am not able to do it. >From my tests i would say that the plugin is relocating scala code correctly. {{package}} sentences are not included as a bytecode when compiling any jvm lang to bytecode. So i think that maybe the ide is interfering in the result and it is showing a wrong package, cause it still think the class is the original and not the shaded one. In fact my ide is showing me a similar decompilaed class file with the wrong package. My tests so far: * I have this pom.xml: {noformat} 4.0.0 org.apache.maven.its.shade.rie test 1.0 jar MSHADE-345 Test handling scala package relocation. org.apache.logging.log4j log4j-api-scala_2.11 12.0 org.apache.logging.log4j log4j-api-scala_2.12 12.0 org.apache.logging.log4j log4j-api-scala_2.13 12.0 org.apache.maven.plugins maven-shade-plugin 3.2.4 attach-shade-211 package shade false org.apache.logging.log4j:log4j-api-scala_2.11 org.scala-lang:scala-library org.apache.logging.log4j.scala relocated.scala211 scala relocated.scala211 {noformat} * And i have a Main class using the classes being relocated: {noformat} import org.apache.logging.log4j.scala.Logger; import org.apache.logging.log4j.scala.Logging; import org.apache.logging.log4j.spi.ExtendedLogger; public class Main { public static void main(String[] args) { System.out.println("Test" + Logger.FQCN()); Test t = new Test(); System.out.println("Logger: " + t.logger()); } public static class Test implements Logging{ public ExtendedLogger logger() { return null; } public void org$apache$logging$log4j$scala$Logging$_setter_$logger_$eq(ExtendedLogger arg0) { return; } } } {noformat} * The bytecode genetated for Main.class inside the shaded jar is: {noformat} Compiled from "Main.java" public class Main { public Main(); Code: 0: aload_0 1: invokespecial #12 // Method java/lang/Object."":()V 4: return public static void main(java.lang.String[]); Code: 0: getstatic #22 // Field java/lang/System.out:Ljava/io/PrintStream; 3: new #24 // class java/lang/StringBuilder 6: dup 7: invokespecial #25 // Method java/lang/StringBuilder."":()V 10: ldc #26 // String Test 12: invokevirtual #30 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 15: invokestatic #36 // Method relocated/scala211/Logger.FQCN:()Ljava/lang/String; 18: invokevirtual #30 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 21: invokevirtual #39 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; 24: invokevirtual #45 // Method java/io/PrintStream.println:(Ljava/lang/String;)V 27: new #7 // class Main$Test 30: dup 31: invokespecial #46 // Method Main$Test."":()V 34: astore_1 35: getstatic #22 // Field java/lang/System.out:Ljava/io/PrintStream; 38: new #24 // class java/lang/StringBuilder 41: dup 42: invokespecial #25 // Method java/lang/StringBuilder."":()V 45: ldc #48 // String Logger: 47: invokevirtual #30 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 50: aload_1 51: invokevirtual #52 // Method Main$Test.logger:()Lorg/apache/logging/log4j/spi/ExtendedLogger; 54: invokevirtual #55 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; 57: invokevirtual #39 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; 60: invokevirtual #45 // Method java/io/PrintStream.println:(Ljava/lang/String;)V 63
[jira] [Comment Edited] (MSHADE-345) Package relocation appears not to work with Scala
[ https://issues.apache.org/jira/browse/MSHADE-345?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17684326#comment-17684326 ] Javier Neira Sanchez edited comment on MSHADE-345 at 2/6/23 6:49 AM: - Hi! i am trying to reproduce the issue but i am not able to reproduce. >From my tests i would say that the plugin is relocating scala code correctly. {{package}} sentences are not included as a bytecode when compiling any jvm lang to bytecode. So i think that maybe the ide is interfering in the result and it is showing a wrong package, cause it still think the class is the original and not the shaded one. In fact my ide is showing me a similar decompilaed class file with the wrong package. My tests so far: * I have this pom.xml: {noformat} 4.0.0 org.apache.maven.its.shade.rie test 1.0 jar MSHADE-345 Test handling scala package relocation. org.apache.logging.log4j log4j-api-scala_2.11 12.0 org.apache.logging.log4j log4j-api-scala_2.12 12.0 org.apache.logging.log4j log4j-api-scala_2.13 12.0 org.apache.maven.plugins maven-shade-plugin 3.2.4 attach-shade-211 package shade false org.apache.logging.log4j:log4j-api-scala_2.11 org.scala-lang:scala-library org.apache.logging.log4j.scala relocated.scala211 scala relocated.scala211 {noformat} * And i have a Main class using the classes being relocated: {noformat} import org.apache.logging.log4j.scala.Logger; import org.apache.logging.log4j.scala.Logging; import org.apache.logging.log4j.spi.ExtendedLogger; public class Main { public static void main(String[] args) { System.out.println("Test" + Logger.FQCN()); Test t = new Test(); System.out.println("Logger: " + t.logger()); } public static class Test implements Logging{ public ExtendedLogger logger() { return null; } public void org$apache$logging$log4j$scala$Logging$_setter_$logger_$eq(ExtendedLogger arg0) { return; } } } {noformat} * The bytecode genetated for Main.class inside the shaded jar is: || {noformat} Compiled from "Main.java" public class Main { public Main(); Code: 0: aload_0 1: invokespecial #12 // Method java/lang/Object."":()V 4: return public static void main(java.lang.String[]); Code: 0: getstatic #22 // Field java/lang/System.out:Ljava/io/PrintStream; 3: new #24 // class java/lang/StringBuilder 6: dup 7: invokespecial #25 // Method java/lang/StringBuilder."":()V 10: ldc #26 // String Test 12: invokevirtual #30 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 15: invokestatic #36 // Method relocated/scala211/Logger.FQCN:()Ljava/lang/String; 18: invokevirtual #30 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 21: invokevirtual #39 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; 24: invokevirtual #45 // Method java/io/PrintStream.println:(Ljava/lang/String;)V 27: new #7 // class Main$Test 30: dup 31: invokespecial #46 // Method Main$Test."":()V 34: astore_1 35: getstatic #22 // Field java/lang/System.out:Ljava/io/PrintStream; 38: new #24 // class java/lang/StringBuilder 41: dup 42: invokespecial #25 // Method java/lang/StringBuilder."":()V 45: ldc #48 // String Logger: 47: invokevirtual #30 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 50: aload_1 51: invokevirtual #52 // Method Main$Test.logger:()Lorg/apache/logging/log4j/spi/ExtendedLogger; 54: invokevirtual #55 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; 57: invokevirtual #39 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; 60: invokevirtual #45 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
[jira] [Comment Edited] (MSHADE-345) Package relocation appears not to work with Scala
[ https://issues.apache.org/jira/browse/MSHADE-345?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17684326#comment-17684326 ] Javier Neira Sanchez edited comment on MSHADE-345 at 2/6/23 6:35 AM: - Hi! i am trying to reproduce the issue but i am not sure on how do it: I have this pom.xml: {noformat} 4.0.0 org.apache.maven.its.shade.rie test 1.0 jar MSHADE-345 Test handling scala package relocation. org.apache.logging.log4j log4j-api-scala_2.11 12.0 org.apache.logging.log4j log4j-api-scala_2.12 12.0 org.apache.logging.log4j log4j-api-scala_2.13 12.0 org.apache.maven.plugins maven-shade-plugin 3.2.4 attach-shade-211 package shade false org.apache.logging.log4j:log4j-api-scala_2.11 org.scala-lang:scala-library org.apache.logging.log4j.scala relocated.scala211 scala relocated.scala211 {noformat} An i have a Main class using the classes being relocated: As you can check in the bytecode org{color:#d4d4d4}.{color}{color:#4ec9b0}apache{color}{color:#d4d4d4}.{color}{color:#4ec9b0}logging{color}{color:#d4d4d4}.{color}{color:#4ec9b0}log4j{color}{color:#d4d4d4}.{color}{color:#4ec9b0}scala{color}{color:#d4d4d4}.{color}{color:#4ec9b0}Logger{color}{color:#d4d4d4}.{color}{color:#dcdcaa}FQCN{color}{color:#d4d4d4}(){color} has been relocated to {color:#569cd6}Method{color}{color:#6a9955} {color}{color:#4ec9b0}relocated/scala211/Logger{color}{color:#569cd6}.{color}{color:#dcdcaa}FQCN{color}{color:#569cd6}:()L{color}{color:#4ec9b0}java/lang/String{color}{color:#569cd6};{color} {color:#569cd6} {color} was (Author: jneira): Hi! i am trying to reproduce the issue but i am not sure on how do it: I have this pom.xml: {noformat} 4.0.0 org.apache.maven.its.shade.rie test 1.0 jar MSHADE-345 Test handling scala package relocation. org.apache.logging.log4j log4j-api-scala_2.11 12.0 org.apache.logging.log4j log4j-api-scala_2.12 12.0 org.apache.logging.log4j log4j-api-scala_2.13 12.0 org.apache.maven.plugins maven-shade-plugin 3.2.4 attach-shade-211 package shade false org.apache.logging.log4j:log4j-api-scala_2.11 org.scala-lang:scala-library org.apache.logging.log4j.scala relocated.scala211 scala relocated.scala211 attach-shade-212 package shade false org.apache.logging.log4j:log4j-api-scala_2.12 org.apache.logging.log4j.scala relocated.scala212 attach-shade-213 package shade false org.apache.logging.log4j:log4j-api-scala_2.13 org.apache.logging.log4j.scala relocated.scala213 {noformat} My Main class is: {color:#569cd6}import{color}{color:#d4d4d4} {color}{color:#4ec9b0}org{color}{color:#d4d4d4}.{color}{color:#4ec9b0}apache{color}{color:#d4d4d4}.{color}{color:#4ec9b0}logging{color}{color:#d4d4d4}.{color}{color:#4ec9b0}log4j{color}{color:#d4d4d4}.{color}{color:#4ec9b0}scala{color}{color:#d4d4d4}.{color}{color:#4ec9b0}Logger{color}{color:#d4d4d4};{color} {color:#569cd6}import{color}{color:#d4d4d4} {color}{color:#4ec9b0}org{color}{color:#d4d4d4}.{color}{color:#4ec9b0}apache{color}{color:#d4d4d4}.{color}{color:#4ec9b0}logging{color}{color:#d4d4d4}.{color}{color:#4ec9b0}log4j{color}{color:#d4d4d4}.{color}{color:#4ec9b0}scala{color}{co
[jira] [Comment Edited] (MSHADE-345) Package relocation appears not to work with Scala
[ https://issues.apache.org/jira/browse/MSHADE-345?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17684326#comment-17684326 ] Javier Neira Sanchez edited comment on MSHADE-345 at 2/6/23 6:33 AM: - Hi! i am trying to reproduce the issue but i am not sure on how do it: I have this pom.xml: {noformat} 4.0.0 org.apache.maven.its.shade.rie test 1.0 jar MSHADE-345 Test handling scala package relocation. org.apache.logging.log4j log4j-api-scala_2.11 12.0 org.apache.logging.log4j log4j-api-scala_2.12 12.0 org.apache.logging.log4j log4j-api-scala_2.13 12.0 org.apache.maven.plugins maven-shade-plugin 3.2.4 attach-shade-211 package shade false org.apache.logging.log4j:log4j-api-scala_2.11 org.scala-lang:scala-library org.apache.logging.log4j.scala relocated.scala211 scala relocated.scala211 attach-shade-212 package shade false org.apache.logging.log4j:log4j-api-scala_2.12 org.apache.logging.log4j.scala relocated.scala212 attach-shade-213 package shade false org.apache.logging.log4j:log4j-api-scala_2.13 org.apache.logging.log4j.scala relocated.scala213 {noformat} My Main class is: {color:#569cd6}import{color}{color:#d4d4d4} {color}{color:#4ec9b0}org{color}{color:#d4d4d4}.{color}{color:#4ec9b0}apache{color}{color:#d4d4d4}.{color}{color:#4ec9b0}logging{color}{color:#d4d4d4}.{color}{color:#4ec9b0}log4j{color}{color:#d4d4d4}.{color}{color:#4ec9b0}scala{color}{color:#d4d4d4}.{color}{color:#4ec9b0}Logger{color}{color:#d4d4d4};{color} {color:#569cd6}import{color}{color:#d4d4d4} {color}{color:#4ec9b0}org{color}{color:#d4d4d4}.{color}{color:#4ec9b0}apache{color}{color:#d4d4d4}.{color}{color:#4ec9b0}logging{color}{color:#d4d4d4}.{color}{color:#4ec9b0}log4j{color}{color:#d4d4d4}.{color}{color:#4ec9b0}scala{color}{color:#d4d4d4}.{color}{color:#4ec9b0}Logging{color}{color:#d4d4d4};{color} {color:#569cd6}import{color}{color:#d4d4d4} {color}{color:#4ec9b0}org{color}{color:#d4d4d4}.{color}{color:#4ec9b0}apache{color}{color:#d4d4d4}.{color}{color:#4ec9b0}logging{color}{color:#d4d4d4}.{color}{color:#4ec9b0}log4j{color}{color:#d4d4d4}.{color}{color:#4ec9b0}spi{color}{color:#d4d4d4}.{color}{color:#4ec9b0}ExtendedLogger{color}{color:#d4d4d4};{color} {color:#569cd6}public{color}{color:#d4d4d4} {color}{color:#569cd6}class{color}{color:#d4d4d4} {color}{color:#4ec9b0}Main{color}{color:#d4d4d4} {{color} {color:#d4d4d4} {color}{color:#569cd6}public{color}{color:#d4d4d4} {color}{color:#569cd6}static{color}{color:#d4d4d4} {color}{color:#4ec9b0}void{color}{color:#d4d4d4} {color}{color:#dcdcaa}main{color}{color:#d4d4d4}({color}{color:#4ec9b0}String{color}{color:#d4d4d4}[] {color}{color:#9cdcfe}args{color}{color:#d4d4d4}) {{color} {color:#d4d4d4} {color}{color:#4ec9b0}System{color}{color:#d4d4d4}.{color}{color:#4fc1ff}out{color}{color:#d4d4d4}.{color}{color:#dcdcaa}println{color}{color:#d4d4d4}({color}{color:#ce9178}"Test"{color}{color:#d4d4d4} + {color}{color:#4ec9b0}Logger{color}{color:#d4d4d4}.{color}{color:#dcdcaa}FQCN{color}{color:#d4d4d4}());{color} {color:#d4d4d4} {color}{color:#4ec9b0}Test{color}{color:#d4d4d4} {color}{color:#9cdcfe}t{color}{color:#d4d4d4} = {color}{color:#c586c0}new{color}{color:#d4d4d4} {color}{color:#dcdcaa}Test{color}{color:#d4d4d4}();{color} {color:#d4d4d4} {color}{color:#4ec9b0}System{color}{color:#d4d4d4}.{color}{color:#4fc1ff}out{color}{color:#d4d4d4}.{color}{color:#dcdcaa}println{color}{color:#d4d4d4}({color}{color:#ce9178}"Logger: "{color}{color:#d4d4d4} + {color}{color:#9cdcfe}t{color}{color:#d4d4d4}.{color}{color:#dcdcaa}logger{color}{color:#d4d4d4}());{color} {color:#d4d4d4} }{color} {color:#d4d4d4} {color}{color:#569cd6}public{color}{color:#d4d4d4} {color}{color:#56
[jira] [Comment Edited] (MSHADE-345) Package relocation appears not to work with Scala
[ https://issues.apache.org/jira/browse/MSHADE-345?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17684326#comment-17684326 ] Javier Neira Sanchez edited comment on MSHADE-345 at 2/6/23 6:32 AM: - Hi! i am trying to reproduce the issue but i am not sure on how do it: I have this pom.xml: ``` 4.0.0 org.apache.maven.its.shade.rie test 1.0 jar MSHADE-345 Test handling scala package relocation. org.apache.logging.log4j log4j-api-scala_2.11 12.0 org.apache.logging.log4j log4j-api-scala_2.12 12.0 org.apache.logging.log4j log4j-api-scala_2.13 12.0 org.apache.maven.plugins maven-shade-plugin 3.2.4 attach-shade-211 package shade false org.apache.logging.log4j:log4j-api-scala_2.11 org.scala-lang:scala-library org.apache.logging.log4j.scala relocated.scala211 scala relocated.scala211 attach-shade-212 package shade false org.apache.logging.log4j:log4j-api-scala_2.12 org.apache.logging.log4j.scala relocated.scala212 attach-shade-213 package shade false org.apache.logging.log4j:log4j-api-scala_2.13 org.apache.logging.log4j.scala relocated.scala213 ``` My Main class is: {color:#569cd6}import{color}{color:#d4d4d4} {color}{color:#4ec9b0}org{color}{color:#d4d4d4}.{color}{color:#4ec9b0}apache{color}{color:#d4d4d4}.{color}{color:#4ec9b0}logging{color}{color:#d4d4d4}.{color}{color:#4ec9b0}log4j{color}{color:#d4d4d4}.{color}{color:#4ec9b0}scala{color}{color:#d4d4d4}.{color}{color:#4ec9b0}Logger{color}{color:#d4d4d4};{color} {color:#569cd6}import{color}{color:#d4d4d4} {color}{color:#4ec9b0}org{color}{color:#d4d4d4}.{color}{color:#4ec9b0}apache{color}{color:#d4d4d4}.{color}{color:#4ec9b0}logging{color}{color:#d4d4d4}.{color}{color:#4ec9b0}log4j{color}{color:#d4d4d4}.{color}{color:#4ec9b0}scala{color}{color:#d4d4d4}.{color}{color:#4ec9b0}Logging{color}{color:#d4d4d4};{color} {color:#569cd6}import{color}{color:#d4d4d4} {color}{color:#4ec9b0}org{color}{color:#d4d4d4}.{color}{color:#4ec9b0}apache{color}{color:#d4d4d4}.{color}{color:#4ec9b0}logging{color}{color:#d4d4d4}.{color}{color:#4ec9b0}log4j{color}{color:#d4d4d4}.{color}{color:#4ec9b0}spi{color}{color:#d4d4d4}.{color}{color:#4ec9b0}ExtendedLogger{color}{color:#d4d4d4};{color} {color:#569cd6}public{color}{color:#d4d4d4} {color}{color:#569cd6}class{color}{color:#d4d4d4} {color}{color:#4ec9b0}Main{color}{color:#d4d4d4} {{color} {color:#d4d4d4} {color}{color:#569cd6}public{color}{color:#d4d4d4} {color}{color:#569cd6}static{color}{color:#d4d4d4} {color}{color:#4ec9b0}void{color}{color:#d4d4d4} {color}{color:#dcdcaa}main{color}{color:#d4d4d4}({color}{color:#4ec9b0}String{color}{color:#d4d4d4}[] {color}{color:#9cdcfe}args{color}{color:#d4d4d4}) {{color} {color:#d4d4d4} {color}{color:#4ec9b0}System{color}{color:#d4d4d4}.{color}{color:#4fc1ff}out{color}{color:#d4d4d4}.{color}{color:#dcdcaa}println{color}{color:#d4d4d4}({color}{color:#ce9178}"Test"{color}{color:#d4d4d4} + {color}{color:#4ec9b0}Logger{color}{color:#d4d4d4}.{color}{color:#dcdcaa}FQCN{color}{color:#d4d4d4}());{color} {color:#d4d4d4} {color}{color:#4ec9b0}Test{color}{color:#d4d4d4} {color}{color:#9cdcfe}t{color}{color:#d4d4d4} = {color}{color:#c586c0}new{color}{color:#d4d4d4} {color}{color:#dcdcaa}Test{color}{color:#d4d4d4}();{color} {color:#d4d4d4} {color}{color:#4ec9b0}System{color}{color:#d4d4d4}.{color}{color:#4fc1ff}out{color}{color:#d4d4d4}.{color}{color:#dcdcaa}println{color}{color:#d4d4d4}({color}{color:#ce9178}"Logger: "{color}{color:#d4d4d4} + {color}{color:#9cdcfe}t{color}{color:#d4d4d4}.{color}{color:#dcdcaa}logger{color}{color:#d4d4d4}());{color} {color:#d4d4d4} }{color} {color:#d4d4d4} {color}{color:#569cd6}public{color}{color:#d4d4d4} {color}{color:#569cd6}static{color
[jira] [Comment Edited] (MSHADE-345) Package relocation appears not to work with Scala
[ https://issues.apache.org/jira/browse/MSHADE-345?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17679173#comment-17679173 ] Javier Neira Sanchez edited comment on MSHADE-345 at 1/20/23 2:37 PM: -- Hi, sadly still no news about the issue, there is some plan or wip (or a workaround?) about it? thanks! was (Author: jneira): Hi, sadly still no news about the issue, there is some plan or wip about it? thanks! > Package relocation appears not to work with Scala > - > > Key: MSHADE-345 > URL: https://issues.apache.org/jira/browse/MSHADE-345 > Project: Maven Shade Plugin > Issue Type: Bug >Reporter: Graham Pople >Priority: Major > Attachments: image (4).png > > > (Apologies if this is a known issue, I searched but couldn't find it.) > I have a small pom.xml that's simply pulling in two dependent libraries from > Maven, and shading them: > {code:java} > > http://maven.apache.org/POM/4.0.0"; > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; > xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 > http://maven.apache.org/maven-v4_0_0.xsd";> > 4.0.0 > com.couchbase.client > scala-deps > 1.1.1-SNAPSHOT > jar > Couchbase Scala Dependencies > Shadowing dependencies for Scala prokect > > > com.github.plokhotnyuk.jsoniter-scala > jsoniter-scala-core_2.12 > 1.0.0 > > > com.github.plokhotnyuk.jsoniter-scala > jsoniter-scala-macros_2.12 > 1.0.0 > > > > > > org.apache.maven.plugins > maven-shade-plugin > 3.2.1 > > > > com.github.plokhotnyuk > > com.couchbase.client.scala.deps.plokhotnyuk > > > true > true > true > > > > package > > shade > > > > > > > {code} > From this I expect to get an uber-jar containing those dependencies, with > classfiles inside > com/couchbase/client/scala/deps/plokhotnyuk/jsoniter_scala/..., and with > those files starting "package com.couchbase.client.scala.deps.plokhotnyuk...". > However, while the files are moved to the correct file structure, the package > names aren't adjusted. Here's a screenshot from the sources jar: > !image (4).png! > > And my experiments with the binary jar itself seem to indicate that the same > issue exists at the bytecode level in the regular jar too, e.g. the > classfiles are in the right place but the package hasn't been changed. > -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Comment Edited] (MSHADE-345) Package relocation appears not to work with Scala
[ https://issues.apache.org/jira/browse/MSHADE-345?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17226540#comment-17226540 ] zhangminglei edited comment on MSHADE-345 at 11/5/20, 7:46 AM: --- I encounter the same issue. I would like to think we should add relocation for scala for shading. was (Author: mingleizhang): I encounter this same issue. I would like to think we should add relocation for scala in shade. > Package relocation appears not to work with Scala > - > > Key: MSHADE-345 > URL: https://issues.apache.org/jira/browse/MSHADE-345 > Project: Maven Shade Plugin > Issue Type: Bug >Reporter: Graham Pople >Priority: Major > Attachments: image (4).png > > > (Apologies if this is a known issue, I searched but couldn't find it.) > I have a small pom.xml that's simply pulling in two dependent libraries from > Maven, and shading them: > {code:java} > > http://maven.apache.org/POM/4.0.0"; > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; > xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 > http://maven.apache.org/maven-v4_0_0.xsd";> > 4.0.0 > com.couchbase.client > scala-deps > 1.1.1-SNAPSHOT > jar > Couchbase Scala Dependencies > Shadowing dependencies for Scala prokect > > > com.github.plokhotnyuk.jsoniter-scala > jsoniter-scala-core_2.12 > 1.0.0 > > > com.github.plokhotnyuk.jsoniter-scala > jsoniter-scala-macros_2.12 > 1.0.0 > > > > > > org.apache.maven.plugins > maven-shade-plugin > 3.2.1 > > > > com.github.plokhotnyuk > > com.couchbase.client.scala.deps.plokhotnyuk > > > true > true > true > > > > package > > shade > > > > > > > {code} > From this I expect to get an uber-jar containing those dependencies, with > classfiles inside > com/couchbase/client/scala/deps/plokhotnyuk/jsoniter_scala/..., and with > those files starting "package com.couchbase.client.scala.deps.plokhotnyuk...". > However, while the files are moved to the correct file structure, the package > names aren't adjusted. Here's a screenshot from the sources jar: > !image (4).png! > > And my experiments with the binary jar itself seem to indicate that the same > issue exists at the bytecode level in the regular jar too, e.g. the > classfiles are in the right place but the package hasn't been changed. > -- This message was sent by Atlassian Jira (v8.3.4#803005)