<?xml version="1.0" encoding="UTF-8"?>

<!--
  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.
-->

<faces-config version="2.0"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xi="http://www.w3.org/2001/XInclude"
    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">

  <component>
      <component-type>component-type-1</component-type>
      <component-class>com.mycompany.MyComponent1</component-class>
  </component>

  <component>
      <component-type>component-type-2</component-type>
      <component-class>com.mycompany.MyComponent2</component-class>
  </component>

  <converter>
      <converter-id>converter-id-1</converter-id>
      <converter-class>com.mycompany.MyConverter1</converter-class>
  </converter>

  <converter>
      <converter-id>converter-id-2</converter-id>
      <converter-class>com.mycompany.MyConverter2</converter-class>
  </converter>

  <converter>
      <converter-for-class>java.lang.Integer</converter-for-class>
      <converter-class>org.apache.myfaces.test.config.MyConverter</converter-class>
  </converter>

  <validator>
      <validator-id>validator-id-1</validator-id>
      <validator-class>org.apache.myfaces.test.config.MyValidator</validator-class>
  </validator>

  <validator>
      <validator-id>validator-id-2</validator-id>
      <validator-class>org.apache.myfaces.test.config.MyValidator</validator-class>
  </validator>

  <behavior>
      <behavior-id>behavior-1</behavior-id>
      <behavior-class>org.apache.myfaces.test.config.MyBehavior</behavior-class>
  </behavior>
  <behavior>
      <behavior-id>behavior-2</behavior-id>
      <behavior-class>org.apache.myfaces.test.config.MyBehavior</behavior-class>
  </behavior>

  <render-kit>

      <renderer>
          <component-family>component-family-1</component-family>
          <renderer-type>renderer-type-1</renderer-type>
          <renderer-class>org.apache.myfaces.test.config.MyRenderer</renderer-class>
      </renderer>

      <renderer>
          <component-family>component-family-2</component-family>
          <renderer-type>renderer-type-2</renderer-type>
          <renderer-class>org.apache.myfaces.test.config.MyRenderer</renderer-class>
      </renderer>

      <client-behavior-renderer>
          <client-behavior-renderer-type>client-behavior-renderer-1</client-behavior-renderer-type>
          <client-behavior-renderer-class>org.apache.myfaces.test.config.MyClientBehaviorRenderer</client-behavior-renderer-class>
      </client-behavior-renderer>

      <client-behavior-renderer>
          <client-behavior-renderer-type>client-behavior-renderer-2</client-behavior-renderer-type>
          <client-behavior-renderer-class>org.apache.myfaces.test.config.MyClientBehaviorRenderer</client-behavior-renderer-class>
      </client-behavior-renderer>
  </render-kit>

</faces-config>
