Apache Cocoon 2.0.2 Released ---------------------------- The Apache Cocoon team is proud to announce the new release of Apache Cocoon.
Apache Cocoon is an XML framework that raises the usage of XML and XSLT technologies for server applications to a new level. Designed for performance and scalability around pipelined SAX processing, Cocoon offers a flexible environment based on the separation of concerns between content, logic and style. A centralized configuration system and sophisticated caching top this all off and help you to create, deploy and maintain rock-solid XML server applications. Today, most web engineers consider XML as the key for an improved web model and web site managers see XML as a way to reduce costs and ease production. In an era where services rather than software will be key for economic success, a better and less expensive model for web publishing will be a winner, especially one based on open standards. This release of Cocoon is a maintainance release focusing on improved performance and robustness. In addition some bugs were fixed and new features were added. See the following changes list for more information. For more information about Apache Cocoon 2.0.2, please go to http://xml.apache.org/cocoon Changes with Apache Cocoon 2.0.2 *) New BootstrapServlet to allow Cocoon torun in non-compliant servlet engines that don't handle correctly servlet contexts. This servlet builds a class loader with the contents of WEB-INF/classes and WEB-INF/lib and manages resource resolution. [SW] *) Updated error reporting to add line, column and location attributes specified in SAXException and TransformerException. The error page in the webapp examples shows the new extra info. [NKB] *) Added new "gump" target to the build, to be used as a general test of Cocoon code. To be used by Gump. It calls docs, javadocs, test and package. Gump descriptor has been modified to use it; now we also have automatic javadoc creation. [NKB] *) cocoon.xconf is moved in WEB-INF for security reasons. The documentation has been updated to reflect the change. [NKB] *) Partial commit of new samples structure. Samples go in samples/ dir with theit own sitemap. All scratchpad samples that are in the samples/ subdir are copied in webapp samples automatically by installscratchpadwar target. [NKB] *) New "set-content-length" configuration for FOPSerializer to allow streaming of large PDFs (default is true for backwards compatibility). [SW] *) The docs now have svg stuff removed and these enhancements: menu items are in text, page title is in text, pages have new clean style courtesy of Stefano, added Stefano's explanation on how to write mails, the docs are generated with the TreeProcessor, the docs generation uses JispStore. [NKB] *) Added new targets: "installwar" asks for the directory in which to put the war and makes it. "installscratchpadwar" does the same but incudes scratchpad libs ans samples. [NKB] *) New POI HSSF Serializer; outputs to the .xls (not .xsl) file format. Added samples as legacy file format support. [NKB] *) New module structure for input, output, and database specifica in scratchpad. Thus it is possible to write generic components for one task and replace input and output dynamically. As an example a generic version of a WildcardMatcher is provided as well as a sample action that uses it. DatabaseActions in scratchpad use this structure as well. [CH] *) Moved ModularDatabase*Actions to new home in scratchpad and reworked them. They now use new module structure. For sample application, copy mod-db directory to cocoon/mount. [CH] *) Changed jdbc datasource to ResourceLimitingJdbcDataSource because it does not require to be able to contact the datasource on startup. Thus race condition with HSQLDB startup is eliminated. [CH] *) Added new Jisp based persistence cache, to improve (1) performance and (2) to solve the problem with long filenames on Windows OS flavours. [VG,GF] *) Removed explicit System.gc() call from StoreJanitor, because this caused performance leaks. [GF] *) Added support for input type=image buttons [TC] *) Deprecated the old cocoon-action=ACTION syntax in favor of the new cocoon-action-[ACTION]=whatever. Still supported though. [TC] *) Added encodeURL transformer for encoding URIs. [BH] *) Using migrated XPath Processor from Avalon Excalibur instead of own component. [CZ] *) Fixed endless loop bug in IncludeXMLConsumer. [CZ] *) Added <xsp:page create-session=""> attribute now processed correctly, as described in the xsp-session logicsheet documentation. Variable 'session' declared and could be used in XSP page code. [VG] *) New implementation of the sitemap engine based on an evaluation tree. This provides super-fast load times (no more compilation), and a slight gain in request processing speed compared to the compiled engine thanks to the HotSpot VM. [SW] *) Added matchers: HeaderMatcher, ParameterMatcher. [VG] *) Added CookieSelector. [VG] *) Added CookieMatcher. [VG] *) Request, response, and session XSP logicsheets in Javascript language are added. [VG] *) Added Cocoon link page. [SM] *) Added 'cocoon.ico'. [SM] *) Cleaned up documentation and refactored it a little. [SM] *) Started to clean up the XML:DB stuff. The XML:DB generators have been deprecated, and a note has been written in the docs suggesting to switch to the XML:DB pseudo-protocol. Configurations have been switched from dbXML to Xindice. [GR] *) New WriteableSource interface that extends Source. Just as Source for reading, it allows to transparently write to various destinations. The first implementation is FileSource to write to files. [SW] *) Added FileWritingTransformer and sample file editor to scratchpad. [JQ] *) Fixed some bugs in the file URI resolving on windows plattforms. [CZ] *) Using migrated entity resolver from Avalon Excalibur instead of own component. [CZ] *) Javascript language now supported by the XSP pages. Samples of Javascript XSP pages are added. [VG] *) Using migrated XML Parser from Avalon Excalibur instead of own component. [CZ] *) Added subprotocol "raw" to the cocoon: protocol. When the subprotocol is appended, the request parameters of the original request are not forwarded to the internal pipelines. Suggested by Michael Hartle [[EMAIL PROTECTED]]. [CZ] *) Added Pizza Java compiler as another alternative to Sun javac and Jikes. [VG] *) ProgramLanguage is decoupled now from the languages compiled into Java. Instead of Class object representing a program, Program interface has been introduced. [VG] *) Text located in XSP language logicsheets now properly quoted. [VG] *) SQL Transformer did enter Infinite Loop. This is fixed now. [CZ] *) Sitemap engine verifies that root element is the <sitemap> element in the 'http://apache.org/cocoon/sitemap/1.0' namespace. [VG] *) Move commonalities between sitemap markup language and XSP markup language into CocoonMarkupLanguage. [VG] *) Minor rewrite of the LogTransformer. The logfile is now resolved using the standard source resolver. The component is now recycled properly. [CZ] *) Minorrewrite of the SQLTransformer. Removed several parameters tests and the use of Properties objects - instead the Parameters object is used directly. [CZ] *) Action LangSelect has been deprecated in favor of LocaleAction. [VG] *) Allow sitemap components to be declared in the cocoon.xconf. Enhance SitemapComponentSelector to store label information provided in the configuration. [VG] *) Added the XPath-enabled DirectoryGenerator (XPathDirectoryGenerator) to scratchpad. [GR] *) XSP engine verifies that root element is the <page> element in the 'http://apache.org/xsp' namespace. [VG] *) Markup language logicsheets in general and XSP logicsheets in particular are now looked up by their namespace URI, not prefix. [VG] *) xsp-request and xsp-response logicsheets got more tags, and now are (almost) backward compatible with the logicsheets in Cocoon 1.8. [VG] *) Cache relies on two types of store components: (1) transient cache, with cache-transient shorthand, and (2) persistent cache, with cache-persistent shorthand. [VG] *) FilesystemStore (used as programs repository) now is created as all other components from the cocoon.xconf, and can be configured to use working directory, cache directory, or any other directory. [VG] *) Calling getInputStream() on a "cocoon:" source now returns the same output as an external call instead of always using an XML serializer. This also allows to get internally data produced by a Reader. [SW] *) Fixed memory leaks in XScript engine. Fixed global and session scope variables: now they are shared between XScript pages as it should be. Page scope variables now visible for all instances of the same page. [VG] *) Added size() method to the Store interface. [VG] *) Prevent PostInputStream from looping if the available() method of the base InputStream is returning 0. [GP] *) Added X-Cocoon-Version header to all responses generated by Cocoon. [VG] *) SystemID for cocoon: pseudo-protocol URIs changed from the form of <schema>:\\<host>:<port>\path\to\resource\from\the\root\sitemap to the form cocoon:\\path\to\resource\from\the\root\sitemap. This provides portability for compiled resources generated from the cocoon: sources. [VG] *) Stored Procedure support for esql plus ability to obtain and use a result set from any column just like a nested query. [CH] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]