[ https://issues.apache.org/jira/browse/JCR-1261?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jukka Zitting updated JCR-1261: ------------------------------- Attachment: JCR-1261.drop-xerces.patch > But, now comes number three: For a quick and easy and most failsafe migration > away from > Xerces, we should keep as much code as possible, which means keeping the use > of DOM. > Hence the really very simple DocumentBuilder implementation. But when we do that, we get ourselves involved with the details of XML parsing and DOM building. With the proposed patch we're dropping a number of DocumentBuilder features and probably some semantic DOM details that current or future jackrabbit-webdav code may or may not depend on. IMHO it's much better to do the migration to a different XML API in a single step instead of using a DOM-but-not-quite-DOM adapter for an unspecified amount of time. Anyway, going back to the original justification of this issue. Your first point was to minimize dependencies, which IMHO could be better achieved by just dropping the Xerces dependency in favor of standard JAXP (see also JCR-367). The attached patch (JCR-1261.drop-xerces.patch) does just that with trivial changes to the codebase. (Note that I haven't really tested the patch, there may be some subtle issues with JAXP serialization of namespaced DOM trees.) As for improving parsing performance, it should IMHO be up to the configured XML parser library as long as we keep using the JAXP/DOM API. > Replace Xerces/JAXP based (un)marshalling by KXml2 based implementation > ----------------------------------------------------------------------- > > Key: JCR-1261 > URL: https://issues.apache.org/jira/browse/JCR-1261 > Project: Jackrabbit > Issue Type: Improvement > Components: jackrabbit-webdav > Affects Versions: 1.3.3 > Reporter: Felix Meschberger > Assignee: Felix Meschberger > Attachments: JCR-1261.drop-xerces.patch, JCR-1261.patch, > JCR-1261_2.patch > > > Proposing to replace the current Xerces/JAXP based implementation of XML data > unmarshalling and marshalling to be replaced by a MXP ([1]) based > implementation. MXP is an implementation of the XML PullParser API [2] and > provides a very mall footprint (120KB) and far better performance than Xerces > (my tests showed around 50% performance increase over Xerces for both > unmarshalling and marshalling, see also [3]). > Why do I care ? I would like to include WebDAV functionality into Sling and > bundle is with as little dependencies as possible ( the xpp3 lib might even > be bundled into this project to minimize dependencies). In addition, I think > XML (un)marshalling performance is crucial in any WebDAV solution. For this > reason, this project can only win if we add a more performing library. > [1] http://www.extreme.indiana.edu/xgws/xsoap/xpp/mxp1/ > [2] http://www.xmlpull.org > [3] http://www.extreme.indiana.edu/~aslom/xpp_sax2bench/results.html -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.