<?xml version="1.0" encoding="UTF-8"?>

<document>
  
  <properties>
    <title>Velocity</title>
    <author email="velocity-dev@jakarta.apache.org">Velocity Documentation
      Team</author>
  </properties>
  
  <body>
    <section name="What is Velocity?" href="WhatisVelocity?">
      <p>Velocity is a Java-based template engine. It permits anyone to use a simple yet
        powerful template language to reference objects defined in Java code. </p>
      
      <p>Velocity is written in 100% pure Java and can be easily embedded into your own
        applications. It also provides easy integration into web applications through a
        servlet and tasks for using Velocity from
        <a href="http://ant.apache.org/">Apache Ant</a>.</p>
    </section>
    
    <section name="Where can Velocity be used?">
      <subsection name="Web based applications">
        <p> When Velocity is used for web development, Web designers can work in parallel with
          Java programmers to develop web sites according to the Model-View-Controller
          (MVC) model, meaning that web page designers can focus solely on creating a site
          that looks good, and programmers can focus solely on writing top-notch code.
          Velocity separates Java code from the web pages, making the web site more
          maintainable over its lifespan and providing a viable alternative to
          <a href="http://java.sun.com/products/jsp/">Java Server Pages</a> (JSPs) or
          <a href="http://www.php.net/">PHP</a>. </p>
      </subsection>
      
      <subsection name="Template based code and report generation">
        <p> Velocity's capabilities reach well beyond the realm of the web; for example, it
          can be used to generate SQL, PostScript and XML (see
          <a href="/engine/anakia/index.html">Anakia</a> for more information on XML
          transformations) from templates. It can be used either as a standalone utility for
          generating source code and reports, or as an integrated component of other
          systems. </p>
      </subsection>
      
      <subsection name="Framework Integration">
        <p> A huge number of other projects have Velocity integration either natively or
          through 3rd party add-ons. Some examples are:</p>
        
        <ul>
          <li>
            <a href="http://jakarta.apache.org/turbine/">Turbine</a> uses Velocity
            as its main view layer.</li>
          <li>
            <a href="http://struts.apache.org/">Struts</a> offers Velocity
            integration through a Velocity subproject called
            <a href="/tools/">Velocity Tools</a>
            .</li>
          <li>
            <a href="http://www.springframework.org">Spring Framework</a> supports
            Velocity through its
            <code>VelocityConfigurer</code> and <code>VelocityViewResolver</code>.</li>
        </ul>
      </subsection>
    </section>
    
    <section name="Velocity projects">
      <p> Velocity currently consists of three sub-projects:</p>
      
      <ul>
        <li>
          <a href="/engine/">Velocity Engine</a>. This is the actual
          templating engine which does all the work. This sub-project contains also the task
          definitions for using Velocity from
          <a href="http://ant.apache.org/">Apache Ant</a>. </li>
        <li>
          <a href="/tools/">Velocity Tools</a>. This sub-project contains
          tools and other useful infrastructure to build web- and non-web application using
          Velocity. You will find e.g. code for
          <a href="http://struts.apache.org/">Struts</a> integration or the
          standalone Velocity View Servlet here. </li>
        
        <li>
          <a href="/dvsl/">Velocity DVSL</a>. DVSL
          (Declarative Velocity Style Language) is a tool modeled after XSLT and is intended
          for general XML transformations using the Velocity Template Language as the
          transformation language. </li>
      </ul>
    </section>
    
    <section name="Where do I get releases?" href="WheredoIgetreleases?">
      
      <p> The current release version is version 1.5. </p>
      
      <p> The release distribution is available as a combined source/binary distribution in
        <code>tar.gz</code> and
        <code>zip</code> formats, and can be downloaded through the
        <a
          href="http://jakarta.apache.org/site/downloads/downloads_velocity-engine.cgi">
          Apache Mirror system</a>. </p>
      
      <p> The Velocity jars are also available through the
        <a href="http://www.ibiblio.org/maven/velocity/">central Maven
          repository</a>. </p>
      
      <p> Older releases are archived at the
        <a href="http://archive.apache.org/dist/jakarta/velocity/">Jakarta
          Velocity archives</a>. </p>
      
    </section>
    
    <section name="Where do I get nightly snapshots?"
      href="WheredoIgetnightlysnapshots?">
      
      <p> Nightly snapshots of the Velocity subversion source code tree can be found
        <a href="http://cvs.apache.org/snapshots/jakarta-velocity/"> here</a>. </p>
      
      <p> These are meant to provide easy access to the actual project source control tree. As
        this is our live development workspace, there are no guarantees as to what you will
        find there, although we do our best to maintain a buildable source tree. If you are
        looking for the stable supported release, please use the current release of
        Velocity. </p>
      
      <p> If you are willing to risk getting dirty, we invite you to try the nightly snapshot to
        see the current state of affairs. (and help out!)
        <a href="http://www.apache.org/dev/version-control.html">Public Subversion
          access</a> is also available. </p>
      
    </section>
    
    <section name="How do I contribute, give feedback, fix bugs and so on?"
      href="HowdoIcontribute,givefeedback,fixbugsandsoon?">
      
      <p> The Velocity project appreciates any contributions, including documentation
        help, source code and feedback. Suggested changes should come in the form of source
        code and/or feedback. </p>
      
      <ul>
        <li> Report bugs, ask questions, and help new users on the
          <a href="http://jakarta.apache.org/site/mail2.html#Velocity"> Velocity
            mailing lists</a>. </li>
        
        <li> There's a list of issues waiting to be addressed in
          <a href="http://issues.apache.org/jira/browse/VELOCITY"> JIRA</a>. </li>
        
        <li>
          <a href="http://wiki.apache.org/jakarta-velocity/FrontPage"> Our Wiki</a>
          has a large collection of community written content. Add your own article or
          contribute to the FAQ! </li>
        <li> Read-only access to the Subversion
          <strong>jakarta-velocity</strong> repository is available both
          <a href="http://svn.apache.org/repos/asf/jakarta/velocity/trunk/">
            online</a> and with a
          <a href="http://www.apache.org/dev/version-control.html"> Subversion
            client</a>. </li>
      </ul>
      
    </section>
  </body>
</document>
