<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~ Copyright 2006 The Apache Software Foundation.
  ~
  ~ Licensed 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 id="fileset" partial="false" >

    <requiredProperties>
        <requiredProperty key="property-with-default-1" >
            <defaultValue>default-value</defaultValue>
        </requiredProperty>
        <requiredProperty key="property-with-default-2" >
            <defaultValue>default-value</defaultValue>
        </requiredProperty>
        <requiredProperty key="property-with-default-3" >
            <defaultValue>default-value</defaultValue>
        </requiredProperty>
        <requiredProperty key="property-with-default-4" >
            <defaultValue>default-value</defaultValue>
        </requiredProperty>
        <requiredProperty key="property-without-default-1" />
        <requiredProperty key="property-without-default-2" />
        <requiredProperty key="property-without-default-3" />
        <requiredProperty key="property-without-default-4" />
    </requiredProperties>

    <fileSets>
        <fileSet filtered="true" packaged="true" >
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.java</include>
            </includes>
        </fileSet>
        <fileSet filtered="false" packaged="true" >
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.ogg</include>
            </includes>
        </fileSet>
        <fileSet filtered="true" packaged="false" >
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*.properties</include>
            </includes>
        </fileSet>
        <fileSet filtered="false" packaged="false" >
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*.png</include>
            </includes>
        </fileSet>
        <fileSet filtered="true" packaged="false" >
            <directory>src/site</directory>
            <includes>
                <include>**/*.xml</include>
                <include>**/*.apt</include>
            </includes>
        </fileSet>
        <fileSet filtered="true">
            <directory></directory>
            <includes>
                <include>.classpath</include>
                <include>*.xml</include>
            </includes>
        </fileSet>
    </fileSets>

    <modules>
        <module id="subproject">
            <fileSets>
                <fileSet filtered="true" packaged="true" >
                    <directory>src/main/java</directory>
                    <includes>
                        <include>**/*.java</include>
                    </includes>
                </fileSet>
            </fileSets>

            <modules>
                <module id="subsubproject">
                    <fileSets>
                        <fileSet filtered="true" packaged="true" >
                            <directory>src/main/java</directory>
                            <includes>
                                <include>**/*.java</include>
                            </includes>
                        </fileSet>
                    </fileSets>
                </module>
            </modules>
        </module>
    </modules>

</archetype-descriptor>
