we are currently moving our builds to maven tycho. While everything works with the <= 4.1 repository, builds fail with 4.2+ and nightly with many of the following conflicts. (AFAICS) All of them revolving around your org.apache.batik.css 1.13.0.v20200617-knime plugin:
Bundle was not resolved because of a uses constraint violation.
org.apache.felix.resolver.reason.ReasonException: Uses constraint violation. Unable to resolve resource org.eclipse.e4.ui.css.core [osgi.identity; osgi.identity="org.eclipse.e4.ui.css.core"; type="osgi.bundle"; version:Version="0.12.1000.v20200129-0903"; singleton:="true"] because it is exposed to package 'org.w3c.dom.events' from resources org.eclipse.osgi [osgi.identity; osgi.identity="org.eclipse.osgi"; type="osgi.bundle"; version:Version="3.15.200.v20200214-1600"; singleton:="true"] and org.w3c.dom.events [osgi.identity; osgi.identity="org.w3c.dom.events"; type="osgi.bundle"; version:Version="3.0.0.draft20060413_v201105210656"] via two dependency chains.
Chain 1:
org.eclipse.e4.ui.css.core [osgi.identity; osgi.identity="org.eclipse.e4.ui.css.core"; type="osgi.bundle"; version:Version="0.12.1000.v20200129-0903"; singleton:="true"]
require: (&(osgi.wiring.bundle=org.eclipse.core.runtime)(&(bundle-version>=3.6.0)(!(bundle-version>=4.0.0))))
|
provide: osgi.wiring.bundle: org.eclipse.core.runtime
org.eclipse.osgi [osgi.identity; osgi.identity="org.eclipse.osgi"; type="osgi.bundle"; version:Version="3.15.200.v20200214-1600"; singleton:="true"]
Chain 2:
org.eclipse.e4.ui.css.core [osgi.identity; osgi.identity="org.eclipse.e4.ui.css.core"; type="osgi.bundle"; version:Version="0.12.1000.v20200129-0903"; singleton:="true"]
require: (&(osgi.wiring.bundle=org.apache.batik.css)(&(bundle-version>=1.9.1)(!(bundle-version>=2.0.0))))
|
provide: osgi.wiring.bundle; bundle-version:Version="1.13.0.v20200617-knime"; osgi.wiring.bundle="org.apache.batik.css"
org.apache.batik.css [osgi.identity; osgi.identity="org.apache.batik.css"; type="osgi.bundle"; version:Version="1.13.0.v20200617-knime"]
import: (&(osgi.wiring.package=org.w3c.dom.events)(&(version>=3.0.0)(!(version>=4.0.0))))
|
export: osgi.wiring.package: org.w3c.dom.events
org.w3c.dom.events [osgi.identity; osgi.identity="org.w3c.dom.events"; type="osgi.bundle"; version:Version="3.0.0.draft20060413_v201105210656"] Unresolved requirement: Require-Bundle: org.eclipse.ui.navigator; bundle-version="[3.3.200,4.0.0)"
This only happens for our testing bundles that depend on org.knime.testing by the way. Probably due to its dependency on all that eclipse runtime, equinox stuff.
Maybe you have some ideas on how to fix it. The 3DChem nodes where I got the maven configs from, seem to still use KNIME 4.0 to do maven builds.
We had to modify the batik bundles to make them work with KNIME 4.2. I am sorry to see that this is causing you issues, I am sure we will find a way to fix this. I got two questions for you:
Why are you depending on org.knime.testing in your testing bundles, do you need specific functionality from there?
So this is necessary as tycho testing only starts an eclipse platform with the minimal nubmer of plugins installed determined by the dependencies of your plugin.
However due to platform changes in KNIME AP 4.2 we need certain fragments to prevent the classloading errors you encountered installed into the launched platform. In normal AP installations these fragments are already installed as they are contained in the org.knime.core.feature which is part of the base product.
However, this is not the case for the tycho test platform, so we need to manually add this feature as a dependency, as we can not directly define fragments as dependencies of plugins.