<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd">
    <id>openfire-plugin-assembly</id>
    <formats>
        <format>jar</format>
    </formats>
    <includeBaseDirectory>false</includeBaseDirectory>
    <fileSets>

        <!-- metadata files (readme, icons, etc). -->
        <fileSet>
            <outputDirectory/>
            <directory>${project.build.sourceDirectory}/../..</directory>
            <includes>
                <include>*.gif</include>
                <include>*.png</include>
                <include>lib/**</include>
            </includes>
        </fileSet>

        <!--
            filtered metadata files (html, plugin.xml)
            This includes 2 sections, one for the current project structure and one for legacy projects
            This used to assume a 'src/java' directory, but that is not always the case. Default project
            structure is now src/main/java. Some plugins have worked around this by placing the plugin.xml
            and related collateral in the src directory. This section now supports both structures.
        -->
        <fileSet> <!-- Current project structure - plugin descriptors in the project root -->
            <outputDirectory/>
            <directory>${project.basedir}</directory>
            <filtered>true</filtered>
            <includes>
                <include>*.html</include>
                <include>plugin.xml</include>
            </includes>
        </fileSet>
        <fileSet> <!-- Cope with legacy & unusual project structures - plugin descriptors 2 folders above plugin source -->
            <outputDirectory/>
            <directory>${project.build.sourceDirectory}/../..</directory>
            <filtered>true</filtered>
            <includes>
                <include>*.html</include>
                <include>plugin.xml</include>
            </includes>
        </fileSet>

        <!-- database, i18n and web directory -->
        <fileSet>
            <outputDirectory/>
            <directory>${project.build.sourceDirectory}/..</directory>
            <includes>
                <include>database/**</include>
                <include>i18n/**</include>
                <include>web/**</include>
            </includes>
            <!-- Exclude jsp pages (they will be compiled) and filterable resources -->
            <excludes>
                <exclude>**/*.jsp</exclude>
                <exclude>i18n/**/*.properties</exclude>
                <exclude>web/**/*.xml</exclude>
                <exclude>web/**/*.html</exclude>
                <exclude>web/**/*.properties</exclude>
            </excludes>
        </fileSet>

        <!-- database, i18n and web directory (filtered) -->
        <fileSet>
            <outputDirectory/>
            <directory>${project.build.sourceDirectory}/..</directory>
            <filtered>true</filtered>
            <includes>
                <include>i18n/**/*.properties</include>
                <include>web/**/*.xml</include>
                <include>web/**/*.html</include>
                <include>web/**/*.properties</include>
            </includes>
            <excludes>
                <!-- Exclude the web.xml, it will be generated by JspC -->
                <exclude>web/WEB-INF/web.xml</exclude>
            </excludes>
        </fileSet>

        <!-- web.xml (it will be modified by JspC) -->
        <fileSet>
            <outputDirectory>web/WEB-INF</outputDirectory>
            <directory>${project.build.directory}</directory>
            <includes>
                <include>web.xml</include>
            </includes>
        </fileSet>

        <!-- Include the classes folder (filtered) -->
        <fileSet>
            <outputDirectory>classes</outputDirectory>
            <directory>classes</directory>
            <filtered>true</filtered>
            <includes>
                <include>**/*.xml</include>
                <include>**/*.properties</include>
            </includes>
        </fileSet>

        <!-- Include the classes folder -->
        <fileSet>
            <outputDirectory>classes</outputDirectory>
            <directory>classes</directory>
            <filtered>false</filtered>
            <excludes>
                <exclude>**/*.xml</exclude>
                <exclude>**/*.properties</exclude>
            </excludes>
        </fileSet>

        <!-- Include any resources folder -->
        <fileSet>
            <directory>src/resources</directory>
            <outputDirectory>classes</outputDirectory>
        </fileSet>

    </fileSets>

    <!-- Bundle the dependencies of this plugin -->
    <dependencySets>
        <dependencySet>
            <outputDirectory>lib</outputDirectory>
            <useProjectArtifact>true</useProjectArtifact>
        </dependencySet>
    </dependencySets>
</assembly>
