Download MDA: Effektives Software-Engineering mit UML2 und Eclipse

Transcript
Unterschieden, was insbesondere die Vorinitialisierung von Ansichten schwierig werden lässt. Selbst wenn man über Eingriffe in den
JSF-Lebenszyklus auch diese Schwächen in Eigenleistung beseitigen könnte erscheint uns das Grund genug uns nach bestehenden
Lösungen umzuschauen, die uns diese Aufgaben abnehmen.
Die Lösung: Apache Beehive
Fündig wird man bei dem frisch aus dem Apache-Inkubator entschlüpften Beehive [Beehive]. Obwohl mit weit mehr Funktionalitäten ausgestattet, ist für unsere Zwecke vor allem das Webframework
mit dem Namen NetUI, das neben einer JSP-Taglib für die ViewErstellung die Komponente Page Flow umfasst. Page Flows adressieren die von uns zuvor geschilderten Probleme und bieten gleichzeitig eine nahtlose Integration mit JSF, was es für unsere Zwecke
ideal verwendbar macht.
Basiskonzepte
Beehive Java PageFlows (JPF) stützen sich im Wesentlichen auf
drei Basiskonzepte ab, die wir im Folgenden näher betrachten
wollen:
„
Logical Flow: Anstatt direkt auf Folgeseiten zu verweisen,
enthalten die JSPs eines PageFlows lediglich Verweise auf die
Actions, die bei Auftreten bestimmter Ereignisse aufgerufen
werden sollen, und dann darüber entscheiden, welche Seite als
nächstes besucht wird. Auf diese Weise wird die Entscheidungslogik sauber von den darstellenden Komponenten getrennt.
„
Actions: stellen eben jene Java-Methoden dar, die bei Auftreten
einer Benutzer-Aktion aufgerufen werden (Betätigen eines Buttons, Auswahl einer Schaltfläche, usw.), und so die Ausführung
von Geschäftslogik an Schlüsselstellen der Interaktion sowie die
Ermittlung des nächsten Schrittes im Dialogfluss ermöglichen,
„
Controller-Klassen: sind Java-Klassen die die Realisierung des
MVC-Controllers darstellen und eine zusammengehörige Menge von Actions kapseln. Sie stellen damit das Werkzeug zur
Modularisierung und Wiederverwendung sowie zur Verwaltung
von Dialogflüssen zur Verfügung, das wir bei JSF vermisst haben. Dadurch, dass sie zustandsbehaftet sind, wird auch die Frage nach einem Session-Management auf Dialogebene sauber
gelöst.
„
Weiterhin ist die ausgiebige Verwendung von Metadata Annotations [JSR175], zur deklarativen Kennzeichnung der Control-
8.2 Technologie-Plan
„
„
„
305