On 15/11/2015 09:51, Rafael Winterhalter wrote:
Hi Alan,
thank you for your feedback. I agree that the current way of
implementing a class file lookup is not a fail-safe solution but it
works for almost all real use-cases and has therefore become a
standard approach used by a lot of code. I wanted to make sure that
you are aware of the dependence on such class file lookup of code
generation libraries and their heavy use in enterprise software.
We have of course used static analysis on a huge number of libraries to
get data on usage of these methods. One thing to say about this is that
such code should work exactly the same as it did with JDK 8 except where
it is using the ClassLoader APIs to get at JDK-internal resources
(including .class files). This is because the only modules when
initially trying out the Jigsaw builds are the platform modules.
We know this is a compatibility issue, it's the second item in the Risks
and Assumptions section of JEP 261. That compatibility issue could get
bigger as more code is migrated to modules but this assumes the
frameworks and tools that are relying on the ClassLoader.getResourceXXX
methods don't add support for modules. I would hope in time that the
frameworks and tools will add support for modules, in which case this
issue should slowly go away.
As to where to lobby for the ClassLoader APIs to support locating
resources in modules then jpms-spec-comments is the mailing list to send
feedback.
Of course, we will adapt the new APIs into our software but as these
libraries are non-commercial and developed after hours, the adoption
process will take some time. Currently, all of cglib, Byte Buddy or
Javassist do not function with Jigsaw when running the test cases of
their current stable build because of null pointer exceptions
triggered by unsuccessful class file lookups and I would not know how
to fix this problem.
I will continue to test Jigsaw pre-releases and hope that the
mentioned APIs allow for migrating the libraries such that I can offer
a version of Byte Buddy that supports Jigsaw rather sooner than later.
Thank you, it's important to have as many people trying out the builds
and seeing what works and doesn't work. Modules is a huge change to the
platform and we have to get it right.
-Alan