Introducing Apache Cocoon

Total Page:16

File Type:pdf, Size:1020Kb

Introducing Apache Cocoon <CocoonDay="2003-Nov-18" /> Introducing Apache Cocoon Matthew Langham Leiter CompetenceCenter OpenSource S&N AG Open Source Introducing Apache Cocoon The Project Origins Started by Stefano Mazzocchi Redesign of Apache.org Frustrated by the limitations of HTML Wanted to use emerging technologies (XML/XSL) Today Now one of the most important Apache projects Incorporates technologies from various projects Large community Large commercial adoption Open Source 24.11.2003 2 Open Source Introducing Apache Cocoon Timeline 1979 Sendmail –Eric Allmann Open Source 1983 GNU –RIchardStallmann 1986 PERL 1991Linux 1994 Red Hatfounded 1995 Apache Web Server “Open Source” coined in 1998 1998 Netscape Mozilla Netscape releases source code 1998 „Open Source“ “Free software” has been around since at least the 1980’s Today “Open Source” is used liberally Different licences Different availability of source and binaries Licences Main aspect when using commercially At least 30 different licences Cocoon is released under the Apache Software Licence 24.11.2003 3 Open Source Introducing Apache Cocoon What is Cocoon? In A Nutshell Extensible Java framework for XML based publishing Uses XSLT for multi-channel publishing Allows the integration of various data-sources using provided components Allows processing, aggregation of data Additional components provide portal, authentication, forms, flow.. Drop in new components to extend functionality Usage scenarios Web Sites Publishing of Data (Web Printing) Portals XML Processing architectures Just about anything really…. 24.11.2003 4 Open Source Introducing Apache Cocoon Why is Cocoon different? Completely based on XML Separation of Concerns (SoC) Site Administrator Content Deployer Layout Deployer Provides for many (all?) aspects of today's Web applications Publishing, Aggregation Portals, Form handling Extensibility Protects your investment Healthy Community 24.11.2003 5 Open Source Introducing Apache Cocoon Why is Cocoon different? Document generation on the server Logical names used „http://myserver/cocoon/helloworld“ Powerful Process Description Caching for performance Flexible Data Integration / Aggregation XML files, XML over HTTP Databases, LDAP, SAP … Flexible Publishing to different formats using XSLT HTML, WML, XML PDF, SVG, PS, Office Documents … 24.11.2003 6 Open Source Introducing Apache Cocoon Installation What do you need A computer J Java JDK An Internet connection Or some way of getting the distribution Download the distribution from an Apache mirror Includes Jetty as a servlet engine $> ./build.sh $> ./cocoon.shservlet Enjoy 24.11.2003 7 Open Source Introducing Apache Cocoon 24.11.2003 8 Open Source Introducing Apache Cocoon Finished! Well....ok.....not quite.... 24.11.2003 9 Open Source Introducing Apache Cocoon NetNet The Big Picture Listens for incoming requests R R e (typically on Port 80) e q q u u e e s s t / t R Web Server / R Web Server e e s p s p o o n n s e s e Communication channel (type varies depending on Vendor) SerServletvlet Engine Engine maps Request to a Servlet ServletEngine NetNet maps Request to a Servlet ServletEngine ConConfigufiguratrationion Servlet API Servlet API Canalso listen for incoming requests (e.g. Tomcat on Port 8080) C O C o O t o c h t o c h e o o e r o n r S n - S e S - e r S e v r e r l v e v r l e l v t e s l t e t s t 24.11.2003 10 Open Source Introducing Apache Cocoon Documentation Generation Dynamic Document Generation Based on Request-Response-Cycle (when run as a Servlet) Other Environments possible By defining a processing pipeline per document Getting Content Adding Layout Sending Response Extensible by Logic 24.11.2003 11 Open Source Introducing Apache Cocoon Separating Content and Layout Layout (XSLT) Document (HTML) apply Content (XML) apply Document (PDF) Layout (XSLT) 24.11.2003 12 Open Source Introducing Apache Cocoon Putting Cocoon to work Hello World example Content: a simple static XML file Layout: an XSLT Stylesheet generating HTML 24.11.2003 13 Open Source Introducing Apache Cocoon Putting Cocoon to work Content: Hello World XML File <?xmlversion="1.0"?> <document> <title>Hello</title> <text>This is my first Cocoon page!</text> </document> 24.11.2003 14 Open Source Introducing Apache Cocoon Putting Cocoon to work Layout: The XSLT Stylesheet File <?xmlversion="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="document"> <html> <body> <h1><xsl:value-of select="title"/></h1> <p><xsl:value-of select="text"/></p> </body> </html> </xsl:template> </xsl:stylesheet> 24.11.2003 15 Open Source Introducing Apache Cocoon 24.11.2003 16 Open Source Introducing Apache Cocoon Building a Pipeline Content Layout Document (XML) (XSLT) (HTML) Generator Transformer Serializer 24.11.2003 17 Open Source Introducing Apache Cocoon CoCoccoonoon (Servlet)(Servlet) Processing SitemapSitemap Request Request Generator Transformer Serializer Response Content Layout (HTML) (XML) (XSLT) 24.11.2003 18 Open Source Introducing Apache Cocoon Separating Content and Layout Retrieve Content Layout Serialize Content Request File Generator HTML Serialize Stylesheet HTML File Generator WML Serialize Stylesheet WML File SQL Gener- Trans- HTML Serialize ator former Stylesheet HTML 24.11.2003 19 Open Source Introducing Apache Cocoon Cocoon Basics Sitemap Centralized Configuration File in XML Sub-sitemaps possible <map:sitemap> Contains set of ready-to-use components <map:components> Use them to build functions <map:generators/> <map:transformers/> Write and „drop-in“ your own <map:serializers/> <map:readers/> Contains collection of Pipelines (Functions) <map:selectors/> <map:matchers/> <map:actions/> <map:pipes/> </map:components> <...> <map:pipelines> <map:pipeline/> <map:pipeline/> <...> </map:pipelines> </map:sitemap> 24.11.2003 20 Open Source Introducing Apache Cocoon Defining a Pipeline Sitemap is an XML document Describes the processing steps for a request Defines the pipeline One Generator 0-n Transformer One Serializer <map:generate type="file" src="helloworld.xml"/> <map:transform type="xslt" src="helloworld2html.xsl"/> <map:serialize type="html"/> 24.11.2003 21 Open Source Introducing Apache Cocoon Defining a Pipeline Sitemap is an XML document Describes the processing steps for a request Matches a pipeline to a request URI http://localhost:8888/helloworld <map:match pattern="helloworld" type="wildcard"> <map:generate type="file" src="helloworld.xml"/> <map:transform type="xslt" src="helloworld2html.xsl"/> <map:serialize type="html"/> </map:match> 24.11.2003 22 Open Source Introducing Apache Cocoon Sitemap defaultdefault compocomponnentent <map:sitemap xmlns="http://xml.apache.org/cocoon/sitemap/1.0"> <map:components> <map:generators default="file"> <map:generate name="file" src="org.apache.cocoon.generation.FileGenerator"/> </map:generators> <map:transformers default="xslt"> <map:transformer name="xsltnamename" src="org.apache.cocoon.transformation.TraxTransformersrcsrc "/> </map:transformers> <map:serializers default="html"> <map:serializer name="html" src="org.apache.cocoon.serialization.HTMLSerializer" mime-type="text/html"/> </map:serializers> <map:matchers default="wildcard"> <map:matcher name="wildcard" src="org.apache.cocoon.matching.WildcardURIMatcherFactory"/> </map:matchers> <map:pipes/> defaultdefault ccoomponentmponent </map:components> <map:pipelines> usedused <map:pipeline> <map:match pattern="helloworld"> <map:generate src="helloworld.xml"/> <map:transform src="helloworld2html.xsl" type="xslt"/> <map:serialize/> </map:match> </map:pipeline> explicit </map:pipelines> explicit </map:sitemap> compocomponnentent usedused 24.11.2003 23 Open Source Introducing Apache Cocoon Complex Pipeline Transformer example with commands Generator SQL Transformer Transformer Serializer Performs Completed XML Reads Select is passed on XML file <result> <result> <name>Matthew</name> <name>Matthew</name> <address> <address> <select from database> Paderborn, Germany </address> Database </address> </result> </result> 24.11.2003 24 Open Source Introducing Apache Cocoon Matching a request Matcher Matches the incoming request to the correct pipeline Different types of matchers available Most common: wildcard <map:match pattern="news/*" type="wildcard"> <map:generate src="newsfeeds/{1}.xml" type="file"/> <map:transform src="news2html.xsl" type="xslt"/> <map:serialize type="html"/> </map:match> <map:match pattern="products/*" type="wildcard"> <map:generate src="products/infos/product_{1}.xml" type="file"/> <map:transform src="products2html.xsl" type="xslt"/> <map:serialize type="html"/> </map:match> 24.11.2003 25 Open Source Introducing Apache Cocoon Cocoon Basics Using Cocoon Program the Sitemap Define the matches and pipelines Separating Content from Layout Generator Transformer Transforme r Transforme r Serializer File / HTTP / FTP XSLT Transformer HTML Serializer Generator (Xalan, XSLTC, Saxon...) WML Serializer Directory Generator Data Transformer XML Serializer System Info Generators (SQL, LDAP, Session...) PDF/PS/RTF Serializer Scripting Generators Aggregation Transformers Office Documents (XSP, Velocity, Jexl ...) Filter Transformers Serializer Custom Custom Custom 24.11.2003 26 Open Source Introducing Apache Cocoon Beyond The Basics 24.11.2003 27 Open Source Introducing Apache Cocoon Additional components Selectors Areusedtodetermine the"flow"throughapipeline They are like"if-else-if"statementsinprogramming languages Example: BrowserSelector Can detect used browser Select stylesheetsdependentonthe browser Other
Recommended publications
  • Web Application Firewall Security Advisory
    Web Application Firewall Web Application Firewall Security Advisory Product Documentation ©2013-2019 Tencent Cloud. All rights reserved. Page 1 of 20 Web Application Firewall Copyright Notice ©2013-2019 Tencent Cloud. All rights reserved. Copyright in this document is exclusively owned by Tencent Cloud. You must not reproduce, modify, copy or distribute in any way, in whole or in part, the contents of this document without Tencent Cloud's the prior written consent. Trademark Notice All trademarks associated with Tencent Cloud and its services are owned by Tencent Cloud Computing (Beijing) Company Limited and its affiliated companies. Trademarks of third parties referred to in this document are owned by their respective proprietors. Service Statement This document is intended to provide users with general information about Tencent Cloud's products and services only and does not form part of Tencent Cloud's terms and conditions. Tencent Cloud's products or services are subject to change. Specific products and services and the standards applicable to them are exclusively provided for in Tencent Cloud's applicable terms and conditions. ©2013-2019 Tencent Cloud. All rights reserved. Page 2 of 20 Web Application Firewall Contents Security Advisory Command Execution Vulnerability in Exchange Server SQL Injection Vulnerability in Yonyou GRP-U8 XXE Vulnerability in Apache Cocoon (CVE-2020-11991) Arbitrary Code Execution Vulnerability in WordPress File Manager Jenkins Security Advisory for September Remote Code Execution Vulnerabilities in Apache Struts 2 (CVE-2019-0230 and CVE-2019- 0233) SQL Injection Vulnerability in Apache SkyWalking (CVE-2020-13921) ©2013-2019 Tencent Cloud. All rights reserved. Page 3 of 20 Web Application Firewall Security Advisory Command Execution Vulnerability in Exchange Server Last updated:2020-12-15 15:20:26 On September 17, 2020, Tencent Security detected that Microsoft issued a security advisory for a command execution vulnerability in Exchange Server (CVE-2020-16875).
    [Show full text]
  • Návrhy Internetových Aplikací
    Bankovní institut vysoká škola Praha Katedra informačních technologií a elektronického obchodování Návrhy internetových aplikací Bakalářská práce Autor: Jiří Nachtigall Informační technologie, MPIS Vedoucí práce: Ing. Jiří Rotschedl Praha Srpen, 2010 Prohlášení Prohlašuji, že jsem bakalářskou práci zpracoval samostatně a s použitím uvedené literatury. V Praze, dne 24. srpna 2010 Jiří Nachtigall Poděkování Na tomto místě bych rád poděkoval vedoucímu práce Ing. Jiřímu Rotschedlovi za vedení a cenné rady při přípravě této práce. Dále bych chtěl poděkovat Ing. Josefu Holému ze společnosti Sun Microsystems za odbornou konzultaci. Anotace Tato práce se zaměřuje na oblast návrhu internetových aplikací. Podrobně popisuje celý proces návrhu počínaje analýzou za použití k tomu určených nástrojů jako je use case a user story. Další částí procesu je návrh technologického řešení, které se skládá z výběru serverového řešení, programovacích technik a databází. Jako poslední je zmíněn návrh uživatelského rozhraní pomocí drátěných modelů a návrh samotného designu internetové aplikace. Annotation This work focuses on web application design. It describes whole process of design in detail. It starts with analysis using some tools especially created for this purpose like use case and user story. Next part of the process is technical design which consists from selection of server solution, programming language and database. And finally user interface prepared using wireframes is mentioned here alongside with graphical design of the web application. Obsah Úvod
    [Show full text]
  • Opensource Webframeworks(Cocoon,Struts
    Webframeworks - Teil 2 Cocoon, Jetspeed, Struts und Co. AUTOR Thomas Bayer ) Schulung ) Orientation in Objects GmbH Veröffentlicht am: 1.4.2003 ABSTRACT Nachdem die Frage geklärt wurde, wann ein Framework eingesetzt werden soll, hilft ) Beratung ) Ihnen der zweite Teil bei der Auswahl eines passenden Frameworks. Bei den im Folgenden beschriebenen Frameworks handelt es sich ausschließlich um Open Source Frameworks. Eine kommerzielle Verwendung ist in den meisten Fällen durch die Apache oder LGPL Lizenz möglich. Diese Frameworks sind nicht nur aus Kostengründen immer häufiger in kommerziellen Projekten zu finden. Ein Framework muss leben, es genügt nicht, dass ein Hersteller von Zeit zu Zeit Updates anbietet. Wichtig für die Entscheidung für ein Framework ist die Gemeinschaft der ) Entwicklung ) Entwickler, die das Framework entwickeln und verwenden. Offene Frameworks besitzen meist eine größere Entwicklergemeinde als hochpreisige Produkte. Für diesen Artikel wurden die Frameworks kategorisiert und Überschriften zugeordnet. Die einzelnen Kategorien wie MVC oder Templating Framework gehen teilweise ) ineinander über und sind schwer zu trennen. Besonders das "Schlagwort" MVC beansprucht fast jedes Framework für sich. Artikel ) Trivadis Germany GmbH Weinheimer Str. 68 D-68309 Mannheim Tel. +49 (0) 6 21 - 7 18 39 - 0 Fax +49 (0) 6 21 - 7 18 39 - 50 [email protected] Java, XML, UML, XSLT, Open Source, JBoss, SOAP, CVS, Spring, JSF, Eclipse 5 MVC FRAMEWORKS Die folgenden Jakarta Projekte stehen in enger Beziehung zu Turbine: • Service Framework Fulcrum Fast alle der hier aufgeführten Frameworks behaupten, die Model • Das verteilte Java Caching System JCS View Controller Architektur zu unterstützen. Ein typischer Vertreter, der sich stark auf MVC fürs Web konzentriert, ist Struts.
    [Show full text]
  • The Jakarta Struts Cookbook Is an Amazing Collection of Code
    Jakarta Struts Cookbook By Bill Siggelkow Publisher: O'Reilly Pub Date: February 2005 ISBN: 0-596-00771-X Pages: 526 Table of • Contents • Index • Reviews • Examples The Jakarta Struts Cookbook is an amazing collection of code solutions to Reader common--and uncommon--problems encountered when building web • Reviews applications with the Struts Framework. With solutions to real-world • Errata problems just a few page flips away, this quick, look-up reference is • Academic perfect for independent developers, large development teams, and everyone in between who wishes to use the Struts Framework to its fullest potential. Jakarta Struts Cookbook By Bill Siggelkow Publisher: O'Reilly Pub Date: February 2005 ISBN: 0-596-00771-X Pages: 526 Table of • Contents • Index • Reviews • Examples Reader • Reviews • Errata • Academic Copyright Preface Audience Scope and Organization Assumptions This Book Makes Conventions Used in This Book Using Code Examples Comments and Questions Safari Enabled Acknowledgments Chapter 1. Getting Started: Enabling Struts Development Introduction Recipe 1.1. Downloading Struts Recipe 1.2. Deploying the Struts Example Application Recipe 1.3. Migrating from Struts 1.0 to Struts 1.1 Recipe 1.4. Upgrading from Struts 1.1 to Struts 1.2 Recipe 1.5. Converting JSP Applications to Struts Recipe 1.6. Managing Struts Configuration Files Recipe 1.7. Using Ant to Build and Deploy Recipe 1.8. Generating Struts Configuration Files Using XDoclet Chapter 2. Configuring Struts Applications Introduction Recipe 2.1. Using Plug-ins for Application Initialization Recipe 2.2. Eliminating Tag Library Declarations Recipe 2.3. Using Constants on JSPs Recipe 2.4. Using Multiple Struts Configuration Files Recipe 2.5.
    [Show full text]
  • Apache Cocoon 2
    Apache Cocoon 2 Motivación, Introducción y Explicación Saúl Zárrate Cárdenas Apache Cocoon 2: Motivación, Introducción y Explicación por Saúl Zárrate Cárdenas Este documento se cede al dominio público. Historial de revisiones Revisión 0.0 6 de Mayo de 2002 Revisado por: szc Creación Historial de revisiones Revisión 0.1 5 de Junio de 2002 Revisado por: jidl Correcciones de ortografía y marcado Historial de revisiones Revisión 0.2 17 de Julio de 2002 Revisado por: szc Adición de formato de reunión semanal como apéndice y organización de directorios para las imagenes y los fuentes Historial de revisiones Revisión 0.3 31 de agosto de 2002 Revisado por: fjfs Cambio de formato de imágenes a png y correcciones ortográficas Revisión 1.0 18 de Octubre de 2002 Revisado por: jid Conversión a xml, correccion de errores menores de marcado Tabla de contenidos 1. ¿Por qué Cocoon? ..................................................................................................................................1 1.1. Motivación ..................................................................................................................................1 1.2. Entornos de publicación web (Web Publishing Framework) ......................................................2 2. Cocoon ....................................................................................................................................................3 2.1. ¿Qué es Cocoon?.........................................................................................................................3
    [Show full text]
  • Reflexión Académica En Diseño & Comunicación
    ISSN 1668-1673 XXXII • 2017 Año XVIII. Vol 32. Noviembre 2017. Buenos Aires. Argentina Reflexión Académica en Diseño & Comunicación IV Congreso de Creatividad, Diseño y Comunicación para Profesores y Autoridades de Nivel Medio. `Interfaces Palermo´ Reflexión Académica en Diseño y Comunicación Comité Editorial Universidad de Palermo. Lucia Acar. Universidade Estácio de Sá. Brasil. Facultad de Diseño y Comunicación. Gonzalo Javier Alarcón Vital. Universidad Autónoma Metropolitana. México. Centro de Estudios en Diseño y Comunicación. Mercedes Alfonsín. Universidad de Buenos Aires. Argentina. Mario Bravo 1050. Fernando Alberto Alvarez Romero. Pontificia Universidad Católica del C1175ABT. Ciudad Autónoma de Buenos Aires, Argentina. Ecuador. Ecuador. www.palermo.edu Gonzalo Aranda Toro. Universidad Santo Tomás. Chile. [email protected] Christian Atance. Universidad de Lomas de Zamora. Argentina. Mónica Balabani. Universidad de Palermo. Argentina. Director Alberto Beckers Argomedo. Universidad Santo Tomás. Chile. Oscar Echevarría Renato Antonio Bertao. Universidade Positivo. Brasil. Allan Castelnuovo. Market Research Society. Reino Unido. Coordinadora de la Publicación Jorge Manuel Castro Falero. Universidad de la Empresa. Uruguay. Diana Divasto Raúl Castro Zuñeda. Universidad de Palermo. Argentina. Michael Dinwiddie. New York University. USA. Mario Rubén Dorochesi Fernandois. Universidad Técnica Federico Santa María. Chile. Adriana Inés Echeverria. Universidad de la Cuenca del Plata. Argentina. Universidad de Palermo Jimena Mariana García Ascolani. Universidad Comunera. Paraguay. Rector Marcelo Ghio. Instituto San Ignacio. Perú. Ricardo Popovsky Clara Lucia Grisales Montoya. Academia Superior de Artes. Colombia. Haenz Gutiérrez Quintana. Universidad Federal de Santa Catarina. Brasil. Facultad de Diseño y Comunicación José Korn Bruzzone. Universidad Tecnológica de Chile. Chile. Decano Zulema Marzorati. Universidad de Buenos Aires. Argentina. Oscar Echevarría Denisse Morales.
    [Show full text]
  • Apachecon 2004 November 13-17, 2004 Las Vegas Nevada
    ApacheCon 2004 November 13-17, 2004 Las Vegas Nevada CLICK SESSION TITLE FOR PRESENTATION TUTORIALS MONDAY TUESDAY WEDNESDAY T01 Introduction to the Apache Web Server T02 mod_perl 2.0 by Example T03 Apache Portable Runtime 1.0 Tutorial T06 Mangling data with XSLT T07 Test-Driven Apache Module Development T08 Tapestry In Action T09 SpamAssassin Tutorial T10 Everything You Always Wanted to Know About XML Parsing T11 Scalable Internet Architectures T12 Apache Derby/Cloudscape: Embed This! T13 Struts: the good, the bad, and the ugly T14 Subversion Tutorial T15 Digging deep into XML Schema with Apache XMLBeans T16 PHP Security T17 Taming Apache Cocoon T18 Lucene in Action Search Next Help ApacheCon 2004 November 13-17, 2004 Las Vegas Nevada CLICK SESSION TITLE FOR PRESENTATION TUTORIALS MONDAY TUESDAY WEDNESDAY MO01 Behind the Scenes of the Apache Software Foundation MO02 Apache 2.0 on Windows MO03 The State of Apache Geronimo MO04 Advanced Topics in Module Design: Threadsafety and Portability MO05 The Incubator: Starting a Successful Apache Open Source Project MO06 Apache authentication MO07 Comparing Web Frameworks: Struts, Spring MVC, WebWork, Tapestry & JSF MO08 WebDAV and Apache MO09 New and upcoming features in SpamAssassin v3 MO10 What's so great about Apache 2.0? MO11 Embedding Tomcat 5 into Applications Servers MO12 Logging and Configuration - Demystifying the banes of App development MO13 Storing SpamAssassin User Data in SQL Databases MO14 Shoehorning Apache Onto Your Box: System Sizing Tips MO15 Highly available web sites with Tomcat
    [Show full text]
  • Working with XSP in Apache Cocoon 2
    Working with XSP in Apache Cocoon 2 Presented by developerWorks, your source for great tutorials ibm.com/developerWorks Table of Contents If you're viewing this document online, you can click any of the topics below to link directly to that section. 1. Tutorial introduction.................................................... 2 2. XSP concepts........................................................... 6 3. XSP syntax .............................................................. 11 4. Logicsheets ............................................................. 22 5. Creating logicsheets ................................................... 27 6. Summary and resources .............................................. 31 Working with XSP in Apache Cocoon 2 Page 1 of 32 ibm.com/developerWorks Presented by developerWorks, your source for great tutorials Section 1. Tutorial introduction Who should take this tutorial? This tutorial is the second in a series of tutorials on Apache Cocoon 2. It introduces XML Server Pages (XSP), the Cocoon technology for generating dynamic XML content. It is designed to build on the concepts described in the first tutorial, Introducing Cocoon 2; it is therefore recommended that you complete the previous tutorial before progressing further. This tutorial is based on Cocoon 2. While XSP was present in Cocoon 1, architectural differences mean that the majority of the examples are not applicable to that version. It is assumed that you are familiar with Java Web development frameworks such as Java Servlets and Java Server Pages (JSP). Where appropriate, parallels are drawn between concepts in these technologies and XSP. This tutorial will be of interest primarily to developers who have progressed beyond the basic features of Cocoon 2 and want to learn how to add dynamic data to their XML documents to create richer Web sites. The tutorial is also relevant for developers who need to integrate Cocoon 2 with existing data sources and/or APIs to publish their data in multiple formats over the Internet.
    [Show full text]
  • Using Cocoon, WML, and Xmlforms
    Using Cocoon, WML, and XMLForms Presented by developerWorks, your source for great tutorials ibm.com/developerWorks Table of Contents If you're viewing this document online, you can click any of the topics below to link directly to that section. 1. Before you start......................................................... 2 2. Getting started with Cocoon.......................................... 3 3. Cocoon processing model, sitemap, and pipelines............... 4 4. Cocoon and HTML ..................................................... 7 5. Cocoon and WML ...................................................... 11 6. Cocoon, XMLForms, and WML ...................................... 14 7. Summary and resources .............................................. 19 Using Cocoon, WML, and XMLForms Page 1 of 19 ibm.com/developerWorks Presented by developerWorks, your source for great tutorials Section 1. Before you start About this tutorial This tutorial teaches you how to develop applications using Cocoon, Wireless Markup Language (WML), and XMLForms. The course is intended for developers and technical managers who want to get an overview of Cocoon and understand how to use Cocoon for application development. Prerequisites To use this tutorial, you should be familiar with basic Java programming, WML, XML, and XSLT. About the authors Vivek Malhotra is a Subject Matter Expert on Wireless Technologies who is based in the Washington D.C. area. Vivek has several years of experience developing and implementing wireless applications and has spoken on expert panels focusing on the wireless industry. You can reach him at [email protected] for any questions you might have about the content of this tutorial. Roman Vichr is senior architect at DDLabs, an e-commerce and EAI consulting company. During the past nine years, his focus has been on database management for client/server and Web applications development.
    [Show full text]
  • Advanced Webapplications Using
    Advanced WebApplications using Reinhard Pötz, Apache Cocoon Comitter [email protected] http://www.poetz.cc CocoonDay, 2003-11-18, Vienna Goals give an overview how to implement Web Applications with Cocoon2 show design patterns focus on the Cocoon Control Flow no details on related aspects but hints after this presentation you should have a starting point for your first application using the Cocoon Control Flow Demo application Thinking in layers ... goals easily maintainable reuseable reached by ... separation of data model enforces view layer clear contracts application flow Page flow city hotel personal data user older user younger than 18 age than 18 car rentals summary Data model Hotel User Car rental City Order database View layer Implementing the Flow layer distributed over all pages page flow is embedded in the hard wired links between the pages (often used in PHP/ASP/JSP applications) hard to understand spathetti code, not maintainable, sideeffects MVC (model view controller) the controller is used to process requests and to select the views (e.g. implemented by the Struts framework or solutions based on Actions in Cocoon) application is fragemented and often it is difficult to understand the logic explicit state handling MVC+ page flow is described as a sequential program using continuations (e.g. Cocoon Advanced Control Flow – using Flowscript) very easy to understand the page flow implicit state handling (continuations) Flowscript – Integration into the Cocoon world [1] <map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0"> <map:flow language="javascript"> <map:script src="flow.js"/> </map:flow> <map:pipelines> <map:pipeline> <map:match pattern="booking.html"> <map:call function="booking"/> </map:match> </map:pipeline> </map:sitemap> Flowscript – Example (flow.js) function booking() { ..
    [Show full text]
  • Basic Web Application Development with Apache Cocoon 2.1
    Basic web application development with Apache Cocoon 2.1 Jasha Joachimsthal ([email protected]) Jeroen Reijn ([email protected]) 4 May 2007 Amsterdam, The Netherlands Basic web application development with Apache Cocoon Are you using Cocoon? Basic web application development with Apache Cocoon 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 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 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 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 Connectivity Basic web application development with Apache Cocoon Cocoon basics · Sitemap · Forms framework · Flow · Caching Basic web application development with Apache Cocoon Sitemap · XML configuration file · Request handling · Where everything comes together Basic web application development with Apache
    [Show full text]
  • New Riders Cocoon Building XML Applications.Pdf
    Cocoon: Building XML Applications Matthew Langham Carsten Ziegeler Publisher: New Riders Publishing First Edition July 19, 2002 ISBN: 0-7357-1235-2, 504 pages Front Matter Cocoon: Building XML Applications is a comprehensive hands-on guide to Table of Contents the Apache open source project, Cocoon. Cocoon is an XML publishing About the Author platform already being used by companies such as Hewlett Packard and Examples institutions such as NASA to build their next generation of Internet architectures. Developers, administrators and managers will find this detailed resource an invaluable tool whether you are looking for introductory information on XML/XSL technologies, starting out with the open source platform or seeking a guide to extending Cocoon with additional components. This book combines the knowledge of a key Cocoon developer with the experience of someone who has been building and writing about Internet applications since the early 1990’s. It begins by explaining the advantages of XML, then guides the reader through the process of setting up Cocoon and details the architecture from a user’s as well as a developer’s point of view. The varied examples, from the typical Hello World program to a complete news portal also help to provide an insight into applying open source software to "real world" problems. A detailed reference section documents the various components available in Cocoon and provides the developer with the necessary API documentation. 1 TEAM FLY PRESENTS Table of Content Table of Content ............................................................................................................
    [Show full text]