<?xml version='1.0'?>
<!--

 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 xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
  <id>bin</id>
  <formats>
    <format>tar.gz</format>
  </formats>
  <baseDirectory>apache-qpid-proton-j-${project.version}</baseDirectory>
  <fileSets>
    <fileSet>
      <directory>${basedir}/src/main/assembly/</directory>
      <outputDirectory>/</outputDirectory>
      <includes>
        <include>NOTICE</include>
        <include>LICENSE</include>
      </includes>
      <fileMode>0644</fileMode>
      <directoryMode>0755</directoryMode>
    </fileSet>
  </fileSets>
  <dependencySets>
    <dependencySet>
      <outputDirectory>/lib</outputDirectory>
      <useProjectArtifact>false</useProjectArtifact>
      <useTransitiveFiltering>true</useTransitiveFiltering>
    </dependencySet>
  </dependencySets>
  <moduleSets>
    <moduleSet>
      <useAllReactorProjects>true</useAllReactorProjects>
      <includes>
        <include>org.apache.qpid:proton-j-engine-examples</include>
      </includes>
      <sources>
        <includeModuleDirectory>false</includeModuleDirectory>
        <fileSets>
          <fileSet>
            <directory>src</directory>
            <outputDirectory>examples/engine/src</outputDirectory>
            <fileMode>0644</fileMode>
            <directoryMode>0755</directoryMode>
          </fileSet>
          <fileSet>
            <outputDirectory>examples/engine</outputDirectory>
            <includes>
              <include>pom.xml</include>
            </includes>
            <fileMode>0644</fileMode>
          </fileSet>
          <fileSet>
            <outputDirectory>examples/engine</outputDirectory>
            <includes>
              <include>drain</include>
              <include>spout</include>
              <include>server</include>
            </includes>
            <fileMode>0755</fileMode>
          </fileSet>
        </fileSets>
      </sources>
    </moduleSet>
    <moduleSet>
      <useAllReactorProjects>true</useAllReactorProjects>
      <includes>
        <include>org.apache.qpid:proton-j-reactor-examples</include>
      </includes>
      <sources>
        <includeModuleDirectory>false</includeModuleDirectory>
        <fileSets>
          <fileSet>
            <directory>src</directory>
            <outputDirectory>examples/reactor/src</outputDirectory>
            <fileMode>0644</fileMode>
            <directoryMode>0755</directoryMode>
          </fileSet>
          <fileSet>
            <outputDirectory>examples/reactor</outputDirectory>
            <includes>
              <include>pom.xml</include>
              <include>README.md</include>
            </includes>
            <fileMode>0644</fileMode>
          </fileSet>
          <fileSet>
            <outputDirectory>examples/reactor</outputDirectory>
            <includes>
              <include>run</include>
            </includes>
            <fileMode>0755</fileMode>
          </fileSet>
        </fileSets>
      </sources>
    </moduleSet>

  </moduleSets>
</assembly>

