<?xml version="1.0" encoding="UTF-8" ?>
<!--
/*
 * $Id: pom.xml 559206 2007-07-24 21:01:18Z apetrelli $
 *
 * 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.
 */
-->

<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
    
<struts>
    <package name="jsf-default" extends="struts-default">

        <result-types>
            <result-type name="jsf" class="org.apache.struts2.jsf.FacesResult" />
        </result-types>
        <interceptors>
            <interceptor class="org.apache.struts2.jsf.FacesSetupInterceptor" name="jsfSetup" />
            <interceptor class="org.apache.struts2.jsf.RestoreViewInterceptor" name="jsfRestore" />
            <interceptor class="org.apache.struts2.jsf.ApplyRequestValuesInterceptor" name="jsfApply" />
            <interceptor class="org.apache.struts2.jsf.ProcessValidationsInterceptor" name="jsfValidate" />
            <interceptor class="org.apache.struts2.jsf.UpdateModelValuesInterceptor" name="jsfUpdate" />
            <interceptor class="org.apache.struts2.jsf.InvokeApplicationInterceptor" name="jsfInvoke" />

            <interceptor-stack name="jsfStack">
                <interceptor-ref name="jsfSetup">
                    <param name="variableResolver">org.apache.struts2.jsf.StrutsVariableResolver</param>
                    <param name="navigationHandler">org.apache.struts2.jsf.StrutsNavigationHandler</param>
                </interceptor-ref>
                <interceptor-ref name="jsfRestore" />
                <interceptor-ref name="jsfApply" />
                <interceptor-ref name="jsfValidate" />
                <interceptor-ref name="jsfUpdate" />
                <interceptor-ref name="jsfInvoke" />
            </interceptor-stack>
        </interceptors>
        
        <default-interceptor-ref name="jsfStack"/>
        
    </package>

</struts>
