Thursday, October 1, 2009

XINS 3.0 fork at Github

Just recently, I've made our internal XINS fork available via:
The version is currently set at 3.0-alpha1-dev. This may become the official XINS 3.0 release at some point, or (some or all) changes may go into an official XINS release.

The most important changes in compared to mainstream XINS are:
  • Java 5-features, such as generics and foreach-loops (hence Java 5+ is required)
  • lots of utility functions are added, to simplify programming with XINS
  • various libraries are updated, such as Saxon (from 8 to 9) , JUnit (from 3 to 4), Xerces, etc.
  • a couple of previously deprecated members and classes are removed, most notably FastStringBuffer and FastStringWriter
  • deprecated various classes and members, such as the ElementBuilder class
  • upgraded from XSLT 1.0 to 2.0
  • the Element class now supports mixed content (PCDATA and child elements), an add(String) method has been added
This branch of XINS has been used in production for almost 3 years now, but you are not advised to use this code in production, as it has not gone through all the testing that is typically done for an official XINS release, across various platforms and Java versions.
Also note that not all of the changes in XINS 2.2/2.3 have been incorporated (yet).

The following things are still on my list of things to be done:
  1. clean the code up further
  2. get rid of all deprecation warnings by either resolving or suppressing them (whatever is more appropriate)
  3. further changing the code to use type-safe collections where possible, using generics
  4. possibly adding Commons Lang as a dependency, so that various utility methods, like TextUtils.isEmpty(String) can be deprecated (and later removed)
  5. change HttpClient (which is deprecated) based code with HttpComponents HttpClient based code
  6. get rid of Jakarta ORO, just use the J2SE regular expression-support that is available since J2SE 1.4
If you have any changes you would like to incorporate into (this branch of) XINS, fork the project at github. Using git, it is quite easy to merge different forks.

To be continued.

No comments:

Post a Comment