<?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.
-->

<assembly>
    <id>binary</id>
    <formats>
        <format>zip</format>
        <format>tar.gz</format>
    </formats>
    <includeBaseDirectory>false</includeBaseDirectory>

    <files> 
        <file> 
            <source>../app/target/roller.war</source>
            <outputDirectory>${artifact.artifactId}-${artifact.version}/webapp</outputDirectory>
        </file> 
        <file> 
            <source>../README.md</source>
            <outputDirectory>${artifact.artifactId}-${artifact.version}</outputDirectory>
        </file> 
        <file> 
            <source>../NOTICE.txt</source>
            <outputDirectory>${artifact.artifactId}-${artifact.version}</outputDirectory>
        </file> 
        <file> 
            <source>../LICENSE.txt</source>
            <outputDirectory>${artifact.artifactId}-${artifact.version}</outputDirectory>
        </file> 
        <file>
            <source>target/generated-docs/roller-install-guide.pdf</source>
            <outputDirectory>${artifact.artifactId}-${artifact.version}/docs</outputDirectory>
        </file>
        <file>
            <source>../docs/roller-template-guide.pdf</source>
            <outputDirectory>${artifact.artifactId}-${artifact.version}/docs</outputDirectory>
        </file>
        <file>
            <source>../docs/roller-user-guide.pdf</source>
            <outputDirectory>${artifact.artifactId}-${artifact.version}/docs</outputDirectory>
        </file>
    </files>

</assembly>
