<!-- Maven assembly plugin configuration for executable packaging 
     See https://maven.apache.org/plugins/maven-assembly-plugin/faq.html#module-binaries
     TODO: Should include xercesImpl and xml-apis jarfiles? 
     Not regex, bcel, commons
     And those should be moved to xalan-X_version/
-->
<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.2.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.2.0 http://maven.apache.org/xsd/assembly-2.2.0.xsd">
  <id>bin</id>
  <formats>
    <format>zip</format>
    <format>tar.gz</format>
  </formats>
  <includeBaseDirectory>false</includeBaseDirectory>
  <moduleSets>
    <moduleSet>
      <useAllReactorProjects>true</useAllReactorProjects>
      <!-- Now, select which projects to include in this module-set. -->
      <includes>
        <include>xalan:serializer</include>
        <include>xalan:xalan</include>
        <include>xalan:samples</include>
      </includes>
      <binaries>
        <outputDirectory>${project.parent.name}_${project.parent.version}</outputDirectory>
        <unpack>false</unpack>
        <dependencySets>
          <dependencySet>
            <excludes>
              <exclude>org.jboss.spec.javax.rmi:jboss-rmi-api_1.0_spec</exclude>
            </excludes>
          </dependencySet>
        </dependencySets>
      </binaries>
    </moduleSet>
  </moduleSets>
  <fileSets>
    <!-- The above isn't picking up Xerces and xml-apis, for whatever reason.
         Ugly empirical solution.Should these have been copied into build/?
         TODO REVIEW: Improve!
    -->
    <fileSet>
      <directory>${rootlocation}/lib</directory>
      <outputDirectory>${project.parent.name}_${project.parent.version}</outputDirectory>
      <includes>
        <include>xercesImpl*.jar</include>
        <include>xml-apis*.jar</include>
      </includes>
    </fileSet>
    <!-- In Maven builds, LICENSE and NOTICE go into META-INF -->
    <fileSet>
      <directory>..</directory>
      <outputDirectory>META-INF</outputDirectory>
      <includes>
        <include>LICENSE.txt</include>
        <include>NOTICE.txt</include>
      </includes>
    </fileSet>
    <!-- Rename site to docs for back-compatibility. -->
    <fileSet>
      <directory>../target/site</directory>
      <outputDirectory>${project.parent.name}_${project.parent.version}/docs</outputDirectory>
    </fileSet>
    <!-- Include source for samples -->
    <fileSet>
      <directory>../samples</directory>
      <outputDirectory>${project.parent.name}_${project.parent.version}/samples</outputDirectory>
      <excludes>
        <exclude>target/**</exclude>
        <exclude>src/site/**</exclude>
      </excludes>
    </fileSet>
    <!-- Include (generated) readme.html for samples -->
    <fileSet>
      <directory>../samples/target/site/</directory>
      <outputDirectory>${project.parent.name}_${project.parent.version}/samples</outputDirectory>
      <includes>
        <include>**/readme.html</include>
      </includes>
    </fileSet>
  </fileSets>
</assembly>
