Hello, good people, I am answering this for those who might fall on the thread and feel like it went hanging.
On 25/10/17 22:04, mandy chung wrote: > The maintainer of java-atk-wrapper was informed of the new > javax.accessibility.AccessibilityProvider service interface during JDK 9 > development. java-atk-wrapper will need to implement a provider of > AccessibilityProvider to run on JDK 9 [1]. > Adding to Phil's comment, java-atk-wrapper can become a modular JAR. > Alternatively it can deploy as a service provider on classpath by > including a service configuration file under META-INF/services/ [2] > I suggest you to contact the library maintainer to get a version of > java-atk-wrapper that supports JDK 9. I contacted the maintainer and am still waiting for the answer :( Nevertheless, I went ahead and ported java-atk-wrapper to JDK 9. There are two bugs in gnome bugzilla having my patches: https://bugzilla.gnome.org/show_bug.cgi?id=789956 is having all the patches that don't bump the required JDK to 9, but solve several issues I met when I was porting it. https://bugzilla.gnome.org/show_bug.cgi?id=789959 is having two patches, one implementing the new provider and the other making j-a-w a module called atk.wrapper. I am also attaching minimal versions of the patches that allow just build the java-atk-wrapper-0.33.2 tarball using the built jdk9 in our RPM files. They don't allow build out of the tree and install has to be done by "cp", but they work. This is the snippet that builds and integrates it: export JAVA_HOME=$(pwd)/%{buildoutputdir}/%{imagesdir}/jdk .... pushd java-atk-wrapper-%{java_atk_wrapper_version} autoreconf --force --install rm wrapper/org/GNOME/Accessibility/AtkWrapper.java %configure \ --without-jdk-auto-detect \ JDK_SRC=$JAVA_HOME rm wrapper/org/GNOME/Accessibility/AtkWrapper.java make %{?_smp_mflags} cp wrapper/java-atk-wrapper.jar $JAVA_HOME/../jmods/ cp jni/src/.libs/libatk-wrapper.so $JAVA_HOME/lib/ popd # Merge the java-atk-wrapper into the JDK source $JAVA_HOME/release; export MODULES $JAVA_HOME/bin/jlink --module-path $JAVA_HOME/../jmods --add-modules "atk.wrapper,${MODULES//\ /,}" --output $JAVA_HOME/../newjdk cp -rf $JAVA_HOME/../newjdk/* $JAVA_HOME/ rm -rf $JAVA_HOME/../newjdk Needless to say that the patch patching the class loader is in the bin. Thanks for your ideas Fridrich
--- java-atk-wrapper-0.33.2/configure.ac 2017-11-06 13:37:11.504756491 +0100 +++ java-atk-wrapper-0.33.2/configure.ac 2017-11-06 13:37:47.224756626 +0100 @@ -64,7 +64,7 @@ # java wrapper AM_CONDITIONAL(USER, test `whoami` = "root") -JAVA_REQUIRED=1.7.0 +JAVA_REQUIRED=9.0.0 JAVA_ERROR_MESSAGE="Java $JAVA_REQUIRED or later is required to build java-access-bridge" AC_ARG_VAR([JAVA_HOME],[Java Runtime Environment location]) @@ -170,6 +170,8 @@ wrapper/org/GNOME/Makefile wrapper/org/GNOME/Accessibility/Makefile wrapper/org/GNOME/Accessibility/AtkWrapper.java + wrapper/META-INF/Makefile + wrapper/META-INF/services/Makefile ]) AC_OUTPUT --- java-atk-wrapper-0.33.2/wrapper/Makefile.am 2017-11-06 13:37:11.504756491 +0100 +++ java-atk-wrapper-0.33.2/wrapper/Makefile.am 2017-11-06 13:47:48.648845631 +0100 @@ -1,4 +1,4 @@ -SUBDIRS=org +SUBDIRS=org META-INF JARFILES=java-atk-wrapper.jar ALL_CLASSES=org/GNOME/Accessibility/*.class DEP_CLASSES=$(wildcard $(ALL_CLASSES)) @@ -14,10 +14,13 @@ java_atk_wrapper_DATA = $(JARFILES) properties_DATA = accessibility.properties EXTRA_DIST = $(properties_DATA) \ - manifest.txt + manifest.txt module-info.java -$(JARFILES) : $(DEP_CLASSES) - $(JAR) cfm $(JARFILES) manifest.txt org/GNOME/Accessibility/*.class +module-info.class : $(srcdir)/module-info.java + $(JAVAC) -cp $(top_builddir)/wrapper -sourcepath $(top_srcdir)/wrapper:$(top_builddir)/wrapper $(JAVACFLAGS) -d $(top_builddir)/wrapper $< + +$(JARFILES) : $(DEP_CLASSES) module-info.class + $(JAR) cfm $(JARFILES) manifest.txt org/GNOME/Accessibility/*.class module-info.class META-INF/services/javax.accessibility.AccessibilityProvider all-local : $(DATA) $(JARFILES) --- java-atk-wrapper-0.33.2/wrapper/META-INF/Makefile.am 1970-01-01 01:00:00.000000000 +0100 +++ java-atk-wrapper-0.33.2/wrapper/META-INF/Makefile.am 2017-11-06 13:37:47.224756626 +0100 @@ -0,0 +1 @@ +SUBDIRS=services --- java-atk-wrapper-0.33.2/wrapper/META-INF/services/javax.accessibility.AccessibilityProvider 1970-01-01 01:00:00.000000000 +0100 +++ java-atk-wrapper-0.33.2/wrapper/META-INF/services/javax.accessibility.AccessibilityProvider 2017-11-06 13:37:47.224756626 +0100 @@ -0,0 +1 @@ +org.GNOME.Accessibility.AtkProvider --- java-atk-wrapper-0.33.2/wrapper/META-INF/services/Makefile.am 1970-01-01 01:00:00.000000000 +0100 +++ java-atk-wrapper-0.33.2/wrapper/META-INF/services/Makefile.am 2017-11-06 13:37:47.224756626 +0100 @@ -0,0 +1 @@ +EXTRA_DIST = javax.accessibility.AccessibilityProvider --- java-atk-wrapper-0.33.2/wrapper/module-info.java 1970-01-01 01:00:00.000000000 +0100 +++ java-atk-wrapper-0.33.2/wrapper/module-info.java 2017-11-06 13:42:08.850466481 +0100 @@ -0,0 +1,6 @@ +module atk.wrapper { + exports org.GNOME.Accessibility; + requires java.desktop; + provides javax.accessibility.AccessibilityProvider + with org.GNOME.Accessibility.AtkProvider; +} --- java-atk-wrapper-0.33.2/wrapper/org/GNOME/Accessibility/AtkProvider.java 1970-01-01 01:00:00.000000000 +0100 +++ java-atk-wrapper-0.33.2/wrapper/org/GNOME/Accessibility/AtkProvider.java 2017-11-06 13:37:47.224756626 +0100 @@ -0,0 +1,38 @@ +/* + * Java ATK Wrapper for GNOME + * Copyright (C) 2017 Oracle and/or its affiliates. + * Copyright (C) 2017 Fridrich Strba <fridrich.st...@bluewin.ch> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +package org.GNOME.Accessibility; + +import javax.accessibility.AccessibilityProvider; + +public final class AtkProvider extends AccessibilityProvider { + private final String name = "org.GNOME.Accessibility.AtkWrapper"; + + public AtkProvider() {} + + public String getName() { + return name; + } + + public void activate() { + new AtkWrapper(); + } + +} --- java-atk-wrapper-0.33.2/wrapper/org/GNOME/Accessibility/Makefile.am 2015-06-30 23:56:32.000000000 +0200 +++ java-atk-wrapper-0.33.2/wrapper/org/GNOME/Accessibility/Makefile.am 2017-10-26 17:42:11.472221491 +0200 @@ -10,7 +10,7 @@ sed -e "s;\@XPROP\@;${XPROP};g" \ < $< >$@ -%.class : %.java +%.class : %.java AtkWrapper.java CLASSPATH=$(top_srcdir)/wrapper $(JAVAC) $(JAVACFLAGS) -d $(top_builddir)/wrapper $< clean-local:
--- java-atk-wrapper-0.33.2/configure.ac 2015-07-07 13:52:28.000000000 +0200 +++ java-atk-wrapper-0.33.2/configure.ac 2017-11-06 17:00:37.366413136 +0100 @@ -46,7 +46,6 @@ glib-2.0 >= 2.32.0 gthread-2.0 gdk-2.0 - gdk-3.0 gobject-2.0 ]) AC_SUBST(JAW_LIBS) @@ -64,7 +63,7 @@ # java wrapper AM_CONDITIONAL(USER, test `whoami` = "root") -JAVA_REQUIRED=1.6 +JAVA_REQUIRED=1.7.0 JAVA_ERROR_MESSAGE="Java $JAVA_REQUIRED or later is required to build java-access-bridge" AC_ARG_VAR([JAVA_HOME],[Java Runtime Environment location]) @@ -125,7 +124,7 @@ if test "x$GCC" = xyes; then - JAW_CFLAGS=$JAW_CFLAGS $CFLAGS + JAW_CFLAGS="$JAW_CFLAGS $CFLAGS" else AC_MSG_ERROR("You should compile with GCC") fi @@ -169,6 +168,7 @@ wrapper/org/Makefile wrapper/org/GNOME/Makefile wrapper/org/GNOME/Accessibility/Makefile + wrapper/org/GNOME/Accessibility/AtkWrapper.java ]) AC_OUTPUT --- java-atk-wrapper-0.33.2/wrapper/Makefile.am 2015-07-01 02:19:15.000000000 +0200 +++ java-atk-wrapper-0.33.2/wrapper/Makefile.am 2017-11-06 17:00:07.962413025 +0100 @@ -13,7 +13,8 @@ java_atk_wrapper_DATA = $(JARFILES) properties_DATA = accessibility.properties -EXTRA_DIST = $(properties_DATA) +EXTRA_DIST = $(properties_DATA) \ + manifest.txt $(JARFILES) : $(DEP_CLASSES) $(JAR) cfm $(JARFILES) manifest.txt org/GNOME/Accessibility/*.class --- java-atk-wrapper-0.33.2/wrapper/manifest.txt 1970-01-01 01:00:00.000000000 +0100 +++ java-atk-wrapper-0.33.2/wrapper/manifest.txt 2017-10-26 15:25:02.159429001 +0200 @@ -0,0 +1,2 @@ +Main-Class: org.GNOME.Accessibility.AtkWrapper +
signature.asc
Description: OpenPGP digital signature