##### General Information

- Overview
- Features
- Specification
- Getting Started
- Howto Build Turbine
- Changes

##### Documentation

- Services
  - Assembler Broker Service
  - Avalon Component Service
  - Crypto Service
  - Cache Service
  - Component Service
  - Factory Service
  - Intake Service
  - JSON-RPC Service
  - JSP Service
  - Localization Service
  - MimeType Service
  - Naming Service
  - Parser Service
  - Pool Service
  - Pull Service
  - RunData Service
  - Scheduler Service
  - Security Service
  - Servlet Service
  - Session Service
  - Template Service
  - Torque Security Service
  - Torque Security Service Schema
  - UI Service
  - Unique ID Service
  - Upload Service
  - Velocity Service
  - XML-RPC Service
  - XSLT Service
- Howtos
- Wiki
- JavaDocs

##### Development

- Proposals
- How To Help
- Todo

##### Project Documentation

- Project Information
- Project Reports

##### Apache

- Apache Website
- License
- How the ASF works
- Sponsorship
- Thanks
- Security

## Velocity Service

## Configuration

    # -------------------------------------------------------------------
    #
    #  S E R V I C E S
    #
    # -------------------------------------------------------------------
    # Classes for Turbine Services should be defined here.
    # Format: services.[name].classname=[implementing class]
    #
    # To specify properties of a service use the following syntax:
    # service.[name].[property]=[value]

    services.VelocityService.classname = org.apache.turbine.services.velocity.TurbineVelocityService
    .
    .
    .
    # -------------------------------------------------------------------
    #
    #  V E L O C I T Y  S E R V I C E
    #
    # -------------------------------------------------------------------

    # The location of Velocity configuration file, relative to webapp root
    # These properties will override the default properties set by Velocity.
    # You should specify the path to the templates directories as well as
    # the path to the log file and they should also be relative to webapp root

    services.VelocityService.template.extension = vm
    services.VelocityService.default.page = VelocityPage
    services.VelocityService.default.screen = VelocityScreen
    services.VelocityService.default.layout = VelocityECSLayout
    services.VelocityService.default.navigation = VelocityNavigation
    services.VelocityService.default.error.screen = VelocityErrorScreen
    services.VelocityService.default.layout.template = Default.vm

    #
    # Set this to true to catch Velocity Errors and display them in the log file
    services.VelocityService.catch.errors = true

    services.VelocityService.runtime.log = /logs/velocity.log
    #services.VelocityService.input.encoding = UTF-8
    services.VelocityService.velocimacro.library = GlobalMacros.vm

    services.VelocityService.resource.loader = file
    services.VelocityService.file.resource.loader.description = Velocity File Resource Loader
    services.VelocityService.file.resource.loader.class = org.apache.velocity.runtime.resource.loader.FileResourceLoader
    services.VelocityService.file.resource.loader.path = /templates/app
    services.VelocityService.file.resource.loader.cache = false
    services.VelocityService.file.resource.loader.modificationCheckInterval = 2

    services.VelocityService.resource.loader = classpath
    services.VelocityService.classpath.resource.loader.description = Velocity Classpath Resource Loader
    services.VelocityService.classpath.resource.loader.class = org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader

## Usage

## Properties

- "services.VelocityService.catch.errors" controls the reporting of Velocity errors to the application (and to to the user). If this is set to "true" (which is the default), errors are caught by Turbine and reported in the turbine.log file at error level. Velocity will get the String "[Turbine caught an Error here. Look into the turbine.log for further information]" as return value (this might cause further errors down the road if you e.g. expect a numerical value or an object as the result of a method), so if you see this message in your screen, follow the instructions.