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ó.

Apache Cocoon
Modifica el valor a Wikidata

Tipusprogramari lliure i entorn de treball per a aplicacions web Modifica el valor a Wikidata
Versió inicial20 febrer 2006 Modifica el valor a Wikidata
Versió estable
2.3.0 (25 novembre 2023) Modifica el valor a Wikidata
LlicènciaLlicència Apache, versió 2.0 Modifica el valor a Wikidata
Característiques tècniques
Sistema operatiumultiplataforma Modifica el valor a Wikidata
PlataformaMàquina Virtual Java Modifica el valor a Wikidata
Escrit enJava Modifica el valor a Wikidata
Equip
Desenvolupador(s)Apache Software Foundation Modifica el valor a Wikidata
Més informació
Lloc webcocoon.apache.org (anglès) Modifica el valor a Wikidata
Seguiment d'errorsSeguiment d'errors Modifica el valor a Wikidata

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

modifica

El 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)

modifica

En 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

modifica

El 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