TODO list

The following is a list of items that need to be completed in Betwixt. Contributions are welcome!

High priority

  • BeanWriter is writing to sloppy (empty elements, etc). Fixing it in a clean way is almost impossible. Probably a refactor is best anyway to have a less "sloppy" api..
  • Get an overview of what .betwxixt files should really do. Especially more complicated examples will cause very strange and unexpected results.
  • If an addFoo() method is found with no matching getFoos() then a warning should be generated.
  • Fixed. digester.peek() was giving warning. Now checking if it still has something to peek. Currently betwixt causes digester to output a warning '[WARN] Digester - -Empty stack (returning null)'. We should patch the way betwixt uses digester to avoid this warning message.
  • Consider allowing the parsing of XML to order the properties/elements in the XMLBeanInfo so that when the XML is output again it follows the same XML ordering again. There is an example describing this here . For example we could add a feature to parse the DTD and order the XMLBeanInfo according to the order in the DTD.
  • Improved documentation! Improve package level documentation so that new developers can get up to speed more quickly. Ensure all betwixt features have good user documentation. More good code examples.
  • Add support for IDREF's to BeanReader. At the moment, round tripping break when cycles exist.

Medium priority

  • Fixed Using \n as default and now shows a warning when an invalid space character is used.

    Adding a check to only accept valid characters as lineEndings, so parsers actually won't choke on the output xml. BeanWriter should have a setEndOfLine() method to allow configurable EOL strings, defaulting to "\n"
  • Create a SAXWriter class in the io package that takes a bean and writes to a SAX ContentHandler rather that outputting textual XML like BeanWriter does. This will allow Betwixt to work nicely in XML pipelining environments like Cocoon and Jelly.

Low priority

  • Create a W3C DOM implementation that acts as a facade on top of beans to allow beans to be transformed in XSLT engines as XML.
  • Add support for custom class loaders. Probably this means adding a classloader property to XMLIntrospector and then ensuring all class creation uses that. The digestion rules which create the XMLBeanInfo from .betwixt files should use the XMLBeanInfoDigester classloader property which should be set by the XMLIntrospector .
  • Improve integration with digester. At the moment, bean reading is all or nothing. You either use betwixt to do everything or you use digester to specify rules. It'd be nice to be able to mix and match.