2.2. Cocoon 1 Vs Cocoon 2

Cocoon está siendo desarrollado por una parte del equipo Apache XML. Cocoon 2 tiene cambios tan significativos con respecto a Cocoon 1, que se podría decir casi que fue escrito de nuevo.

Los desarrolladores de Cocoon 2 dicen que lo que han hecho es aprender de lo que vivieron durante el desarrollo de Cocoon 1, y lo implementaron para mejorar la eficiencia y la escalabilidad del proyecto.

Cocoon 1 trabajaba sobre DOM (Document Object Model) para poder pasar los documentos XML entre componentes. El problema es que el trabajo con árboles DOM se torna ineficiente ya que el procesamiento de un árbol consume mucha más memoria que el documento XML original.

Cocoon 2 está construido sobre el API SAX que es mucho más eficaz cuando se trata de manipular documentos XML.

Por otro lado, el manejo de la aplicación cambia bastante de Cocoon 1 a Cocoon 2. Mientras que en Cocoon 1, en los documentos XML se debían incluir las instrucciones para hacer el procesamiento del documento (atando el documento XML a Cocoon), en Cocoon 2 se puede configurar para determinado fichero XML que transformación debe aplicársele, fuera del mismo fichero. Note que ésto es una gran ventaja con respecto a la flexibilidad del sistema, ya que en la versión 1 de Cocoon la reutilización de código se disminuye considerablemente y la capa que separa el contenido de la lógica y la presentación se vuelve casi imperceptible.