[jdom-interest] JDOM 2.x BETA 6 Released - April Fools

Rolf Lear jdom at tuis.net
Sun Apr 1 20:17:18 PDT 2012

No, actually, really it has been released. No April Fools in that.

There are some significant changes in this release:

The Parent interface has been extended to incorporate the addContent(*) 
methods which are common to both Document and Element. When the Parent 
interface was designed, it was not possible to do Covariant return 
types, and it was not possible to have addContent(Content) return 
Document on a Document instance, and Element on an Element instance. 
With Java5, this is now possible, and it is thus logical to include 
these methods on the Parent interface.

XPathExpression and its derivative classes have been changed to be more 
consistent both with each other, and with other 'de-facto' standards in 
JDOM. This means that:
1. Instead of passing around String uri's, the code now passes around 
Namespace instances.
2. XPathExpression now supports getting and setting Variables using a 
'qname' syntax that matches the syntax used for declaring the variables 
in the XPathFactory.

JDOMConstants has a few values which represent common prefixes for some 
namespaces. These were named "NS_PFX_...". They have been renamed to 
"NS_PREFIX_*" to be more specific.

SAXBuilder was changed by me a while ago to rename three 'boolean' get* 
methods to be is* methods. For example, getExpandEntities() became 
isExpandEntities(). It has become apparent that there is no significant 
benefit from this change. It does not clarify what the methods do, the 
names are still ugly, and the additional complexity for both the JDOM 
code (with deprecated get* methods) and the users (having to change 
their code calls to avoid deprecation warnings) makes it not-worthwhile. 
Thus these three changes have been 'reverted'.

TextHelper is a 'contrib' class that I recently ported in to 'core'. 
Unfortunately, I completely missed the fact that the functionality 
already existed in JDOM's Element class. So, this TextHelper has been 
completely removed.

I introduced the 'Walker' Interface to deal with the complexities of 
formatting XML Output in the org.jdom2.output.* packages. The names of 
the 4 concrete implementations of the Walker interface were inconsistent 
with the types of formatting they do. The concrete implementations have 
been renamed to match the TextMode they represent.
This change will only affect people who have already subclassed JDOM 2.x 
beta code.

A number of documentation issues have been addressed, and the wiki page 
is being improved and updated.

I am hoping that you will all jump on to this beta and run it through 
it's paces. If you have any questions or suggestions, please speak up. 
If you notice any JavaDoc issues please shout out as well.

The final 2.0.0 release is still targeted for this Easter weekend. 
Please continue to play with the JDOM 2.x Beta releases. This latest 
BETA is available from the regular places (with maven to follow soon):

Downloads: https://github.com/hunterhacker/jdom/downloads
The Release: 
The APIDocs: http://hunterhacker.github.com/jdom/jdom2/apidocs/index.html
The Code Coverage: 
The JUnit Report: 



More information about the jdom-interest mailing list