| Summary: | Allow to pass XML document to BIRT instead of input stream | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [Tools] Data Tools | Reporter: | Marcel Stör <marcel> | ||||
| Component: | Enablement:ODA | Assignee: | Wenjie Tu <wtu> | ||||
| Status: | NEW --- | QA Contact: | Xiaoying Gu <bluesoldier> | ||||
| Severity: | enhancement | ||||||
| Priority: | P3 | CC: | bluesoldier, j.cyriac, lchan, mwu | ||||
| Version: | unspecified | ||||||
| Target Milestone: | 1.8.2 | ||||||
| Hardware: | All | ||||||
| OS: | All | ||||||
| See Also: | https://bugs.eclipse.org/bugs/show_bug.cgi?id=293726 | ||||||
| Whiteboard: | |||||||
| Attachments: |
|
||||||
Discussion was started here: http://www.eclipse.org/forums/index.php?t=msg&th=169329&start=0 Hello, any update on this issue? |
Created attachment 171391 [details] stack trace while parsing XML One has to pay a serious performance penalty when the XML data source is used with an input stream -> allow to pass a XML document to BIRT. [Scenario] Our application creates XML content "on the fly" i.e. at runtime. We have a org.jdom.Document instance in memory. However, in order to use it as a XML data source for BIRT we need convert it into a byte[] which can then be wrapped by a ByteArrayInputStream and passed to BIRT: task.getAppContext().put("org.eclipse.datatools.enablement.oda.xml.inputStream", xmlByteStream); BIRT/ODA then does the exact opposite and parses the content with SAX (org.eclipse.datatools.enablement.oda.xml.util.SaxParser.run()). Needless to say that this is not very efficient. [Proposal] Allow to pass a XML document (org.w3c.dom.Document) using the app context like so: task.getAppContext().put("org.eclipse.datatools.enablement.oda.xml.document", xmlDocument) [Side note] While debugging I noticed that for any given .rptdesign file several SaxParser instances were created (and run) - up to 8. It appears that for every table the whole XML document is parsed again! I suppose that even without the improvement described above this wouldn't be necessary. [Side note 2] Fix the naming typo in SuppressDuplciateReportExecutor.