Re: JDOM2 Update.
Rolf <[email protected]>
| Newsgroups | gmane.comp.java.jdom.general |
|---|---|
| Message-ID | <[email protected]> |
Hi All Another update. This has been a busy spell since the last update. JDOM 1.1.2 ========== This is ready to go, and has been going through the final stages of publishing it. You can see the change-log by either inspecting the Changes file or the issues list: https://github.com/hunterhacker/jdom/blob/jdom-1.1.2/core/CHANGES.txt https://github.com/hunterhacker/jdom/issues?labels=backport+1.1.2+done&sort=created&direction=desc&state=closed&page=1 In summary, there have been 14 bug fixes, and the Jar will be available on maven-central. The JDOM 1.x branch will remain open for bug-fixes only. If you want a sneak-peak of the 1.1.2 code you can download the source at: https://github.com/hunterhacker/jdom/zipball/jdom-1.1.2 JDOM 2 ====== There are two major news items here, and an anticipated plan: 1. the jUnit testing has close to complete coverage, with only some unreachable code, and some quirky exception cases being missed; 2. Basic Generics changes have been made. 3. Putting together a JDOM2 plan Unit Tests: ----------- There are some failing tests, and some ignored tests. The failing tests relate two one of two things: - there is a bug in JDOM where multiple consecutive Text content instances are not processed correctly... see https://github.com/hunterhacker/jdom/issues/31 I have ignored some tests, and left one failing until this gets resolved. - The Jaxen code has a bug with respect to the ordering of Attribute and Namespace nodes, see http://jira.codehaus.org/browse/JAXEN-215 It means that for Attributes and Namespaces the XPath node set is not returned in Document order, and the Test cases expect that, so currently they fail. (I have a 'patched' version of Jaxen in my environment and the tests pass). Generics: --------- I have done a first pass at Generics for the code. The intention for this was was to do a cleanup of warnings and to get a baseline of a 'simple' JDOM that's 'neat'. See the conclusion for how to get the code. I have made only one significant API change which is to substantially extend the 'Filter' interface, and implementing classes. This has allowed for a completely 'clean' JDOM2 code base. The Filter API change is backward-compatible (unless you happen to have your own implementation of the Filter interface), and as a result, you should be able to do a drop-in replacement of the current JDOM2 code with your existing code (except you will have to change all the org.jdom.* imports to org.jdom2.* At this point the code is as close as possible to being a 'minimum' JDOM2: it is JDOM with Generics, plus a minimum amount of spice on the Filter API to make the getContent(Filter) stuff work. See the 'Conclusion' for how to get the code. Planning: --------- At this point The code is 'ripe' for ideas. The regression test harness is comprehensive, the code is close to 'clean', and yet it is all still very familiar to anyone familiar with JDOM. There is one concern I have with the code in it's current state, and that is the serialization code, which is haphazard, incomplete, and inconsistent. I am not an expert on serialization, so I have left it unchanged. If you ignore serialization issues in eclipse, there are no longer any warnings at all. Running 'FindBugs' identifies only two issue types, Serialization, and some 'inefficient new Integer() calls)' So, given the current state of the code, what comes next? In the short term I intend to get some builds up on to the web-site so that people can play with the code. In addition, there will be some statistics related to code coverage, and unit tests. This will give people an easy way to track progress, and to play with the code. Then I intend to fix some of the more 'trivial' bugs that are still outstanding, like the TRIM_FULL_WHITE bugs, some Iterator problems, List problems, etc. At the same time I plan on updating the wiki documentation for a bunch of things. So, at the end of this week I expect to have a better idea of what the final result should look like. Conclusion ---------- If you want to have a look at the code, get a feel for what it looks like, you can get it very easily. I have tagged the current code state with the tag 'jdom2-epoch'. Thus, you can reference that in github, and get a zipped package of the code base for that tag. Clicking on this link should start a download for you: https://github.com/hunterhacker/jdom/zipball/jdom2-epoch If you have suggestions or ideas for what you think the results should look like now is the time to speak up. Rolf _______________________________________________ To control your jdom-interest membership: http://www.jdom.org/mailman/options/jdom-interest/[email protected]