[ 
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.

Reply via email to