Reporting: Pluggable ReportEngine Service.

Description

Add a service interface for Reporting Engine so that one can swap between implementations. This is needed for ticket
https://idempiere.atlassian.net/browse/IDEMPIERE-424

Environment

None

Activity

Show:
Heng Sin Low
March 26, 2014, 1:50 PM

Hi Anthony,

I would prefer to make IReportEngineFactory an interface and OSGi service instead. We will then have a DefaultReportEngineFactory service that will return the current ReportEngine implementation.

Regards,
Low

Anthony Sossah
March 27, 2014, 12:13 PM

Hi Low,
Thanks.
In that case, should we introduce another class that will make it possible to do a static call
ReportEngine re = SomeClass.getEngine(params)

instead of a muti line like
IReportEngineFactory reportFactory = Service.locator().locate(IReportEngineFactory.class).getService();
....
ReportEngine re = reportFactory.get (getCtx(), ReportEngineFactory.SHIPMENT, getM_InOut_ID(), get_TrxName());

There are about 100 places where an instance of the ReportEngine is required.

Anthony

Deepak Pansheriya
March 27, 2014, 12:19 PM

Anthony,

You can add one method in org.adempiere.base.Core class. Where we have all such methods.

Heng Sin Low
March 27, 2014, 12:23 PM

+1 to Deepak suggestion above.

Anthony Sossah
March 27, 2014, 3:24 PM

Hi,
Done..
Anthony

Assignee

Unassigned

Reporter

Anthony Sossah

Labels

Tested By

None

Components

Priority

Major
Configure