Problems setting up KNIME dev kit for 4.3.2

I set up the KNIME development with Eclipse RCP 2021-03 following the setup guide and it works fine for running KNIME 4.4

However, I fail to get the development for 4.3.2 running. I did the following steps:

  1. start Eclipse RCP 2021-03 with a clean workspace
  2. checkout the dev kit without building anything
  3. switch to tag “analytics-platform/4.3.2”
  4. load application platform “KNIME-AP.target”
  5. launch KNIME (no custom code involved) and I get the following error
    grafik

The runtime was automaticaly set to java 8

I also tried removing the UnsyncloadClass option. Then the KNIME splashscreen appears but it fails with lots of class loading errors, see the attached log
log.txt (57.0 KB)

Is there anything I am doing wrong or is this a bug? What can I do to get the dev kit running with 4.3.2 or compile from the 4.4 dev kit for 4.3?

I have been able to get KNIME started by explicitly configuring the Java 8 JDK

However, I get a dependency mismatch during the start
grafik

I can ignore this error and KNIME starts and seems to work. However, I now created a new node using the node wizard and when I start up KNIME with this node I get another java versioning error

2021-05-11 10:22:36,259 : ERROR : Worker-0: Workflow Coach loader : : RepositoryManager : : : Node ‘com.XXX.dedup.DedupMatcherNodeFactory’ from plugin ‘com.XXX.dedup’ could not be created. The corresponding plugin bundle could not be activated!
org.knime.core.node.extension.InvalidNodeFactoryExtensionException: Node ‘com.XXX.dedup.DedupMatcherNodeFactory’ from plugin ‘com.XXX.dedup’ could not be created. The corresponding plugin bundle could not be activated!
at org.knime.core.node.extension.NodeFactoryExtension.createFactory(NodeFactoryExtension.java:182)
at org.knime.workbench.repository.RepositoryFactory.createNode(RepositoryFactory.java:117)
at org.knime.workbench.repository.RepositoryManager.readNodes(RepositoryManager.java:369)
at org.knime.workbench.repository.RepositoryManager.readRepository(RepositoryManager.java:168)
at org.knime.workbench.repository.RepositoryManager.getRoot(RepositoryManager.java:574)
at org.knime.workbench.repository.RepositoryManager.getRoot(RepositoryManager.java:587)
at org.knime.workbench.workflowcoach.ui.WorkflowCoachView$3.run(WorkflowCoachView.java:268)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
Caused by: org.eclipse.core.runtime.CoreException: Plug-in com.XXX.dedup was unable to load class com.XXX.dedup.DedupMatcherNodeFactory.
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.throwException(RegistryStrategyOSGI.java:212)
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:198)
at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:923)
at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:246)
at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:63)
at org.knime.core.node.extension.NodeFactoryExtension.createFactory(NodeFactoryExtension.java:162)
… 7 more
Caused by: java.lang.UnsupportedClassVersionError: com/XXX/dedup/DedupMatcherNodeFactory has been compiled by a more recent version of the Java Runtime (class file version 59.0), this version of the Java Runtime only recognizes class file versions up to 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.defineClass(ModuleClassLoader.java:294)
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.defineClass(ClasspathManager.java:717)
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findClassImpl(ClasspathManager.java:640)
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClassImpl(ClasspathManager.java:608)
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClassImpl(ClasspathManager.java:588)
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:567)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:346)
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:398)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:477)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:171)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass(EquinoxBundle.java:620)
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:196)
… 11 more

I got the problem. The compiler settings were at java 15 which obviously will fail. Is this really working as intended? My expectation would be that a project that is created using the KNIME 4.3 node wizard should be configured with java 8 as compilation target.
It also was not really helpful that the dependency was shown as java 8
grafik

Hi @JS_KN ,

Thanks for letting us know about this difficulty with the configuration process. Like you discovered using the correct JRE is important for getting the AP to start.
I tried to cover this in step the configure eclipse section of the setup guide: GitHub - knime/knime-sdk-setup: KNIME Analytics Platform - SDK Setup but I should extend this section to point this out more.

I will also extend the guide to point out the correct compiler settings and enhance the node wizard as well.

best,
Gabriel

The compiler target is configured with the Execution Environment parameter in the MANIFEST.MF editor. If you set that and click on Update the classpath setttings afterwards all relevant compiler settings should be set correctly.

1 Like

Thanks for the answer.