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