Alex Buckley alex.buckley at oracle.com
Thu Sep 15 19:39:35 UTC 2016

Best to wait for the spec.

On 9/15/2016 12:34 PM, Peter Levart wrote:
> On 09/15/2016 05:51 PM, Alan Bateman wrote:
>> On 15/09/2016 07:54, Peter Levart wrote:
>>> One thing that is not clear is whether the yyy in "provides xxx with
>>> yyy" directive of module declaration must be a concrete class and a
>>> subtype of service type when the service is obtained via a static
>>> method. For example, is the following a valid configuration: Service
>>> type A, implementation class B (a subtype of A), static method
>>> declared in C (unrelated to A) with return type B (or A or anything
>>> between A and B?).
>> If yyy defines the static factory method then it does not need to be a
>> sub-type of xxx, the return type from the public provider() method
>> just needs to be xxx or a sub-type of. So the example is okay, no need
>> for C to extend/implement A.
>> I should note that the implementation isn't aligned with this yet but
>> there are updates to both javac and SL coming that will align it with
>> the current proposal.
>> -Alan
> ...so yyy can be any class or interface. It's provider() method can even
> instantiate and return an instance of some class that is not part of the
> module that provides the service. Hm...
> Regards, Peter

More information about the jigsaw-dev mailing list