Flex Mavenized. Einsatz von Flex mit Maven in Java-Enterprise-Projekten. Enterprise. Integration von Flex in Maven-Projekten



Ähnliche Dokumente
Qt-Projekte mit Visual Studio 2005

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch

Internet Explorer Version 6

Installation der SAS Foundation Software auf Windows

WebService in Java SE und EE

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen

Sie werden sehen, dass Sie für uns nur noch den direkten PDF-Export benötigen. Warum?

GITS Steckbriefe Tutorial

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Java Server Faces. Andy Bosch. Das Standard-Framework zum Aufbau webbasierter Anwendungen. An imprint of Pearson Education

Einfach wie noch nie. Der mypackage-ansatz. Ihre Lösung zur automatisierten Client-Bereitstellung. mypackage im Überblick

Über die Internetseite Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt.

Warum beschäftigt sich ein Linux-Systemhaus mit der Installation von OTRS mit einem Microsoft SQL Server?

Anleitung zum Computercheck Windows Firewall aktivieren oder eine kostenlose Firewall installieren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Guide DynDNS und Portforwarding

Installation OMNIKEY 3121 USB

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

Arbeiten mit UMLed und Delphi

OP-LOG

Print2CAD 2017, 8th Generation. Netzwerkversionen

Office Integration. M. Friedrichs, DEVWARE GmbH

Elexis-BlueEvidence-Connector

crm-now/ps Webforms Webdesigner Handbuch Erste Ausgabe

OS IDE Webserver Integration des Webservers in die IDE Wireshark Webserver II Dynamisches Webprojekt in Eclipse

Anleitung zur Webservice Entwicklung unter Eclipse

Übung: Verwendung von Java-Threads

ecaros-update 8.2 Update 8.2 procar informatik AG 1 Stand: DP 02/2014 Eschenweg Weiterstadt

HOWTO Update von MRG1 auf MRG2 bei gleichzeitigem Update auf Magento CE 1.4 / Magento EE 1.8

Die aktuelle Version des SPIEGEL-Bestseller-Widgets können Sie auf unserer Website unter Entwicklertools herunterladen.

TechNote. Produkt: TWINFAX 7.0 (ab CD_24), TWINFAX 6.0 Modul: SMTP, T611, R3 Kurzbeschreibung: Briefpapier- und Mailbodyunterstützung

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Die Rückgabe kann über folgende, von uns getestete Programme / Apps vorgenommen werden: Adobe Digital Editions Sony Reader for PC Bluefire Reader

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

DeltaVision Computer Software Programmierung Internet Beratung Schulung

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

Inhaltsverzeichnis. Handbuch zur Installation der Software für die Bürgerkarte

! " # $ " % & Nicki Wruck worldwidewruck

Folgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert:

Task: Nmap Skripte ausführen

Einführung in die Informatik Tools

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER

etermin Einbindung in Outlook

Lizenzen auschecken. Was ist zu tun?

Pixelart-W ebdesign.de

Installation Microsoft SQL Server 2008 Express

Installation und Inbetriebnahme von Microsoft Visual C Express

BELIEBIG GROßE TAPETEN

FastBill Automatic. Dokumentation Versand. FastBill GmbH. Holteyer Straße Essen Telefon Telefax

ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Eschenweg Weiterstadt

1 Dokumentenmanagement

G DATA INTERNET SECURITY FÜR ANDROID

Virtual Channel installieren

Online Newsletter III

Um zu prüfen welche Version auf dem betroffenen Client enthalten ist, gehen Sie bitte wie folgt vor:

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Updatehinweise für die Version forma 5.5.5

Komponententest. Testen von Software Systemen. Übung 02 SS 2009 Version:

Leitfaden zur Installation von Bitbyters.WinShutdown

Traditionelle Suchmaschinenoptimierung (SEO)

Java Entwicklung für Embedded Devices Best & Worst Practices!

Installationsanleitung dateiagent Pro

:: Anleitung Hosting Server 1cloud.ch ::

mobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005

Wordpress: Blogbeiträge richtig löschen, archivieren und weiterleiten

EIDAMO Webshop-Lösung - White Paper

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Reporting Services und SharePoint 2010 Teil 1

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

EasyWk DAS Schwimmwettkampfprogramm

Konfiguration von Igel ThinClients fu r den Zugriff via Netscaler Gateway auf eine Storefront/ XenDesktop 7 Umgebung

In 15 einfachen Schritten zum mobilen PC mit Paragon Drive Copy 10 und Microsoft Windows Virtual PC

Business Application Framework für SharePoint Der Kern aller PSC-Lösungen

SFTP SCP - Synology Wiki

Anleitung BFV-Widget-Generator

Erstellen der Barcode-Etiketten:

TeamSpeak3 Einrichten

Smap3D PDM 10. Installation. Stand-Alone-Migration-Analyzer

Praktikum Spring MVC Spring integrieren In der pom.xml Einträge für Spring hinzufügen.

Adobe Photoshop. Lightroom 5 für Einsteiger Bilder verwalten und entwickeln. Sam Jost

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers

Step by Step Softwareverteilung unter Novell. von Christian Bartl

SSI WHITE PAPER Design einer mobilen App in wenigen Stunden

Installation von NetBeans inkl. Glassfish Anwendungs-Server

Gezielt über Folien hinweg springen

Gemeinsamer Bibliotheksverbund: Übertragung von Datenexporten für den Verbundkatalog Öffentlicher Bibliotheken

«/Mehrere Umfragen in einer Umfrage durchführen» Anleitung

PxeDeploy-Updater Bequemes Aktualisieren des rbdeploy-systems

1 Einleitung. Lernziele. Symbolleiste für den Schnellzugriff anpassen. Notizenseiten drucken. eine Präsentation abwärtskompatibel speichern

Wie richten Sie Ihr Web Paket bei Netpage24 ein

YouTube: Video-Untertitel übersetzen

Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook ( ) Zentrum für Datenverarbeitung der Universität Tübingen

Um ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift.

1. Zuerst muss der Artikel angelegt werden, damit später die Produktvarianten hinzugefügt werden können.

CocoaPods Schnelleinstieg

Installationsanleitung Maschinenkonfiguration und PP s. Release: VISI 21 Autor: Anja Gerlach Datum: 18. Dezember 2012 Update: 18.

Lizenzierung von System Center 2012

Transkript:

Integration von Flex in Maven-Projekten Enterprise Einsatz von Flex mit Maven in Java-Enterprise-Projekten Flex Mavenized Mit dem Flex-Mojos-Plug-in besteht die Möglichkeit der einfachen Integration von Flex in Maven-Projekte. Wie das funktioniert, werden wir anhand einer Beispielanwendung unter Einsatz von Flex 4 mit Spring 3 und Maven 3 demonstrieren. von Michael Schütz und Marek Iwaszkiewicz Wie den meisten sicherlich nicht entgangen ist, haben Rich Internet Applications (RIA) stark an Bedeutung gewonnen. Allen voran gilt das für eines der am meisten verbreiteten RIA-Frameworks: Adobe Flex. Im Zuge dieser Bedeutungszunahme wird im Projektgeschäft bei Kunden eben dieses Framework immer häufiger im Kontext professioneller Java-Enterprise-Anwendungen eingesetzt. Im Backend kann dabei sowohl Spring als auch EJB zum Einsatz kommen. Den Reiz dieser Kombination macht für unsere Kunden die saubere Trennung zwischen Front- und Backend sowie die visuellen und funktionalen Vorteile von RIAs aus. Leider mussten wir mehrmals feststellen, dass die Wahl von Flex als Oberflächentechnologie ausschlaggebend für den Einsatz von Apache Ant als Build-System war, obwohl diese Einschränkung gar nicht existiert. Wir sagen leider, da mit Maven eine modernere und sauberere Alternative eines Build-Management-Systems existiert, die mit dem Flex- Mojos-Plug-in [1] eine direkte Integration von Flex in Maven bereit stellt. Im Zuge dieses Artikels möchten wir vorstellen, wie eine auf Java-Technologien basierende professionelle Enterprise-Anwendung mit Flex im Frontend, Spring im Backend und Maven als Build-System umgesetzt werden kann. Da seit dem Release von Flex 4 mittlerweile ein Dreivierteljahr vergangen ist und diese Version in neu aufgesetzten Projekten überwiegend zum Einsatz kommt, möchten wir auch in unserer Demoanwendung auf Flex 4 setzen. Diese Entscheidung impliziert aber auch eine Konsequenz. So wird Flex 4 mit dem Flex-Mojos-Plug-in nur in Kombination mit Maven 3 unterstützt. Da Maven 3 zur Vorgängerversion abwärtskompatibel ist, ergeben sich hierdurch keine Folgen für gegebenenfalls andere eingebundene Projektteile, die zuvor mit Maven 2 implementiert wurden. Die Pizza-Anwendung Bevor wir aber in die technische Tiefe dieser Thematik einsteigen, soll die im Rahmen des Artikels vorgestellte Anwendung kurz beschrieben werden. Wohl ziemlich jeder gönnt sich in regelmäßigen Abständen mal eine gute Pizza so auch wir. Warum aber die Pizza nicht direkt auch online bestellen? Auch wenn wir nicht die ersten javamagazin 3 2011 87

Enterprise Integration von Flex in Maven-Projekten Abb. 1: Architektur/ Technologie-Stack denen die Integration schnell und komfortabel realisiert werden kann. Ein weiterer wohl genereller Vorteil von Spring ist, dass die für die Demoanwendung benötigten Projekte etwas schlanker ausfallen. BlazeDS ist eine von Adobe bereitgestellte Messaging-Lösung für die Anbindung von Flex-Clients an Java Backends und ist in den Spring-Erweiterungen enthalten. mit dieser Idee sind, wollen wir in der Demoanwendung dennoch ein kleines Portal für das Bestellen von Pizzen umsetzen. Damit ist die Anwendung an sich schon komplett beschrieben. Wir halten die Anwendung bewusst sehr einfach, um uns auf das Wesentliche konzentrieren zu können: die Integration von Flex in auf Maven basierende Java-Projekte. Der Technologie-Stack der Anwendung besteht aus Flex 4, Maven 3, Flex Mojos 4, BlazeDS [2] sowie Spring 3. Abbildung 1 zeigt ein einfaches Architekturbild der beteiligten Komponenten und Technologien. Wie erwähnt, fällt die Wahl der eingesetzten Backend- Technologie in unserer Demoanwendung auf Spring 3. Das hat jedoch keine tiefergehenden Gründe. Man könnte auch EJB als Backend-Technologie wählen. Ein Vorteil von Spring ist aber, dass es für die Anbindung von Flex-Clients ans Backend Erweiterungen bereitstellt, mit Projektstruktur Wie in der Einleitung erwähnt, setzen wir Maven 3 als Build-System ein. Die Demoanwendung besteht aus insgesamt drei Maven-Projekten: einem Parent-Projekt und zwei weiteren von diesem verwalteten Maven-Projekten: jm-flex und jm-war. Abbildung 2 zeigt einen Screenshot mit den genannten Projekten. Bei den vom Parent verwalteten Artefakten handelt es sich um ein Flex-Projekt (jm-flex) und um eine Java- Webanwendung (jm-war). Im Parent erfolgt wie üblich die Angabe der Kindmodule, die Angabe einiger globaler Abhängigkeiten (Dependencies) sowie die Definition von Versions-Properties und des Dependency- und Plugin-Managements. Das Flex-Projekt Das Flex-Projekt beinhaltet allen voran die Flex Sources, die die Clientanwendung implementieren. Zum Listing 1 <packaging>swf</packaging> <dependencies> <dependency> <groupid>com.adobe.flex.framework</groupid> <artifactid>flex-framework</artifactid> <version>${flex.version}</version> <type>pom</type> </dependency> </dependencies> Listing 2 <plugins> <plugin> <groupid>org.sonatype.flexmojos</groupid> <artifactid>flexmojos-maven-plugin</artifactid> <configuration> <services> ${basedir}/src/main/config/services-config-local.xml </services> <contextroot>/${web.context.root}</contextroot> <locales> <locale>en_us</locale> </locales> </configuration> </plugin> </plugins> Listing 3 <packaging>war</packaging> <pluginmanagement> <plugins> <plugin> <groupid>org.apache.maven.plugins</groupid> <artifactid>maven-war-plugin</artifactid> <version>2.0.2</version> </plugin> </plugins> </pluginmanagement> <plugins> <plugin> <groupid>org.sonatype.flexmojos</groupid> <artifactid>flexmojos-maven-plugin</artifactid> <version>${flexmojos.version}</version> <executions> <execution> <goals> <goal>copy-flex-resources</goal> </goals> </execution> </executions> </plugin> </plugins> 88 javamagazin 3 2011

Bauen des Projekts mit Maven wird von diesem Projekt das Flex-Mojos-Maven-Plug-in eingesetzt. Die benötigten Dependencies fallen sehr kurz aus genau genommen benötigen wir hier zwei Artefakte: das Flex- Framework als Dependency und das bereits angekündigte Maven-Plug-in Flex Mojos zum Kompilieren. In Listing 1 ist die einzige einzutragende Dependency auf das Flex-Framework enthalten. Die von uns genutzte Version ist 4.0-beta-3. In Listing 1 ist ebenfalls die Angabe des Packaging des Projekts angegeben. Durch den Packaging- Typ swf wird festgelegt, dass es sich beim resultierenden Artefakt um eine Flash-Datei handelt. Einen weiteren Ausschnitt aus der Konfigurationsdatei (pom.xml) des Flex-Projekts sehen Sie hier: <finalname>main</finalname> <sourcedirectory>src/main/flex</sourcedirectory> Abb. 2: Projektstruktur der Pizza- Anwendung Blickwinkel 2.0 Testen Sie unsere E-Books! Viele bewährte Bestseller und alle aktuellen Neuerscheinungen können Sie bequem, schnell, günstig und vor allem umweltschonend downloaden! In diesem wird mit finalname der Name des Artefakts, also der Name der erzeugten SWF-Datei festgelegt. Im sourcedirectory-element wird dem gleich vorgestellten Flex-Mojos-Plug-in der Pfad zu den Flex Sources angegeben. Wie bei Maven üblich, befinden sich auch hier die Quellen im src/ main-verzeichnis. Abschließend zum Flex-Projekt sieht man in Listing 2 den letzten Teil der dazugehörigen pom.xml, in dem die Einbindung des Flex-Mojos-Plug-ins dargestellt ist. Hier müssen die sonst bei Flex auch üblichen Compiler-Einstellungen vorgenommen werden. Im services-element erfolgt die Angabe des Pfads zur Flex-Konfigurationsdatei services-config.xml. In dieser Datei wird alles rund um die Kommunikation des Flex-Clients mit dem Backend vorgenommen. Dazu zählen zum Beispiel die Angaben des Protokolls, der Kommunikationskanäle (Channels) sowie der Endpoints. Channels bilden eine der zentralen Konfigurationseinheiten von BlazeDS. Sie definieren das für die Kommunikation genutzte Format (AMF [3], SOAP [4]), das Transportprotokoll (http) und die URL-Endpoints. Das Element contextroot legt den Namen der Webanwendung fest, mit der der Client schließlich kommunizieren soll. Wird mit Internationalisierung gearbeitet, so können die unterstützten Sprachen im locales-element angegeben werden. Das Webprojekt Im Webprojekt erwartet uns neben den Java-Quellen auch die Integration der im Flex-Projekt entwickelten Clientanwendung. Bei dem Projekt selbst handelt es sich um ein einfaches Standardwebprojekt, das in einem Webarchiv (WAR) gebündelt wird. In Maven wird für diesen Projekttyp als Packaging war in Kombination mit dem Maven-War-Plug-in [5] eingesetzt, das das Zusammenbauen der von WAR-Anwendungen geforderten Strukturen übernimmt. Im Webprojekt wird zudem erneut vom Flex-Mojos-Plugin Gebrauch gemacht dieses Mal jedoch nicht, um Code zu kompilieren, sondern um die in den Maven Dependencies eingebundenen Flex-Artefakte in die Webanwendung zu kopieren und somit in diese zu integrieren. Listing 3 enthält den dazugehörigen Konfigurationstext. Das wären erst einmal die notwendigen Schritte, um mit Maven ein Webprojekt zu erstellen. Neben einer direkten Maven-Abhängigkeit zu Jetzt informieren und ausprobieren unter: www.entwickler-press.de

Enterprise Integration von Flex in Maven-Projekten unseren Flex-Projekten beziehen sich die üblichen Abhängigkeiten allesamt auf Spring-Komponenten. Spring selbst ist modular aufgebaut, wodurch die benötigten Ressourcen ganz gezielt hinzugefügt werden können. So enthält das Artefakt spring-flex den erforderlichen Verbindungscode, um eine Spring- Komponente direkt für den Flex-Zugriff zu konfigurieren. Durch dieses Modul können Spring Beans fast ohne die Notwendigkeit weiterer Konfigurationen auf Back end-seite nahtlos in die Flex-Kommunikation eingebunden werden. Das Weiterleiten der vom Flex-Client eingehenden Anfragen an die entsprechende Bean übernimmt Spring. An dieser Stelle bietet Spring wie üblich zwei Integrationsmöglichkeiten: XML und Annotationen. Sollen Annotationen verwendet werden, so muss das in einer Spring-Konfigurationsdatei angegeben werden. Listing 4 enthält den gesamten Code der Demoanwendung, in der wir uns für Annotationen entschieden und hierfür mit dem component-scan-element den Component Scan aktiviert haben, wodurch alle im angegebenen Java Package enthaltenen Spring-Komponenten erkannt werden. Dadurch fällt die dazugehörige Konfigurationsdatei entsprechend kurz aus. In Listing 6 sieht man die gängige Deklaration einer Spring Bean. Durch die Serviceannotation wird die dazugehörige Klasse als Bean deklariert. Damit die Bean aber auch noch für Flex-Clientaufrufe zugänglich gemacht wird, muss zusätzlich wie im Listing eine RemotingDestination-Annotation auf Klassenebene hinzugefügt werden. Aus dem Namen der Annotation geht bereits hervor, dass die damit annotierten Klassen als entfernte Ziele von Flex-Clients fungieren und von diesen aufgerufen werden können. Es werden hierbei alle public-methoden nach außen zum Aufruf zur Verfügung gestellt. In der RemotingDestination- Annotation muss zudem auch noch mindestens ein Channel angegeben werden. Dadurch erfolgt auch die Zuordnung einer Destination zu einem Channel, die zur Laufzeit von einem von Spring gesteuerten Message Broker für das Dispatching der Aufrufe herangezogen wird. Die hier angegebenen Channels müssen zweierlei Dinge erfüllen: erstens muss jeder hier angegebene Channel ebenfalls in der services-config.xml des Flex- Listing 4 <?xml version="1.0" encoding="utf-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemalocation="http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <context:component-scan base-package="incubator.spring_flex.services" /> </beans> Listing 5 import org.springframework.flex.remoting.remotingdestination; import org.springframework.stereotype.service; @Service("orderService") @RemotingDestination(channels = { "my-amf" }) public class OrderService { } Listing 6 <?xml version="1.0" encoding="utf-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:flex="http://www.springframework.org/schema/flex"> <flex:message-broker> <flex:message-service default-channels="my-amf" /> </flex:message-broker> </beans> Listing 7 <?xml version="1.0" encoding="utf-8"?> <web-app> <servlet> <servlet-name>flex</servlet-name> <servlet-class> org.springframework.web.servlet.dispatcherservlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>flex</servlet-name> <url-pattern>/messagebroker/*</url-pattern> </servlet-mapping> </web-app> Listing 8 <dependency> <groupid>com.adobe.flexunit</groupid> <artifactid>flexunit</artifactid> <version>4.0-rc-1</version> <type>swc</type> <scope>test</scope> </dependency>... <finalname>main</finalname> <sourcedirectory>src/main/flex</sourcedirectory> <testsourcedirectory>src/test/flex</testsourcedirectory> 90 javamagazin 3 2011

Integration von Flex in Maven-Projekten Enterprise Projekts angegeben werden. Zweitens muss wie in Listing 6 der bereits erwähnte Message Broker mit diesem Channel als Spring Bean deklariert werden. Abschließend darf zur Beschreibung des Webprojekts der entsprechende XML-Descriptor web.xml nicht fehlen. Auch hier decken sich die Konfigurationsangaben mit denen aus der services-config.xml-datei des Flex-Projekts. So wird das DispatcherServlet an das URL-Pattern /messagebroker/* gebunden ein Pattern, das in der Regel von allen URLs der defnierten Endpoints erfüllt wird. Dadurch wird das DispatcherServlet zum zentralen Verteiler der Clientanfragen. Das erneut sehr kurze Listing 8 enthält alle notwendigen Einträge, die im Kontext der Spring-Flex-Integration im Web-Descriptor anfallen. Geschafft bis jetzt haben wir vorgestellt, welche Konfigurationsschritte vorzunehmen sind, um eine Flex- Anwendung mit Spring 3 im Backend zu erstellen und diese mit Maven 3 zu bauen. Wie wir finden, stellt das eine spannende und vor allem robuste Technologiekombination dar. Blick unter die Haube Wir haben bisher eher weniger Bezug auf das Flex- Mojos-Plug-in genommen, das weitaus mehr kann, als lediglich eine Flex-Anwendung zu kompilieren und in eine Webanwendung einzubinden. So bietet das Flex- Mojos-Plug-in die Möglichkeit, eine Flex-Anwendung in verschiedenen Modulen zu organisieren und die Versionen und Konfigurationen mit Mechanismen aus Maven zu verwalten. Weiterhin ist der Einsatz des Plug-ins nicht auf Flex-Anwendungen beschränkt, sondern bietet auch die Möglichkeit, mit Flash- und Flex-Bibliotheken sowie mit AIR-Anwendungen zu arbeiten. In einem häufigen Einsatzszenario wird das ActionScript-Modell [6] für die mit dem Backend ausgetauschten Data Transfer Objects (DTOs) in einem separaten Maven-Projekt abgelegt und anschließend als Bibliothek in die Flex-Anwendung eingebunden. Das Plug-in bietet darüber hinaus auch die Möglichkeit, das ActionScript-Modell aus den Java-Klassen während des Build-Prozesses generieren zu lassen. Hierdurch müssen Entwickler nicht mehr beide Modelle pflegen und darauf achten, dass diese stets synchron sind. Testintegration Ein weiterer Aspekt guter Software ist die Möglichkeit, automatisierte Unit Tests ausführen zu können. In Maven wird dieser Aspekt generell großgeschrieben, sodass das automatisierte Ausführen von Tests einen festen Bestandteil des Build-Prozesses darstellt. Das gilt auch im Kontext von Flex-Anwendungen. Es existiert mit Flex Unit [7] ein an JUnit4 angelehntes Testframework für Flex, das mit wenigen Handgriffen in ein Flex-Projekt integriert werden kann. Die hierzu notwendigen Erweiterungen sind in Listing 8 dargestellt. In diesem wird zunächst eine Abhängigkeit auf Flex- Unit eingebunden und danach das Verzeichnis ange- Anzeige NEU! JETZT BESTELLEN: ANDROID360.DE DAS SONDERHEFT RUND UM GOOGLES ANDROID! www.android360.de

Enterprise Integration von Flex in Maven-Projekten Zeiten entsprechend gering ausfallen. Während der Entwicklung der Beispielanwendung haben wir gegen den Tomcat 6 und 7 getestet. Abb. 3: Screen shot der gebauten Anwendung geben, in dem die Testfälle abgelegt sind. Das reicht bereits aus, damit beim nächsten Build die sich in diesem Verzeichnis befindenden Testfälle automatisiert ausgeführt werden. Los geht s das Demoprojekt selbst starten Genug der Theorie. Jetzt möchten wir zeigen, wie leicht sich die in diesem Artikel beschriebene Demoanwendung selbst bauen und ausprobieren lässt. Abbildung 3 zeigt das Ergebnis der installierten Applikation. Für die Installation der Demoanwendung müssen folgende Voraussetzungen erfüllt sein: Fazit Flex stellt schon länger eine ernsthafte und solide Lösung zur Erstellung professioneller Webanwendungen dar, allerdings mangelte es lange an der Integration in moderne, auf Maven basierende Java-Webanwendungen. In Kombination mit Spring im Backend und Maven als Build-System steht ein sehr leistungsfähiges und zukunftsträchtiges Dreigestirn zur Entwicklung von RIAs der nächsten Generation bereit. Eben dieses Zusammenspiel wurde hier aus technischer Architekturperspektive beleuchtet. Trotz der positiven Resultate muss auch erwähnt werden, dass das Konfigurieren des Flex-Mojo-Plug-ins an einige Stellen etwas mühselig ist. Dies gilt speziell beim Einbinden weiterer Features wie der Codegenerierung. So hat es mehrerer Versuche bedurft, bis wir ein lauffähiges Setup hinbekommen haben. Grund hierfür ist die leider noch etwas unvollständige und veraltete Dokumentation des Plug-ins. Mit ein wenig Recherche und etwas Geduld ließen sich aber schließlich die gewünschten Funktionalitäten zum Laufen bringen. Das Wesentliche, nämlich das Kompilieren von Flex-Projekten und das Verwalten verschiedener Flex-Module mit Maven funktioniert jedoch einwandfrei so wie im Rahmen des Artikels vorgestellt. Java Version >= 1.5 Maven Version = 3.0.1 Zum Ausführen der Anwendung sind schließlich mehrere Schritte notwendig. Zuerst muss das Projekt heruntergeladen werden. Das Projekt befindet sich im Github unter dem URL https://github.com/michaelschuetz/ spring Flex-javamagazin: Git Checkout [8] oder Herunterladen des gepackten Archivs cd spring-flex mvn install Nachdem alle notwendigen Maven-Artefakte heruntergeladen wurden, werden die Flex Sources kompiliert, mit der Java-Webanwendung verbunden und eine deploy-fähige Webanwendung erzeugt. Unsere Pizza-Anwendung erzeugt ein WAR-Archiv, das in gängige Servlet-Container installiert werden kann. Die Entscheidung, bei der Architektur auf Spring und nicht auf EJB zu setzen, ermöglicht das Deployment der Anwendung in einfache Servlet-Container, wie Tomcat und Jetty, sowie in Java-EE-konforme Applikationsserver. Der schlanke Ansatz der Architektur wirkt sich somit auch direkt beim Deployment aus, da die Turnaround- Marek Iwaszkiewicz arbeitet als Software Engineer beim IT-Dienstleistungs- und Beratungsunternehmen adesso AG. Seine Schwerpunkte dort sind EJB sowie Java-Enterprise-Architekturen mit Spring. E-Mail: marek.iwaszkiewicz@adesso.de. Michael Schütz arbeitet als Software Engineer bei der akquinet AG in Berlin und beschäftigt sich seit Jahren mit Java-Enterprise- Architekturen und -Technologien. Er ist Gründer und Moderator der Seam-Plattform auf Xing und wirkt regelmäßig an JBoss-Open- Source-Projekten mit. Michaels berufliche Interessen liegen derzeit in den Bereichen Seam/CDI, Java EE Testing, Java EE Cloud Hosting und Git. Kontakt: Michael.Schuetz@akquinet.de. Links & Literatur [1] http://flexmojos.sonatype.org [2] http://opensource.adobe.com/wiki/display/blazeds/blazeds [3] http://opensource.adobe.com/wiki/download/attachments/ 1114283/amf3_spec_05_05_08.pdf [4] http://www.w3.org/tr/soap [5] http://maven.apache.org/plugins/maven-war-plugin [6] http://www.actionscript.org [7] http://flexunit.org [8] http://git-scm.com 92 javamagazin 3 2011