Jan 08

Still und leise ist sie dahergekommen. Wie viele andere Groovy Projekte (Groovy 1.7, GPars 0.9, Gant 1.9) ist auch für Grails pünktlich zur Groovy&Grails Exchange eine neue Version erschienen. Die finale Version 1.2 hat lange auf sich warten lassen.

Eine stabile Version sollte es werden. Das war der Grund für die lange Beta und RC Phase. So basiert Groovy 1.2 auch noch auf der Groovy Version 1.6.7.

Zur neuen Version hat Dierk König (Author von Groovy in Action) einen ausführlichen Artikel geschrieben, so dass an dieser Stelle nur eine kurze Liste neuer Funktionen folgt:

  • Deklarative Abhängigkeiten für Bibliotheken innerhalb von Grails Anwendungen
  • Schnellere Sichten – Performancesteigerungen für Groovy Server Pages (GSP)
  • GORM defaults werden konfigurierbar
  • Named queries, die auch als Selektionsbasis für die dynamischen Finder Methoden dienen können
  • Ausbau, der eh schon sehr guten REST und JSON Unterstützung
  • die Grails documentation engine kann auch für andere (nicht auf Grails basierende) Anwendungen genutzt werden
  • Update auf Spring 3
  • fein granular konfigurierbare DataSources
  • erweiterte Unterstützung von annotierten Entities
  • Tomcat als Default Servlet Container. Andere Servlet Container wie z.B. Jetty werden ebenfalls unterstützt.

Die komplette Liste der Änderungen könnt Ihr im Change Log und den Release Notes nachlesen.

Grails 1.2 steht auf der Projektseite zum Download bereit. Für bestehende Grails Anwendungen reicht wie immer ein

grails upgrade

Der Sprung von Version 1.1 auf 1.2 ist nicht so groß, wie der von Version 1.0 auf 1.1. Von daher sind bis jetzt nur wenige Probleme bekannt.

geschrieben von gklinkmann \\ tags: , , ,

Dec 27

canoo webtest Report

Das auf Groovy basierende Webframework Grails ermöglicht in der Java Welt eine schnelle Entwicklung von Webapplikationen. Die Schnelligkeit erkauft man sich aber nicht durch den Verzicht auf Tests. Im Gegenteil.

Mit dem Canoo – Webtest Plugin sind die Tests genauso schnell geschrieben, wie die Anwendung selbst (was aus meiner Sicht der einzige Weg ist dem Entwickler das Testen schmackhaft zu machen).

Für die Installation reicht ein simples:

> grails install-plugin webtest

Und mit:

1
2
3
4
5
6
7
> grails create-webtest
WebTest name not specified. Please enter:
<domain -name>
     [copy] Copying 1 file to <pfad zur Grails App>
     [copy] Copying 1 file to </pfad><pfad zur Grails App>/webtest/tests
Web Test generated at webtest/tests/<domain -name>Test.groovy
</domain></pfad></domain>

erstellt man seinen ersten Test für eine Domainklasse von Grails. Alle Tests werden standardmäßig unter /webtest/tests abgelegt. Ein generierter Test könnte so aussehen:
Continue reading »

geschrieben von gklinkmann \\ tags: , , , ,

Nov 29

grailspodcast logo

Eine der wichtigsten Resourcen, wenn man sich mit Groovy und Grails beschäftigt, ist aus meiner Sicht der Grails Podcast von und mit Sven Haiges und Glen Smith.

Der Podcast, der alle 2 Wochen in englischer Sprache erscheint, hat nun die Folge 100 erreicht.
Alles Gute von meiner Seite zu diesem Ereignis und vielen Dank für die zahlreichen Informationen und News der letzten Jahre rund um die Themen Groovy und Grails.

Macht weiter so.

geschrieben von gklinkmann \\ tags: , , , ,

Nov 23
Groovy Logo

Aus meiner Sicht ist Groovy, die dynamische Sprache für die Java Virtual Machine, auf der großen Hype Kurve am Punkt der technischen Realität angekommen. Mit Scala und Clojure werden statt dessen gerade 2 neue Programmiersprachen durch die Gemeinde der Java Jünger getrieben.

So ist es an der Zeit einmal zu hinterfragen, was man selbst bis jetzt mit Groovy implementiert hat, ob man dabei bleibt oder doch auf den Scala Zug aufspringt.

Dierk König, der Autor von “Groovy in Action” (dem besten Fachbuch, das ich in letzter Zeit gelesen habe), hat einmal folgende 7 Anwendungsmuster für Groovy herausgearbeitet:

Super Glue, Liquid Heart, Keyhole Surgery, Smart Configuration, Unlimited Openness, House-Elf Scripts, Prototype

Oder nicht ganz so prosaisch, als:

  • Bindeglied zwischen Java Komponenten (wie z.B. Spring und Hibernate in Grails)
  • Auslagerung der Buisiness Logik, um sie dynamisch auf Veränderungen anpassen zu können
  • Eingriffsmöglichkeit in laufende Applikationen
  • Erweiterung der Konfiguration mit den Mitteln einer Programmiersprache (um endlich das plumpe XML loszuwerden)
  • die leichte Veränderung von Code zur Laufzeit
  • Hilfe für alle Aufgaben, die durch die Programmierung anfallen (Build automation, continuous integration, deployment, installer, service monitoring, reports, statistics, automated documentation, functional tests, HTML scraping, Web remote control, XML-RPC, WebServices)
  • Tool zur schnellen Erstellung von Prototypen, mit der Möglichkeit diese später auf Java portieren zu können.

Doch zurück zum Ausgangspunkt. Was mache ich mit Groovy?

Zuerst einmal schreibe ich 95 % aller neuen Tests in Groovy. Die knackige Syntax, die perfekte Interoperabilität mit Java und die gute (aber verbesserungsfähige) Integration in Eclipse machen die Erstellung von Tests sehr viel weniger lästig. Zudem gibt es kleinere Web- und Webservices Applikationen auf Basis von Grails (dem Webframwork, das seinerseits ebenfalls auf Groovy basiert), sowie Tools, die rein in Groovy geschrieben sind.

Letztendlich kann man sagen, der Hype ist dem Alltag gewichen und Groovy passt sich perfekt in die tägliche Arbeit ein. Mit Griffon und GPars stehen 2 weitere Frameworks für Swing Applikationen und Nebenläufige Programmierung (Threads) auf Groovy Basis zur Verfügung. Und eine lebendige Community hat sich um diese dynamische Sprache gebildet. Ein Umstieg auf Scala oder Closure kommt somit für mich momentan nicht in Betracht.

Und mal ganz ehlich, wenn die Kinder fragen: “Papa was machst Du?”, klingt “ich programmiere Groovy” viel cooler als “Ich programmiere Scala”. :-)

Links:
Groovy Usage Patterns by Dierk König

geschrieben von gklinkmann \\ tags: , , , , , , , ,

Aug 06

morph AppSpace logo

Das erste, was man nach dem Urlaub (ohne Internet) macht, ist seine Mails zu lesen. Darunter war eine von Morph AppSpace, von denen ich in einem früheren Beitrag noch über die kostenlosen Developer Accounts für Grails Applikationen berichtet habe. Doch was musste ich da jetzt lesen:

As part of our efforts to focus on providing quality next-generation products and following our previous announcement, effective Monday, July 13, 2009, we are discontinuing FREE AppSpaces for customers without paid AppSpaces.

Also erst zahlen dann kann man weiter kostenlos Entwicklungsstände deployen.

So wird auch meine kleine Applikation Grum nicht mehr bei Morph AppSpace gehostet. Ich werde mir mal die Google App Engine anschauen. Dafür dürften aber ein paar kleine Änderungen notwendig sein (z.B. JPA statt Hibernate für die Persistenz).
Wenn es soweit ist, werde ich meine Erfahrungen natürlich hier im Blog schildern.

Ich will wieder zurück in den Urlaub.

geschrieben von gklinkmann \\ tags: ,