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

<!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
 regarding copyright ownership.  The ASF licenses this file
 to you under the Apache License, Version 2.0 (the
 "License"); you may not use this file except in compliance
 with the License.  You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing,
 software distributed under the License is distributed on an
 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 KIND, either express or implied.  See the License for the
 specific language governing permissions and limitations
 under the License.
-->

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">
  <!-- servlets -->
  <servlet>
    <servlet-name>velocity</servlet-name>
    <servlet-class>org.apache.velocity.tools.examples.showcase.ShowcaseLayoutServlet</servlet-class>
  </servlet>
  <servlet>
    <servlet-name>velocity-standard</servlet-name>
    <servlet-class>org.apache.velocity.tools.view.VelocityViewServlet</servlet-class>
  </servlet>
  <!-- servlet mappings -->
  <servlet-mapping>
    <servlet-name>velocity-standard</servlet-name>
    <url-pattern>nolayout/*</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>velocity</servlet-name>
    <url-pattern>*.vm</url-pattern>
  </servlet-mapping>
  <!-- context params -->
  <context-param>
    <param-name>org.apache.velocity.tools.loadDefaults</param-name>
    <param-value>true</param-value>
  </context-param>
  <context-param>
    <param-name>org.apache.velocity.tools.cleanConfiguration</param-name>
    <param-value>true</param-value>
  </context-param>
  <context-param>
    <param-name>org.apache.velocity.tools.userCanOverwriteTools</param-name>
    <param-value>false</param-value>
  </context-param>
  <!-- welcome file -->
  <welcome-file-list>
    <welcome-file>index.vm</welcome-file>
  </welcome-file-list>
  <!-- listeners -->
  <listener>
    <listener-class>org.apache.velocity.tools.examples.showcase.sample.SampleListInitializer</listener-class>
  </listener>
</web-app>
