Yegor, either I don't understand you or one of us two is wrong ...
From a user perspective bouncycastle & co will still be optional
but it will be us who catch ClassNotFoundException.
It's fine then to make them mandatory.
This is a contradiction in my view.
So we can either pick ..
a)
- if classpath loading is used, we need to catch ClassNotFoundExceptions
- our dependencies are mandatory
- we use "requires" in module-info
- we change all "provided" maven dependencies to "compile"
- the user don't need to add "--add-modules"
- if one required dependency is not on the users module path - for whatever
reason - the application can't be launched
b)
- if classpath loading is used, we need to catch ClassNotFoundExceptions
- our dependencies are optional (current state)
- we use "requires static" in module-info
- we keep the "provided" maven dependencies
- the user needs to add "--add-modules"
- if an optional dependency (which isn't added via add-modules) is not on the
classpath - the ClassNotFound is catched (see above)
- with the Service Loader pattern, the loading of a scratchpad format will
simply fail, if the corresponding scratchpad jar is not requested
Disclaimer: although I've tested several configurations while setting up the
multi-module build,
I'm by far (not?) an expert in JPMS - so maybe my conclusions above are wrong
...
Andi
On 05.11.20 09:37, Yegor Kozlov wrote:
I see. From a user perspective bouncycastle & co will still be optional
but it will be us who catch ClassNotFoundException.
It's fine then to make them mandatory.
On Thu, Nov 5, 2020 at 12:37 AM Andreas Beeker <[email protected]> wrote:
I haven't tested it, but I assume we can catch the ClassNotFoundException.
So when defined as "requires static" the POI module would load and throw a
ClassNotFound/NotDefined when the code is reached.
When we define it as "requires" and the dependencies aren't on the module
path, I think it will crash in the beginning.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]