<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app PUBLIC
	"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
	"http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

	<context-param>
		<param-name>log4jConfigLocation</param-name>
		<param-value>/WEB-INF/log4j.properties</param-value>
	</context-param>

	<filter>
	   	<filter-name>sitemesh</filter-name>
	    <filter-class>com.opensymphony.module.sitemesh.filter.PageFilter</filter-class>
	</filter>
	
  	<filter>
	    <filter-name>hibernateFilter</filter-name>
    	<filter-class>org.codehaus.groovy.grails.orm.hibernate.support.GrailsOpenSessionInViewFilter</filter-class>
   	</filter>

    <% if(dev) { %>
    <filter>
        <filter-name>reloadFilter</filter-name>
        <filter-class>org.codehaus.groovy.grails.web.servlet.filter.GrailsReloadServletFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>reloadFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <% } %>

    <filter-mapping>
    	<filter-name>sitemesh</filter-name>
	    <url-pattern>/*</url-pattern>
	</filter-mapping>
	
	<filter-mapping>
	    <filter-name>hibernateFilter</filter-name>
	     <url-pattern>/*</url-pattern>
	</filter-mapping>


    <servlet>
		<servlet-name>log4j</servlet-name>
		<servlet-class>org.springframework.web.util.Log4jConfigServlet</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>

	<!-- Context loader servlet for those older servlet engines. -->
	<servlet>
		<servlet-name>context</servlet-name>
		<servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
		<load-on-startup>2</load-on-startup>
	</servlet>

	<!-- Grails dispatcher servlet -->
	<servlet>
		<servlet-name>grails</servlet-name>
		<servlet-class>org.codehaus.groovy.grails.web.servlet.GrailsDispatcherServlet</servlet-class>
		<load-on-startup>3</load-on-startup>
	</servlet>

    <!-- The Groovy Server Pages servlet -->
      <servlet>
        <servlet-name>gsp</servlet-name>
        <servlet-class>org.codehaus.groovy.grails.web.pages.GroovyPagesServlet</servlet-class>
        <% if(dev) { %>
        <init-param>
            <param-name>showSource</param-name>
            <param-value>1</param-value>
            <description>
              Allows developers to view the intermediade source code, when they pass
                a spillGroovy argument in the URL.
           </description>
        </init-param>
        <% } %>
     </servlet>

    <servlet-mapping>
        <servlet-name>gsp</servlet-name>
        <url-pattern>*.gsp</url-pattern>
    </servlet-mapping>
    <!-- Map all requests to the Grails dispatcher servlet -->
	<% for ( c in controllers ) { %>	
		<servlet-mapping>
			<servlet-name>grails</servlet-name>
			<url-pattern>/${c}/*</url-pattern>
		</servlet-mapping>
	<% } %>		
	
	<% for ( f in flows ) { %>
		<servlet-mapping>
			<servlet-name>grails</servlet-name>
			<url-pattern>/${f}/*</url-pattern>
		</servlet-mapping>
	<% } %>		

	
	<taglib>
		<taglib-uri>http://java.sun.com/jstl/core</taglib-uri>
		<taglib-location>/WEB-INF/tld/c.tld</taglib-location>
	</taglib>
	
	<taglib>
		<taglib-uri>http://java.sun.com/jstl/fmt</taglib-uri>
		<taglib-location>/WEB-INF/tld/fmt.tld</taglib-location>
	</taglib>
	
	<taglib>
		<taglib-uri>http://www.springframework.org/tags</taglib-uri>
		<taglib-location>/WEB-INF/tld/spring.tld</taglib-location>
	</taglib>
	
	<taglib>
		<taglib-uri>http://grails.codehaus.org/tags</taglib-uri>
		<taglib-location>/WEB-INF/tld/grails.tld</taglib-location>
	</taglib>		
</web-app>