<?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>src</id>
  <formats>
    <format>tar.gz</format>
    <format>tar.bz2</format> 
    <format>zip</format>
  </formats>
  
  <fileSets>
    <!-- Copy licenses into '/' -->
    <fileSet>
      <directory>..</directory>
      <outputDirectory></outputDirectory>
      <includes>
        <include>README*</include>
        <include>LICENSE*</include>
        <include>NOTICE.txt</include>
      </includes>
    </fileSet>
    
    <!-- Copy Javadoc into '/docs' -->
    <fileSet>
      <directory>../target/site</directory>
      <outputDirectory>docs</outputDirectory>
      <includes>
        <include>apidocs*/**</include>
        <include>xref*/**</include>
      </includes>
    </fileSet>
      
    <!-- Copy sources into '/src' -->
    <fileSet>
      <directory>..</directory>
      <outputDirectory>src</outputDirectory>
      <includes>
        <include>**/*</include>
      </includes>
      <excludes>
        <exclude>.git/**</exclude>
        <exclude>KEYS</exclude>
        <exclude>LICENSE*.txt</exclude>
        <exclude>NOTICE.txt</exclude>
        <exclude>**/target</exclude>
        <exclude>**/target/**</exclude>
        <exclude>**/.settings</exclude>
        <exclude>**/.settings/**</exclude>
        <exclude>**/.classpath</exclude>
        <exclude>**/.project</exclude>
        <exclude>**/*.gen</exclude>
        <exclude>**/.wtpmodules</exclude>
        <exclude>**/surefire*</exclude>
        <exclude>**/cobertura.ser</exclude>
        <exclude>**/velocity.log</exclude>
        <exclude>distribution</exclude>
        <exclude>distribution/**</exclude>
      </excludes>
    </fileSet>
  </fileSets>
  
</assembly>
