I now compile for Java 17 (not 21 like I tried first). I use Karaf 4.4.4. I get the following exception when running on OpenJDK 21:
2023-11-28T14:28:12,731 | ERROR | Blueprint Extender: 1 | BlueprintContainerImpl | 28 - org.apache.aries.blueprint.core - 1.10.3 | Unable to start container for blueprint bundle se.digia.bundles.jqueryui_1_8_16/7.0.0 org.osgi.service.blueprint.container.ComponentDefinitionException: java.lang.IllegalArgumentException: Invalid Java version 65 at org.apache.aries.blueprint.container.ReferenceRecipe.internalCreate(ReferenceRecipe.java:141) ~[?:?] at org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:81) ~[?:?] at java.util.concurrent.FutureTask.run(FutureTask.java:317) ~[?:?] at org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:90) ~[?:?] at org.apache.aries.blueprint.container.BeanRecipe.setProperty(BeanRecipe.java:810) ~[?:?] at org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanRecipe.java:784) ~[?:?] at org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanRecipe.java:765) ~[?:?] at org.apache.aries.blueprint.container.BeanRecipe.internalCreate2(BeanRecipe.java:699) ~[?:?] at org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:666) ~[?:?] at org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:81) ~[?:?] at java.util.concurrent.FutureTask.run(FutureTask.java:317) ~[?:?] at org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:90) ~[?:?] at org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:360) ~[?:?] at org.apache.aries.blueprint.container.BlueprintRepository.createInstance(BlueprintRepository.java:338) ~[?:?] at org.apache.aries.blueprint.container.BlueprintRepository.create(BlueprintRepository.java:162) ~[?:?] at org.apache.aries.blueprint.container.BlueprintContainerImpl.processProcessors(BlueprintContainerImpl.java:572) ~[?:?] at org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:417) ~[?:?] at org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:298) ~[?:?] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572) ~[?:?] at java.util.concurrent.FutureTask.run(FutureTask.java:317) ~[?:?] at org.apache.aries.blueprint.container.ExecutorServiceWrapper.run(ExecutorServiceWrapper.java:106) ~[?:?] at org.apache.aries.blueprint.utils.threading.impl.DiscardableRunnable.run(DiscardableRunnable.java:45) ~[?:?] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572) ~[?:?] at java.util.concurrent.FutureTask.run(FutureTask.java:317) ~[?:?] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[?:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?] at java.lang.Thread.run(Thread.java:1583) [?:?] Caused by: java.lang.IllegalArgumentException: Invalid Java version 65 at org.apache.aries.proxy.impl.ProxyUtils.getWeavingJavaVersion(ProxyUtils.java:104) ~[?:?] at org.apache.aries.proxy.impl.interfaces.InterfaceCombiningClassAdapter.<init>(InterfaceCombiningClassAdapter.java:79) ~[?:?] at org.apache.aries.proxy.impl.interfaces.ProxyClassLoader.createProxyClass(ProxyClassLoader.java:155) ~[?:?] at org.apache.aries.proxy.impl.interfaces.InterfaceProxyGenerator.getProxyInstance(InterfaceProxyGenerator.java:97) ~[?:?] at org.apache.aries.proxy.impl.AsmProxyManager.createNewProxy(AsmProxyManager.java:80) ~[?:?] at org.apache.aries.proxy.impl.AbstractProxyManager.createDelegatingInterceptingProxy(AbstractProxyManager.java:77) ~[?:?] at org.apache.aries.proxy.impl.AbstractProxyManager.createDelegatingProxy(AbstractProxyManager.java:42) ~[?:?] at org.apache.aries.blueprint.container.AbstractServiceReferenceRecipe.createProxy(AbstractServiceReferenceRecipe.java:332) ~[?:?] at org.apache.aries.blueprint.container.ReferenceRecipe.internalCreate(ReferenceRecipe.java:125) ~[?:?] ... 27 more But when I run on OpenJDK 17 it works fine. Is this due to the problem you mentioned regarding Aries Blueprint/Proxy? It looks like ASM is being used. However Karaf 4.4.4 uses ASM 9.5 which should support OpenJDK 21. I thought that generally a new Java version is backwards compatible. Meaning that a specific java runtime would handle classes compiled for an older java version. In this case, if I compile for java 17 I should be able to run in on a java runtime >= 17. But this does not seem to be the case... /Bengt Den mån 27 nov. 2023 kl 17:31 skrev Bengt Rodehav <be...@rodehav.com>: > Thanks for the quick reply, > > /Bengt > > Den mån 27 nov. 2023 kl 15:16 skrev Jean-Baptiste Onofré <j...@nanthrax.net > >: > >> Hi >> >> Karaf almost but not third parties (Aries Blueprint/Proxy, etc). >> >> I'm starting Karaf 4.5.x with full JDK21 support. >> >> Thanks ! >> Regards >> JB >> >> On Mon, Nov 27, 2023 at 1:50 PM Bengt Rodehav <be...@rodehav.com> wrote: >> > >> > Does Karaf 4.4.4 work with OpenJdk 21? >> > >> > /Bengt >> >