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]

Reply via email to