<?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.
-->
<archetype-descriptor xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0"
                      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                      xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0 http://maven.apache.org/xsd/archetype-descriptor-1.0.0.xsd"

                      name="myfaces-archetype-codi-jsf12" partial="false">

  <requiredProperties/>

  <fileSets>
      <fileSet filtered="true" packaged="true">
          <directory>src/main/java/</directory>
      </fileSet>
      <fileSet filtered="false" packaged="false">
          <directory>src/main/webapp/</directory>
          <excludes>
              <exclude>WEB-INF/faces-config.xml</exclude>
          </excludes>
      </fileSet>
      <fileSet filtered="true" packaged="false">
          <directory>src/main/webapp/</directory>
          <includes>
              <!-- faces-config needs to be filtered -->
              <include>WEB-INF/faces-config.xml</include>
          </includes>
      </fileSet>
  </fileSets>

  <modules/>

</archetype-descriptor>
