Das Productivity-Tool JBoss Fore unter der Lupe

May the Forge be with you!

Sandro Sonntag und Christian Brandenstein

Kennen Sie das? Sie sind gerade dabei, die Projektkonfiguration für Ihre gefühlt tausendste Java-Webanwendung zu erstellen. Sie nehmen sich Ihr letztes erfolgreiches Projekt-Set-up als Vorlage. Und dann versuchen Sie, durch beherztes Copy and Paste das neue Projekt zu erstellen. Zwar hat sich durch Tools wie Maven oder Gradle in den letzten zehn Jahren sehr viel verbessert beim Set-up neuer Projekte. Dennoch sagt unsere innere Entwicklerstimme: „Das muss besser gehen.“ Es geht auch besser, wie die Arbeit mit dem Produktivitätswerkzeug JBoss Forge zeigt.

Das Werkzeug JBoss Forge verspricht Rapid Application Development für Java EE. Das bedeutet, dass man aufgrund von Konventionen große Teile der Software generieren kann und dabei nicht das Wie, sondern vielmehr das Was in den Vordergrund gestellt wird. Anders als bei anderen RAD-Ansätzen handelt es sich um ein Entwicklertool, das über eine Shell bedient wird. Davon sollte man sich jedoch keineswegs abschrecken lassen, bietet die Forge Shell doch sehr komfortable Features wie Coloring, Tab-Completion, aber auch die Möglichkeit zu skripten und somit Aufgaben automatisiert auszuführen. Wer dennoch „Grün auf Schwarz“ für nicht mehr zeitgemäß hält, für den wird im Rahmen der JBoss-Tools eine Forge Shell angeboten, die in einer Eclipse View dargestellt wird.

Neu ist der Ansatz einer RAD Shell nicht, gab es doch mit Ruby on Rails oder Spring Roo bereits ähnliche Vertreter dieser Toolgattung für Ruby und Spring. Anders als Spring Roo hat sich JBoss Forge den Java-EE-Technologien verschrieben und ist derzeit in diesem Umfeld alternativlos.

Vom Namensbestandteil JBoss sollte man sich nicht täuschen lassen. Forge ist völlig unabhängig vom JBoss Application Server und unterstützt die Generierung von Java-EE-Code für jeglichen JEE-Container. Fairerweise muss man jedoch einräumen, dass der JBoss Application Server zurzeit am besten unterstützt wird. Dies zeigt sich in erster Linie beim Deployment auf einen Entwicklungsserver. Dazu später mehr.

Forge wie auch Roo sind, vereinfacht gesehen, Codegeneratoren, die lästigen Boilerplate-Code mittels Shell-Kommandos generieren können. Anders als beim bekannten  Maven-Archetype-Ansatz handelt es sich nicht um eine „One-Shot“-Generierung, sondern es ist möglich, das Projekt schrittweise durch die entsprechenden Forge-Befehle zum gewünschten Ergebnis hin zu führen. Möchte man also eine Webapplikation erstellen, die ein JSF User Interface und REST-APIs bereitstellt, würde hier der Archetype-Ansatz schnell an seine Grenzen geraten, da Archetypes nicht kombinierbar sind.

Geschrieben von
Sandro Sonntag und Christian Brandenstein
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.