Hi Alan,

The changes read well

Best
Lance
> On Jul 17, 2018, at 6:46 AM, Alan Bateman <alan.bate...@oracle.com> wrote:
> 
> [1] JDK-8207393 is suggestions from Alex Buckley to improve ServiceLoader's 
> class description and specifically to add a strong recommendation that an 
> application should not require the modules that provide implementations of 
> the service.
> 
> The diffs for jdk/jdk are inlined below. I have already Reviewed the changes.
> 
> -Alan
> 
> [1] https://bugs.openjdk.java.net/browse/JDK-8207393
> 
> 
> diff --git a/src/java.base/share/classes/java/util/ServiceLoader.java 
> b/src/java.base/share/classes/java/util/ServiceLoader.java
> --- a/src/java.base/share/classes/java/util/ServiceLoader.java
> +++ b/src/java.base/share/classes/java/util/ServiceLoader.java
> @@ -1,5 +1,5 @@
>  /*
> - * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights 
> reserved.
> + * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights 
> reserved.
>   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
>   *
>   * This code is free software; you can redistribute it and/or modify it
> @@ -65,19 +65,21 @@
>   * interface or class. A {@code ServiceLoader} is an object that locates and
>   * loads service providers deployed in the run time environment at a time of 
> an
>   * application's choosing. Application code refers only to the service, not 
> to
> - * service providers, and is assumed to be capable of differentiating between
> - * multiple service providers as well as handling the possibility that no 
> service
> - * providers are located.
> + * service providers, and is assumed to be capable of choosing between 
> multiple
> + * service providers (based on the functionality they expose through the 
> service),
> + * and handling the possibility that no service providers are located.
>   *
>   * <h3> Obtaining a service loader </h3>
>   *
>   * <p> An application obtains a service loader for a given service by 
> invoking
> - * one of the static {@code load} methods of ServiceLoader. If the 
> application
> - * is a module, then its module declaration must have a <i>uses</i> directive
> - * that specifies the service; this helps to locate providers and ensure they
> - * will execute reliably. In addition, if the service is not in the 
> application
> - * module, then the module declaration must have a <i>requires</i> directive
> - * that specifies the module which exports the service.
> + * one of the static {@code load} methods of {@code ServiceLoader}. If the
> + * application is a module, then its module declaration must have a 
> <i>uses</i>
> + * directive that specifies the service; this helps to locate providers and 
> ensure
> + * they will execute reliably. In addition, if the application module does 
> not
> + * contain the service, then its module declaration must have a 
> <i>requires</i>
> + * directive that specifies the module which exports the service. It is 
> strongly
> + * recommended that the application module does <b>not</b> require modules 
> which
> + * contain providers of the service.
>   *
>   * <p> A service loader can be used to locate and instantiate providers of 
> the
>   * service by means of the {@link #iterator() iterator} method. {@code 
> ServiceLoader}
> 

 <http://oracle.com/us/design/oracle-email-sig-198324.gif>
 <http://oracle.com/us/design/oracle-email-sig-198324.gif> 
<http://oracle.com/us/design/oracle-email-sig-198324.gif>
 <http://oracle.com/us/design/oracle-email-sig-198324.gif>Lance Andersen| 
Principal Member of Technical Staff | +1.781.442.2037
Oracle Java Engineering 
1 Network Drive 
Burlington, MA 01803
lance.ander...@oracle.com <mailto:lance.ander...@oracle.com>



Reply via email to