CookXml Changelog

What's new in CookXml 3.0.1

Mar 7, 2012
  • Fixed a bug that CookXml only taking SingleNSTagLibrary as the input parameter.
  • cookxml:tag now can now take ns:tag format as well. ns is the namespace prefix. Note that since DecodeEngine reads xmlns in order. So the prefix used before the actual xmlns setting will cause an error.

New in CookXml 3.0 (Mar 7, 2012)

  • Added XML namespace support. CookXml now supports XML files with or without namespaces, or partially with namespaces.
  • Extracted out the reserved words (such as id, idref, setas, func, ctor, etc) to a standalone TagLibrary in http://cookxml.sf.net/ namespace. CookXml Common tag library by default uses this tag library as its parent. CookSwing and CookSwt in turn uses CookXml Common tag library as their parents. This chain of tag libraries are necessary for backward compatiblity parsing XML files that do not have namespaces.
  • A MultiNSTagLibrary is create for easily bundling of several tag libraries that each is used for a different namespace.

New in CookXml 2.5 (Mar 7, 2012)

  • added a feature that allows one to call CleanupHook objects after DecodeEngine is finished. This feature is used in CookSwing where label's labelfor attribute requires a forward lookup for ids/variables. A simple way of doing it is basically caching the demand and calling setLabelFor after DecodeEngine has finished parsing the XML.
  • added a global propertychangelistener attribute that allows one to add a PropertyChangeListener with a given property name in either propertychangelistener="variableName" or propertychangelistener="variableName,propertyName" format.

New in CookXml 2.4.1 (Mar 7, 2012)

  • There were still some codes that use Class.forName in 2.4 instead of user defined ClassLoader. This update should change them all.

New in CookXml 2.4 (Mar 7, 2012)

  • added setDefaultClassLoader and setClassLoader functions to CookXml to facilitate the resource locating. The tags that are affected are and .
  • All sub-projects have been updated to utilize this feature. This feature is mainly useful for plugin based applications where plugins are loaded using non-system ClassLoader (e.g. URLClassLoader).

New in CookXml 2.3.1 (Mar 7, 2012)

  • remove a debugging message that should have been commented out for accessing a field.

New in CookXml 2.3 (Mar 7, 2012)

  • added the feature to read/write non-public (package, private, protected) variables. By default, this feature is disabled. Call CookXml.setDefaultAccessible (true) or within individual CookXml objects, call setAccessible (true). Note that this feature will generate a SecurityException if there is a SecurityManager (as in case of sandbox Java Web Start) and thus should only be used if you have pretty much full permission access.
  • This feature is useful if you ever get annoyed by the number of public variables that show up in the public variable/function list of Eclipse/IntelliJ IDEA, this feature is useful hiding most of them. IntelliJ IDEA may consider some of those variables as unused though.

New in CookXml 2.2 (Mar 7, 2012)

  • added idref and varref global attributes. The purpose is to replace and tags. Instead of using
  • in XML, now you can just do
  • , which is much more intuitive and clear. and tags will continue to stay for people who find them shorter to type sometimes.
  • listeners can be added using variable reference or if it is the right type, it can be added directly. This allows listeners generated from script to be added via mechanism like setas="actionlistener".

New in CookXml 2.1.1 (Mar 7, 2012)

  • fixed a bug in introduced in CookXml 2.0. The className check part of the code could not be reached due to an unchecked exception.

New in CookXml 2.1 (Mar 7, 2012)

  • idref tag now works for creators that use helper objects as well.
  • identified a potential place where an exception could be leaked w/o being wrapped with CookXmlException.
  • put NoCreatorException under CreatorException.
  • CallFunctionSetter now throws exception if parameters don't match rather than quit sliently.
  • added setProperty/getProperty functions to DecodeEngine so that it can act as a cache for individual creators.