We have worked our Felix based app so that it runs on JDK11 - took a bit of 
tinkering, but there wasn't anything in core code we had to change.



We did need to load the following bundles separately to replace missing classes:



jre-1.8_extra_bundles=

jre-9_extra_bundles=${j9_replacement_packages}

jre-10_extra_bundles=${j9_replacement_packages}

jre-11_extra_bundles=${j9_replacement_packages}



j9_replacement_packages =  \

    "${vtmp.bundle.root}/lib/ext/javax.activation.jar" \

    "${vtmp.bundle.root}/lib/ext/jaxb-api.jar" \

    "${vtmp.bundle.root}/lib/ext/javax.annotation-api.jar"



You also need to remove the relevant references from the JRE classpath 
(javax.activation etc) for J9+ since these will now be resolved by the extra 
bundles. As can be seen, on jre1.8 there are no extra bundles needed.



You also then need to be sure to load these bundles as part of your 
initialisation



felix.auto.install.1=\

      ...

    ${jre_extra_bundles}

      ...



And finally, you need to make sure you have you java modules set right for 
program launch e.g.



set J9_OPTIONS=--add-opens java.base/java.lang=ALL-UNNAMED --add-opens 
java.base/java.net=ALL-UNNAMED --add-opens java.base/java.security=ALL-UNNAMED 
--add-opens java.base/java.util=ALL-UNNAMED



"%JAVA_HOME%\bin\java" % JVM_OPTS% %J9_OPTIONS% -D



(we have conditional code which only sets J9_OPTIONS for J9+)





-Rob





-----Original Message-----
From: Chuck Davis <cjgun...@gmail.com>
Sent: 17 February 2019 23:39
To: users@felix.apache.org
Subject: Re: Felix on jdk11



Has there been any discussion among developers regarding referenced subject?  
I'm only subscribed to the users list.



I tried to run 6.0.2 on Linux (which has only jdk11 installed) and it's asking 
for classes no longer existing in jdk11.



Thanks if anybody knows the time-frame for when Felix is targeted to run on 
jdk11.

Reply via email to