<?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 typically identifies the "type" (src vs bin etc) of the assembly -->
    <id>samples</id>

    <includeBaseDirectory>true</includeBaseDirectory>
    <baseDirectory>tuscany-samples-${version}</baseDirectory>

    <formats>
        <format>zip</format>
        <format>tar.gz</format>
    </formats>

    <fileSets>

       <fileSet>
          <directory>src/main/release</directory>
          <outputDirectory>.</outputDirectory>
       </fileSet>

       <fileSet>
          <directory>../../samples</directory>
          <outputDirectory>.</outputDirectory>
          <excludes>
             <exclude>**/.classpath</exclude>
             <exclude>**/.project</exclude>
             <exclude>**/target</exclude>
             <exclude>**/target/**</exclude>
             <exclude>**/.settings</exclude>
             <exclude>**/.settings/**</exclude>
          </excludes>
       </fileSet>

       <fileSet>
          <directory>../..</directory>
          <outputDirectory>.</outputDirectory>
          <includes>
             <include>CHANGES</include>
             <include>RELEASE_NOTES</include>
          </includes>
       </fileSet>

    </fileSets>

</assembly>
