<strong class='bbc'>Taking a look at upgrading BIRT 2.3.1 to 3.7</strong><br />
<br />
I am getting a NPE trying to start the Birt Report Engine.<br />
This is the line of code that causes it:<br />
<pre class='_prettyXprint _lang-auto _linenums:0'>
IReportEngineFactory factory =
(IReportEngineFactory) Platform.createFactoryObject( IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY );
birtEngine = factory.createReportEngine( config ); // factory is null
</pre>
<br />
From my extensive searching, it seems that the migration entails putting all jars in the web-inf/lib and removing setBirtHome(). It seems many issues arise from jar collisions. I noticed something else odd (which is described below), but still went through every jar to check for collisions/duplicate classes. I think I have it pretty clean, but there are tons of jars in the lib folder as this is an OpenReports deployment with a Birt Provider. I have debugged through the above lines of code and I am not convinced that they are correct as many posts regarding 3.7 say that osgi isn't used and stepping into the classes yields osgi references. If the code above is a known/observed problem, let me know what I can do differently. <br />
<br />
The oddity I observed.<br />
<ul class='bbc'><li>IReportEngineFactory:<br />
birt-runtime-3_7_0\ReportEngine\lib\org.eclipse.birt.runtime_3.7.0.v20110615-1818.jar\org\eclipse\birt\report\engine\api\IReportEngineFactory.class</li><li> src: birt-source-3_7_0.zip\plugins\org.eclipse.birt.report.engine\src\org\eclipse\birt\report\engine\api\IReportEngineFactory.java<br />
<pre class='_prettyXprint _lang-auto _linenums:0'>
package org.eclipse.birt.report.engine.api;
/**
* a factory used to create the Report Engine.
*
*
@see the ReportRunner for the usage.
*/
public interface IReportEngineFactory
{
/**
* the extension point used to create the factory object.
*
*
@see org.eclipse.birt.core.framework.Platform#createFactoryObject(String)
*/
static final String EXTENSION_REPORT_ENGINE_FACTORY = "org.eclipse.birt.report.engine.ReportEngineFactory";
/**
* create a new report engine object.
*
*
@param config
* config used to create the report engine.
*
@return the report engine object
*/
IReportEngine createReportEngine( EngineConfig config );
}
</pre></li></ul>
<br />
The variable EXTENSION_REPORT_ENGINE_FACTORY points to:<br />
org.eclipse.birt.report.engine.ReportEngineFactory<br />
<br />
But, the ReportEngineFactory doesn't exist there. Its path is:<br />
org.eclipse.birt.report.engine.api.impl.ReportEngineFactory.java<br />
<br />
Seems odd to me, but maybe it is irrelevant and taken care of if I wasn't **** something else up. I'll continue digging, but am running out of ideas. Any help would be appreciated.

<br />
<br />
Thanks,<br />
<br />
Larry