<assembly>
  <!--
  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.
  -->
  <id>bin</id>
  <formats>
    <format>zip</format>
    <format>tar.gz</format>
  </formats>
  <fileSets>
    <fileSet>
      <directory>${project.basedir}/..</directory>
      <outputDirectory>/</outputDirectory>
      <includes>
        <include>LICENSE.txt</include>
        <include>NOTICE.txt</include>
        <include>RELEASE_NOTES.txt</include>
      </includes>
    </fileSet>
    <fileSet>
      <directory>${project.basedir}/../target/site/apidocs</directory>
      <outputDirectory>/apidocs</outputDirectory>
    </fileSet>
  </fileSets>
  <dependencySets>
    <dependencySet>
      <outputDirectory>/lib/</outputDirectory>
      <scope>runtime</scope>
      <excludes>
        <exclude>org.apache.james:apache-jsieve*</exclude>
      </excludes>
    </dependencySet>
    <dependencySet>
      <outputDirectory>/</outputDirectory>
      <scope>runtime</scope>
      <includes>
        <include>org.apache.james:apache-jsieve*</include>
      </includes>
    </dependencySet>
  </dependencySets>
</assembly>
