<?xml version="1.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.
	   
-->
<faces-config xmlns="http://java.sun.com/xml/ns/javaee"
              xmlns:mfp="http://myfaces.apache.org/maven-faces-plugin" >

  <component>

    <component-type>javax.faces.NamingContainer</component-type>
    <component-class>javax.faces.component.UINamingContainer</component-class>
    
    <description>
      A simple naming container.
    </description>
    
    <component-extension>
      <mfp:component-family>javax.faces.NamingContainer</mfp:component-family>
      <mfp:naming-container>true</mfp:naming-container>
      <mfp:ecmascript-class>component.UINamingContainer</mfp:ecmascript-class>
    </component-extension>
      
  </component>

</faces-config>
