Basic web application development with Apache Cocoon 2.1
1. Basic web application
development with
Apache Cocoon 2.1
Jasha Joachimsthal (jasha@hippo.nl)
Jeroen Reijn (j.reijn@hippo.nl)
4 May 2007
Amsterdam, The Netherlands
Basic web application development
with Apache Cocoon
2. Are you using Cocoon?
Basic web application development
with Apache Cocoon
3. Agenda
• What is Cocoon?
• A bit of history
• Cocoon basics
• Demo
• Why Cocoon?
• Future of Cocoon
• Q&A
Basic web application development
with Apache Cocoon
4. What is Cocoon all about?
• Web development framework
• Java & XML
• Separation of Concerns (SoC)
• Content transformation
• Dynamic multi-channel publishing
• Inter-operability with other Java projects
(Lucene, FOP, Spring, Hibernate, etc.)
Basic web application development
with Apache Cocoon
5. History
• Cocoon 1
– Started in Jan. 1999 by Stefano Mazzocchi
– Simple servlet for XSL styling of XML
• Cocoon 2
– Rewrite for performance and scalability
– More than just XSL transformations
Basic web application development
with Apache Cocoon
6. Connectivity
Collect data from multiple resources
• Filesystem
• SOAP webservice
• LDAP
• Databases (XML, SQL, Object)
• WebDAV
• XML feed
If that's not enough, use your current code in Cocoon from
• JSF
• JSP
Basic web application development
with Apache Cocoon
12. Pipeline example
<map:pipeline>
<map:match pattern="body-**.html">
<map:generate type="file" src="{1}.xml"/>
<map:transform type="xslt" src="doc2html.xsl"/>
<map:serialize type="html"/>
</map:match>
</map:pipeline>
Basic web application development
with Apache Cocoon
13. Cocoon Forms framework
• Create forms
• Ajax / Dojo
• Model
• Template
• Binding (bean or xml)
Basic web application development
with Apache Cocoon
14. Go with the flow
• Continuations
• Rhino (Javascript)
• JavaFlow
Basic web application development
with Apache Cocoon
15. Caching
• Think about how you design your web
application.
• Four kinds of caching
• Apache mod_cache
Basic web application development
with Apache Cocoon
16. Demo
• Let’s show some stuff!
Basic web application development
with Apache Cocoon
17. Why Cocoon?
• Powerful multi-channel publishing
• Inter-operability
• Active community
– 20+ active committers (60+ overall)
– 5500 mails on userlist in 2006
– Annual GetTogether (100+ people)
Basic web application development
with Apache Cocoon
18. Future
• Cocoon 2.2
– Dependency
management (M2)
– Spring-based
framework
– Modularity
• Cocoon 3?
Basic web application development
with Apache Cocoon
19. Resources
• Website:
– http://cocoon.apache.org/
• Mailinglists:
– users@cocoon.apache.org
– dev@cocoon.apache.org
• Wiki:
– http://wiki.apache.org/cocoon/
Basic web application development
with Apache Cocoon
Cocoon has not always been this way, but has increased in the number of features over the years.
{1} represents the value of the ** in the match pattern
Model: The form model is defined by a form definition. This is an XML file describing the structure of the form. Template: The presentation of the form is (usually) handled by a form template. The form template is an XML file (e.g. an XHTML file, but this could be any markup). Binding: To fill the form with data from a bean or XML document, a binding framework is available.
Picture taken from: http://www.flickr.com/photos/mell242/46500577/ A continuation is a representation of some of the execution state of a program at a certain time.