ArtikelJuni 2009

Eclipse Galileo und SVN

Heute mal was ganz kurzes von mir :-)
Etwas holprig war doch noch die SVN Integration in Eclipse Ganymede. Für Galileo gilt dies nicht mehr. Der Kürzeste Weg zu SVN:

  1. Help > Install New Software… > Galileo – http://download.eclipse.org/technology/subversive/0.7/update-site/ > Collaboration > Subversive SVN Team Provider (Incubation)
  2. Help > Install New Software… > Add > Polarion – http://community.polarion.com/projects/subversive/download/eclipse/2.0/galileo-site/
  3. > Subversive SVN Connectors > Subversive SVN Connectors
  4. > Subversive SVN Connectors > JavaHL 1.6.0 Win32 Binaries (Optional)

Nicht durch das “Optional” verwirren lassen. Im Schritt 1 bekommen wir die SVN Integration für Eclipse. Im Schritt 2 legen wir Polarion als Update site an. Im Schritt 3 Installieren wir das Interface von Polarion zu Eclipse SVN und im Schritt 4 wählen wir noch eine der möglichen Implementierungen.

Fabian Lange

 

JavaOne 2009: James Goslings Toy Show

Toy Show

Toy Show

Wie jedes Jahr auf der JavaOne präsentierte James Gosling, Erfinder von Java und Sun Fellow, am letzten Tag die Toy Show, auf der Personen und Unternehmen für herausragende Tätigkeiten im Java Umfeld mit dem Duke’s Choice Award geehrt wurden.

Virtuelle Leinwand

Virtuelle Leinwand

Neben vielen Präsentationen mit Show-Effekt wie ein Lincoln Continental von 1959, welcher wahlweise mit Biodiesel oder Elektromotor angetrieben und mit Java-Technologie gesteuert wird oder einer virtuellen Leinwand auf Basis einer Wii-Konsole und JavaFX, auf der man freihand Bilder auf jeder beliebigen Fläche durch Handbewegungen erstellen kann, gab es auch die “leisen” aber wichtigen Entwicklungen wie die Bildanalyse für die medizinische Diagnose.

Bildanalyse

Bildanalyse

Dabei werden tomographische Bilder mit hochauflösenden Referenzbildern (300 Megapixel und mehr) bekannter Erkrankungen verglichen, um so eine präzisere Diagnose erstellen zu können. Dadurch können z.B. Krebserkrankungen frühzeitiger erkannt und Fehldiagnosen deutlich minimiert werden. Das System basiert auf Java EE und bei der Livedemonstration konnte ein Durchsatz von 90.000 Bildern in 0,3 Sekunden erzielt werden.

Golden Gate Bridge

Golden Gate Bridge

Leider bedeutete die Toy Show auch zugleich, dass wir am letzten Tag der JavaOne angekommen waren und eine tolle Konferenz in der faszinierenden Stadt San Francisco zu Ende ging. So fuhren wir am Abend zurück nach Solingen, im Handgepäck das neue Wissen rund um die angesagtesten Java-Technologien sowie den vielen Eindrücken aus San Francisco.

Rolf Felker

 

Simplium – Hilfe für Selenium

Einmal im Monat findet bei codecentric für alle Mitarbeiter ein Freitagsmeeting statt. Getreu nach dem Motto „Von Kollegen für Kollegen“ präsentieren wir uns gegenseitig interessante Themen aus unseren jeweiligen Fachgebieten und stellen neue Technologien vor. Ein Themenblock in unserem nächsten Meeting wird eine „Agile Testing Session“ sein. Für die Vorbereitung meines Beitrags habe ich mich nach einiger Zeit wieder einmal mit Selenium beschäftigt und bin dabei auf ein kleines nützliches Framework namens „Simplium – simple test framework for Selenium” gestoßen, welches ich im Folgenden kurz vorstellen möchte.

Wer bereits mit Selenium gearbeitet hat, kennt sicherlich seine Vorzüge. Man kann Testfälle mit den Firefox-Plugin Selenium IDE aufzeichnen und direkt in einen JUnit-Testcase exportieren. Über Selenium Remote Control kann man diese JUnit-Testcases dann z.B. aus der IDE oder aus einem Continous-Integration-Prozess ausführen.

Leider sind die Syntax der mitgelieferten Basisklasse für Testfälle sowie der Output aus Selenium IDE eher im JUnit 3-Format. Möchte man also JUnit 4 mit Annotations nutzen, muss der Entwickler selbst Hand anlegen. Zusätzlich möchte man vielleicht seine Testfälle gegen mehrere Testumgebungen oder unterschiedliche Browser laufen lassen, ohne alle Testfälle anpassen zu müssen. Aus diesen Gründen beginnen wahrscheinlich viele Entwickler zunächst mit der Erstellung eigener Basisklassen für ihre Selenium-Tests.

Die meisten der beschriebenen Probleme werden jedoch von dem schlanken Framework Simplium gelöst. Simplium bietet folgende Features

  • Konfiguration verschiedener Umgebungen: Selenium-Server-URL und Port sowie URL der zu testenden Anwendung lassen sich zu symbolischen Namen (development, test, production) definieren. Die gewünschte Umgebung wird beim Ausführen der Tests über eine System-Property ausgewählt.
  • Konfiguration der verwendeten Browser: Je nach gewählter Umgebung können die verwendeten Browser konfiguriert werden, z.B. nur Firefox bei development, Firefox und IE in der Test-Umgebung
  • JUnit 4 Unterstützung mit Annotations: Durch einen eigenen JUnit 4 TestRunner können Annotations genutzt werden. Gleichzeitig wird über den Testrunner auch die sehr nützliche Funktionalität der Screenshot-Erstellung bei Testfehlern für JUnit 4 bereitgestellt.
  • Hilfreiche zusätzliche Annotations: Über die @Delay-Annotation lässt sich z.B. eine Verzögerung zwischen jedem Selenium-Command konfigurieren. Dies kann beim Debuggen sehr nützlich sein. Über @RunOnlyIn* kann man einige Testfälle auf bestimmte Umgebungen einschränken. Über @Timeout lässt sich generell der Timeout für Open- und WaitFor-Commands festlegen.
  • Startet man Selenium-Testfälle aus der IDE muss vorher ein Selenium-Server gestartet werden. Dies wird auch von Simplium übernommen.

Alles in Allem ist Simplium für mich ein sehr nützliches, kleines Addon für Selenium. Vielleicht übernimmt OpenQA ja einige Ansätze in die anstehende Version 2.0 von Selenium.

Daniel Reuter

 

JavaOne 2009: codecentric meets dynaTrace

dynaTrace LogoNeben den bekannten Größen der Java-Szene ist auch unser Partner dynaTrace mit einem Stand auf der diesjährigen JavaOne vertreten. Dort hatten wir die Gelegenheit, uns mit Alois Reitbauer über die kommenden Features in dynaTrace 3.1 zu unterhalten, u. A. die Unterstützung von Continuous Integration Prozessen. Begeisterungsstürme löste unser Besuch am Stand auch bei Michael Killoran (VP Sales North America) aus, der schon viel von den codecentric Erfolgen mit dynaTrace Produkten auf dem deutschen Markt gehört hat.

dynaTrace PartySelbstverständlich wurden wir zur abendlichen dynaTrace Cocktailparty im B’s eingeladen und konnten dort weitere der aus Linz und Boston angereisten DynaTracer näher kennen lernen. Mit dem CEO John Van Siclen unterhielten wir uns über unsere Eindrücke von der JavaOne und unsere Erfahrungen im Umgang mit dynaTrace Produkten undiPod Touch erhielten zusätzlich Tipps für Sightseeing-Locations in und um San Francisco. Ein Wochenendtrip in die nördlichen Regionen (auch bekannt als “Wine Country”) ist bereits verabredet!

Als krönender Abschluss hat sich der Abend auch noch für die Ehefrau unseres Kollegen Nick gelohnt: Bei der Verlosung eines iPod Touch war sie die glückliche Gewinnerin.

Carsten Mjartan

 

JavaOne 2009: RIA development with JavaFX

“Hallo” von der JavaOne 2009! Zusammen mit drei meiner Kollegen sowie Hunderten von Entwicklern, Architekten und den größten Java Unternehmen bin ich gerade auf der Nummer eins Java Konferenz im schönen San Francisco (ich habe hier zum ersten Mal James Gosling live beim T-Shirt schleudern gesehen – leider habe ich keins gefangen).

Eins der Themen welches mich am meisten interessiert ist der aktuelle Stand von JavaFX (gerade wurde die Version 1.2 freigegeben). Seit Jahren entwickle ich nur JSPs, und ich schaue mich schon seit längerem nach einer neuen, innovativen und schicken Art den View Layer darzustellen um, ohne auf die gewohnten Features von Java zu verzichten zu wollen. JavaFX gibt es nun set knapp 2 Jahren (zum ersten Mal angekündigt im Mai 2007, das 1.0 Release kam im Dezember 2008) und ist mittlerweile ein stabiles und in Produktion einsetzbares Framework.

Ich habe mir Sessions über die Integration von Spring und JBoss Seam mit JavaFX (@see Flamingo) angesehen, welche es ermöglicht echte Enterprise Applikationen zu entwickeln. Auch wurde gezeigt, wie Adobe Photoshop/Illustrator Dateien direkt in ein JavaFX Archiv (eine .jfz Datei) exportiert werden können. Ein Entwickler kann über Namenskonventionen (jfx:layerid) direkt auf die enthaltenden Layer zugreifen und diese manipulieren. Auf diese Art und Weise wird es möglich, einem Designteam eine Spec zu geben, um ein Artefakt entwickeln, welches dann einfach in die Applikation integriert werden kann.

Was mir besonders gut gefallen hat ist die Möglichkeit Anwendungen auf verschiedene Plattformen wie das Web, den Desktop oder auch mobile Endgeräte zu deployen. Es wird auch möglich sein seine Anwendungen direkt in den brandneuen Java Store (der Java Store wurde während der Konferenz als geschlossene Beta gestartet, eine offene Beta Phase soll später im Sommer folgen) zu deployen.

Auch hat sich die Unterstützung für JavaFX in der Entwicklungsumgebung eclipse
verbessert. Netbeans ist immer noch die bevorzugte IDE, aber ich arbeite täglich mit eclipse und es gibt ein offizielles Plugin auf javafx.com sowie Firmen, welches Tools wie exadel’s JavaFX Studio entwickeln. Dank dieser Tools konnte ich in wenigen Minuten mein erstes JavaFX “Anwendung” (nur ein schöner Text auf einem 3D Kreis) entwickeln und starten.

Als nächstes möchte ich echte Anwendungen schreiben, nicht nur ein “Hey, ein animiertes Ding – hab ich mit JavaFX gemacht” Demo. Wer sich selber die Finger schmutzig machen will kann die excellenten Tutorials auf javafx.com ausprobieren.

So, ich muss los, ich bin schon spät dran, die nächste Session geht gleich los.

Nick Prosch

 

Java Framework Marketing

Der erste Eindruck ist wichtig, denn er ist entscheidend für unsere Erwartungen. Wenn man sich nach einer neuen Technologie, oder einem Framework umsieht, so sind Erfolgsgeschichten anderer Nutzer ein wichtiger Faktor um Vertrauen aufzubauen. Natürlich ist es fraglich immer anderen Firmen nachzulaufen, aber das Risiko der allererste Nutzer zu sein ist doch sehr hoch. Aber nicht nur solche Case Studies, sondern auch eine echte Community (also kein totes Forum) mit Feeds, Blogs und vielem mehr, sollten heute auf jeder Framework Webseite zu finden sein, zeigt eine wohl ausgestattete Webseite doch transparent die aktive Entwicklung und Pflege. Natürlich sollte die Seite auch nett und ansprechend gemacht sein, idealerweise mit dem Framework selbst.

Wie aber kümmern sich die Großen unter den Java Frameworks um den ersten Eindruck?

  • Tapestry, ein schönes Framework mit vielen Generatoren, hat auf seiner Seite keinen Marketing Bereich, man findet nur recht schnell ein herunterladbares Logo, mit welchem man auf seiner Seite zeigen kann, daß sie mit Tapestry läuft. Die Dokumentationsseiten sehen sehr statisch aus, das Wiki etwas unübersichtlich, jedoch enthüllt es nach etwas Recherche eine Liste von Referenzen. Zumindest ist die Seite sauber strukturiert und offensichtlich aktuell.
  • Struts, in Version 2, ist der Nachfolger des wahrscheinlich am häufigsten benutzten Java Web Framework. Alte und teilweise falsche Informationen, präsentiert auf einer ganz und gar nicht ansprechenden Seite. Selbst wenn man weiß wonach man sucht findet man es im Wust doppelter (wohl geschuldet an die Zusammenführung von WebWork und Struts2) und veralteter Seiten nicht immer.
  • Java Server Faces, vertreten durch den größten “Community Player”: MyFaces, hat leider auch wenig Marketing. MyFaces hat dabei sogar erst kürzlich die Seiten komplett neu gestaltet. Dennoch finden sich keine Informationen über Kunden, oder gar Demonstrationen. Sehr viele technische Informationen (mit der JSF Spec gleich auf der Startseite), jedoch kein Versuch von dem Nutzen von MyFaces zu überzeugen.
  • Spring MVC oder Web Flow haben keine echten eigenen Seiten, sie sind als Unterpunkte auf der SpringSource Seite gelistet. Exzellente Dokumentation und Foren helfen Entwickler, überzeugen aber wohl keine Entscheider.
  • Wicket, ein Java Web Framework welches anders sein will, ist da schon besser aufgestellt. Blogs, verschiedene Themenfeeds, Live Demos und eine aktive Community zeichnen ein sehr gutes Bild von dem Framework. Viel Information verschiedenster Art wird übersichtlich präsentiert.

Ein kleiner Blick auf die Kontrahenten: Die dynamischen / Scripting Sprachen. Ich wähle einen Vertreter jeder Gattung:

  • Das PHP “symfony framework” berichtet häufig über große Installationen, z.B bei dailymotion, Yahoo! Answers, Bookmarks und Delicious. Ein Blog, Forum, Wiki (welches aber mal aufgeräumt werden könnte), Screencasts, und Unmengen von Dokumentation, welche in einer Vielzahl von Sprachen erhältlich ist, sind verfügbar. Und die Seite ist selbst mit symfony erstellt. Vom Design her gehe die kürzlich veröffentlichten standalone components einen weiteren Schritt in Richtung ansprechender Präsentation.
  • Ruby on Rails hat sogar eine application gallery, in der große Referenzen wie Twitter, Basecamp oder die yellow pages vorgestellt werden. Hervorragende screencasts, anwendergeschriebene How-tos und ein Blog halten die Community informiert und bindet sie ein. “Get Excited” ist der Titel des ersten Unterbereiches – eine sehr verführerische Aufforderung…
  • Django, ein Python basiertes Web Framework, hat sogar eine eigene Seite, welche Anwenundgen “powered by django” präsentiert, auch wenn sie nicht nach Wichtigkeit oder Größe sortiert sind. Es gibt ebenfalls ein Blog und ein großes Community Wiki. Obwohl das Layout etwas gewöhnungsbedürftig ist und die Seite selst sehr textlastig, fällt die Suche leicht.

Mit der Ausnahme von Wicket musste ich bei allen Java Web Frameworks feststelle, daß die Seiten sich an Entwickler wenden welche das Framework bereits kennen. Marketing betreiben sie in keiner Form. Ich weiß nicht warum dem so ist, jedenfalls sind das meine Beobachtungen. Vielleicht liegt es daran, daß:

  • … Java eine Sprache für Geschäftsanwendungen ist. Es gibt kein Interesse an dem Web Massenmarkt.
  • … Java von Technikern entwickelt ist: Gute Dokumentation aber keine Werbemaßnahmen.
  • … Java ganz anders als das Web skaliert. Ist eine “shared nothing” Architektur besser als die von Java favorisierten Cluster?
  • … es zu viele große Mitspieler in der Java Welt gibt. In anderen Sprachen sind die Top frameworks leichter zu finden.
  • … Java Entwickler lieber Code als Dokumentation und Werbung schreiben.
  • … Java Frameworks Webseiten entweder mit java.net, apache.org oder maven-site Stil gebaut werden. Dieser Stil ist zwar stukturiert und kann generiert werden, ist aber überhaupt nicht ansprechend.

Da ich ein großer Fan von Java Frameworks bin macht mich dies natürlich traurig, daher hier meine Ideen um Abhilfe zu schaffen:

  • Tue Gutes und sprich darüber. Es gibt keinen Grund zu übertreiben, aber zeigt was ihr könnt.
  • Euer Framework ist toll! Nutzt es und macht Eure Webseiten damit. Eine Bessere demonstration kann es nicht geben.
  • Benutzt aktuelle Tools, wie ein Blog, RSS feeds und ein Wiki (schonmal vom web 2.0 gehört?)
  • Seid transparent – nutzt einen schnellen und einfach zu bedienenden Bugtracker (tschüß bugzilla).
  • Macht ein einfaches Design. Es gibt sehr viele freie schöne ansprechende Designs. Denkt daran: Ihr präsentiert Euch und Eure Arbeit.
Fabian Lange