<?xml version="1.0"?>
<!DOCTYPE assembly PUBLIC "-//APACHE//DTD Assembly V1.2//EN"
        "http://maven.apache.org/xsd/assembly-1.0.0.xsd">
<assembly>
    <id>bin</id>
    <formats>
        <format>tar.gz</format>
        <format>tar.bz2</format>
        <format>zip</format>
    </formats>
    <includeBaseDirectory>true</includeBaseDirectory>
    <fileSets>
        <fileSet>
            <includes>
                <include>README*</include>
                <include>LICENSE*</include>
                <include>NOTICE*</include>
                <include>MIT-LICENSE*</include>
                <include>BUILDING*</include>
            </includes>
        </fileSet>
        <fileSet>
            <directory>target</directory>
            <outputDirectory>lib</outputDirectory>
            <includes>
                <include>*.jar</include>
            </includes>
        </fileSet>
    </fileSets>
    <moduleSets>
        <moduleSet>
            <includes>
                <include>org.apache.tapestry:tapestry-annotations</include>
                <include>org.apache.tapestry:tapestry-contrib</include>
                <include>org.apache.tapestry:tapestry-examples</include>
                <include>org.apache.tapestry:tapestry-framework</include>
                <include>org.apache.tapestry:tapestry-portlet</include>    
	            <include>org.apache.tapestry:tapestry-archetype</include>
            </includes>
            
            <binaries>
                <outputDirectory>lib</outputDirectory>
                <includeDependencies>true</includeDependencies>
                <unpack>false</unpack>
            </binaries>
        </moduleSet>
    </moduleSets>
</assembly>
