没有OSGi框架的BIRT

问候,我们正在尝试使用此处的示例将BIRT集成到我们的桌面独立应用程序中。

问题是 – 如何避免使用OSGi框架。 我们是否可以将所有必需的库和插件放在生成的EAR中,而无需将报告引擎设置为主页? 因为我们的客户不满意下载额外的运行时。 是否真的需要这么大的运行时间(我估计大约100兆字节)。

抱歉,如果没有运行OSGi,就无法运行BIRT报告。 如果您不使用它们,可以修剪一些模块。 例如,可以删除图表,但图表不起作用。 显然,您可以删除示例数据库以及支持它的derby插件。

在那些明显的项目之后,删除插件会变得更加困难。

从Birt 3.7开始,您可以使用Birt POJO Runtime (您可以查看Birt网站 )。

你唯一要做的就是不要调用EngineConfig.setEngineHome(engineHome)

如果您关注Birt网站 ,您的代码将如下所示:

 try{ final EngineConfig config = new EngineConfig( ); //As of 3.7.2, BIRT now provides an OSGi and a POJO Runtime. //config.setEngineHome( "C:\\birt-runtime-2_6_2\\birt-runtime-2_6_2\\ReportEngine" ); config.setLogConfig("c:/temp", Level.FINE); Platform.startup( config ); //If using RE API in Eclipse/RCP application this is not needed. IReportEngineFactory factory = (IReportEngineFactory) Platform .createFactoryObject( IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY ); IReportEngine engine = factory.createReportEngine( config ); engine.changeLogLevel( Level.WARNING ); }catch( Exception ex){ ex.printStackTrace(); } // Run reports, etc. ... // destroy the engine. try { engine.destroy(); Platform.shutdown(); //Bugzilla 351052 RegistryProviderFactory.releaseDefault(); }catch ( EngineException e1 ){ // Ignore }