ClassLoader.getResources(String)
Alan Bateman
Alan.Bateman at oracle.com
Wed Mar 7 15:59:11 UTC 2018
On 07/03/2018 15:14, Stephen Colebourne wrote:
> :
> Configuration and code are two very different things. Asking projects
> and end users to write code for something that should be config is a
> huge no-no.
>
> My view is that JPMS has made using configuration files, especially
> for libraries, a lot harder. This is a step back in usability. Just so
> we are clear, for leap seconds I will now have to ask users to
> manually register them using an API where previously they just added a
> file. But for OpenGamma Strata, the configuration files are much more
> complex and certainly unsuited to be code, even if the backwards
> compatibility issues were acceptable. (This is a pattern I've used for
> configuration for many years)
It's usually cleaner to encapsulate that configuration but if you don't
want to change anything then you can continue to use
ClassLoader.getResources to search for resources as it works exactly as
it did before. Also if you move the configuration file to somewhere like
META-INF/config then it can never be encapsulated.
> :
>
>
> PS. ServiceLoader is a pain to use in Java 9 too. As a library doesn't
> know whether it will run as a named module or on the classpath, I have
> to duplicate the service loader configuration - once in
> META-INF/services and once in module-info.java, which is horrible.
>
Tooling should be able help with cases where you are creating a library
that may be deployed on the class path in some environments and the
module path in others. The `jar` tool does some sanity check in this
area but it could do more.
-Alan
More information about the jigsaw-dev
mailing list