]> Test, test, test :-) Complete (means put all allowed constructs and combinations) the lint/sitemap.xmap file. Enhance the RELAX NG grammar for sitemap. For 2.2: Views must start not from the first encountered label, but from the last one (see http://marc.theaimsgroup.com/?l=xml-cocoon-dev&m=101784499622172) Finish the design and contracts of flow. Add more tests and samples and documentation. Finish the refactoring of samples Finish moving the scratchpad stuff in main trunk. Ensure that recyclable components always release their references, even when they are not pooled. The easiest way is to make them disposable and clean up in dispose. Lucene is writing info to stdout when searching. Redesign FragmentExtractorGenerator/Transformer so that it works on a clustered server: store fragments in the session rather than in a local store.
This couldn't work, because if you working with caching pipelines, you cannot be sure that the entries are in the session(Stephan).
Remove ContainerWidget concept from cforms.
Allow TeeTransformer to run a system command for debugging purposes Ported various caching pipeline fixes and improvements from branch 2.1:
  • locking feature, see http://svn.apache.org/viewcvs.cgi?rev=379792&view=rev
  • COCOON-1279: caching point pipelines and smart caching, see http://issues.apache.org/jira/browse/COCOON-1279
  • COCOON-1799: Threads waste when reading a not found resource, see http://issues.apache.org/jira/browse/COCOON-1799
Move BackgroundEnvironment from Cron block into the core. Remove deprecated WildcardHelper. Use WildcardMatcherHelper instead. Property files are read in alphabetical order to provide a reliable read order. Add setting "org.apache.cocoon.sitemap.internalonly.disable" to disable all internal pipelines for development purposes. Remove the SitemapConfigurable interface completly. The new include and property mechanism provides a cleaner way of per sitemap configurations. (Compatibility for global sitemap variables is provided but will be removed in later versions.) Properties can now be defined on a per sitemap base. This includes different set of properties for different running modes. Add support for different running modes. This allows to have different configurations for several environments like production, testing or development. On startup of Cocoon one can select the running mode by using a system property. Rewrote the whole core container by using Spring as the component container. It is now possible to use Avalon based configuration files next to Spring style configuration files and they are all "merged" and managed by one single container instance. Each sitemap gets its own container with possibly own configuration. Removed obsolete support for JCS. XMLSerializer and XMLDeserializer are no longer managed components. Use the XMLByteStreamCompiler and XMLByteStreamInterpreter classes directly. Add hierarchical property configuration for reloading. The various components checking for changes in files like sitemaps, xconfs or flow scripts can now be turned on or off by a single property. Added JMX support to the core ECM++ I18n: XMLResourceBundle checks now for both the new and the old namespace. AbstractSAXTransformer supports removal of own namespace prefixes. CInclude transformer now removes its namespace prefixes. Source that declares namespace fails JXPath/Linkrewriter/Input Modules. Each block has now it's own status file. Improved blocks build exclusion/inclusion. See blocks.properties for more info. Samples pages reorganized: the first page shows only the most important samples, selected in src/webapp/samples/blocks/samples-pages.xml, and another page shows all samples. Core samples moved to new blocks: core-samples-main and core-samples-additional. Update Avalon framework to 4.3, Avalon LogKit to 2.1, Excalibur Instrument to 2.1, Excalibur Logger to 2.1, Excalibur Pool to 2.1, Excalibur SourceResolve to 2.1, Excalibur Store to 2.1, Excalibur XMLUtils to 2.1 and Excalibur Database to 2.1. Add property mechanism for Cocoon configuration. All settings for Cocoon can now be configured using properties instead of putting them in web.xml. Allow the use of property replacements in logging, xconf and sitemap configurations. Use includes for logkit configurations and for sitemap components. Moved following components into core: TraversableGenerator, XPathTraversableGenerator (both from repository block), CSVGenerator (from scratchpad block), FragmentExtractorTransformer and FragmentExtractorGenerator (both from batik block). Added CookieModule as a more convinient way to access cookie values as {cookie:query} in alternative to {request:cookies[name='query']/value}. Added parameter "show-cocoon-version" to web.xml for configuring whether X-Cocoon-Version response header should be sent. Default is true. In a security paranoid environment you may want to set it to false in order to hide from the outside world which Cocoon version you are running. Fix a huge memory leak in error pipelines that was caused by unreleased components. Remove deprecated emptyAttributes from the AbstractSAXTransformer. Per sitemap classloader factory is configurable using the role name. The junit.test.include.* options in build.properties can be used to run only a subset of JUnit tests, to shorten debugging cycles. Added reflection friendly utility methods for the Cocoon environment according to vote http://marc.theaimsgroup.com/?t=111590936900001&r=1&w=2: Map getAttributes(), Map getParameters(), Map getHeaders() for Request and Map getAttributes() for Session and Context. Removed o.a.c.generation.JXTemplateGenerator from core. Introduced o.a.c.template.jxtg.JXTemplateGenerator as the official templating language. New commands available: <jx:call macro="${macroName"}/> and <jx:attribute name="${attributeName}" value="${attributeValue}"/> Removed EventRecorder (in o.a.c.t.helpers package). Removed deprecated Pizza compiler support in XSP. Each sitemap can now have its own classpath using <map:classpath>. This allows sitemap-specific components to be deployed locally with the sitemap. Reloading the sitemap recreates the classloader, thus allowing hot reloading of changed classes. Fix thread safety problem in JXTemplateGenerator.setup() concerning template script reparsing. Polish i18n for CForms. Create proxies for pooled components. Pooled components can now be used in the same way as thread safe components, the client code does not need to know if they are pooled anymore. javaflow: updated to the API change, lazy method lookups, cleaner context handling, for the moment removed the dependency to the form block Fixed caching of i18n bundles when using multiple locations. Add an experimental lazy loading in the service manager that dramatically speeds up Cocoon init time (approx 4 times faster). To use it, set JAVA_OPTIONS="-Dorg.apache.cocoon.core.LazyMode=true" prior to starting "cocoon.sh servlet". Add an include feature to xconf files and xmap files, to allow an easier configuration of the system. The main cocoon.xconf is now a list of inclusion of the main core components and a separate xconf file for each block. Additional role files can also be included. Flowscript: Removed support for passing sitemap parameters into flowscript function as positional arguments. Use cocoon.parameters instead. Use official Rhino implementation which supports continuations since 1.6. For the most flowscripts there shouldn't be any issues, though there are differences that may lead to compatibility issues:
  • catch(return)
  • catch(continue)
  • catch(break)
aren't supported any more. catch(break) can be replaced by passing the function to cocoon.sendPageAndWait([pipeline], [bizdata], [function], [time-to-live]).
catch(return) and catch(continue) e.g. var pool = ...; function someFunction() { var conn = pool.getConnection(); ... catch (break) { conn.close(); conn = null; } catch (continue) { conn = pool.getConnection(); } } can be replaced by catching the ContinuationException: var pool = ...; function someFunction() { var conn = null; try { if (conn == null) { conn = pool.getConnection(); } ... } finally { conn.close(); conn = null; } }
Removed the PHP block. Remove support for Excalibur instrumentation. Component, Composable, ComponentManager, ComponentSelector and ComponentException are no longer support: Serviceable, ServiceManager, ServiceSelector and ServiceException have to be used. Own implementation of Avalon based container. Apply patch: Add support for calling webservices from within Flowscript. New getSitemapPath() method on the Request object to get the path to the current sitemap even if you are in a sub sitemap. Added an abstract request wrapper class as well. Add scoped request attributes (global/request). Update to servlet specification 2.3. Deprecate methods implementsInterface(String, String), implementsInterface(Class, Class), lastModified(Class) and which(Class) in org.apache.cocoon.util.ClassUtils These methods will be removed on the next version. Move the sitemap engine to Serviceable (in replacement of Composable) and remove SitemapComponentSelector and OutputComponentSelector that were no more needed. Add profiling/debugging API for the sitemap. Add sitemap versioning support to tree processor and remove unused support for other tree based languages. Correct redirect handling for internal redirects. SWF block: Removed the deprecated block and added a flash sample in the hello world section. Deprecated methods in class org.apache.cocoon.util.IOUtils to be removed in Cocoon 2.3:
  • String baseName(String filename)
  • Object bytesToObject(byte[] bytes)
  • Object deserializeObject(File file)
  • String fileComponent(String filename)
  • byte[] objectToBytes(Object object)
  • String pathComponent(String filename)
  • void serializeObject(File file, Object object)
  • void serializeString(File file, String string)
  • void serializeString(File file, String string, String encoding)
Deprecated class org.apache.cocoon.util.JavaArchiveFilter. To be removed in Cocoon 2.3. Moved to the deprecated dir. Redesign the internal environment handling (request processing) and moved private classes into own packages. Remove deprecated RequestLifecycleComponent and GlobalRequestLifecycleComponent. Remove deprecated (2.0.x) caching system; only 2.1.x is supported. Remove deprecated sitemap related components and classes. Remove deprecated Store implementations. Excalibur Store/JCS are used instead. Remove deprecated Parser and Entity Resolver. Excalibur XMLUtils is used instead. Remove deprecated XSLT Processor. Excalibur XMLUtils is used instead. Remove deprecated Source handling. Excalibur Sourceresolve is used instead. Remove deprecated getOutputStream() method from Environment. Remove deprecated methods from SimpleCharStream, Notifier, AbstractComplementaryConfigurableAction, StringUtils. Remove deprecated parser constant from Constants and remove deprecated class DefaultsMetaModule. Remove deprecated methods from XMLUtils, DOMUtil, DOMBuilder and SourceUtil.