presentation: Cocoon as Alphabet Soup image-directory: cocoon-images Author: Warrell Harries For: Wiley Interscience Date: May 2007 A Rich bowl of Cocoon Morsels from A-Z slide: AJAX, Authentication and Aggregation hint-style: LittleText img_rightFifth: a.jpg subtitle: CForm Definition to use AJAX code: Environment: var value = this.value; var appwidget = widget.lookupWidget("../appGroup"); if (value != null) { // Get the corresponding type list appwidget.setSelectionList(value + ".xml"); appwidget.state = Packages.org.apache.cocoon.forms.formmodel.WidgetState.ACTIVE; } else { // Set an empty selection list appwidget.setSelectionLis ( new Packages.org.apache.cocoon.forms.datatype.EmptySelectionList("Select an Environment First") ); appwidget.state = Packages.org.apache.cocoon.forms.formmodel.WidgetState.DISABLED; } // Always set the type value to null. Note that it will also fire an event on the "type" // widget if it already had a value. appwidget.value = null; Please select an Environment subtitle: Pipeline matcher to handle asynchronous browser updates code: subtitle: Authentication Framework code: code: note: Deprecated in favour of CoWarp http://osoco.sourceforge.net/cowarp/ subtitle: Aggregation img_fullWidth: aggregate.jpg Aggregation is a very powerful concept that allows a document be generated from several other documents. Strictly speaking, all parts are just concatenated in this order to a new document. note: "cocoon:" is a pseudo protocol and refers to another pipeline. "cocoon:/" refers to a pipeline from the current sitemap while "cocoon://" refers to a pipeline from the root sitemap. Other pseudo protocols exist: "context:" is another pseudo protocol, "context://" is referring to a resource using the servlet context. "resource:" is yet another pseudo protocol, "resource://" is referring to a resource from the context classloader. All these pseudo protocols are declared in the cocoon.xconf. Thus, the parts refer to the pipeline fragments above. The optional element attribute places the content in a new root element named as specified, using the namespace provided by an optional ns attribute. slide: Blocks, Browsers and Batik hint-style: LittleText img_rightFifth: b.jpg subtitle: Blocks package functional components and encourage modularity Current release uses build properties 2.2 adopts Maven archtypes subtitle: Use of CForms brings automatic cross-browser support No more hand-cranked DHTML subtitle: Batik brings SVG into the application Support dynamic graphics in static generated use-cases slide: Customise, CAPTCHA and CLI hint-style: LittleText subtitle: Sometimes you just have to write your own component img_rightFifth: c.jpg Custom Serializers, Transformers and Generators prove invaluable for tight coupling to legacy protocols, interfaces and API's Web Service, NNTP, EJB's, Charting, SAP code: public class EJBTransform extends AbstractDOMTransformer { protected org.w3c.dom.Document transform(org.w3c.dom.Document document) { org.w3c.dom.Document doc = null; try { Context ctx = new InitialContext(); Object ejbClientHome = ctx.lookup("ejb/"+configuredEJBApp + "/com/ejb/services/clientmanager/ejb/ClientManager"); com.ejb.services.clientmanager.ejb.ClientManagerHome clientManagerHome = (com.ejb.services.clientmanager.ejb.ClientManagerHome) javax.rmi.PortableRemoteObject.narrow((org.omg.CORBA.Object) ejbClientHome, com.ejb.services.clientmanager.ejb.ClientManagerHome.class); com.ejb.services.clientmanager.ejb._ClientManager_Stub clientManager = (com.ejb.services.clientmanager.ejb._ClientManager_Stub) clientManagerHome.create(); String processData = convert( document ); String updatedData = clientManager.saveClient( processData, "S" ); subtitle: Completely Automated Public Turing test to tell Computers and Humans Apart Transformer and Reader img_leftThird: custom.jpg subtitle: CLI Offline Generation Modem - http://forrest.apache.org/ Many Web 1.0 sites are directed graphs capable of being statically generated (finite user interaction = finite page tree) code: slide: Development, Databases and Daisy hint-style: LittleText img_rightFifth: d.jpg subtitle: Avoid the Exclusion Zones that Afflict Web Development Projects note: Sitemap, Pipeline and Components prevent developers treading on each others toes Instead note: They are more likely singing off the same Hymn Sheet subtitle: SQL Transformer Injects Relational Model into the pipeline DOM SQL Query result-sets returned as XML was early way of leveraging power of XSLT into Web applications Typical usage would use JX Generator to enrich the XML FILE WITH request parameters. The second stage of the pipeline invokes the SQL Transformer XSLT Transformer usage below outputs namespace elements that contain SQL queries note: The parameters of these queries can be drawn from the input document, passed in from the sitemap and derived from XPath (2.0 in this case) code: select appointmentref from CLIENTMANAGER.APPOINTMENT a, CLIENTMANAGER.CLIENT c where a.clientuid=c.clientuid and substr(char(appointmentdate),1,16) = '' and a.ACTIVE=1 and c.SOURCECODE in ('') subtitle: Daisy is a CMS that offers rich out-of-the-box functionality combined with solid foundations for extensibility and integration. slide: eXist, EhCache and Error Handling hint-style: LittleText img_rightFifth: e.jpg slide: Flow, Forms and FOP hint-style: LittleText img_rightFifth: f.jpg slide: Generators hint-style: LittleText img_rightFifth: g.jpg slide: Hippo hint-style: LittleText img_rightFifth: h.jpg slide: Integration, Integration and i18n hint-style: LittleText img_rightFifth: i.jpg slide: Java, Javascript and JFreeChart hint-style: LittleText img_rightFifth: j.jpg img_leftThird: chart.jpg slide: Kontinuation hint-style: LittleText img_rightFifth: k.jpg slide: LDAP, Lucene and Linotype hint-style: LittleText img_rightFifth: l.jpg slide: Maven, Modules and Messaging hint-style: LittleText img_rightFifth: m.jpg slide: Naming (JNDI) hint-style: LittleText img_rightFifth: n.jpg slide: Objects hint-style: LittleText img_rightFifth: o.jpg slide: Portals, POI and Podcasts hint-style: LittleText subtitle: Portal Infrastructure subtitle: Excel your way into the heart of the corporation subtitle: podcasting sound: podcast.mp3 img_rightFifth: p.jpg slide: xQuery hint-style: LittleText img_rightFifth: q.jpg slide: Readers, Resources and Repositories hint-style: LittleText img_rightFifth: r.jpg slide: Serializers, Sessions and Syndication hint-style: LittleText img_rightFifth: s.jpg slide: Transformers and Tooling hint-style: LittleText img_rightFifth: t.jpg slide: Use-cases, URI's and Utility hint-style: LittleText img_rightFifth: u.jpg slide: Velocity, Validation and Verbosity hint-style: LittleText img_rightFifth: v.jpg slide: Web 2.0, Web3 and WebDAV hint-style: LittleText img_rightFifth: w.jpg slide: XSLT 2.0 hint-style: LittleText img_rightFifth: x.jpg slide: YOU hint-style: LittleText img_rightFifth: y.jpg slide: Zeitgeist hint-style: LittleText img_rightFifth: z.jpg