Confusing error info in org.eclipse.birt.core.framework.jar.ServicePlatform.getExtensionRegistry

sethq
edited February 11, 2022 in Analytics #1
Eclipse2019-12
BIRT 4.8.0-20180626 - We have a test setup that runs the following snippet to get the factory to create a report-engine but we cannot get past a classloader error  in rg.eclipse.birt.core.framework.jar.ServicePlatform.getExtensionRegistry. Can someone advice on how to resolve this error.  See below for couple of attempted  solutions that did not work; 

the snippet -  complete .java file is also attached. I am testing from 'main':
method: 
private static IReportEngine createReportEngine( boolean startPlatform )    {
 IReportEngineFactory factory = 
                    (IReportEngineFactory) Platform.createFactoryObject( IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY );

Sep 23, 2020 3:42:23 PM org.eclipse.birt.core.framework.jar.ServicePlatform createFactoryObject
WARNING: class "org.eclipse.core.runtime.Platform"'s signer information does not match signer information of other classes in the same package
java.lang.SecurityException: class "org.eclipse.core.runtime.Platform"'s signer information does not match signer information of other classes in the same package
at java.lang.ClassLoader.checkCerts(ClassLoader.java:891)
at java.lang.ClassLoader.preDefineClass(ClassLoader.java:661)
at java.lang.ClassLoader.defineClass(ClassLoader.java:754)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
at org.eclipse.birt.core.framework.jar.ServicePlatform.getExtensionRegistry(ServicePlatform.java:72)
at org.eclipse.birt.core.framework.jar.ServicePlatform.createFactoryObject(ServicePlatform.java:98)
at org.eclipse.birt.core.framework.Platform$1.run(Platform.java:297)
at java.security.AccessController.doPrivileged(Native Method)
at org.eclipse.birt.core.framework.Platform.createFactoryObject(Platform.java:293)
at com.faceScribe.analytics.birt.report.ReportEngineContainer.createReportEngine(ReportEngineContainer.java:403)
at com.faceScribe.analytics.birt.report.ReportEngineContainer.getInstance(ReportEngineContainer.java:78)
at com.faceScribe.analytics.birt.report.ReportEngineContainer.main(ReportEngineContainer.java:518)


Solution 1: removed signer information from org.eclipse.core.runtime.Platform.  
Solution 2: replaced org.eclipse.core.runtime.Platform with copy from eclipse ide (the version numbers in birth-runtime and eclipse ide were the same) .
Solution 3: removed org.eclipse.core.runtime.Platform from classpath and got the following error:    
 
Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/core/runtime/Platform 
at org.eclipse.birt.core.framework.jar.ServicePlatform.getExtensionRegistry(ServicePlatform.java:72)
at org.eclipse.birt.core.framework.jar.ServicePlatform.createFactoryObject(ServicePlatform.java:98)
at org.eclipse.birt.core.framework.Platform$1.run(Platform.java:297)
at java.security.AccessController.doPrivileged(Native Method)
at org.eclipse.birt.core.framework.Platform.createFactoryObject(Platform.java:293)
at com.faceScribe.analytics.birt.report.ReportEngineContainer.createReportEngine(ReportEngineContainer.java:403)
at com.faceScribe.analytics.birt.report.ReportEngineContainer.getInstance(ReportEngineContainer.java:78)
at com.faceScribe.analytics.birt.report.ReportEngineContainer.main(ReportEngineContainer.java:518)
Caused by: java.lang.ClassNotFoundException: org.eclipse.core.runtime.Platform
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
... 8 more