Jump to content

BIRT Developer Center Download


File Information

  • Submitted: Jul 12 2013 10:32 AM
  • Last Updated: Apr 24 2014 12:05 PM
  • File Size: 511.37KB
  • Views: 27725
  • Downloads: 447
  • Approved by: Virgil
  • Approved on: 02 June 2017 - 08:59 AM
  • Summary: This is a generic plugin which can connect to many data sources including Yahoo, Google, social medias(facebook, twitter etc),sports,news and many more.This plugin uses REST API ,supporting JSON and It gives tabular data to user
  • Content Type: Designs & Code
  • BIRT Version: 3.7


- - - - -
REST API ODA Plugin Devshare Contest

This DevShare submission qualifies for the Autumn 2012 Plug In 2 BIRT Contest!

We have ODA plug-ins for many data sources, and they are very much helpful in creating custom reports. But we don’t have a generic plug-in which can be used to get data from common data sources. It will be amazing if we have a single Plug-in which can go fetch data like ESPN sports details, BBC news Details, Social media details including facebook and twitter , Yahoo Query language, Google Search and even databases like JIRA and ORACLE. And many more.

How this is possible ? Almost every data source has a support for REST API and if we have a plugin which can communicate in the language of REST, the above is possible. And now here it is. A REST API plug-in which supports JSON responses and prepares data for you from the response. It also helps you to configure your response and play with the data type and all.

There are some limitations with the plug-in for now. Say it can support only JSON response. Even though all REST API’s supports JSON, the plug-in can be amazing if it can support XML also. But these limitations can be fixed for sure in the later releases.

There is a sample report attached with the submission. Don’t go with the design in as I am bad in designing pages. But for sure you can understand the data source and data set configurations.Also you can see some sample queries. You can get hundreds of them online..but most of them requires API key for the use.

Any doubts feel free to ask..I need your help to find the bugs and fix them all.

Also there are some sample queries.You can get queries from net for all data sources. But you should be having API key if the data source is not open to public. Then you have to prepare the http Request and this can be used in the the plug-in


I am using BIRT RCP report designer 4.4. After copying these jars to plugins directory, I am not able to see the data source while creating the report.

Does this plugin supported with BIRT CP designer 4.4?

i tested this in BIRT Framework 4.4.0.v201405191524 and it working fine.
Can you share the source code?, I know this is ODA plugin but i would like to know how to extend or modify it
Thanks a lot!!

You need to copy the plugin files to the 'plugins' directory, and restart BIRT pro.

I've got an error when using this plugin in Test Connection


org.eclipse.datatools.connectivity.oda.OdaException ;

    at org.eclipse.datatools.connectivity.oda.profile.OdaConnectionWrapper.open(OdaConnectionWrapper.java:215)

    at org.eclipse.datatools.connectivity.oda.profile.OdaConnectionWrapper.<init>(OdaConnectionWrapper.java:59)

    at org.eclipse.datatools.connectivity.oda.profile.OdaConnectionFactory.createConnection(OdaConnectionFactory.java:26)

    at org.eclipse.datatools.connectivity.internal.ConnectionFactoryProvider.createConnection(ConnectionFactoryProvider.java:83)

    at org.eclipse.datatools.connectivity.internal.ConnectionProfile.createConnection(ConnectionProfile.java:359)

    at org.eclipse.datatools.connectivity.ui.PingJob.createTestConnection(PingJob.java:76)

    at org.eclipse.datatools.connectivity.oda.design.internal.ui.DataSourceEditorPageCore$1.run(DataSourceEditorPageCore.java:629)

    at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)

    at org.eclipse.datatools.connectivity.ui.wizards.ProfileDetailsPropertyPage.testConnection(ProfileDetailsPropertyPage.java:98)

    at org.eclipse.datatools.connectivity.ui.wizards.ProfileDetailsPropertyPage$1.widgetSelected(ProfileDetailsPropertyPage.java:80)

    at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:248)

    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)

    at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4353)

    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1061)

    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4172)

    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3761)

    at org.eclipse.jface.window.Window.runEventLoop(Window.java:832)

    at org.eclipse.jface.window.Window.open(Window.java:808)

    at org.eclipse.birt.report.designer.ui.dialogs.BaseDialog.open(BaseDialog.java:111)

    at org.eclipse.birt.report.designer.data.ui.actions.EditDataSourceAction.doAction(EditDataSourceAction.java:69)

    at org.eclipse.birt.report.designer.internal.ui.views.actions.AbstractElementAction.run(AbstractElementAction.java:70)

    at org.eclipse.jface.action.Action.runWithEvent(Action.java:519)

    at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:595)

    at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:511)

    at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:420)

    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)

    at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4353)

    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1061)

    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4172)

    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3761)

    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151)

    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)

    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032)

    at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148)

    at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636)

    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)

    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579)

    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)

    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135)

    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)

    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)

    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)

    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380)

    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

    at java.lang.reflect.Method.invoke(Unknown Source)

    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648)

    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603)

    at org.eclipse.equinox.launcher.Main.run(Main.java:1465)

    at org.eclipse.equinox.launcher.Main.main(Main.java:1438)

Caused by: java.lang.NullPointerException

    at org.eclipse.birt.report.data.oda.restapi.impl.Connection.open(Connection.java:50)

    at org.eclipse.datatools.connectivity.oda.consumer.helper.OdaConnection.open(OdaConnection.java:250)

    at org.eclipse.datatools.connectivity.oda.profile.OdaConnectionWrapper.open(OdaConnectionWrapper.java:209)

    ... 51 more

anybody can solve this ?

Sep 11 2015 07:42 AM


  Does this plugin support the https protocol, or must my rest api data source be http?



Hi, Thanks for the work ! 


Will it be improved to manage report parameter in the http request ? 


It would be great to be able to insert parameter in the request q="select * from ? where ? > ?" for instance.


Thanks in advance for the answer! 

  • 997 Total Files
  • 8 Total Categories
  • 153 Total Authors
  • 31706 Total Downloads
  • Joyplot in iHub Latest File
  • Clement Wong Latest Submitter

1 user(s) are online (in the past 1 minutes)

0 members, 0 guests, 0 anonymous users

Bing (1)