<?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>binary</id>
    <formats>
        <format>zip</format>
    </formats>
    <includeBaseDirectory>true</includeBaseDirectory>
    <fileSets>
        <fileSet>
            <directory>target/aggregate</directory>
            <outputDirectory>/</outputDirectory>
        </fileSet>
        <fileSet>
            <includes>
                <include>README</include>
                <include>DISCLAIMER</include>
                <include>LICENSE</include>
                <include>STATUS</include>
                <include>NOTICE</include>
                <include>README.txt</include>
                <include>DISCLAIMER.txt</include>
                <include>LICENSE.txt</include>
                <include>STATUS.txt</include>
                <include>NOTICE.txt</include>
                <include>RELEASE-NOTES</include>
                <include>RELEASE-NOTES.html</include>
                <include>RELEASE-NOTES.txt</include>
                <include>CHANGES</include>
                <include>CHANGES.txt</include>
            </includes>
        </fileSet>
        <!--
        <fileSet>
            <directory>licenses</directory>
            <outputDirectory>/lib</outputDirectory>
            <includes>
                <include>*</include>
            </includes>
        </fileSet>
        <fileSet>
            <directory>target/examples</directory>
            <outputDirectory>/examples</outputDirectory>
        </fileSet>
        -->
        <fileSet>
            <directory>target/manual</directory>
            <outputDirectory>docs/manual</outputDirectory>
        </fileSet>
        <fileSet>
            <directory>../target/site/apidocs</directory>
            <outputDirectory>docs/javadoc</outputDirectory>
        </fileSet>
        <fileSet>
            <directory>../openjpa-examples/src/main/java</directory>
            <outputDirectory>examples</outputDirectory>
        </fileSet>
    </fileSets>
    <dependencySets>
        <dependencySet>
            <outputDirectory>/</outputDirectory>
            <unpack>false</unpack>
            <scope>runtime</scope>
            <includes>
                <include>org.apache.openjpa:openjpa</include>
            </includes>
        </dependencySet>
        <dependencySet>
            <outputDirectory>/lib</outputDirectory>
            <unpack>false</unpack>
            <scope>runtime</scope>
            <includes>
                <include>net.sourceforge.serp:serp</include>
                <include>org.apache.derby:derby</include>

                <include>commons-lang:commons-lang</include>
                <include>commons-collections:commons-collections</include>
                <include>commons-pool:commons-pool</include>

                <include>org.apache.geronimo.specs:geronimo-jta_1.1_spec</include>
                <include>org.apache.geronimo.specs:geronimo-jpa_3.0_spec</include>
            </includes>
        </dependencySet>
    </dependencySets>
</assembly>
