Hello,

Tiago Daitx, le jeu. 19 juil. 2018 16:46:23 -0300, a ecrit:
> The ATK was updated to use the new interface last year by Fridrich
> Strba [1,2], but it seems that upstream never updated it to include
> those patches - the bugs he reported and attached patches remain open.
> 
> Might be worth to check if we can apply these to our packages.
> 
> [1] 
> http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2017-November/038927.html
> [2] http://mail.openjdk.java.net/pipermail/awt-dev/2017-November/013344.html

Oh, thanks! They do apply fine indeed.  I have applied them to my tree.
So, from upstream's mentions:

“
This is a consequence of the JPMS. ATK will need to be reimplemented as a 
Service Provider, to be
loaded by java.util.ServiceLoader. In order to do this it must provide an SPI 
which extends
javax.accessibility.AccessibilityProvider
”

AIUI the SPI part is implemented through 
wrapper/org/GNOME/Accessibility/AtkProvider.java doing

import javax.accessibility.AccessibilityProvider;
public final class AtkProvider extends AccessibilityProvider {
    private final String name = "org.GNOME.Accessibility.AtkWrapper";
...
    public void activate() {
        new AtkWrapper();
    }

and the module-info.java part makes it define an atk.wrapper module.


What I think is still missing is "to be loaded by
java.util.ServiceLoader".  How is that supposed to happen?

To make it work, Fridrich Strba says in
http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2017-November/038927.html
that he is apparently relinking jdk itself to include
java-atk-wrapper.jar as a module. Are we really supposed to be doing
that in Debian?  That's mean a circular dependency between openjdk
and java-atk-wrapper... But otherwise, how are we supposed to make
the jvm know that for that accessibility provider it should load
java-atk-wrapper.jar?

Samuel

Reply via email to