JAX 07: die Jax webzweinullt total!

Es wurde Abend, es wurde morgen, der zweite Tag. Das Orga-Team der JAX leistet wieder mal ganze Arbeit, es klappt einfach alles! Von allen jaxxen – meine erste war noch seinerzeit in Mörfelden – ist dies (bislang) die beste, und das obwohl erst Dienstag Mittag ist!

Einzig und allein eine kleine Erkältung und einen verspannten Nacken hab ich davongetragen – andererseits ist es ja auch gut das die Klimaanlage so gut funktioniert.

Das Orga-Team fährt die Web2.0-Schiene fast in Perfektion: Mitbloggen, ein eigener JAX-Blog, Flickr-Group… nur die Übertragung in YouTube fehlt noch.

JSF Bibliotheken manipulieren (@ JAX 07)

  • Bekannt: Apache MyFaces, Sun RI
  • Aufsätze: Apache Shale, Seam, Ajax4JSF (Interaktion zwischen Ajax und JSF), Facelets
  • Komponenten-Bibliotheken: Apache MyFaces Tomahawk / Trinidad / Tobago, ICEFaces, Rich Faces, etc…

Rederklassen und Komponenten sind austauschbar!

  • Renderer implementieren Konvertierungen, De- und Encoding…
  • In der „faces-config.xml“ kann der Renderer ausgewechselt werden
  • Komponenten enthalten Eigenschaften, aber auch selbst En- / Decoding, Validierung und Konvertierung

Auch Kernklassen sind austauschbar. Zum Beispiel der Navigation Handler, State Manager, View Handler, Variable Resolver etc…

Java Persistence API Basics (@ JAX 07)

  • Standard für Persistenz in Java; Teil von EJB 3.0 (JSR220); RI = Toplink Essentials (Glassfish)
  • Vereinfachung von EJB 2.0
  • Java5 Annotations (und XML…)
  • ORM-Frameworks: Eclipse Link (Oracle Toplink), Hibernate (JBoss), OpenJPA & Cayenne (Apache)

Annotationen:

  • @Entity für Class, @Generated für Felder
  • @Temporal, @OneToOne für eigene Felder und Beziehungen

Spring Framework:

  • Apache 2.0 License
  • Als eine Art „Abhilfe“ für Java EE (J2EE) -> Einfach!
  • Sehr mächtiges Tool (AOP, Transactionsm DI, JDBC), Anbindung an verschiedenFrameworks (JSF, Struts, EJB, Hibernate, AspectJ…)
  • Direkter Support vorhanden für Hbernate, OpenJPA, Toplink
  • Integration in JSF: JSF View -> JSF Bean (View Controller) -> Service -> DAO/Repository

Anbindung:

  • Deklaration eines EntityManager via konkreter Implementierung einer Bean
  • Dann: TransactionManager deklarieren, direkte Übergabe an EntityManagerFactory-Bean

Links:

Facelets – Basics (@ JAX 07)

Intro:

  • Einsatz möglich in JSF 1.2. In JSF 2.0 wird voraussichtlich ein Templating-Ansatz von Haus aus vorhanden sein.
  • Verschiedene Komponenten können zusammengefasst als neue Komponente definiert werden, was wesentich schneller funktionieren kann als eine eigenen neue Komponente zu schreiben.
  • Nur Doc-Type „xhtml:transitional“ möglich

Konfiguration:

  • in web.xml oder über Wildcard (siehe Doku)

Templating:

  • Template-Datei wird angelegt, z.B. „/myTemplate.xhtml“
  • Aufbau wie JSP-Seite mit HTML-Tags undeinigen Sonderfeldern für die Faclets-Steuerung
  • Tag: „<ui:insert>
  • Neue Seiten werden einfach als xhtml-Content angelegt und via faces gerendert. Dabei wird sich, wie in der Content-Datei via Tag „<ui:comosition>“ angegeben, auf das (Master-) Template bezogen.

Komponenten verbinden / neue Komponenten:

  • Definition von neuen Komponenten auf Basis der herkömmlichen Komponenten, z.B., „verkleben“ von „h:outputLabel“ und „h:inpuText“.
  • xhtml-Datei beschreibt die neue Komponente (im Ordner „WEB-INF“)
  • Angabe weiterer Eigenschaften in Definitionsdatei möglich
  • Definition einer Taglib für die neue Komponente, z.B. jax.taglib.xml.
  • In der Taglib: Angabe des Namespaces, Tagname, Sourcefile etc
  • Die Taglib wird anschliessend noch in der web.xml registriert
  • Komponente kann nun durch Einbinden des Namespaces via „xmlns:“ in den Content-Files genutzt werden

JAX 07: (JSF-Ajax) Maven für alle

Maven für alle!Die Jax lässt sich mal wieder sehr gut an. Nach 2 Jahren Abstinenz tut es gut, unter 1600 Entwicklern (ok, heute, am Montag, sind wohl nur ca 600 hier) zu sein und sich als Teil einer großen Bewegung zu sehen.

Die erste Installations-Session ist gerade durch. Knapp 80 Teilnehmer der JSF – Ajax – Session haben mal fix einen Grundkurs in Maven bekommen und Ihre Notebookplatten mit knapp 500mb an Session-Files zugepflastert. Nun steigt die Spannung was wir mit den Files machen…

und jetzt alle gemeinsam: mvn clean jetty:run