FWIw, the situation you describe isn’t really any different than it is with Maven. If I declare an optional dependency in a component it will not be automatically included. A user has to add it to their pom.xml as a required dependency for it to be included. That is really no different than a user having to add a requires statement to their module-info file.
Ralph > On Nov 29, 2023, at 7:29 AM, Ralph Goers <ralph.go...@dslextreme.com> wrote: > > I agree with this. IMO the only configuration syntaxes we should support are > those we can implement with no dependencies. At the moment that is JSON and > Properties (Ugh!). I would love to deprecate properties but I know that is a > non-starter since we didn’t support them for years and were constantly asked > for it. > > Ralph > >> On Nov 29, 2023, at 5:14 AM, Gary Gregory <garydgreg...@gmail.com> wrote: >> >> 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? >>> >