ServiceLoader in the JDK
    Jesse Glick 
    jesse.glick at oracle.com
       
    Thu May 24 07:28:47 PDT 2012
    
    
  
On 05/24/2012 08:40 AM, Jesse Glick wrote:
> maybe add to Class:
>
> public <S> Iterable<S> services(Class<S> service) {
>   Module m = getModule();
>   return m != null ? m.somehowLoadProviders(service) : ServiceLoader.load(service);
> }
or better, add to ClassLoader:
protected <S> Iterable<S> services(Class<S> service, Class<?> reference) {
   return ServiceLoader.load(service); // or .load(service, this)? TBD
}
with an override in ModuleClassLoader, and to Class:
public final <S> Iterable<S> services(Class<S> service) {
   return getClassLoader().services(service, this);
}
offering better flexibility for module systems generally.
    
    
More information about the jigsaw-dev
mailing list