|Extending the BIRT viewer? [message #895187]
||Wed, 11 July 2012 22:49
| Bob Finch
Registered: July 2011
I've written implementations of IDocArchiveReader and IDocArchiveWriter that store and retrieve report output in database BLOBs. It's been easy to use directly with the BIRT engine to run and render reports.|
I'd like to extend the BIRT viewer to use my implementation of IDocArchiveReader. So far, I haven't found a way to do that without modifying BIRT source, and I'd rather not do that if possible.
It appears that the viewer calls openReportDocument() in BirtViewerReportService to open report documents; if I could override that to open the report document with my IDocArchiveReader implementation, I'd be set. BirtViewerReportService is instantiated from a small servlet context listener which is easily replaced -- so far, so good.
Unfortunately, openReportDocuent() in BirtViewerReportService is private, so I can't override it. Even if I entirely replace it with my own class, it depends on ReportEngineService to talk to the underlying engine, and it does not expose any of the "openReportDocument" methods from the underlying engine that take an archive reader.
ReportEngineService has a private constructor so it cannot be subclassed. There are lots of calls to ReportEngineService.getInstance() scattered throughout the viewer code so there's no easy way to substitute my own implementation without changing all those references.
Is there some other way to do what I want that I'm not seeing, or am I stuck?
Powered by FUDForum
. Page generated in 0.02407 seconds