<?xml version="1.0"?>

<!--
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 version="3.0">
    <display-name>Apache OFBiz - Work Manager</display-name>
    <description>Work Manager Module of the Apache OFBiz Project</description>

    <context-param>
        <description>The Name of the Entity Delegator to use, defined in entityengine.xml</description>
        <param-name>entityDelegatorName</param-name>
        <param-value>default</param-value>
    </context-param>
    <context-param>
        <description>A unique name used to identify/recognize the local dispatcher for the Service Engine</description>
        <param-name>localDispatcherName</param-name>
        <param-value>workeffort</param-value>
    </context-param>
    <context-param>
        <description>The location of the main-decorator screen to use for this webapp; referred to as a context variable
            in screen def XML files.
        </description>
        <param-name>mainDecoratorLocation</param-name>
        <param-value>component://workeffort/widget/CommonScreens.xml</param-value>
    </context-param>

    <filter>
        <display-name>ControlFilter</display-name>
        <filter-name>ControlFilter</filter-name>
        <filter-class>org.apache.ofbiz.webapp.control.ControlFilter</filter-class>
        <init-param>
            <param-name>allowedPaths</param-name>
            <param-value>/error:/control:/select:/index.html:/index.jsp:/default.html:/default.jsp:/images</param-value>
        </init-param>
        <init-param>
            <param-name>redirectPath</param-name>
            <param-value>/control/main</param-value>
        </init-param>
    </filter>
    <filter>
        <display-name>ContextFilter</display-name>
        <filter-name>ContextFilter</filter-name>
        <filter-class>org.apache.ofbiz.webapp.control.ContextFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>ControlFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <filter-mapping>
        <filter-name>ContextFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <listener>
        <listener-class>org.apache.ofbiz.webapp.control.ControlEventListener</listener-class>
    </listener>
    <listener>
        <listener-class>org.apache.ofbiz.webapp.control.LoginEventListener</listener-class>
    </listener>
    <!-- NOTE: not all app servers support mounting implementations of the HttpSessionActivationListener interface -->
    <!-- <listener><listener-class>org.apache.ofbiz.webapp.control.ControlActivationEventListener</listener-class></listener> -->

    <servlet>
        <description>Main Control Servlet</description>
        <display-name>ControlServlet</display-name>
        <servlet-name>ControlServlet</servlet-name>
        <servlet-class>org.apache.ofbiz.webapp.control.ControlServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>ControlServlet</servlet-name>
        <url-pattern>/control/*</url-pattern>
    </servlet-mapping>

    <session-config>
        <session-timeout>60</session-timeout>
        <!-- in minutes -->
        <cookie-config>
            <http-only>true</http-only>
            <secure>true</secure>
        </cookie-config>
        <tracking-mode>COOKIE</tracking-mode>
    </session-config>

    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
    <!--
      <error-page>
        <error-code>403</error-code>
        <location>/error/error403.jsp</location>
      </error-page>
      <error-page>
        <error-code>404</error-code>
        <location>/error/error404.jsp</location>
      </error-page>
      <error-page>
        <error-code>410</error-code>
        <location>/error/error.jsp</location>
      </error-page>
      <error-page>
        <error-code>500</error-code>
        <location>/error/error.jsp</location>
      </error-page>
    -->

    <!-- HTTP Response Code definitions:
    | "400"   ; Bad Request
    | "401"   ; Unauthorized
    | "402"   ; Payment Required
    | "403"   ; Forbidden
    | "404"   ; Not Found
    | "405"   ; Method Not Allowed
    | "406"   ; Not Acceptable
    | "407"   ; Proxy Authentication Required
    | "408"   ; Request Time-out
    | "409"   ; Conflict
    | "410"   ; Gone
    | "411"   ; Length Required
    | "412"   ; Precondition Failed
    | "413"   ; Request Entity Too Large
    | "414"   ; Request-URI Too Large
    | "415"   ; Unsupported Media Type
    | "500"   ; Internal Server Error
    | "501"   ; Not Implemented
    | "502"   ; Bad Gateway
    | "503"   ; Service Unavailable
    | "504"   ; Gateway Time-out
    | "505"   ; HTTP Version not supported
    -->

    <!--
      <security-constraint>
        <web-resource-collection>
          <web-resource-name>Entire Site</web-resource-name>
          <description>Entire Site</description>
          <url-pattern>/*</url-pattern>
        </web-resource-collection>
    -->
    <!-- For enabling SSL, specify CONFIDENTIAL or INTEGRAL. -->
    <!--
        <user-data-constraint>
          <transport-guarantee>CONFIDENTIAL</transport-guarantee>
        </user-data-constraint>
      </security-constraint>
    -->
</web-app>
