<?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*</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>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>
