In dem Artikel Technische Basis für Web-Anwendungen auswählen habe ich unterschiedliche Möglichkeiten für die Realisierung einer Web-Anwendung dargestellt. Ein aktuelles Projekt möchte ich nach Abwägung der Anforderungen mit einem CMS auf Java-Basis umsetzen. Damit kann ich laut der CMS-Vergleichsliste der englischen Wikipedia zwischen etwa 20 Systemen wählen. Ich benötige also einige Anforderungen, um das Feld der Kandidaten zu lichten.
- CMS muss auf Java basieren und erweiterbar sein
- CMS muss unter einer Open-Source-Lizenz verfügbar sein
- möglichst geringer Einarbeitungsaufwand
- umfangreiche Dokumentation
- Modul-Konzept, um fachliche Funktionen ergänzen zu können
- Unterstützung von aktuellen Java-Technologien (z.B. JPA, Spring, Velocity, Freemarker)
- User-Interface: CSS, Widgets, Unterstützung für Responsive Webdesign
- performante Installationen sollten die Leistungsfähigkeit des CMS beweisen
- Support durch Consulting-Unternehmen in Deutschland möglich
- Anbieter von SaaS-Lösungen (Software as a Service) in Deutschland vorhanden
Die Weiterentwicklung von Content Management Systemen erfolgt zumeist von Unternehmen, die ihr CMS als frei verfügbare Community Edition und als kostenpflichtige Enterprise Edition mit erweiterten Funktionen und Support anbieten. Ich habe mir die drei CMS OpenWGA, DotCMS und OpenCms näher angeschaut und jeweils ein Modul mit der empfohlenen Entwicklungsumgebung erstellt.
OpenWGA
- Übersicht: Homepage, Wikipedia, Dokumentation, Quellcode (Zip-Datei), Forum, Demo
- Lizenz: GPL und kommerzielle Lizenz
- Historie: 2001 die Version 1.0, aktuelle Version 7.1
- Nutzung von Tomcat 7
- eigene Templatesprachen WebTML und TMLScript
- OpenWGA Developer Studio (Eclipse-Plugin: Update-Site)
- Pflege/Entwicklung durch deutsches Unternehmen Innovation Gate
DotCMS
- Übersicht: Homepage, Wikipedia, Dokumentation, Quellcode (Github), Forum, Demo
- Lizenz: GPL
- Historie: 2005 die Version 1.0, aktuelle Version 3.3
- Standard-Technologien: OSGI, JPA (Hibernate), Velocity, Spring 3, Tomcat 8, Gradle
- Templatesprache: JSP und Velocity
- unterstützt Standards: CMIS, Portlet
OpenCms
- Übersicht: Homepage, Wikipedia, Dokumentation, Quellcode (Github), Wiki, Demo
- Lizenz: LGPL
- Historie: 2000 die Version 4.0, aktuelle Version 9.5
- Standard-Technologien: JPA (Hibernate), Tomcat 8, Gradle
- Templatesprache: leider nur JSP (Modul-Beispiel)
- unterstützt Standards: CMIS, Portlet
- Pflege/Entwicklung durch deutsches Unternehmen Alkacon
- diverse deutsche Consulting-Unternehmen, SaaS-Anbieter (z.B. Univention)
Jetzt noch eine Entscheidung treffen
Alle drei CMS nutzen den etablierten Tomcat-Server, werden seit vielen Jahren breit eingesetzt und bieten gute Möglichkeiten für Erweiterungen. Als Java-Entwickler möchte ich gerne aktuelle Standard-Technologien einsetzen, um effektiv qualitativ hochwertige Lösungen schaffen zu können.
Die eigenen OpenWGA-Templatesprachen und die antiquierte Templatesprache JSP innerhalb OpenCms vermeide ich lieber, wenn ich das moderne MVC-Konzept (mit Spring und Velocity) innerhalb DotCms nutzen kann (evtl. Alternative: Integration von Spring in OpenCms). Für OpenCms spricht gegenüber DotCMS die weite Verbreitung innerhalb Deutschlands und der gut verfügbare Support. Natürlich gibt es noch allerhand weitere Kriterien, die jeder für sich abwägen muss.
Wer sich selber einen Überblick zu Java-CMS verschaffen möchte, der kann mit folgenden Links vielleicht etwas anfangen. Viel Spass mit der Recherche 😉
- Stackoverflow: Open Source Java CMS
- CMS-Vergleich: http://www.cmsmatrix.org/
- englische Wikipedia: Liste von Java-CMS
- Wikipedia: Content Management Interoperability Services (Standard)