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

Mck SembWever commented on LOG4J2-673:
--------------------------------------

{quote}I do object to using the shade plugin as it's like rolling together a 
bunch of statically linked C libraries into one gigantic executable.{quote}
I agree. But shaded jar files do make life very easy by providing one 
completely self-contained executable jar file, and I think many would be in the 
same situation as us, having an existing platform built up with continuous 
delivery of hundreds of shaded jar files, where the lack of log4j2 providing 
support around this would be a real blocker and force us to switch to logback. 

(I do hope jigsaw helps the java community move away from shaded jar files, but 
that's a while off yet)

> 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
>            Reporter: Mck SembWever
>            Priority: Critical
>              Labels: annotations, compiler, plugins
>             Fix For: 2.0-rc2
>
>         Attachments: 
> 0002-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
(v6.2#6252)

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-dev-h...@logging.apache.org

Reply via email to