[hibernate-dev] Removing dom4j?

Chris Cranford chris at hibernate.org
Wed Feb 21 12:38:17 EST 2018


Another alternative (at least for Envers) might be to incorporate the
JAXB work I did into 5.3 rather than wait for 6.0.

Steve/Andrea, either of you have a preference one way or another?

On 02/21/2018 10:52 AM, Chris Cranford wrote:
> See inline
>
> On 02/20/2018 10:52 AM, Jordan Gigov wrote:
>> Well, it took longer than expected as the source of the failures
>> became more obscure, but here it is, done on the master (5.3) branch.
>>
>> https://github.com/coladict/hibernate-orm/tree/dom4j-removal
>> It's in the dom4j-removal branch.
>>
>> The tests for entity-mode dom4j have been removed, but it might be a
>> better idea to write new ones that expect an error.
>> Also the hibernate-mapping-4.0.xsd schema hasn't been valid since
>> dom4j entity-mode was removed in 2011
>> (4a4f636caf9ecc62fe0d230f422ad3eab2517db0) but I haven't touched it.
>>
>> You could wait for 6.0, but there is time to review this for 5.3.
>>
> The biggest difference between what you did and my own for Envers is
> that I decided to use the JAXB binding classes directly rather than
> replace dom4j with another XML abstraction.  Using JAXB binding
> classes directly gives several noticeable benefits:
>
>  * Better maintainability - cleaner and easier to read code
>  * Better performance - less in-memory string manipulation and cloning
>  * Most important - compile-time schema compliance.
>
> The replacement of dom4j with the w3c equivalents is likely fine for
> 5.3; however, the long-term goal is to do away with the XML
> manipulation all together in Envers.
>
>> I have only passed a `clean build` using JDK8 and the default H2
>> database. Maybe other databases could expose errors, but it's highly
>> unlikely.
>> JDK9 is a bit more likely to expose an incompatibility.
>>
>> On 19 February 2018 at 17:03, Chris Cranford <chris at hibernate.org
>> <mailto:chris at hibernate.org>> wrote:
>>
>>     See below
>>
>>     On 02/18/2018 11:38 AM, Steve Ebersole wrote:
>>     > On Sun, Feb 18, 2018 at 4:52 AM Jordan Gigov
>>     <coladict at gmail.com <mailto:coladict at gmail.com>> wrote:
>>     >
>>     >> I think transitioning to automatic bindings via JAXB will
>>     result in error
>>     >> messages on wrong configurations becoming far too vague to be
>>     useful to the
>>     >> users.
>>     >>
>>     > I'm not understanding... we've used jaxb since 4.0
>>     >
>>     > I am just talking about envers and how it integrates with
>>     hibernate-core.
>>     > At the moment it directly uses dom4j - we'd like to eventualy
>>     have it use
>>     > the jaxb model instead
>>
>>     There is a JIRA [1] that specifically targets this work from an
>>     Envers
>>     perspective. 
>>
>>     I have a working implementation based on Hibernate 5.x but this is
>>     planned to be integrated in Hibernate 6.  I'd expect to see this get
>>     integrated once we get a bit more development finalized around
>>     Hibernate
>>     Core in 6.
>>
>>     [1]: https://hibernate.atlassian.net/browse/HHH-11483
>>     <https://hibernate.atlassian.net/browse/HHH-11483>
>>
>>     Thanks,
>>     Chris
>>
>>
>



More information about the hibernate-dev mailing list