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

<!--

OPEN ISSUES:

2008-08-12 - duplicate entries in the lib/ directory. This is a Maven bug filed 
             here: http://jira.codehaus.org/browse/MASSEMBLY-285. A work-around
             might be to use the assembly plugin to create an assembly directory
             only, and add an antrun to make the final tarballs.
             
2008-08-12 - I'm not convinced that the xrefs should be includes under docs, as
             the sources are available under src/ anyway.

2008-08-12 - The assembly plugin supports filtering line endings to unix/win32
             style. May want to pull the zip and tar.* distributions into two
             separate release.xml files and use this feature.

-->
<assembly>
  <id>all</id>
  <formats>
    <format>tar.gz</format>
    <format>tar.bz2</format> 
    <format>zip</format>
  </formats>
  
  <moduleSets>
    <moduleSet>
      <includeSubModules/>
      <sources>
        <outputDirectoryMapping>src/${module.basedir.name}</outputDirectoryMapping>
        <fileSets>
          <fileSet>
            <includes>
              <!-- copy per-module sources into src/mina-*/ -->
              <include>src/**</include>
              <include>pom.xml</include>
              <include>LICENSE*</include>
              <include>NOTICE*</include>
            </includes>
          </fileSet>
        </fileSets>
      </sources>
      <binaries>
        <!-- copy project jars into dist/ -->
        <outputDirectory>dist</outputDirectory>
        <includeDependencies>false</includeDependencies>
        <unpack>false</unpack>
        <dependencySets>
          <dependencySet>
            <!-- copy project dependencies into lib/ -->
            <outputDirectory>lib</outputDirectory>
            <useTransitiveDependencies>true</useTransitiveDependencies>
            <unpack>false</unpack>
            <useProjectArtifact>false</useProjectArtifact>
            <excludes>
              <!-- during build, the plugin warns that this exclusion is never
                   triggered, but the truth is it works just fine and you can't
                   do without it. -->
              <exclude>org.apache.mina:*</exclude>
            </excludes>
          </dependencySet>
        </dependencySets>
      </binaries> 
    </moduleSet>    
  </moduleSets>
  
  <fileSets>
    <fileSet>
      <!-- copy the root pom into src/ -->
      <outputDirectory>src</outputDirectory>
      <filtered>false</filtered>
      <includes>
        <include>pom.xml</include>
      </includes>
    </fileSet>
    
    <fileSet>
      <!-- copy the licenses into / -->
      <outputDirectory></outputDirectory>
      <filtered>false</filtered>
      <includes>
        <include>README*</include>
        <include>LICENSE*</include>
        <include>NOTICE*</include>
      </includes>
    </fileSet>
    
    <fileSet>
      <!-- copy the javadoc into docs/ -->
      <directory>target/site</directory>
      <outputDirectory>docs</outputDirectory>
      <includes>
        <include>apidocs*/**</include>
        <include>xref*/**</include>
      </includes>
    </fileSet>

  </fileSets>
</assembly>

