<assembly>
    <id>bin</id>
    <baseDirectory>rampart-${version}</baseDirectory>
    <formats>
        <format>zip</format>
    </formats>
    <dependencySets>
        <dependencySet>
            <outputDirectory>modules</outputDirectory>
            <includes>
                <include>org.apache.rampart:rampart:mar</include>
                <include>org.apache.rampart:rahas:mar</include>
            </includes>
        </dependencySet>
        <dependencySet>
            <outputDirectory>lib</outputDirectory>
            <includes>
                <include>org.apache.santuario:xmlsec:jar</include>
                <include>org.apache.ws.security:wss4j:jar</include>
                <include>org.bouncycastle:bcprov-jdk15on:jar</include>
                <include>org.apache.rampart:rampart-core:jar</include>
                <include>org.apache.rampart:rampart-policy:jar</include>
                <include>org.apache.rampart:rampart-trust:jar</include>
                <include>org.opensaml:opensaml:jar</include>
                <include>org.opensaml:xmltooling:jar</include>
                <include>org.owasp.esapi:esapi:jar</include>
                <include>joda-time:joda-time:jar</include>
                <include>org.slf4j:slf4j-api:jar</include>
                <include>org.slf4j:slf4j-jcl:jar</include>
                <include>velocity:velocity:jar</include>
                <include>commons-collections:commons-collections:jar</include>
                <include>org.opensaml:openws:jar</include>
                <include>commons-lang:commons-lang:jar</include>
                <include>org.apache.xerces:xercesImpl:jar</include>
                <include>org.apache.xerces:resolver:jar</include>
                <include>org.apache.xerces:serializer:jar</include>
                <include>org.owasp.esapi:esapi:jar</include>
            </includes>
        </dependencySet>
        <dependencySet>
            <outputDirectory>docs/apidocs</outputDirectory>
            <includes>
                <include>*:apidocs:zip</include>
            </includes>
            <useProjectArtifact>false</useProjectArtifact>
            <unpack>true</unpack>
        </dependencySet>
    </dependencySets>
    <fileSets>
        <fileSet>
            <directory>../rampart-samples</directory>
            <outputDirectory>samples</outputDirectory>
            <excludes>
                <exclude>pom.xml</exclude>
                <exclude>target/**</exclude>
            </excludes>
        </fileSet>
        <fileSet>
            <directory>../../legal</directory>
            <outputDirectory>lib</outputDirectory>
        </fileSet>
        <fileSet>
            <directory>src/main/files</directory>
            <outputDirectory>.</outputDirectory>
        </fileSet>
    </fileSets>

    <files>
        <file>
            <source>../../README</source>
            <filtered>true</filtered>
        </file>
        <file>
            <source>../../LICENSE</source>
        </file>
        <file>
            <source>../../NOTICE</source>
        </file>
        <file>
            <source>../../src/site/markdown/release-notes/${release_version}.md</source>
            <destName>RELEASE-NOTE</destName>
        </file>
    </files>

</assembly>
