Tomas,

A clarification for point 3:

On 1/19/2024 5:02 AM, Tomas Langer wrote:
*Ad 3 - Provider implementation must be public with public constructor*
-------------------------------------
Details:
Provider implementations are not supposed to be visible to users - they are not public API of my module (the fact that I provide a service is part of my public API). Right now there is only one option to work around this, and it only works in JPMS, and in my opinion it brings in even more problems - put the provider implementation in an un-exported package. The problem with this approach is that now the provider implementation MUST use only public methods of my module, thus creating even more public APIs, where if I just put it in my exported package, I can use package private methods of my other classes to implement the service (so I pay the price of having one public class with one public constructor agains multiple public classes and public methods). Also the "hiding" in unexported package is lost when on classpath anyway...

I don't understand what you mean by "the provider implementation MUST use only public methods of my module". You have an arrangement of modules and packages in mind that I simply cannot see -- please share it.

Alex

Reply via email to