<?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-helloworld-portlets" 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>
              <exclude>WEB-INF/portlet.xml</exclude>
          </excludes>
      </fileSet>
      <fileSet filtered="true" packaged="false">
          <directory>src/main/webapp/</directory>
          <includes>
              <!-- faces-config and portlet.xml need to be filtered -->
              <include>WEB-INF/faces-config.xml</include>
              <include>WEB-INF/portlet.xml</include>
          </includes>
      </fileSet>
      <fileSet filtered="false" packaged="false">
          <directory>src/main/log4j/</directory>
      </fileSet>
  </fileSets>

  <modules/>

</archetype-descriptor>
