Apache Roller 4.0: Eine Java-Blog-Software fürs Große - JAXenter
Wer blogt so spät in der Nacht?

Apache Roller 4.0: Eine Java-Blog-Software fürs Große

Frank Pientka

Blogs zählen zu den populären Mitmachanwendungen im Web 2.0. Sie erleichtern den Informationsaustausch und ermöglichen so eine schnelle, strukturierte und trotzdem flexible Kommunikation. Wenn diese traditionell in Skriptsprachen erstellt wurden, so gibt es inzwischen mit Apache Roller auch für Java eine ausgereifte Lösung.

Dave Johnson hatte Roller 2002 ursprünglich als Blog-Software für einen Artikel entwickelt. Weiterführende Konzepte hat er in seinem Buch „RSS and Atom in Action“ 2006 beschrieben. Seitdem stellt er einen komplett vorkonfigurierten Blogapps-Server zur Verfügung, der Roller, JSPWiki, Tomcat und eine Derby-Datenbank mit aktualisierten Beispielen aus seinem Buch anbietet. Eine ähnliche Variante findet man für MySQL.

Roller-Steckbrief:

Seit 2000 von Dave Johnson entwickelt und 2002 in einem O’Reilly-Artikel (Roller 0.9.0) beschrieben. Seit 2005 unter Apache-Lizenz (Roller 3.0) und als erste Version als Apache Roller 4.0 2007 veröffentlicht. Roller ist eine Software in Java die als Webanwendung (Servlet 2.3+, Java 5.0, openJPA, Velocity, freemarker, STRUTS2, TILES, JDOM, ROME, Apache XML-RPC, Lucene, Spring-acegi, guice, ) für große Blogs verwendet wird. Roller unterstützt die WYSIWYG-HTML-Erstellung und leichte Anpassung der Oberfläche. Als Schnittstellen werden RSS/ATOM/APP, MetaWeblog, Planet-Aggregation, XML-RPC, SMTP und LDAP unterstützt.

Roller wird mittlerweile von der Apache-Organisation unter der ASF-Lizenz zur Verfügung gestellt. Diese wird für die populäre Seite von JRoller und von namhaften Firmen für ihre Unternehmens-Blogs (Sun, IBM) eingesetzt. Das interne IBM-Blog hat über 41.000 Logger mit über 95.000 Einträgen und über 110.000 Benutzern, was die gute Skalierbarkeit und Verwendbarkeit von Roller zeigt. Neben Apache wird das Thema „Blogs“ auch durch den Arbeitgeber (Sun) von Johnson in mehreren Projekten vorangetrieben.

Neben dem Blogapps-Server gibt es ein Roller-Support-Projekt, das weitere Themes (25) und Plug-ins (JSPWiki, Textile und Read More) anbietet. So gibt es für Glassfish V2 eine spezielle Erweiterung, Social Software for GlassFish Early Access Release, die auf Roller und Slynkr beruht. Ein weiteres wichtiges Projekt bei Sun ist ROME. Auch wenn mit dem ATOM-Standard die RSS-Formatstreitereien abgenommen haben, erleichtert eine einheitliche API wie bei ROME oder dem konkurrierenden Apache Abdera die Verarbeitung von Feeds. Zumindest für Roller führt der Weg über Rome.

Neben vielen Apache-Bibliotheken basiert Roller seit der Version 4.0 im Wesentlichen auf den Frameworks Struts2, Velocity und OpenJPA. Für die Integration der Benutzerverwaltung in LDAP und der Realisierung von SSO wird die Spring-Bibliothek Acegi Security verwendet. Da dies die erste Version unter dem Apache-Dach ist, wurden hier einige Altlasten (Hibernate, Struts 1) und Schwächen beseitigt. Prinzipiell gibt es dadurch viele Integrationsmöglichkeiten – die am meisten benutzte ist wohl die mit Tomcat und MySQL unter Java 5.0. Ebenso kann als Applikationsserver Glassfish 2.0 oder Geronimo 2.0 mit der Derby-Datenbank verwendet werden. Letztere Kombination haben wir auch für die Beispiele in diesem Artikel benutzt. Für andere Applikationsserver (WebSphere, JBoss) und Datenbanken (DB2, HSQL-DB, MS-SQL-Server, Oracle, PostgreSQL) findet man, je nach Versionsstand, einige Hilfen im Newsarchiv. Besser ist es jedoch, die geplante Zielumgebung vor dem Einsatz selbst zu testen (Abb. 1).

Abb. 1: Der erste Kontakt mit Roller

Roller lässt sich auf mehrere Arten anpassen und erweitern. Die einfachste Art das Aussehen zu ändern, ist die Verwendung der bereits mitgelieferten Themes (Basic, BrushedMetal, Sotto, Frontpage) oder die Erstellung eines Themes. Diese bestehen im Minimum aus einer CSS-, zwei Velocity- und einer Themes-Datei. Außerdem lässt sich Roller auch über Eigenschaftsdateien anpassen, was vor allem für die Mehrsprachigkeit verwendet wird. Die deutsche Übersetzung hinkt hier leider zurzeit noch etwas hinterher.

Bei der Programmierung seiner eigenen Seite können über das Bean Scripting Framework (BSF) beispielsweise Sprachen wie JRuby, JavaScript, Jython und Groovy/GSP verwendet werden. Dadurch kann jeder das Basis-Theme in der Sprache seiner Wahl erweitern. Die zentrale Konfiguration von Roller erfolgt mit einer roller-custom.properties-Datei, in der das Log-Level, eine Bookmark-Kategorienliste usw. eingestellt werden können.

Geschrieben von
Frank Pientka
Kommentare

Schreibe einen Kommentar

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