<?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://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    version="3.0">

  <display-name>Tobago Demo Application</display-name>

  <context-param>
    <param-name>javax.faces.PROJECT_STAGE</param-name>
    <param-value>Development</param-value>
    <!--<param-value>Production</param-value>-->
  </context-param>

  <context-param>
    <param-name>com.sun.faces.validateXml</param-name>
    <param-value>true</param-value>
  </context-param>

   <!-- disable error handling from myfaces, needed for the demo -->
  <context-param>
    <param-name>org.apache.myfaces.ERROR_HANDLING</param-name>
    <param-value>false</param-value>
  </context-param>

  <context-param>
    <param-name>javax.faces.FACELETS_SKIP_COMMENTS</param-name>
    <param-value>true</param-value>
  </context-param>

  <context-param>
    <param-name>javax.faces.FACELETS_VIEW_MAPPINGS</param-name>
    <param-value>*.xhtml</param-value>
  </context-param>

  <context-param>
    <param-name>javax.faces.FACELETS_RESOURCE_RESOLVER</param-name>
    <param-value>org.apache.myfaces.tobago.facelets.MetaInfResourcesClasspathResourceResolver</param-value>
  </context-param>

  <context-param>
    <param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name>
    <param-value>true</param-value>
  </context-param>

  <context-param>
    <param-name>org.apache.myfaces.NUMBER_OF_VIEWS_IN_SESSION</param-name>
    <param-value>20</param-value>
  </context-param>

  <!-- required for multi-window with MyFaces -->
  <context-param>
    <param-name>org.apache.myfaces.NUMBER_OF_SEQUENTIAL_VIEWS_IN_SESSION</param-name>
    <param-value>4</param-value>
  </context-param>

  <!--
  required for multi-window with WAS 8.5.5.x
  this parameter fixes the problem
  See: http://www-01.ibm.com/support/docview.wss?uid=swg1PI27290
  But they don't tell, how the fix works
   -->
  <context-param>
    <param-name>com.ibm.ws.jsf.enableRemoveRestoredViewState</param-name>
    <param-value>true</param-value>
  </context-param>

  <listener>
    <listener-class>org.apache.myfaces.tobago.example.demo.info.ActivitySessionListener</listener-class>
  </listener>

  <!--  workaround (e.g. for Oracle AS 10.1.2.0.0)-->
  <!--
  <listener>
    <listener-class>org.apache.myfaces.tobago.webapp.TobagoServletContextListener</listener-class>
  </listener>
  -->

  <!-- activate this for some containers -->
  <!--
  <listener>
    <listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
  </listener>
  -->

<!-- this is not needed for websphere 8.5 -->
  <listener>
    <listener-class>org.apache.webbeans.servlet.WebBeansConfigurationListener</listener-class>
  </listener>

<!-- this is an alternative to the WebBeansConfigurationListener
     you need it e.g. for Tomcat 5.5 or WebSphere 6.1 (see TOBAGO-1043)
-->
<!--
  <filter>
      <filter-name>webbeans</filter-name>
      <filter-class>org.apache.webbeans.servlet.WebBeansConfigurationFilter</filter-class>
    </filter>

  <filter-mapping>
      <filter-name>webbeans</filter-name>
      <servlet-name>FacesServlet</servlet-name>
      <dispatcher>REQUEST</dispatcher>
      <dispatcher>ERROR</dispatcher>
  </filter-mapping>

  <listener>
    <listener-class>org.apache.webbeans.servlet.WebBeansConfigurationHttpSessionListener</listener-class>
  </listener>
-->

  <!-- FacesServlet -->

  <servlet>
    <servlet-name>FacesServlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <!-- This is needed, for file upload e.g. <tc:file> with JSF 2.0 or 2.1, JSF 2.2 doesn't need it. -->
    <multipart-config/>
  </servlet>

  <servlet-mapping>
    <servlet-name>FacesServlet</servlet-name>
    <url-pattern>/faces/*</url-pattern>
    <!-- if changing this, also change MultiplePageDeclarationLanguageNavigationHandler -->
    <!-- <url-pattern>*.jsf</url-pattern> -->
  </servlet-mapping>

  <!-- ResourceServlet -->

  <servlet>
    <servlet-name>ResourceServlet</servlet-name>
    <servlet-class>org.apache.myfaces.tobago.servlet.ResourceServlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>ResourceServlet</servlet-name>
    <url-pattern>/org/apache/myfaces/tobago/renderkit/*</url-pattern>
    <url-pattern>/org/apache/myfaces/tobago/sandbox/*</url-pattern>
  </servlet-mapping>

  <!-- Error Page -->

  <error-page>
    <error-code>404</error-code>
    <location>/faces/error/404.xhtml</location>
  </error-page>

  <error-page>
    <error-code>500</error-code>
    <location>/faces/error/exception.xhtml</location>
  </error-page>

  <error-page>
    <exception-type>java.lang.Exception</exception-type>
    <location>/faces/error/exception.xhtml</location>
  </error-page>

  <error-page>
    <exception-type>javax.faces.application.ViewExpiredException</exception-type>
    <location>/faces/error/view-expired.xhtml</location>
  </error-page>

  <!-- The Usual Welcome File List -->
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>

  <jsp-config>

  <!--To make Umlauts possible on JSP-Pages-->
    <jsp-property-group>
      <url-pattern>*.jsp</url-pattern>
      <page-encoding>UTF-8</page-encoding>
    </jsp-property-group>
  </jsp-config>

</web-app>
