<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
 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/j2ee"
	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
	 version="2.4">

	<display-name>workflow-monitor</display-name>

	 <!--  
	      There are three means to configure Wickets configuration mode and they are
	      tested in the order given. 
	      1) A system property: -Dwicket.configuration
	      2) servlet specific <init-param>
	      3) context specific <context-param>
	      The value might be either "development" (reloading when templates change)
	      or "deployment". If no configuration is found, "development" is the default.
	-->

	<filter>
		<filter-name>wicket.browser</filter-name>
 		<filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>
		<init-param>
			<param-name>applicationClassName</param-name>
			<param-value>org.apache.oodt.cas.workflow.webapp.monitor.WMMonitorApp</param-value>
 		</init-param>
 	</filter>

 <filter-mapping>
  <filter-name>wicket.browser</filter-name>
	<url-pattern>/*</url-pattern>
 </filter-mapping>


</web-app>
