This post originated from an RSS feed registered with Java Buzz
by Wolf Paulus.
Original Post: Happy New Year 2005!
Feed Title: Wolf's Web Journal
Feed URL: http://wolfpaulus.com/feed/
Feed Description: Journal - dedicated to excellence, and motivated by enthusiasm to trying new things
I finally finished the proposal for Woodrow and invited a couple developers ... the usual suspects.
Woodrow instantiates Java classes based on XML encoded descriptors, a process known as un-marshalling or de-serialization of XML data into newly created Java content trees. Every tag in the descriptor has the potential to trigger the instantiation of a registered Java class. After such an instantiation, the tag's attributes are tried to be mapped to a property of the newly created object.
Since attributes are read as Java Strings, Converters are needed to translate attribute values into types fitting the setter methods, which will eventually be called to set the object's properties. For example, if the java.util.Vector.class had been be registered with the name 'list' and also a converter exists, able to convert a String into an int, then the tag: <list size='5'/> would result in the instantiation of a Vector class and its size would be set to 5.
Woodrow differentiates itself from existing compile-time solutions like Apache-SOAP, AXIS, JiBX or JAXB (compiler generates the interfaces and the implementation classes corresponding to an XML Schema), by using reflection and introspection at runtime. Woodrow may take the capabilities of the un-marshalling device into account and doesn't require the creation of DTDs or XML-Schemas.