I think the overall goal should be to have no optional dependencies, no
surprises. I personally hope to never force YAML on anyone.

Gary

On Wed, Nov 29, 2023, 6:51 AM Piotr P. Karwasz <piotr.karw...@gmail.com>
wrote:

> Hi all,
>
> I have been using a modularized sandbox project to test Log4j and
> optional dependencies are a nightmare.
>
> Small example: if I use Log4j API in my project and I add:
>
> requires org.apache.logging.log4j;
>
> then when I run the app, the JVM will automatically add `log4j-api` to
> the boot layer.
>
> It will also add `log4j-core`, since it provides a service that
> `log4j-api` uses.
>
> However it will **not** load `jackson-datatype-yaml`, because it is an
> **optional** dependency of `log4j-core` and provides no services
> `log4j-core` is interested in. The user must go to the additional pain
> of specifying `--add-modules` or the application developer must add a
> bogus `requires` statement.
>
> Therefore I would propose to:
>
>  * move the YAML configuration factory to a separate module and delete
> one of the JSON configuration factories (the one that uses Jackson).
>
> What do you think?
>

Reply via email to