You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by "Konrad Windszus (JIRA)" <ji...@apache.org> on 2017/12/14 10:28:00 UTC
[jira] [Comment Edited] (SLING-7312) Java 9 requires
javax.annotation to be added to the classpath
[ https://issues.apache.org/jira/browse/SLING-7312?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16290682#comment-16290682 ]
Konrad Windszus edited comment on SLING-7312 at 12/14/17 10:27 AM:
-------------------------------------------------------------------
Actually {{javax.annotation.CheckForNull}} is not necessary at run time (but still has a runtime retention, https://github.com/amaembo/jsr-305/blob/master/ri/src/main/java/javax/annotation/CheckForNull.java). We never deployed those classes to Sling (not even for Java 8). More details are available in https://github.com/amaembo/jsr-305/issues/31.
So I am wondering, whether this particular class really is the issue here?
The package though needs to be exported because otherwise OSGi will not start the bundle.
was (Author: kwin):
Actually {{javax.annotation.CheckForNull}} is not necessary at run time (but still has a runtime retention, https://github.com/amaembo/jsr-305/blob/master/ri/src/main/java/javax/annotation/CheckForNull.java). We never deployed those classes to Sling (not even for Java 8). So I am wondering, whether this particular class really is the issue here?
The package though needs to be exported because otherwise OSGi will not start the bundle.
> Java 9 requires javax.annotation to be added to the classpath
> -------------------------------------------------------------
>
> Key: SLING-7312
> URL: https://issues.apache.org/jira/browse/SLING-7312
> Project: Sling
> Issue Type: Bug
> Components: Launchpad
> Reporter: Robert Munteanu
> Fix For: Starter 10
>
>
> When running on Java 9 post SLING-7186 startup fails due to the {{javax.annotation}} package no longer being exported by default, e.g.
> {noformat}org.osgi.framework.BundleException: Unable to resolve org.apache.sling.installer.core [2](R 2.0): missing requirement [org.apache.sling.installer.core [2](R 2.0)] osgi.wiring.package; (osgi.wiring.package=javax.annotation) Unresolved requirements: [[org.apache.sling.installer.core [2](R 2.0)] osgi.wiring.package; (osgi.wiring.package=javax.annotation)]
> at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4149)
> at org.apache.felix.framework.Felix.startBundle(Felix.java:2119)
> at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1373)
> at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
> at java.base/java.lang.Thread.run(Thread.java:844){noformat}
> The interesting part here is that the {{javax.annotation}} classes that are required - for instance {{javax.annotation.CheckForNull}} are _not_ part of the JDK-provided {{javax.annotation}} package, they must come from another jar. In fact, we don't have that Jar deployed in the starter, but instead the JDK provides:
> {noformat}
> Generated.class
> PostConstruct.class
> PreDestroy.class
> Resource.class
> Resources.class
> {noformat}
> In a sense, this is very close to the root cause of SLING-7135 - solving one might solve both but the symptoms are very different so raising it separately.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)