Apache Velocity

Apache Velocity ist eine Software, die Platzhalter in Textdateien durch aktuelle Inhalte ersetzt. Damit können nach dem Prinzip des Serienbriefs beliebig viele Textdateien, – beispielsweise Webseiten oder E-Mails – mit unterschiedlichen Inhalten, aber gleicher Struktur, aus einer einzigen Vorlage erzeugt werden.
Apache Velocity wurde in der Programmiersprache Java programmiert. Der Quelltext steht unter der Apache Software License und ist somit frei.

Die von Apache Velocity verarbeiteten Textdateien werden als Template bezeichnet, englisch für „Schablone“ oder „Vorlage“. Daher wird dieser Typ von Software auch Template Engine („Schablonenmaschine“) genannt.
Apache Velocity interpretiert die Platzhalter in den Templates als Referenzen auf Java-Objekte, also ausführbare Software, die in der Programmiersprache Java geschrieben wurde. Velocity erzeugt aus dem Template ausführbaren Quelltext, der einerseits die statischen Textbestandteile des Templates ausgibt, und andererseits an den richtigen Stellen die referenzierten Java-Objekte aufruft. Die Java-Objekte müssen Zeichenketten zurückgeben, die in den Text eingefügt werden.
Apache Velocity kann als eigenständiges Anwendungsprogramm eingesetzt werden oder als Klassenbibliothek in andere Anwendungsprogramme (z. B. Webanwendungen) integriert werden und für diese Hilfsdienste verrichten.
Apache Velocity wird in unterschiedlichen Anwendungsbereichen der Softwaretechnik eingesetzt und ist Bestandteil vieler Softwareprodukte:
Velocity ist als Template-Engine Bestandteil vieler Anwendungsprogramme wie der integrierten Java-Entwicklungsumgebung IntelliJ IDEA oder des UML-Werkzeuges Poseidon for UML und Frameworks wie Spring, sowie von Websites wie der Open-Source-Entwicklungsgemeinschaft Tigris.org.
Apache Velocity definiert eine eigene Beschreibungssprache für Schablonen, die Velocity Template Language (VTL). Dabei leiten Doppelkreuze („#“) die zu füllenden Platzhalter ein, doppelte Doppelkreuze („##“) beginnen Kommentare und Dollarzeichen („$“) dienen als Markierung von Referenzen.
Die folgende Beispielvorlage definiert neben Kommentaren eine Referenz namens „foo“, der eine einfache Zeichenkette mit dem Inhalt „Velocity“ zugewiesen wird. Anschließend wird die Referenz „foo“ im Text durch die Zeichenkette ersetzt.
Daraus erzeugt Apache Velocity diese HTML-Struktur:
Die erste Beta-Version von Velocity wurde am 26. März 2001 veröffentlicht. Am 26. Oktober 2006 wurde Velocity zum Apache Top Level Project ernannt.