<?xml version="1.0" encoding="UTF-8"?>
<!-- * Copyright 2008 IHE International (http://www.ihe.net) * * Licensed 
	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. -->
<!-- File : web.xml @author Jean-Renan Chatel / INRIA Rennes IHE development 
	Project @see > Jchatel@irisa.fr - http://www.ihe-europe.org -->

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	version="2.5">

	<!-- richfaces -->

	<context-param>
		<param-name>org.ajax4jsf.VIEW_HANDLERS</param-name>
		<param-value>com.sun.facelets.FaceletViewHandler</param-value>
	</context-param>


	<context-param>
		<param-name>org.richfaces.SKIN</param-name>
		<param-value>classic</param-value>
	</context-param>


	<context-param>
		<param-name>org.richfaces.CONTROL_SKINNING_CLASSES</param-name>
		<param-value>disable</param-value>
	</context-param>

	<context-param>
		<param-name>org.richfaces.LoadStyleStrategy</param-name>
		<param-value>ALL</param-value>
	</context-param>

	<context-param>
		<param-name>org.richfaces.LoadScriptStrategy</param-name>
		<param-value>ALL</param-value>
	</context-param>

	<context-param>
		<param-name>facelets.REFRESH_PERIOD</param-name>
		<param-value>-1</param-value>
	</context-param>

	<context-param>
		<param-name>facelets.RECREATE_VALUE_EXPRESSION_ON_BUILD_BEFORE_RESTORE</param-name>
		<param-value>false</param-value>
	</context-param>

	<filter>
		<display-name>RichFaces Filter</display-name>
		<filter-name>richfaces</filter-name>
		<filter-class>org.ajax4jsf.Filter</filter-class>
		<init-param>
			<param-name>enable-cache</param-name>
			<param-value>true</param-value>
		</init-param>
	</filter>

	<filter-mapping>
		<filter-name>richfaces</filter-name>
		<servlet-name>Faces Servlet</servlet-name>
		<dispatcher>REQUEST</dispatcher>
		<dispatcher>FORWARD</dispatcher>
		<dispatcher>INCLUDE</dispatcher>
	</filter-mapping>

	<!-- This takes care of the session expiration problem -->
	<!--<listener>

		<listener-class>net.ihe.gazelle.common.session.GazelleSessionListener</listener-class>
	</listener>

	--><!--<filter>
		<filter-name>SessionTimeoutFilter</filter-name>
		<filter-class>net.ihe.gazelle.common.session.SessionTimeoutFilter</filter-class>
	</filter>


	<filter-mapping>
		<filter-name>SessionTimeoutFilter</filter-name>
		<url-pattern>*.seam</url-pattern>

	</filter-mapping>


	--><!-- Set the timeout delay (minutes) -->
	<session-config>
		<session-timeout>60</session-timeout>
	</session-config>




	<!-- seam -->

	<listener>
		<listener-class>org.jboss.seam.servlet.SeamListener</listener-class>
	</listener>
	<servlet>
		<servlet-name>Seam Resource Servlet</servlet-name>
		<servlet-class>org.jboss.seam.servlet.SeamResourceServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>Seam Resource Servlet</servlet-name>
		<url-pattern>/seam/resource/*</url-pattern>
	</servlet-mapping>
	<filter>
		<filter-name>Seam Filter</filter-name>
		<filter-class>org.jboss.seam.servlet.SeamFilter</filter-class>
		<init-param>

			<param-name>createTempFiles</param-name>

			<param-value>false</param-value>

		</init-param>

		<init-param>

			<param-name>maxRequestSize</param-name>

			<param-value>100000000</param-value>

		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>Seam Filter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

	<!-- Include Gazelle taglibs as libraries -->
	<context-param>
		<param-name>facelets.LIBRARIES</param-name>
		<param-value>
			/WEB-INF/classes/META-INF/gazelle.taglib.xml;
		</param-value>
	</context-param>

	<!-- JSF -->
	<context-param>
		<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
		<param-value>.xhtml</param-value>
	</context-param>

	<context-param>
		<param-name>facelets.DEVELOPMENT</param-name>
		<param-value>false</param-value>
	</context-param>

	<context-param>
		<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
		<param-value>server</param-value>
	</context-param>
	<servlet>
		<servlet-name>Faces Servlet</servlet-name>
		<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>

	<servlet-mapping>
		<servlet-name>Faces Servlet</servlet-name>
		<url-pattern>*.seam</url-pattern>
	</servlet-mapping>

	<security-constraint>
		<display-name>Restrict raw XHTML and XLS Documents</display-name>
		<web-resource-collection>
			<web-resource-name>XHTMLandXLS</web-resource-name>
			<url-pattern>*.xhtml,*.xls,*.html,*.php</url-pattern>

		</web-resource-collection>
		<auth-constraint />
	</security-constraint>

	<!-- PDF and XLS Generation -->


	<servlet>
		<servlet-name>Document Store Servlet</servlet-name>
		<servlet-class>org.jboss.seam.document.DocumentStoreServlet</servlet-class>
	</servlet>
	<context-param>
		<param-name>webAppRootKey</param-name>
		<param-value>seam-excel</param-value>
	</context-param>

	<servlet-mapping>
		<servlet-name>Document Store Servlet</servlet-name>
		<url-pattern>*.pdf</url-pattern>
	</servlet-mapping>

	<servlet-mapping>
		<servlet-name>Document Store Servlet</servlet-name>
		<url-pattern>*.csv</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>Document Store Servlet</servlet-name>
		<url-pattern>*.xls</url-pattern>
	</servlet-mapping>

	<context-param>
		<param-name>org.apache.myfaces.COMPRESS_STATE_IN_CLIENT</param-name>
		<param-value>true</param-value>
	</context-param>

	<context-param>
		<param-name>facelets.SKIP_COMMENTS</param-name>
		<param-value>true</param-value>
	</context-param>

	<!-- File upload servlet -->

	<servlet>
		<servlet-name>Remote file upload</servlet-name>
		<servlet-class>net.ihe.gazelle.evs.client.servlet.Upload</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>Remote file upload</servlet-name>
		<url-pattern>/upload</url-pattern>
	</servlet-mapping>


	<!-- CAS -->
	<filter>
		<filter-name>CAS Authentication Filter</filter-name>
		<filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>
		<init-param>
			<param-name>casServerLoginUrl</param-name>
			<param-value>https://gazelle.ihe.net</param-value>
		</init-param>
		<init-param>
			<param-name>service</param-name>
			<param-value>${cas.service}</param-value>
		</init-param>
	</filter>
	<filter>
		<filter-name>CAS Validation Filter</filter-name>
		<filter-class>org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class>
		<init-param>
			<param-name>casServerUrlPrefix</param-name>
			<param-value>https://gazelle.ihe.net</param-value>
		</init-param>
		<init-param>
			<param-name>service</param-name>
			<param-value>${cas.service}</param-value>
		</init-param>
	</filter>
	<filter>
		<filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>
		<filter-class>org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class>
	</filter>

	<filter-mapping>
		<filter-name>CAS Authentication Filter</filter-name>
		<url-pattern>/cas/*</url-pattern>
	</filter-mapping>

	<filter-mapping>
		<filter-name>CAS Validation Filter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

	<filter-mapping>
		<filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

</web-app>