[jdom-interest] JDom and Java5

Rolf Lear jdom at tuis.net
Thu Feb 21 07:28:36 PST 2008

Hi All.

I have ported JDom to use Java constructs throughout the code. I have 
taken great pains to make the ported library as similar to the existing 
one as possible. In fact, I believe that, in 99% of the cases, you will 
probably be able to take the Java5 version and simply recompile your 
code against the new Jar and have no problems.

At the same time, the code does a full implementation of Generics, 
removes encumbrances required to support old Java versions (Java1.2, 
etc.), and generally spruces up some of the ways that some things are done.

The porting has necessitated the rewrite of a number of core sections of 
code (like ContentList), but there are performance improvements in there 

Obviously this has been an individual effort with all the pitfalls of 
'single-mindedness' in there too. Any criticisms of the code will be 
welcomed as the intention is to get a good result.

I believe all the nice things in Java5 are now available, especially 
those using generics where all the methods return correctly typed data 
like such that constructs like:

    Element root = document.getRootElement();
    for (Element child : root.getChildren()) {
        // do something with element child....

are now possible.

At this stage, the work is done, and I am just trying to determine how 
much interest there is in such a port.

I have set up an 'unreliable' server (it is my computer at home on a 
residential cable-modem....) at git.tuis.net where you can:

browse a full repository of the three core JDom projects (jdom, 
jdom-test, and jdom-contrib):

read a README I put together:

Download the actual source code (zipped or not):

Download the actual jar:

Review the API Docs:

Those wanting to access the repositories in git format can do so, or 
those with CVS can access the same repository using the (git-based) CVS 

Thus, if you want to get a hold of the repositories, you can, using git:

git clone git://git.tuis.net/jdom.git
git clone git://git.tuis.net/jdom-contrib.git
git clone git://git.tuis.net/jdom-test.git

Or, using (slower) http protocol:

git clone http://git.tuis.net/git/jdom.git
git clone http://git.tuis.net/git/jdom-contrib.git
git clone http://git.tuis.net/git/jdom-test.git

Alternatively, you can use cvs (note the somewhat strange CVSROOTs)

cvs -d ":pserver:anonymous at git.tuis.net:/git/jdom.git" co HEAD -d jdom
cvs -d ":pserver:anonymous at git.tuis.net:/git/jdom-contrib.git" co HEAD 
-d jdom-contrib
cvs -d ":pserver:anonymous at git.tuis.net:/git/jdom-test.git" co HEAD -d 

Depending on the levels of interest in this there will probably be the 
requirement to migrate these repositories to a more reliable server, 
etc. We'll cross that bridge if we get to it.


More information about the jdom-interest mailing list