Das Top-Level Projekt Apache Velocity ist eine klassische Template Engine im Java Umfeld. Es dient primär der Trennung von Inhalt und Präsentation (Layout). Velocity wird für die HTML Generierung eingesetzt, aber nicht nur. Es gibt ebenso Projekte, die das einfach zu integrierende Rendering-Modul für die Generierung von SQL Statements, Java Code oder für die automatische Erstellung von XML-Dateien nutzen.

Grundlage ist die einfach zu erlernende „Velocity Template Language“ (VTL), die auf Java Objekte (Daten) zugreifen kann und über einfache Programmstrukturen wie Bedingungen und Schleifen verfügt. Gegenüber der Nutzung von Java Server Pages hat der Einsatz von Velocity den Vorteil, dass nur Objekte, die sich im Velocity-Kontext befinden, verwendet werden dürfen. Das bedeutet, das System kann die Daten, die die Template Engine verwenden darf, durch den Kontext steuern. Ein weiterer Vorteil gegenüber JSP oder XSLT ist die einfache Sprache, die Webdesigner ohne tiefgehende Programmierkenntnisse nutzen können.

Die Scandio setzt Velocity in mehreren Projekten zur Generierung von Webseiten ein. Komplexe Templates und tiefe Schachtelungen lassen sich einfach erstellen. Die Wartung der Templates ist sehr übersichtlich. Navigationsbäume werden als fertige Java Objekte übergeben. Der Rest der Daten, die sich in der Regel im Java Content Repository (JCR) befinden, sind sauber abgeschottet und können nicht verwendet werden. Die Objekte im Kontext bilden sozusagen die Schnittstelle zwischen Content Management und Templates.

Dennoch ist es bei großen dynamischen Websites notwendig, kleine JSP Applikationen, Formulare oder Seiten zur Volltextsuche zu integrieren. Der Aufwand, dies vollständig in Velocity nachzubilden, ist hoch, daher haben die Softwarearchitekten der Scandio über Filter eine Brücke zwischen JSP und Velocity entwickelt, die es dem System erlaubt, JSP-Seiten in Velocity-Templates zu rendern, zu kompilieren und ausführen zu lassen. Auch die Erstellung statischer Seiten für besonders hoch frequentierte Sites ist somit möglich.

Apache Velocity ist ein ausgereiftes Open Source System, das von der Community sehr intensiv gepflegt wird. Als Template Engine im Java Bereich ist Velocity somit eine klare Empfehlung. Unser Software-Partner Atlassian setzt den Renderer intensiv in dem Enterprise Wiki System Confluence ein.