<?xml version="1.0" encoding="UTF-8" ?>
<faces-config xmlns="http://java.sun.com/xml/ns/javaee"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
              version="2.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.
    -->

    <factory>

        <!--
          all these factories are replacements for the normal ones
          issue is we have to make a codeweaving for every bean created
        -->

        <application-factory>
            org.apache.myfaces.extensions.scripting.jsf.dynamicDecorators.factories.ScriptingApplicationFactory
        </application-factory>

        <faces-context-factory>
            org.apache.myfaces.extensions.scripting.jsf.dynamicDecorators.factories.ScriptingFacesContextFactory
        </faces-context-factory>


        <lifecycle-factory>
            org.apache.myfaces.extensions.scripting.jsf.dynamicDecorators.factories.ScriptingLifecycleFactory
        </lifecycle-factory>

        <render-kit-factory>
            org.apache.myfaces.extensions.scripting.jsf.dynamicDecorators.factories.ScriptingRenderkitFactory
        </render-kit-factory>

        <!--
          <tag-handler-delegate-factory>
              org.apache.myfaces.extensions.scripting.facelet.TagHandlerDelegateFactoryImpl
          </tag-handler-delegate-factory>
        -->
    </factory>
    <lifecycle>
        <phase-listener>org.apache.myfaces.extensions.scripting.jsf.startup.RefreshPhaseListener
        </phase-listener>
    </lifecycle>

    <!--
    <application>
        <resource-handler>org.apache.myfaces.extensions.scripting.jsf.resources.SourceResourceHandler</resource-handler>
    </application>
    -->

    <!--
    <application>
        <system-event-listener>
            <system-event-listener-class>org.apache.myfaces.extensions.scripting.startup.IntialScanAnnotationListener
            </system-event-listener-class>
            <system-event-class>javax.faces.event.PostConstructApplicationEvent</system-event-class>
        </system-event-listener>

    </application>
   -->

    <component>
        <component-type>org.apache.myfaces.extensions.scripting.components.CompilerComponent</component-type>
        <component-class>org.apache.myfaces.extensions.scripting.jsf.components.CompilerComponent
        </component-class>
    </component>

    <component>
        <component-type>org.apache.myfaces.extensions.scripting.components.TaintHistory</component-type>
        <component-class>org.apache.myfaces.extensions.scripting.jsf.components.TaintHistory</component-class>
    </component>
    <render-kit>
        <renderer>
            <component-family>javax.faces.Output</component-family>
            <renderer-type>org.apache.myfaces.extensions.scripting.components.CompilerComponentRenderer</renderer-type>
            <renderer-class>org.apache.myfaces.extensions.scripting.jsf.components.CompilerComponentRenderer
            </renderer-class>
        </renderer>
        <renderer>
            <component-family>javax.faces.Output</component-family>
            <renderer-type>org.apache.myfaces.extensions.scripting.components.TaintHistoryRenderer</renderer-type>
            <renderer-class>org.apache.myfaces.extensions.scripting.jsf.components.TaintHistoryRenderer</renderer-class>
        </renderer>
    </render-kit>

</faces-config>