Hi Laurent,

Yes, we'll keep the system property (at least for JDK 9) that should support
Class.forName usage. In the JDK I expect well just look for ductus by name
then "pisces", all hard-coded, but the system property would be an over-ride.
Its just using the ServiceLoader to then locate the class that is causing
extra work for jigsaw so we are removing it since its not a supported API.
So you may need to make a small change but  perhaps even nothing ...

-phil.

On 4/1/2014 2:14 PM, Mandy Chung wrote:
On 4/1/14 3:09 AM, Laurent Bourgès wrote:

Phil,
In the following bug, you propose to remove the ServiceLoader in the RenderingEngine class:
https://bugs.openjdk.java.net/browse/JDK-8038875

For now the jdk has only ductus and pisces engines but I am working on marlin which is an improved pisces:
https://github.com/bourgesl/marlin-renderer

To use marlin I rely on this service loader... but maybe others too.


To use your own RenderingEngine, you will have to set the system property -Dsun.java2d.renderer to the marlin implementation class in addition to adding it a service configuration file, right?

Please keep at least the factory pattern to let users choose which rendering engine to use at startup.


sun.java2d.pipe.RenderingEngine is not a supported API. With Jigsaw in JDK 9, the access control rules will be extended to support encapsulation and you won't be able to access the JDK internal APIs (which is orthogonal to JDK-8039975.

PS: I still hope merging my changes from marlin into jdk9 pisces in future to improve both performance & visual quality.


It looks like your ultimate goal is to merge your change to jdk9 and so that won't become an issue to you.

Mandy


Reply via email to