Introduction to Velocity
Velocity is a simple yet powerful Java-based template engine that renders data from plain Java objects to text, xml, email, SQL, Post Script, HTML etc. The template syntax and rendering engine are both easy to understand and quick to learn and implement.
Capabilities reach well beyond the realm of the web (ex. xdoclet, middlegen, Intellij etc.) to enable programmers to focus on writing functional code, while in parallel, template designers can directly modify templates to create attractive output. In webapps, Model-View-Control (MVC) separation can be strongly enforced because templates do not contain "code". Or, at the programmers discretion "tools" can be made available in the template for more direct access to data.
VelocityTools is a sub-project which contains extensions aimed at solving common web and non-web problems. For example, GenericTools provide Date/Number formatting, Math operations, and more. VelocityView provides a time-tested servlet which can render *.vm files in web applications. Finally, VelocityStruts builds upon this foundation to give Struts developers a robust and easy-to-implement alternative to JSP. Additional non-web examples are Anakia and DVSL which use Velocity for "easier than XSLT" transformations of XML.
More details and the official documentation are on the Velocity Home Page. Be sure to read the Overview, Getting Started, and the Web Application Guide. You'll also want to check out the VelocityFAQ, or post your question to the Velocity user list.
This Wiki contains community and developer-oriented content. Please feel free to add new articles, FAQ entries, or code examples. If you've created a website or application that uses Velocity, add it to the PoweredByVelocity page!
Resources: Code and Articles
VelocityNews -- Announcements and other recent news about Velocity
PublishedArticlesAndBooks -- Published articles and books on Velocity
CommunityArticles -- User contributed articles, blog entries, comparisons, and "How-To's"
ContributedCode -- User contributed templates, code and other examples
VelocityEditors -- Plugins to various editors and IDE's.
PoweredByVelocity -- List of sites, applications, and frameworks which use Velocity
How to Get Involved
GetInvolved - quick intro to getting started
RoadMap -- where Velocity is headed
GettingYourPatchCommitted -- just what it says
ExternalBugs -- discussion of bugs in the JVM and third party libraries
CodeStandards -- read this before submitting code or patches
DocumentationGuidelines -- read this before writing documentation
GoogleSummerOfCode2007 -- The Google Summer Of Code 2007 participants
Architecture Discussions & Debates
Discussions/proposals/votes concerning various issues around the future architecture of Velocity.
VelocitySite -- How the new Velocity Site (starting with 1.5) will look like and how it is built.
VelocityDocs -- How can we improve the quality of the Velocity documentation
Velocity15ReleaseNotes -- Release Notes compilation for the 1.5 release
VelocityDocbook -- The Docbook based Documentation for 1.5 and its framework
EditXdocs -- Use XMLMind to visually edit the xdoc Documentation
DebuggingWithinIde -- How to debug / run JUnit tests in an IDE
ReleaseProcess -- What needs to be done when building and releasing Velocity 'for real'
ZoneLogin -- Information for Logins on velocity.zones.apache.org
RebuildSites -- How to rebuild the various velocity web sites