[ 
https://issues.apache.org/jira/browse/JCRVLT-391?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Konrad Windszus updated JCRVLT-391:
-----------------------------------
    Description: 
Currently the classes below {{o.a.j.v.util.xml}} seem to be a copy of Xerces 
classes. Instead of just relying on an old copy one should use a proper Maven 
dependency together with https://maven.apache.org/plugins/maven-shade-plugin/ 
or https://bnd.bndtools.org/instructions/conditionalpackage.html to make sure 
update to the latest version is possible.
Also it needs to be clarified if the embedded Xerces should be listed 
explicitly in 
https://github.com/apache/jackrabbit-filevault/blob/trunk/LICENSE.txt.

The original intent is stated in 
https://github.com/apache/jackrabbit-filevault/blob/9fa6c72bf4bdf36331b50b9370f3ed826a4622e8/vault-core/src/main/java/org/apache/jackrabbit/vault/util/xml/serialize/XMLSerializer.java#L64.
The only modifications to the original Xerces were linebreaks after attributes 
and an alphabetic attribute sort order.

The following alternatives are available:
* Use the {{javax.xml.transform}} API (JAXP Transformation API). There is no 
official way though to control the order of attribute, therefore I would 
recommend to already emit the attributes in the correct order instead of 
reordering them with the output.  Controlling the indentation of attributes is 
hard to achieve: 
https://stackoverflow.com/questions/8393370/use-xslt-to-add-newlines-after-attributes
* Use TrAX with the Woodstox implementation. Seems faster, but still no 
sophisticated output formatting options available (like indentation options and 
line length)
* Implement a simple serializer based on SAX events from scratch

  was:
Currently the classes below {{o.a.j.v.util.xml}} seem to be a copy of Xerces 
classes. Instead of just relying on an old copy one should use a proper Maven 
dependency together with https://maven.apache.org/plugins/maven-shade-plugin/ 
or https://bnd.bndtools.org/instructions/conditionalpackage.html to make sure 
update to the latest version is possible.
Also it needs to be clarified if the embedded Xerces should be listed 
explicitly in 
https://github.com/apache/jackrabbit-filevault/blob/trunk/LICENSE.txt.

The original intent is stated in 
https://github.com/apache/jackrabbit-filevault/blob/9fa6c72bf4bdf36331b50b9370f3ed826a4622e8/vault-core/src/main/java/org/apache/jackrabbit/vault/util/xml/serialize/XMLSerializer.java#L64.
The only modifications to the original Xerces were linebreaks after attributes 
and an alphabetic attribute sort order.

The alternative is to use the {{javax.xml.transform}} API (JAXP Transformation 
API). There is no official way though to control the order of attribute, 
therefore I would recommend to already emit the attributes in the correct order 
instead of reordering them with the output.  Controlling the indentation of 
attributes is hard to achieve: 
https://stackoverflow.com/questions/8393370/use-xslt-to-add-newlines-after-attributes


> Remove copied classes of Xerces
> -------------------------------
>
>                 Key: JCRVLT-391
>                 URL: https://issues.apache.org/jira/browse/JCRVLT-391
>             Project: Jackrabbit FileVault
>          Issue Type: Task
>          Components: vlt
>    Affects Versions: 3.4.0
>            Reporter: Konrad Windszus
>            Assignee: Konrad Windszus
>            Priority: Major
>             Fix For: 3.4.2
>
>
> Currently the classes below {{o.a.j.v.util.xml}} seem to be a copy of Xerces 
> classes. Instead of just relying on an old copy one should use a proper Maven 
> dependency together with https://maven.apache.org/plugins/maven-shade-plugin/ 
> or https://bnd.bndtools.org/instructions/conditionalpackage.html to make sure 
> update to the latest version is possible.
> Also it needs to be clarified if the embedded Xerces should be listed 
> explicitly in 
> https://github.com/apache/jackrabbit-filevault/blob/trunk/LICENSE.txt.
> The original intent is stated in 
> https://github.com/apache/jackrabbit-filevault/blob/9fa6c72bf4bdf36331b50b9370f3ed826a4622e8/vault-core/src/main/java/org/apache/jackrabbit/vault/util/xml/serialize/XMLSerializer.java#L64.
> The only modifications to the original Xerces were linebreaks after 
> attributes and an alphabetic attribute sort order.
> The following alternatives are available:
> * Use the {{javax.xml.transform}} API (JAXP Transformation API). There is no 
> official way though to control the order of attribute, therefore I would 
> recommend to already emit the attributes in the correct order instead of 
> reordering them with the output.  Controlling the indentation of attributes 
> is hard to achieve: 
> https://stackoverflow.com/questions/8393370/use-xslt-to-add-newlines-after-attributes
> * Use TrAX with the Woodstox implementation. Seems faster, but still no 
> sophisticated output formatting options available (like indentation options 
> and line length)
> * Implement a simple serializer based on SAX events from scratch



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to