org.simantics.debug.browser has broken dependencies with 2022-03 RCP
After #877 (closed) changes, Eclipse 2022-03 includes Jetty 10.6 as the base platform Jetty that for example org.simantics.debug.browser
should be using.
However org.simantics.debug.browser
still depends on a Jetty 9.4 and javax.servlet-api
3.1. This causes Equinox OSGi bundle resolution to look furiously until it hits a timeout during configuration area first time initialization.
Another problem is that org.simantics.debug.browser.ui depends on
[0.0.1,1)
org.simantics.debug.browserbut
org.simantics.debug.browseris versioned
1.0.0`, which is just ridiculous :).
Eventually it spews out this:
!SESSION 2023-03-10 09:56:52.757 -----------------------------------------------
eclipse.buildId=unknown
java.version=11.0.14
java.vendor=Eclipse Adoptium
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US
Framework arguments: -product fi.semantum.solvo.ui.desktopProduct -fixerrors -cssTheme org.eclipse.e4.ui.css.theme.e4_classic
Command-line arguments: -product fi.semantum.solvo.ui.desktopProduct -data C:\w\ws dir\apros\trunk-2022-03/../runtime-Solvo.product -dev file:C:/w/ws dir/apros/trunk-2022-03/.metadata/.plugins/org.eclipse.pde.core/Solvo.product/dev.properties -os win32 -ws win32 -arch x86_64 -consoleLog -fixerrors -data @noDefault -cssTheme org.eclipse.e4.ui.css.theme.e4_classic
!ENTRY org.simantics.debug.browser 4 0 2023-03-10 09:59:01.182
!MESSAGE FrameworkEvent ERROR
!STACK 0
org.osgi.framework.BundleException: Could not resolve module: org.simantics.debug.browser [348]
Bundle was not resolved because of a uses constraint violation.
org.apache.felix.resolver.reason.ReasonException: Uses constraint violation. Unable to resolve resource org.simantics.debug.browser [osgi.identity; osgi.identity="org.simantics.debug.browser"; type="osgi.bundle"; version:Version="1.0.0.qualifier"] because it is exposed to package 'javax.servlet' from resources javax.servlet-api [osgi.identity; osgi.identity="javax.servlet-api"; type="osgi.bundle"; version:Version="3.1.0"] and jakarta.servlet-api [osgi.identity; osgi.identity="jakarta.servlet-api"; type="osgi.bundle"; version:Version="4.0.0"] via two dependency chains.
Chain 1:
org.simantics.debug.browser [osgi.identity; osgi.identity="org.simantics.debug.browser"; type="osgi.bundle"; version:Version="1.0.0.qualifier"]
require: (&(osgi.wiring.bundle=javax.servlet-api)(bundle-version>=3.1.0))
|
provide: osgi.wiring.bundle: javax.servlet-api
javax.servlet-api [osgi.identity; osgi.identity="javax.servlet-api"; type="osgi.bundle"; version:Version="3.1.0"]
Chain 2:
org.simantics.debug.browser [osgi.identity; osgi.identity="org.simantics.debug.browser"; type="osgi.bundle"; version:Version="1.0.0.qualifier"]
require: (&(osgi.wiring.bundle=org.eclipse.jetty.server)(bundle-version>=10.0.6))
|
provide: osgi.wiring.bundle; bundle-version:Version="10.0.6"; osgi.wiring.bundle="org.eclipse.jetty.server"
org.eclipse.jetty.server [osgi.identity; osgi.identity="org.eclipse.jetty.server"; type="osgi.bundle"; version:Version="10.0.6"]
import: (&(osgi.wiring.package=javax.servlet)(&(version>=4.0.0)(!(version>=5.0.0))))
|
export: osgi.wiring.package: javax.servlet
jakarta.servlet-api [osgi.identity; osgi.identity="jakarta.servlet-api"; type="osgi.bundle"; version:Version="4.0.0"]
at org.eclipse.osgi.container.Module.start(Module.java:463)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel$2.run(ModuleContainer.java:1847)
at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor$1$1.execute(EquinoxContainerAdaptor.java:136)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1840)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1781)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1745)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1667)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:345)
!ENTRY org.simantics.debug.browser.ui 4 0 2023-03-10 09:59:01.188
!MESSAGE FrameworkEvent ERROR
!STACK 0
org.osgi.framework.BundleException: Could not resolve module: org.simantics.debug.browser.ui [349]
Unresolved requirement: Require-Bundle: org.simantics.debug.browser; bundle-version="0.0.1"
-> Bundle-SymbolicName: org.simantics.debug.browser; bundle-version="1.0.0.qualifier"
org.simantics.debug.browser [348]
No resolution report for the bundle. Bundle was not resolved because of a uses constraint violation.
org.apache.felix.resolver.reason.ReasonException: Uses constraint violation. Unable to resolve resource org.simantics.debug.browser [osgi.identity; osgi.identity="org.simantics.debug.browser"; type="osgi.bundle"; version:Version="1.0.0.qualifier"] because it is exposed to package 'javax.servlet' from resources javax.servlet-api [osgi.identity; osgi.identity="javax.servlet-api"; type="osgi.bundle"; version:Version="3.1.0"] and jakarta.servlet-api [osgi.identity; osgi.identity="jakarta.servlet-api"; type="osgi.bundle"; version:Version="4.0.0"] via two dependency chains.
Chain 1:
org.simantics.debug.browser [osgi.identity; osgi.identity="org.simantics.debug.browser"; type="osgi.bundle"; version:Version="1.0.0.qualifier"]
require: (&(osgi.wiring.bundle=javax.servlet-api)(bundle-version>=3.1.0))
|
provide: osgi.wiring.bundle: javax.servlet-api
javax.servlet-api [osgi.identity; osgi.identity="javax.servlet-api"; type="osgi.bundle"; version:Version="3.1.0"]
Chain 2:
org.simantics.debug.browser [osgi.identity; osgi.identity="org.simantics.debug.browser"; type="osgi.bundle"; version:Version="1.0.0.qualifier"]
require: (&(osgi.wiring.bundle=org.eclipse.jetty.server)(bundle-version>=10.0.6))
|
provide: osgi.wiring.bundle; bundle-version:Version="10.0.6"; osgi.wiring.bundle="org.eclipse.jetty.server"
org.eclipse.jetty.server [osgi.identity; osgi.identity="org.eclipse.jetty.server"; type="osgi.bundle"; version:Version="10.0.6"]
import: (&(osgi.wiring.package=javax.servlet)(&(version>=4.0.0)(!(version>=5.0.0))))
|
export: osgi.wiring.package: javax.servlet
jakarta.servlet-api [osgi.identity; osgi.identity="jakarta.servlet-api"; type="osgi.bundle"; version:Version="4.0.0"]
at org.eclipse.osgi.container.Module.start(Module.java:463)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel$2.run(ModuleContainer.java:1847)
at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor$1$1.execute(EquinoxContainerAdaptor.java:136)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1840)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1781)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1745)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1667)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:345)