[ 
https://issues.apache.org/jira/browse/LOG4J2-673?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16870098#comment-16870098
 ] 

Ralph Goers commented on LOG4J2-673:
------------------------------------

The changes for LOG4J2-2621 will hopefully fix this problem. The plugin data 
will be captured in a Java file that should have a different package name in 
every jar so long as proper package naming conventions are followed. The Java 
class will be loaded with the ServiceLoader so as long as the shading process 
supports the java.util.ServiceLoader files in META-INF/services this problem 
should be resolved. 

The changes for LOG4J2-2621 are only available on the master branch which will 
become Log4j 2 3.0.0.

> plugin preloading fails in shaded jar files
> -------------------------------------------
>
>                 Key: LOG4J2-673
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-673
>             Project: Log4j 2
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.0-rc2, 2.1
>            Reporter: mck
>            Assignee: Matt Sicker
>            Priority: Critical
>              Labels: annotations, compiler, plugins
>         Attachments: 
> 0002-LOG4J2-673-plugin-preloading-fails-in-shaded-jar-fil.patch, 
> 0005-LOG4J2-673-plugin-preloading-fails-in-shaded-jar-fil.patch
>
>
> Support for plugin preloading through the standard 
> javax.annotation.processing tool was adding in LOG4J2-595
> But the plugin processor always creates and stores the processed "Plugin" 
> annotated classes into the same file. This works fine when the classpath 
> consists of individual jar files, but fails when shaded jar files are used.
> A tested fix exists at 
> https://github.com/finn-no/logging-log4j2/tree/bugfix/LOG4J2-673
> There's also a github pull request and a manual diff attached. (I can clean 
> up anything not used afterwards)
> The fix saves the dat file in a location under META-INF that matches the 
> shared package all the processed plugins are found under.
> The package attribute in the config file is then used so that multiple dat 
> files can be loaded at runtime.
> This means that the package attribute is no longer deprecated.
> This has been tested against 
> https://github.com/finn-no/log4j2-logstash-jsonevent-layout



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

Reply via email to