> On Apr 18, 2022, at 9:21 PM, Volkan Yazıcı <vol...@yazi.ci> wrote:
>
> Thanks for your prompt reply Pitor, but I think we have a misunderstanding
> here.
>
> For one, my problem is not simply about `@RequiredClass`, Jackson, etc. I
> can solve this with a hardcoded if/else clause in JTL. My point is: there
> are places in the code where plugins are loaded, they all employ different
> injection mechanisms, and these vary in the way they work. Matt's effort
> will fix this and as a bonus improve the plugin infra.
>
> Regarding your suggestion about `ServiceLoaderUtil`... If we are not gonna
> use plugins because there is a bug and rather implement an
> actually-should-be-working-via-2.x-plugins functionality in a totally
> different way (please correct me if I misunderstood you), I doubt if this
> qualifies as a fix more than a bug. I want to introduce a structural
> solution to a bigger problem rather than trying to merely ship LOG4J2-3082.
>
> Let me repeat one more time to make my point more tangible:
> `JsonTemplateLayout`, `PatternLayout`, etc. use `PluginManager` to load
> plugins. Though PM doesn't offer many of the functionality offered while
> loading `TypeConverter`s, which are plugins themselves too. There are
> competing injectors and they are not aligned in features they provide.
I fully agree 3.x is a better implementation. We should take advantage of
that in 3.x. 2.x is what it is and has been functioning happily for a long
time.
Mind you, when Plugins were first introduced when I created Log4j 2 there
was no validation. I think it was Matt who created the PluginBuilders and
added that something like 8 years ago now. It has worked fine for all that
time. We can live with it a while longer.
Ralph