Module-system requirements

Stephane Epardaud stef at epardaud.fr
Mon Feb 16 09:00:19 UTC 2015


On 16/02/15 07:12, Tim Boudreau wrote:
> There's a common case that I'd like to understand how you solve without at
> least META-INF or its equivalent visible to other modules:  It's fairly
> common to see applications that dynamically compose things they find on the
> classpath.  Spring and a few other things accomplish this through
> classpath-scanning, which is a fairly horrible pattern (you can wind up
> visiting every class on the classpath, or a large subset, just to look for
> a runtime annotation that is not there for the vast majority).

Hi, Stef from the Ceylon programming language team here :)

In Ceylon (which is already modular and pre-supports Jigsaw), our
reflection library allows the runtime querying of all loaded modules,
and from each module we can iterate its packages and from each package
we can iterate types, and in particular find types with a certain
annotation.

I didn't have time yet to read the entire requirements document (though
I intend to do so today), so I haven't seen yet if it mentions
reflection, but I suggest that that'd be a really good thing to add,
especially for frameworks, rather than rely on third-party classpath
scanners. Also, if the JRE does the lookup of types by annotation (by
scanning modules) then it can very efficiently cache that info or build
an index.


More information about the jpms-spec-observers mailing list