<!--
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>source-release</id>
  <formats>
    <format>zip</format>
  </formats>
  
  <!-- 
    This adapted from
    https://svn.apache.org/repos/asf/maven/resources/tags/apache-source-release-assembly-descriptor-1.0.6/src/main/resources/assemblies/source-shared.xml
   -->
    
  <fileSets>
    <!-- main project directory structure -->
    <fileSet>
      <directory>.</directory>
      <outputDirectory></outputDirectory>
      <useDefaultExcludes>true</useDefaultExcludes>
      <excludes>
        <!-- build output -->
        <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/).*${project.build.directory}.*]</exclude>
        
        <!-- NOTE: Most of the following excludes should not be required 
             if the standard release process is followed. This is because the 
             release plugin checks out project sources into a location like
             target/checkout, then runs the build from there. The result is
             a source-release archive that comes from a pretty clean directory
             structure.
             
             HOWEVER, if the release plugin is configured to run extra goals
             or generate a project website, it's definitely possible that some
             of these files will be present. So, it's safer to exclude them.
        -->
             
        <!-- IDEs -->
        <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?maven-eclipse\.xml]</exclude>
        <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.project]</exclude>
        <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.classpath]</exclude>
        <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.factorypath]</exclude>
        <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?[^/]*\.iws]</exclude>
        <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.idea(/.*)?]</exclude>
        <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?out(/.*)?]</exclude>
        <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?[^/]*\.ipr]</exclude>
        <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?[^/]*\.iml]</exclude>
        <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.settings(/.*)?]</exclude>
        <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.apt_generated(/.*)?]</exclude>
        <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.apt_generated_tests(/.*)?]</exclude>
        <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.externalToolBuilders(/.*)?]</exclude>
        <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.deployables(/.*)?]</exclude>
        <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.wtpmodules(/.*)?]</exclude>
        
        <!-- misc -->
        <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?cobertura\.ser]</exclude>
        
        <!-- release-plugin temp files -->
        <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?pom\.xml\.releaseBackup]</exclude>
        <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?release\.properties]</exclude>
        
        <!-- UIMA-specific -->
        <!-- Files generated by CPE tests -->
        <exclude>**/checkpoint_synchPoint.xml</exclude>
        <exclude>**/checkpoint_synchPoint.xml.prev</exclude>

        <!-- 
          - Marker files enabling release-supporting profiles that expect a git repository and/or svn to be available
          - and are therefore not suitable for use when building from the source archive.
          -->
        <exclude>**/marker-file-enabling-auto-staging</exclude>
        <exclude>**/marker-file-enabling-release-notes</exclude>

        <!-- 
          File that seems to be temporarily placed into the CWD during the build but no idea where 
          it comes from. 
        -->
        <exclude>**/jffi*.dylib</exclude>

        <!-- Generated during the build -->
        <exclude>**/jVinci/META-INF/**</exclude>
        <exclude>**/uimaj-adapter-vinci/META-INF/**</exclude>
        <exclude>**/uimaj-core/META-INF/**</exclude>
        <exclude>**/uimaj-cpe/META-INF/**</exclude>
        <exclude>**/uimaj-ep-cas-editor/META-INF/**</exclude>
        <exclude>**/uimaj-ep-cas-editor-ide/META-INF/**</exclude>
        <exclude>**/uimaj-ep-configurator/META-INF/**</exclude>
        <exclude>**/uimaj-ep-debug/META-INF/**</exclude>
        <exclude>**/uimaj-ep-jcasgen/META-INF/**</exclude>
        <exclude>**/uimaj-ep-launcher/META-INF/**</exclude>
        <exclude>**/uimaj-ep-pear-packager/META-INF/**</exclude>
        <exclude>**/uimaj-ep-runtime/META-INF/**</exclude>
        <exclude>**/uimaj-tools/META-INF/**</exclude>
        <exclude>**/uimaj-eclipse-feature-runtime/.tycho-consumer-pom.xml</exclude>
        <exclude>**/uimaj-eclipse-feature-tools/.tycho-consumer-pom.xml</exclude>
      </excludes>
    </fileSet>
    <!-- license, readme, etc. calculated at build time -->
    <fileSet>
      <directory>${project.build.directory}/maven-shared-archive-resources/META-INF</directory>
      <outputDirectory></outputDirectory>
    </fileSet>
    <fileSet>
      <directory>.</directory>
      <outputDirectory/>
      <includes>
        <!-- Feature modules are manifest-first so we check in the Eclipse metadata
         -->
        <include>**/uimaj-eclipse-feature-*/.project</include>
        <include>**/uimaj-eclipse-update-site/.project</include>
      </includes>
    </fileSet>    
  </fileSets>
</assembly>