Inhaltsverzeichnis
Cocoon
Definition
- Cocoon ist ein Web-Publishing Framework der Apache Foundation
- Aufbau als Java-basierte Lösung mit Konzentration auf XML als Content Format
- Läuft häufig als Servlet
- Dient häufig als Container für andere Technologien
- Datenbankzugriffe mit JDBC
Funktionsweise
- Wie bei einem Servlet schickt der Browser einen HTTP-Request (Anfrage) an einen Webserver
- Dieser erkennt, dass der Request an Cocoon weitergeleitet werden soll
- Das Ergebnis wird dann über z.B. Tomcat an den Browser zurückgeschickt
Bestandteile
Sitemap
- Ist das Herz von Cocoon und dessen Konfigurationsdatei → definiert die Cocoon-basierte Web Seite
- Auflösung von URL Angaben um z.B. eine XML Datei als HTML im Browser anzuzeigen
- definiert die vorhandenen Komponenten
- es muss auf eine Implementierung verwiesen werden
- diese können dann in Pipelines benutzt werden
- es werden Default-Komponenten definiert
Aufbau:
<?xml version="1.0" encoding="UTF-8"?> <map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0"> <map:components> <map:generators default=„file“/> <map:transformers/> <map:serializers/> <map:readers/> <map:selectors/> <map:matchers/> <map:actions/> </map:components> <map:views/> <map:resources/> <map:action-sets/> <map:pipelines/> </map:sitemap>
Pipelining
- Eigentliche Arbeit von Cocoon wird in Pipelines ausgeführt
- Komponenten der Pipeline
- Generator: Liefert den Inhalt des angeforderten Dokuments
- Transformator (ein oder mehrere): Hier wird der Logik Teil der Verarbeitung implementiert und der gewünschte Inhalt formatiert, sowie das Layout erzeugt
- Serialisierer: Erzeugt das fertige Dokument, indem das Layout des Transformators in das gewünschte Dokumentenformat übersetzt (z.B. PDF oder HTML)
- Komponenten können weitere Parameter übergeben werden, die dann als untergeordnete Elemente eingefügt werden
Logik-Komponenten
Matcher
- Matcher sind das Bindeglied einer Anfrage durch einen Client an Cocoon und den auszuführenden Operationen einer Pipeline
- Matching zwischen dem Request und einem Matcher
- Innerhalb einer Pipeline wird dafür ein match-Element festgelegt, für welche URI‘s diese Pipeline ausgeführt werden soll
- Es können auch mehrere map:match-Elemente in einer Pipeline definiert werden
- Die Reihenfolge muss damit von den spezielleren zu den allgemeineren Match-Definitionen verlaufen
- Innerhalb eines map:match-Elements werden die auszuführenden Operationen (Generierung/Bereitstellung eines XML Dokumentes, Durchführen einer Transformation) definiert
- Standard-Matcher: Wildcard-Matcher
- es gilt First-Match in der Sitemap –> Reihenfolge der Matchers ist signifikant
Selector
- Wird verwendet um bestimmte Informationen des Requests auszuwerten
- Meist im HTML Header übertragen, wenn eine Webseite angefordert wird
- Verfügbare Selektoren:
- BrowserSelector → Prüft den verwendeten Browser
- HostSelector → Prüft den Host-Paramter des HTTP-Requests
- ParamterSelector → Prüft einen definierten Parameter innerhalb Cocoon
- HeaderSelector → Prüft den Inhalt des HTTP-Request-Headers
- Session Selector → für die Session Steuerung
- Code Selector → führt Java Code als Test aus
- Typisch für Anwendung eines Selektors sind die Verwendung von verschiedenen StyleSheets anhand des verwendeten Browsers
Bearbeitungskomponenten
Generator
- Startpunkt von CocoonPipelines
- Liest eine Eingabe und erzeugt eine Ausgabe in Form von SAX-Ereignissen
- Diese Ereignisse werden dann z.B. von einem Transformator verarbeitet
Transformer
- Verarbeitet SAX Ereignisse um dann wieder SAX-Ereignisse weiterzuleiten
- Durch diesen Aufbau kann man mehrere Transformatoren hintereinander ausführen und damit das endgültige Dokument mit Inhalt und Grundlayout erzeugen
- Wird bei mehrsprachigen Webseiten verwendet (Internationalization)
Serializer
- Das letzte Element der Pipeline
- Wandelt die Ausgabe des Transformators (SAX Stream) in das Zieldokument um (z.B. PDF-Datei) → Repräsentation
Reader
- Daten können ohne weitere Verarbeitung an den Client zurückgeliefert werden
- für nicht-XML Daten in einer Cocoon Site → Vor allem bei Binärdaten wie Bilder eingesetzt
- für sehr einfache Pipelines (einzigen Komponenten einer Pipeline)
- mitgelieferte Reader
- ResourceReader → zum Lesen von Binärdaten
- JSPReader → zum Lesen von Ausgaben von JSP-Seiten
Action
- Es werden dynamische Laufzeitparameter manipuliert oder Operationen auf dem Server durchgeführt
- erzeugen keine dargestellten Daten → Steuerung des Ablauf einer Pipeline
Views
- Sind nützlich um Ergebnisse einzelner Bearbeitungsstufen zu prüfen (z.B. nach jedem Transformator)
- Ausführung eines Views in einer Pipeline beendet deren eigene Ausführung und setzt die Verarbeitung im View fort
Ressourcen
- Resources sind wiederverwendbare Pipelines → Auslagerung häufig genutzter Operationen
- Können als Unterprogramme oder als versteckte Weiterleitung angesehen werden
Kontext
Plugin Backlinks: Nichts gefunden.


