Apache Cocoon
Apache Cocoon o Cocoon és un entorn de programació de pàgines web dinàmiques al voltant dels conceptes de procés de transformacions en seqüència (ang.: pipeline), separació d'aspectes i componentització.
Tipus | programari lliure i entorn de treball per a aplicacions web |
---|---|
Versió inicial | 20 febrer 2006 |
Versió estable | |
Llicència | Llicència Apache, versió 2.0 |
Característiques tècniques | |
Sistema operatiu | multiplataforma |
Plataforma | Màquina Virtual Java |
Escrit en | Java |
Equip | |
Desenvolupador(s) | Apache Software Foundation |
Més informació | |
Lloc web | cocoon.apache.org (anglès) |
Seguiment d'errors | Seguiment d'errors |
| |
L'entorn es basa en l'expressió dels elements en XML i la seva transformació mitjançant fulls d'estil XSLT.
Tot el procés es compila generant una Servlet Java per a ser emprada en un servidor Tomcat o altres servidors contenidors de Servlets.
Segons el model MVC (Modelització/Visualització/Controlador) la modelització (Accions) es fa en Java, el controlador en Flowscript (una extensió de Javascript) i la visualització és el resultat del procés de transformacions descrit anteriorment a partir de pàgines XSP (XML Server Pages) amb marcatge separador de contingut i lògica i també a partir de documents XML o de generadors d'esdeveniments SAX.
El SiteMap
modificaEl sitemap és l'element base de la configuració de Cocoon. Descriu els components emprats i la seqüència de processos (pipeline) per a cadascun dels patrons de comanda http (URI) especificats.
Seqüència de procés (pipeline)
modificaEn un sitemap poden especificar diverses pipelines.
- Matchers o Encaixos de patrons
- Permeten especificar els patrons de comanda http als quals es respondrà amb la present pipeline. Cada pipeline té un únic component matcher. Els comodins dels patrons del matcher estàndard o els grups en un matcher d'expressions regulars permeten captar en variables les parts de la URI.
- Accions
- Les accions permeten executar codi Java per a les requestes que comportin la modificació de les dades de sessió o l'actualització de la base de dades. Cada acció retorna un diccionari de variables utilitzable en la resta del procés. Si es retorna NULL la pipeline s'avorta. Es poden concatenar diverses accions cadascuna de les quals fondrà el seu diccionari amb el diccionari precedent.
- Generadors
- Els generadors permeten generar dinàmicament documents XML com a origen de transformació, emprant entre altres paràmetres les claus dels diccionaris de les accions precedents.
- Lectors
- Els lectors permeten proporcionar documents o fitxers estàtics (ex. imatges) sense transformar. Són origen i final de la pipeline.
- Agregadors
- Els agregadors permeten agregar XML procedent de parts (subdocuments XML a incorporar) o subpipelines.
- Selectors
- Els selectors permeten establir alternatives de transformació a partir de les variables de la pipeline.
- Transformadors
- Transformen el resultat del pas anterior mitjançant un full d'estil XSLT.
- Serialitzadors
- Generen la sortida en el format especificat.
- Vistes
- Les vistes (views) s'utilitzen per a proves. Creen un punt de sortida a la pipeline.
El Controlador
modificaEl controlador en llenguatge Flowscript (extensió de Javascript) permet especificar el flux de treball de diverses pàgines en una rutina, mitjançant continuacions.
El mecanisme de continuacions permet continuar una rutina en un punt intermedi prèviament interromput, havent desat la pila de crides i l'entorn de variables, establint un punt d'entrada.
Les dades de continuació es desen amb les dades de sessió i el seu identificador pot ser utilitzat com a paràmetre ocult en un formulari.
Enllaços externs
modifica- The Apache Cocoon Project (anglès)
- Cocoon 2.1 Documentation (anglès)
- The Apache Software Foundation (anglès)
- Mostres de programació Cocoon Arxivat 2006-10-10 a Wayback Machine. (anglès)
- Apache Lenya (anglès) Sistema de gestió/publicació de continguts desenvolupat amb Cocoon.