Tag Archive for 'Java'

Wjax 2009 Donnerstag

Der JSF Day war in meinen Augen das Highlight der W-Jax 2009. Im Fokus standen dabei natürlich die Neuerungen von JSF 2.0, hier und da wurde jedoch auch ein Blick über den Tellerrand geboten.

JSF jenseits der Spezifikation - Der Titel des Vortrages klingt cool, viel gibt es hier jedoch nicht zu erwähnen. Hier wurde ein Überblick zu bestehend Frameworks im JSF Bereich geboten und bewertet und vor allem, welche von diesen in Zukunft wohl keine Zukunft haben werden.

JSF 2.0 in Action - Die meisten Neuerungen waren mir bereits bekannt. Nicht desto trotz war ich von diesem Vortrag begeistert. Alles was man irgend wo gelesen und gehört hat wurde nun geballt in einen Vortrag dem Zuhörer präsentiert. Besonders hat mir gefallen, dass der Speaker (Kito D. Mann, www.jsfcentral.com) viele der Neuerungen direkt und live im Code gezeigt hat. Eine Auflistung der neuen Features möchte ich mir an dieser Stelle sparen, detaillierte Infos und Code-Beispiele gibt es hier: blogs.sun.com/rlubke. Im Großen und Ganzen ist zu sagen, dass JSF 2.0 ein großer Wurf zu seien scheint, da man das Beste aus allen existierenden Frameworks in eine Spezifikation zusammengetragen hat. Viele Nachteile des Vorgängers wurden damit ausradiert und einige Frameworks müssen um ihre Daseinsberechtigung bangen.

JSF und Portale – Das neue Dreamteam - Für mich ist die Thematik Portale und Portlets noch Neuland. Aus diesem Grund habe ich in diesen Vortrag viel neues gelernt. Ganz so einfach scheint die Kombination von JSF und Portlets (damit meine ich richtige Portale nach der Spezifikation JSR-301 und JSR-329) dann doch nicht zu sein, wie ich anfangs dachte. Die Lifecycles unterscheiden sich erheblich. Zum Glück gibt es so genannte PortletBridges, die diese Probleme kapseln und somit dem Titel des Vortrages einen Sinn geben. Auf www.jsf-forum.de und www.jsf-portlets.de sind zusätzliche Informationen zu finden.

Practical Guide through JSF Testing - In diesen Vortrag wurden einige Test-Frameworks für JSF vorgestellt. Neben dem mir bereits bekannten Selenium, war für mich nur noch JSFUnit von JBoss eine relevante Option. Die Möglichkeit auf den FacesContext zuzugreifen und somit auf den JSF component tree, hat mich sehr beeindruckt. Dadurch ist es möglich, die Testabdeckung auch im Frontend maßgeblich zu erhöhen.

Writing Killer JSF 2.0 UI Components - Die Möglichkeiten zum Schreiben von eigenen Komponenten wurde in JSF 2.0 sehr sehr sehr verbessert und erweitert. Auf dem ersten Blick hat mir die Kombination von <component :interface /> und <component :implementation /> in der selben XML-Datei gefallen. Wie der Name der Tags schon andeutet, befinden sich dadurch Definition und Implementierung der Komponente übersichtlich an einem Ort, was mir persönlich sehr gefällt. Ich hoffe, dass damit das Schreiben von TLD-Dateien in Zukunft nicht mehr nötig sein wird. Durch das neue Resource-Handling kann man nun die Komponenten besser aus den spezifischen Eigenschaften der Applikation herauslösen und sich leichter einen eigene Bibliothek aufbauen.

Fazit: Die W-Jax 2009 ist hier für mich vorbei. Mir hat es sehr gefallen, ich hab viel gelernt, gut gegessen und viel Spaß gehabt. Einige neue Technologien werden mit hoher Wahrscheinlichkeit auch den Weg in unsere Projekte finden. Für mich persönlich ist daher ein sehr positives Fazit zu ziehen.

powered by: x-root Software GmbH

Wjax 2009 Mittwoch

Der Mittwoch war sehr informativ, hier mein Senf dazu:

Spring 3.0 und wie es weiter geht - Ein paar schöne neue Sachen sind dabei, wie zum Beispiel die SpEL. In wie weit einige dieser neuen Features wirklich den Weg in unsere Projekte finden, wird sich noch zeigen müssen. Was auch schon vorher bekannt war, aber noch mal erwähnt werden sollte: Spring wird definitiv nur noch modular angeboten werden. Eine Spring.jar mit allen Abhängigkeiten gehört ab der Version 3.0 der Vergangenheit an. Zwangsläufig ist man nun auf Ivy oder Maven angewiesen. Sonst gab es nach meinem Wissenstand keine Abweichungen von den Ankündigungen, die es bereits im Netz zu lesen gab.

RIA mit Spring - Hier hatte ich recht hohe Erwartungen, jedoch macht sich in mir nicht das Gefühl breit, zukünftig auf Spring Faces, MVC und/oder Web Flow setzen zu müssen. JSF 2.0 steht irgend wie auch noch außen vor. Hat mich persönlich alles nicht vom Hocker gehauen.

Scala at Work - Ein schneller Kurzausflug in die Welt von Scala und mit „schnell“ meinte ich wirklich schnell. Das Tempo war recht hoch, trotzdem ist einiges hängen geblieben. Somit kann ich als Fazit doch sagen, dass man sich mit Scala beschäftigen sollte. Warum? So wie ich es verstanden habe, können in Scala geschriebene Klassen nahtlos als Lib in bestehende Java-Applikationen eingebunden werden, da auch diese auf der gleichen JVM laufen. Ob das wirklich so nahtlos in der Praxis funktioniert, muss noch mal evaluiert werden. Die Hürde, Scala zu verwenden da wo es Sinn macht (!!!), würde erheblich sinken. Ich denke, ich werde da noch ein paar Recherchen machen müssen.

GUI Security - Der Vortrag war für mich sehr interessant und hilfreich. Es wurden viele Problemstellungen angesprochen, die auch wir in unseren Projekten haben. Der Redner (Mike Wiesner) zeigte einige Möglichkeiten auf, wie man Sicherheit (Rollen- und Rechtevergabe) in GUIs, unabhängig ob Web- oder Swing-Applikation, praktisch umsetzen kann. Diese unterschiedlichen Möglichkeiten wurden gleichzeitig bewertet und die Vor- und Nachteile aufgezeigt. Besonders die letzte Variante, wofür jedoch AspectJ benötigt wird, hat mir persönlich gefallen, da hier eine saubere Trennung zwischen den Domain-Objekten und den Sicherheits-Aspekten vorgenommen wird.

powered by: x-root Software GmbH

Wjax 2009 Dienstag

Die Ausbeute am Dienstag war nicht ganz so gut, viel Neues war nicht dabei. Nichts desto trotz möchte ich meine Kommentare zu den interessantesten Vorträgen abgeben.

Why the next five Years will be about Languages - Der Tag begann mit einer recht unterhaltsamen Keynote. Die Art der Vortragsweise war recht cool, es hat Spaß gemacht zuzuhören. Viel mitgenommen habe ich allerdings nicht, außer dass sich in Sachen Sprachen-Vielfalt so einiges tun wird.

The Future of Enterprise Java - Ein recht interessanter Vortrag über die Zukunft von Java EE. Dabei wurden Statistiken gezeigt, welche Sprachen im Kommen sind, welche „sterben“ und das Ganze immer in Bezug auf EJB. Zudem wurde resümiert, in wie fern Vorhersagen von 2008 eingetroffen sind. Neuerungen in EJB 3.1 wurden kurz angeschnitten und mit der Vorgängerversion verglichen. Zu guter Letzt wagte der Speaker (Adam Bien) einen Ausblick, was in Zukunft im Kommen ist und welche Trends man im Auge behalten sollte. Wie so oft auf dieser Konferenz fielen dabei Begriffe wie OSGi und Scala.

Hibernate Search - In diesem Vortrag wurde Hibernate Search vorgestellt, wie es funktioniert und was man damit anstellen kann. Für komplexe Suchen auf großen Datenmengen eine sinnvolle Möglichkeit seine Applikation zu erweitern. Die Einbindung scheint prinzipiell nicht so schwierig zu sein. Im Großen und Ganzen eine tolle Sache, wenn man es braucht und eine explizite Anforderung seitens des Kunden für eine Volltextsuche vorliegt.

powered by: x-root Software GmbH

Wjax 2009 Montag

Der Agile Day ist vorbei, die meisten Vorträge waren sehr gut und einige wenige nicht. Erkenntnisse und Kommentare zu den interessantesten Vorträgen meinerseits:

Langfristige Planung agiler Vorhaben - Im ersten Vortrag der wjax ging es, wie der Titel schon andeutet, um langfristige Planung. Wichtige Konzepte und Schlagwörter sind beispielsweise Time Boxing, regelmäßige Neuplanung, gemeinsame Planung (Schätzpoker), Priorisierung, Velocity, usw… Die Ansätze und Methoden gefallen mir ganz gut und lassen sich in unsere Firma durchaus an einigen Stellen übernehmen. Der Vortrag war auf 45 Minuten begrenzt und bot daher nur einen Einstieg.

Architektur und Agilität - Ich hab es schon immer gewusst, man kann nicht alles planen und vorhersehen, gerade in Bezug auf die Architektur. Und das Wichtigste: Man soll es auch gar nicht! Der Vortrag ging zwar nur 20 min, trotzdem ist es dem Redner (Uwe Friedrichsen) gelungen die wichtigsten Punkte vorzustellen und zu erläutern. Eine der Kernaussagen ist, dass „keine vollständige à priori Spezifikation möglich“ ist. Wie so oft, liegt das Optimum irgendwo in der Mitte. So ist das eine Extrem „No Design Up Front“ zwar am Anfang produktiv, jedoch bricht die Performance nach ein paar Iterationen ein. Das andere Extrem „Big Design Up Front“ (BDUF) gilt als änderungsresistent, starr und schlecht vermittelbar. Als goldenen Mittelweg nannte der Redner das „Lean Upfront Design“. Es ist schnell, leichtgewichtig, änderbar und vor allem leichter vermittelbar, besonders gegenüber dem Kunden. Mehr Infos gibt es unter www.codecentric.de. Mir hat der Vortrag gefallen.

Mit Retrospektiven zu erfolgreichen Projekten - Zu allererst wird erstmal der Spruch „Zu erst mal die Säge schärfen“ auf die Schippe genommen. Fand ich ganz lustig, da ich den Spruch nun auch schon öfter gehört habe. Danach ging es um Retrospektive, nicht mehr und nicht weniger. In diesem Vortrag ging es unter anderem darum, welche Techniken und Methoden es gibt, worauf man achten und welche Regeln man einhalten sollte. Insgesamt fand ich den Vortrag recht informativ und mal schauen, wie man das, wenigstens zum Teil, in die Praxis umsetzen kann. Zu diesen Thema gibt es schon diverse Bücher.

Der erste Tag war sehr informativ. Auch die Vorträge von mobile.de und xing waren in so fern interessant, dass man einfach mal gehört hat, mit welchen Problemen größere Unternehmen zu kämpfen haben und wie sie gelöst werden. Die Pecha-Kucha-Session “Mein agiler Koffer” war eine gute Abwechslung in Bezug auf die Vortragsweise. 6 “Pecha Kucha Speaker” hatten jeweils nur etwas mehr als 6 Minuten Zeit, ihren agilen Koffer zu packen. Somit waren die Vortragenden gezwungen in dieser kurzen Zeit auf den Punkt zu kommen. Hat mir persönlich sehr gefallen.

powered by: x-root Software GmbH

Persistierung von Http Sessions beim Neustart vom Glassfish verhindern

Wenn man viel mit Spring arbeitet kennt man das Problem. Wenn der Server neu gestartet  oder die Web Applikation undeployed wird, fallen einen sofort die unschönen NotSerializableExceptions auf. Ok, kann man mit leben, ist ein bekanntes Problem… Jedoch bin ich durch Zufall auf die Lösung gestoßen.

Per Default werden Http Sessions vom Glassfish eh nur im Speicher gehalten, jedoch versucht der Server beim Neustart die noch laufenden Sessions in eine Datei zu schreiben (serialisieren). Das kann durch eine Konfiguration in der sun-web.xml unterbunden werden:

<sun-web-app>
    <session-config>
      <session-manager persistence-type="memory">
        <manager-properties>
          <property name="sessionFilename" value="" />
        </manager-properties>
      </session-manager>
    </session-config>
  </sun-web-app>

Beim “sessionFilename” wird einfach das value leer gelassen. Für den Glassfish heißt das, dass er nix speichern soll. Nachzulesen auch auf der Website von sun.

Glassfish Installation unter Windows

In den meisten Fällen reicht es aus, einfach nur NetBeans runter zu laden und zu installieren. Dort wird der Glassfish automatisch mitgeliefert. Will man NetBeans aber nicht haben und eventuell sogar mehrere verschiedene Versionen des Glassfish parallel installieren, muss man andere Wege gehen.

Man lädt sich keine setup.exe runter, wie man es als Windowsnutzer gewöhnt ist, sondern ein JAR-Archiv von der Seite glassfish.dev.java.net. Auf der Downloadseite findet sich auch die folgende Anleitung auf englisch:

  • Prüfen, ob JAVA_HOME in den Umgebungsvariablen auf den richtigen JDK gesetzt sind.
  • In der Eingabeaufforderung im entsprechenden Verzeichnis folgenden Befehl ausführen:
java -Xmx256m -jar filename.jar
  • Der Server wird im Verzeichnis \glassfish entpackt. Danach folgende Befehle ausführen:
cd glassfish
lib\ant\bin\ant -f setup.xml
  • Done.

    Ob man es glaubt oder nicht, das war’s schon. Das Ant Script konfiguriert alles was nötig ist, um den Server mit:

    cd /bin
    asadmin start-domain domain1

    zu starten.

    Java JNI nutzen mit Hilfe von Eclipse CDT und MinGW

    Da ich mich jüngst mit diesem Thema beschäftigt habe und ich auch ein paar Stunden Zeit investieren musste, bis alles einwandfrei funktionierte, hier nun eine kleine Anleitung nach dem Schema “Hello World”, wie man Java und C++ mit Hilfe von JNI verbindet und das Ganze in Kombination mit Eclipse. Continue reading ‘Java JNI nutzen mit Hilfe von Eclipse CDT und MinGW’

    Neues Plugin für Eclipse zur Qt – Integration

    Vor einiger Zeit hatte ich noch ein ausführliches Tutorial geschrieben, wie man Qt und C++ mit Hilfe von CDT in Eclipse integriert. Die ganze Sache ist/war ein wenig umständlich und aufwendig. Nun scheint Trolltech selber ein Plugin für Eclipse entwickelt zu haben, wie ich auf Golem.de gelesen habe. Leider kann ich noch nicht sagen, wie das Plugin funktioniert und was es genau macht. Momentan habe ich leider auch keine Zeit es zu testen und um dann ausführlicher darüber zu berichten. Die schon ein paar Tage alte News will ich aber keinem vorenthalten, auch wenn das heißen könnte, dass die von mir mühselig verfasste Anleitung nun nicht mehr benötigt wird ;-) . Sollte ich Qt irgendwann noch mal benötigen, werde ich mich mit dem Plugin näher befassen und dann auch etwas dazu schreiben.

    Weiterführende Links:

    Ich hoffe die Links helfen interessierten Lesern weiter.