How to Contribute
See How to contribute to Apache Cocoon.
These are not necessarily deemed to be high enough quality to be included in the
core distribution, but they have been tested under
several key environments, they are provided under the same license
as Cocoon, and they are included in the Cocoon distribution under the
None as yet! - although you can expect that some of the links
listed below will eventually migrate to the "contributed components" level, and
then maybe even into the main distribution.
Submissions of modifications
to Cocoon which are awaiting review. Anyone can
comment on them on the cocoon-dev mailing list - code reviewers are needed!
Use these at your own risk - although Cocoon has no guarantee
either, these patches have not been reviewed, let alone accepted.
The other extensions listed here are not endorsed by the Cocoon
project either - they are provided as a convenience only. They may or may not work,
they may or may not be open source, etc.
To have a link added to this table, see How to contribute
to Apache Cocoon.
Emacs Editing Functions for XSL/XSP
|Name and Link
||"Ready to go" Cocoon distribution
||Tomcat and Cocoon 1 and 2, pre-configured and ready to run on Windows
||Same as Cocoon
||A minor mode for (X)Emacs that allows you to invoke an XSLT processor, or Cocoon on a buffer,
thus yielding a fast turnaround time.
||Supports Xalan, Cocoon, Saxon
||"A Servlet which emulates Oracle Web Application Server plsql Cartridge or the newest Oracle IAS mod_plsql.
DB Prism provides Java Stored Procedures, and it is 100% compatible with OWS 3.x/OAS 4.x and IAS 1.0. It supports
UTF-8 database encoding, Oracle 7, 8, and Oracle Lite. It includes DB Producer for the Cocoon framework so that it can
integrate with XML technology from http://xml.apache.org/ . It also includes the DB Prism/Cocoon Content Management
System (CMS), based on Oracle CMS."
||Marcelo F. Ochoa
||Performs LDAP queries and serializes their results as XML. Alternative to Cocoon's LDAP Processor.
||Obsolete - see Cocoon 2 alternatives
||Protects XML/XSP pages, so that they can only be viewed/executed by
authenticated users. Supports several authentication schemes using a
database or encrypted files.
||"Suitable for production use. Syntax/Concept finalized, i.e. future
versions will be backwards-compatible"
||Implements a generic SOAP client. Any SOAP server wanting to present its
services to the world over a uniform HTTP-based interface can do so via
an XML page using the SOAP taglib. Includes sample app and comprehensive docs.
||"Suitable for production use. Syntax/Concept not finalized."
Currently not Cocoon 2 compatible.
||Sends emails via an IMAP server.
||Not fully functional. Mail taglib(s) in Cocoon distribution are probably
||Bavo De Ridder
||A "beginner's guide" to XSP.
|UML Docs for Cocoon 1.8
||Complete UML diagrams for Cocoon 1.8. UML appears in top pane, javadoc in bottom right.
Generated using Together 4.1.
Session toy and number-guessing game
||Demonstrates use of session variables (but not session taglib)
Thanks to Ovidiu Predescu for these.
"For those of you that use Emacs/Xemacs to edit XSL/XSP pages, here are some
handy functions you can use in your .emacs to speed up the editing. They insert
the commonly used tags in the current buffer, indented and nicely formatted.
They were developed and used on Xemacs 21.1, but they should work on GNU Emacs
"I'd be curious to know what other little things people use in emacs to speed up
(defun get-value-from-minibuffer (display format-string)
(let ((input (read-from-minibuffer display)))
(if (string= input "")
(format format-string input))))
(get-value-from-minibuffer "Template name: " " match=\"%s\"")
(get-value-from-minibuffer "Test expression: " " test=\"%s\"")
(get-value-from-minibuffer "Select expression: " " select=\"%s\"")
'('&'o'> "<xsp:logic>" '>'n'>'n
'('&'o'> "<xsp:expr>" '>'n'>'n
(get-value-from-minibuffer "Value: " " select=\"%s\"")
(get-value-from-minibuffer "Select: " " select=\"%s\"")
(define-key xml-mode-map "\C-ct" 'tempo-template-xsl-template)
(define-key xml-mode-map "\C-ci" 'tempo-template-xsl-if)
(define-key xml-mode-map "\C-cf" 'tempo-template-xsl-for-each)
(define-key xml-mode-map "\C-cv" 'tempo-template-xsl-value-of)
(define-key xml-mode-map "\C-ca" 'tempo-template-xsl-apply-templates)
(define-key xml-mode-map "\C-cl" 'tempo-template-xsp-logic)
(define-key xml-mode-map "\C-ce" 'tempo-template-xsp-expr))
(add-hook 'xml-mode-hook 'my-xml-templates-hook)