<!--
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>bin</id>
  <formats>
    <format>tar.gz</format>  
    <!--format>dir</format-->
  </formats>
  
  <baseDirectory>apache-uima-ducc-${project.version}</baseDirectory> 
  <includeBaseDirectory>true</includeBaseDirectory>

    
   
   <dependencySets>
    
	<!-- xstream is in lib/apache-camel --> 

    <dependencySet>
      <useStrictFiltering>true</useStrictFiltering>
      <includes>
        <include>org.kohsuke:libpam4j</include>
      </includes>
      <outputDirectory>lib/libpam4j</outputDirectory>
      <useProjectArtifact>false</useProjectArtifact>
      <fileMode>644</fileMode> 
      <directoryMode>755</directoryMode>        
    </dependencySet>

    <dependencySet>
      <useStrictFiltering>true</useStrictFiltering>
      <includes>
        <include>net.java.dev.jna:jna</include>
      </includes>
      <outputDirectory>lib/jna</outputDirectory>
      <useProjectArtifact>false</useProjectArtifact>
      <fileMode>644</fileMode> 
      <directoryMode>755</directoryMode>        
    </dependencySet>


    <dependencySet>
      <useStrictFiltering>true</useStrictFiltering>
      <includes>
        <include>org.apache.uima:uima-ducc-common</include>
        <include>org.apache.uima:uima-ducc-transport</include>
        <include>org.apache.uima:uima-ducc-agent</include>
        <include>org.apache.uima:uima-ducc-cli</include>
        <include>org.apache.uima:uima-ducc-pm</include>
        <include>org.apache.uima:uima-ducc-rm</include>
        <include>org.apache.uima:uima-ducc-sm</include>
        <include>org.apache.uima:uima-ducc-orchestrator</include>
        <include>org.apache.uima:uima-ducc-web</include>
        <include>org.apache.uima:uima-ducc-container</include>
        <include>org.apache.uima:uima-ducc-database</include>
      </includes>      
      <outputFileNameMapping>${artifact.artifactId}-${project.version}.jar</outputFileNameMapping>
      <outputDirectory>lib/uima-ducc</outputDirectory>
      <useProjectArtifact>false</useProjectArtifact>
      <fileMode>644</fileMode> 
      <directoryMode>755</directoryMode>        
    </dependencySet>

    <!-- Put examples jar one level down as not used by daemons -->
    <dependencySet>
      <useStrictFiltering>true</useStrictFiltering>
      <includes>
        <include>org.apache.uima:uima-ducc-examples</include>
      </includes>      
      <outputFileNameMapping>${artifact.artifactId}-${project.version}.jar</outputFileNameMapping>
      <outputDirectory>lib/uima-ducc/examples</outputDirectory>
      <useProjectArtifact>false</useProjectArtifact>
      <fileMode>644</fileMode> 
      <directoryMode>755</directoryMode>        
    </dependencySet>

    <!-- Put user jar one level down to isolate it -->
    <dependencySet>
      <useStrictFiltering>true</useStrictFiltering>
      <includes>
        <include>org.apache.uima:uima-ducc-user</include>
      </includes>      
      <outputFileNameMapping>${artifact.artifactId}-${project.version}.jar</outputFileNameMapping>
      <outputDirectory>lib/uima-ducc/user</outputDirectory>
      <useProjectArtifact>false</useProjectArtifact>
      <fileMode>644</fileMode> 
      <directoryMode>755</directoryMode>        
    </dependencySet>
    
   <!-- Google GSon -->   
    <dependencySet>
      <useStrictFiltering>true</useStrictFiltering>
      <includes>
        <include>com.google.code.gson:gson</include>
      </includes>      
      <outputDirectory>lib/google-gson</outputDirectory>
      <useProjectArtifact>false</useProjectArtifact>
      <fileMode>644</fileMode> 
      <directoryMode>755</directoryMode>        
    </dependencySet>

    <!-- HTTP Support for the broker is now in the UIMA-AS 2.6.0 package -->

    <!-- log4j is also in apache-uima/apache-activemq/lib/optional but that is not in all classpaths -->
    <dependencySet>
      <useStrictFiltering>true</useStrictFiltering>
      <includes>
        <include>log4j:log4j</include>
      </includes>      
      <outputDirectory>lib/apache-log4j</outputDirectory>
      <useProjectArtifact>false</useProjectArtifact>
      <fileMode>644</fileMode> 
      <directoryMode>755</directoryMode>        
    </dependencySet>


    <dependencySet>
      <useStrictFiltering>true</useStrictFiltering>
      <includes>
        <include>com.datastax.cassandra:cassandra-driver-core</include>
        <include>com.datastax.cassandra:cassandra-driver-dse</include>
        <include>com.datastax.cassandra:cassandra-driver-mapping</include>
        <include>io.netty:netty-buffer</include>
        <include>io.netty:netty-codec</include>
        <include>io.netty:netty-common</include>
        <include>io.netty:netty-handler</include>
        <include>io.netty:netty-transport</include>
        <include>com.codahale.metrics:metrics-core</include>
        <include>org.xerial.snappy:snappy-java</include>
        <include>net.jpountz.lz4:lz4</include>
        <include>org.hdrhistogram:HdrHistogram</include>
      </includes>      
      <outputDirectory>lib/cassandra</outputDirectory>
      <useProjectArtifact>false</useProjectArtifact>
      <fileMode>644</fileMode> 
      <directoryMode>755</directoryMode>        
    </dependencySet>

    <!-- Need the latest lz4 in the cassandra-server package-->
    <dependencySet>
      <useStrictFiltering>true</useStrictFiltering>
      <includes>
        <include>net.jpountz.lz4:lz4</include>
      </includes>      
      <outputDirectory>cassandra-server/lib</outputDirectory>
      <useProjectArtifact>false</useProjectArtifact>
      <fileMode>644</fileMode> 
      <directoryMode>755</directoryMode>        
    </dependencySet>

	<!-- xmlbeans is in UIMA-AS 2.6.0 package -->
    
    <dependencySet>
      <useStrictFiltering>true</useStrictFiltering>
      <includes>
        <include>com.google.guava:guava</include>
      </includes>      
      <outputDirectory>lib/guava</outputDirectory>
      <useProjectArtifact>false</useProjectArtifact>
      <fileMode>644</fileMode> 
      <directoryMode>755</directoryMode>        
    </dependencySet>

    <dependencySet>
      <useStrictFiltering>true</useStrictFiltering>
      <includes>
        <include>joda-time:joda-time</include>
      </includes>      
      <outputDirectory>lib/joda-time</outputDirectory>
      <useProjectArtifact>false</useProjectArtifact>
      <fileMode>644</fileMode> 
      <directoryMode>755</directoryMode>        
    </dependencySet>

	<!-- Only used by some daemons -->
    <!-- dependencySet>
      <useStrictFiltering>true</useStrictFiltering>
      <includes>
        <include>commons-codec:commons-codec</include>
        <include>org.apache.httpcomponents:httpcore</include>
        <include>org.apache.httpcomponents:httpclient</include>
      </includes>      
      <outputDirectory>lib/http-client</outputDirectory>
      <useProjectArtifact>false</useProjectArtifact>
      <fileMode>644</fileMode> 
      <directoryMode>755</directoryMode>        
    </dependencySet-->


	<!-- Combine the shared common jars -->
    <dependencySet>
      <useStrictFiltering>true</useStrictFiltering>
      <includes>
        <include>commons-cli:commons-cli</include>
        <include>commons-collections:commons-collections</include>
        <include>commons-lang:commons-lang</include>
        <!-- include>commons-pool:commons-pool</include-->
      </includes>      
      <outputDirectory>lib/apache-commons</outputDirectory>
      <useProjectArtifact>false</useProjectArtifact>
      <fileMode>644</fileMode> 
      <directoryMode>755</directoryMode>        
    </dependencySet>

	<!-- Not part of the UIMA-AS package, but are not used by DUCC?
    <dependencySet>
      <useStrictFiltering>true</useStrictFiltering>
      <includes>
        <include>org.apache.activemq:activemq-pool</include>
        <include>org.apache.activemq:activemq-jaas</include>
      </includes>      
      <outputDirectory>apache-uima/apache-activemq/lib</outputDirectory>
      <useTransitiveDependencies>false</useTransitiveDependencies>
      <useProjectArtifact>false</useProjectArtifact>
      <fileMode>644</fileMode> 
      <directoryMode>755</directoryMode>        
    </dependencySet>
	-->

    <dependencySet>
      <useStrictFiltering>true</useStrictFiltering>
      <includes>
        <include>org.apache.camel:camel-core</include>
        <include>org.apache.camel:camel-context</include>
        <include>org.apache.camel:camel-http</include>
        <include>org.apache.camel:camel-http-common</include>
        <include>org.apache.camel:camel-http4</include>
        <include>org.apache.camel:camel-jetty</include>
        <include>org.apache.camel:camel-jetty-common</include>
        <include>org.apache.camel:camel-jms</include>
        <include>org.apache.camel:camel-mina</include>
        <include>org.apache.camel:camel-spring</include>
        <include>org.apache.camel:camel-xmlbeans</include>
        <include>org.apache.camel:camel-xstream</include>
        <!--include>com.thoughtworks.xstream:xstream</include-->
        <include>org.apache.mina:mina-core</include>
        <!--include>xmlpull:xmlpull</include-->

        <include>org.apache.camel:camel-servlet</include>
        <include>org.apache.camel:camel-stream</include>
        <include>org.apache.camel:camel-test-spring</include>
        <include>org.apache.camel:camel-test</include>
		<!--  The last 4 do not appear to be used - no classes loaded from them -->

      </includes>      
      <outputDirectory>lib/apache-camel</outputDirectory>
      <useProjectArtifact>false</useProjectArtifact>
      <fileMode>644</fileMode> 
      <directoryMode>755</directoryMode>        
    </dependencySet>

	<!-- springframework and slf4j are now part of the UIMA-AS package -->

   </dependencySets>

  <!-- Add other files - scripts, documentation, examples -->
  <fileSets>

    <!-- UIMA-AS (includes UIMA SDK & ActiveMQ) -->
    <fileSet>
      <directory>target/uima-as/apache-uima-as-${org.apache.uima.as.version}</directory>
      <outputDirectory>apache-uima</outputDirectory>
      <!--fileMode>755</fileMode-->
      <directoryMode>755</directoryMode>        
    </fileSet>

	<!-- Put the DUCC broker configuration files in ACTIVEMQ -->
    <fileSet>
      <directory>src/main/config/</directory>
      <outputDirectory>apache-uima/apache-activemq/conf</outputDirectory>
      <includes>
        <include>activemq*</include>
      </includes>
      <fileMode>755</fileMode>
      <directoryMode>755</directoryMode>        
    </fileSet>
    
    <!--  For binary tarbal include LICENSE and NOTICE.  -->
    <fileSet>
      <directory>src/main/legal/</directory>
      <outputDirectory></outputDirectory>
      <includes>
        <include>LICENSE</include>
        <include>NOTICE</include>
      </includes>
      <fileMode>644</fileMode>
      <directoryMode>755</directoryMode>        
    </fileSet>
    
    <!--      JETTY  -->
    <fileSet>
      <directory>target/jetty/jetty-distribution-${jetty.version}/lib</directory>
      <outputDirectory>webserver/lib</outputDirectory>
      <fileMode>755</fileMode>
      <directoryMode>755</directoryMode>        
    </fileSet>

    <!--    CASSANDRA server -->
    <!-- The conf files are replaced with modified ones and a later version of lz4 is required -->
    <fileSet>
      <directory>target/cassandra/apache-cassandra-${cassandra.server.version}</directory>
      <outputDirectory>cassandra-server</outputDirectory>
      <excludes>
        <exclude>javadac/*</exclude>
        <exclude>conf/cassandra-env.sh</exclude>
        <exclude>conf/cassandra.yaml</exclude>
        <exclude>bin/cassandra</exclude>
        <exclude>lib/lz4*</exclude>
      </excludes>
      <fileMode>755</fileMode>
      <directoryMode>755</directoryMode>        
    </fileSet>

    <!-- Slightly modified Cassandra configuration files -->
    <fileSet>
      <directory>src/main/config</directory>
      <outputDirectory>cassandra-server/conf</outputDirectory>
      <includes>
        <include>cassandra-env.sh</include>
        <include>cassandra.yaml</include>
      </includes>
      <fileMode>755</fileMode>
      <directoryMode>755</directoryMode>        
    </fileSet>

    <!-- Log full Java command -->
    <fileSet>
      <directory>src/main/config</directory>
      <outputDirectory>cassandra-server/bin</outputDirectory>
      <includes>
        <include>cassandra</include>
      </includes>
      <fileMode>755</fileMode>
      <directoryMode>755</directoryMode>        
    </fileSet>

    <!--    Unversioned CLI jar -->
    <fileSet>
      <directory>uima-ducc-cli/target</directory>
      <outputDirectory>lib</outputDirectory>
      <fileMode>644</fileMode>
      <directoryMode>755</directoryMode>        
      <includes>
        <include>uima-ducc-cli.jar</include>
      </includes>
    </fileSet>
    
    
    <fileSet>
      <directory>src/main/resources</directory>
      <outputDirectory>resources</outputDirectory>
      <fileMode>644</fileMode>
      <directoryMode>755</directoryMode>
      <excludes>
		<exclude>private/*</exclude>
		<exclude>private</exclude>
	  </excludes>
    </fileSet>

    <fileSet>
      <directory>src/main/resources/private</directory>
      <outputDirectory>resources.private</outputDirectory>
      <fileMode>600</fileMode>
      <directoryMode>700</directoryMode>
      <includes />
    </fileSet>

    <fileSet>
      <directory></directory>
      <outputDirectory></outputDirectory>
      <includes>
        <include>issuesFixed/*</include>
        <include>README</include>
        <include>RELEASE_NOTES.html</include>
        <!-- Temporarily disable the include below for 1.1.0-Ducc release -->
        <!-- JIRAs bug prevents more than 100 jiras in the report produced -->
        <!-- by maven changes plugin. Workaround is to generate report     -->
        <!-- manually and add it to the svn                                -->
        <!-- include>issuesFixed/**</include -->
      </includes>
      <!-- The NOTICE and LICENSE for binary distro will be copied from src/main/legal  -->
      <excludes>
         <exclude>NOTICE</exclude>
         <exclude>LICENSE</exclude>
      </excludes>
      <fileMode>644</fileMode>
      <directoryMode>755</directoryMode>
     
    </fileSet>

    <!--fileSet>
      <directory>issuesFixed</directory>
      <outputDirectory>issuesFixed</outputDirectory>
      <fileMode>644</fileMode>
      <directoryMode>755</directoryMode>
    </fileSet-->


    <fileSet>
      <directory>src/main/admin</directory>
      <outputDirectory>admin</outputDirectory>
      <fileMode>750</fileMode>
      <directoryMode>750</directoryMode>
      <!--  exclude DuccHello.java. It will be copied separately
            and given different permissions. Look below at <files>...</files>
       -->      
    </fileSet>

    <fileSet>
      <directory>src/main/scripts</directory>
      <outputDirectory>bin</outputDirectory>
      <fileMode>755</fileMode>
      <directoryMode>755</directoryMode>
      <includes />
    </fileSet>

    <fileSet>
      <directory>uima-ducc-spawn/src</directory>
      <outputDirectory>duccling/src</outputDirectory>
      <fileMode>750</fileMode>
      <directoryMode>755</directoryMode>
      <includes />
      <excludes />
    </fileSet>

    <fileSet>
      <directory>uima-ducc-spawn</directory>
      <outputDirectory>duccling</outputDirectory>
      <fileMode>644</fileMode>
      <directoryMode>755</directoryMode>
      <includes>
        <include>README*</include>
      </includes>
      <excludes />
    </fileSet>

    <fileSet>
      <directory>uima-ducc-web/src/main/webapp/etc</directory>
      <outputDirectory>webserver/etc</outputDirectory>
      <fileMode>644</fileMode>
      <directoryMode>755</directoryMode>        
    </fileSet>

    <fileSet>
      <directory>uima-ducc-web/src/main/webapp/root</directory>
      <outputDirectory>webserver/root</outputDirectory>
      <excludes>
         <exclude>opensources/DataTables-${datatables.version}/media/original/**</exclude>
         <exclude>opensources/DataTables-${datatables.version}/media/images/sort*</exclude>
         <exclude>opensources/DataTables-${datatables.version}media/images/*.psd</exclude>
         <exclude>opensources/**/*.txt</exclude>
      </excludes>
      <fileMode>644</fileMode>
      <directoryMode>755</directoryMode>        
    </fileSet>
   
    <fileSet>
      <directory>uima-ducc-web/src/main/webapp/root/opensources/DataTables-${datatables.version}/media/images/</directory>
      <outputDirectory>webserver/root/opensources/DataTables-${datatables.version}/media/images/sort</outputDirectory>
      <includes>
        <include>sort*</include>
      </includes>
      <fileMode>644</fileMode>
      <directoryMode>755</directoryMode>        
    </fileSet>
    
    <fileSet>
      <!--  build up the sample code resources  -->
      <directory>uima-ducc-examples/src/main/resources/org/apache/uima/ducc/sampleapps</directory>
      <outputDirectory>examples/sampleapps/descriptors</outputDirectory>
      <fileMode>644</fileMode>
      <directoryMode>755</directoryMode>             
    </fileSet>
    
    <fileSet>
      <!--  Set up sample pinger registrations   -->
      <directory>uima-ducc-examples/src/main/resources/ping</directory>
      <outputDirectory>examples/ping</outputDirectory>
      <fileMode>644</fileMode>
      <directoryMode>755</directoryMode>              
    </fileSet>



    <fileSet>
      <!-- build up the verification test jobs -->
      <directory>uima-ducc-examples/src/main/resources/sleepjobs</directory>
      <outputDirectory>examples/simple</outputDirectory>
      <fileMode>644</fileMode>
      <directoryMode>755</directoryMode>        
      <includes>
        <include>1.dd.job</include>
        <include>1.job</include>
        <include>1.inputs</include>
      </includes>
    </fileSet>

    <fileSet>
      <!-- build up the verification scripting -->
      <directory>uima-ducc-examples/src/main/scripts</directory>
      <outputDirectory>examples/systemtest</outputDirectory>
      <fileMode>755</fileMode>
      <directoryMode>755</directoryMode>        
    </fileSet>

    <fileSet>
      <!-- build up the verification test jobs -->
      <directory>uima-ducc-examples/src/main/resources/org/apache/uima/ducc/test</directory>
      <outputDirectory>examples/simple/resources</outputDirectory>
      <fileMode>644</fileMode>
      <directoryMode>755</directoryMode>        
      <includes>
        <include>**/*.xml</include>
      </includes>
    </fileSet>

    <fileSet>
      <!-- build up the verification test source -->
      <directory>uima-ducc-examples/src/main/java</directory>
      <outputDirectory>examples/src</outputDirectory>
      <fileMode>644</fileMode>
      <directoryMode>755</directoryMode>        
    </fileSet>

    <fileSet>
      <!-- build up the verification test source -->
      <directory>uima-ducc-examples/src/main/systemtest</directory>
      <outputDirectory>examples/systemtest</outputDirectory>
      <fileMode>644</fileMode>
      <directoryMode>755</directoryMode>        
    </fileSet>

    <fileSet>
      <!-- build up the uima-ducc-vm ("live" demo) directory -->
      <directory>uima-ducc-examples/src/main/uima-ducc-vm</directory>
      <outputDirectory>examples/uima-ducc-vm</outputDirectory>
      <fileMode>755</fileMode>
      <directoryMode>755</directoryMode>        
    </fileSet>

    <fileSet>
      <!-- build up the webserver directory -->
      <directory>uima-ducc-duccdocs/target/site/duccbook-html</directory>
      <outputDirectory>webserver/root/doc</outputDirectory>
      <fileMode>644</fileMode>
      <directoryMode>755</directoryMode>        
      <includes>
        <include>*.css</include>
        <include>*.html</include>
      </includes>
    </fileSet>

  <fileSet>
      <!-- build up the webserver directory -->
      <directory>uima-ducc-duccdocs/target/site/duccbook-html/images</directory>
      <outputDirectory>webserver/root/doc/images</outputDirectory>
      <fileMode>644</fileMode>
      <directoryMode>755</directoryMode>        
      <includes>
        <include>*.jpg</include>
        <include>*.png</include>
      </includes>
    </fileSet>


  <fileSet>
      <!-- build up the webserver directory -->
      <directory>uima-ducc-duccdocs/src/site/tex/duccbook/images/ducc-webserver</directory>
      <outputDirectory>webserver/root/doc/images/ducc-webserver</outputDirectory>
      <fileMode>644</fileMode>
      <directoryMode>755</directoryMode>        
      <includes>
        <include>*.jpg</include>
        <include>*.png</include>
      </includes>
    </fileSet>
  
  <fileSet>
      <!-- add javadocs to the webserver directory -->
      <directory>target/site/apidocs</directory>
      <outputDirectory>webserver/root/doc/api</outputDirectory>
      <fileMode>644</fileMode>
      <directoryMode>755</directoryMode>        
    </fileSet>
    
    
    <fileSet>
      <directory>uima-ducc-duccdocs/target/site/duccbook-pdf</directory>
      <outputDirectory>docs/d</outputDirectory>
      <includes>
        <include>*.pdf</include>
      </includes>
      <fileMode>644</fileMode>
      <directoryMode>755</directoryMode>        
    </fileSet>
    
    <fileSet>
      <directory>uima-ducc-duccdocs/target/site/duccbook-html</directory>
      <outputDirectory>docs/d</outputDirectory>
      <fileMode>644</fileMode>
      <directoryMode>755</directoryMode>        
    </fileSet>

    <fileSet>
      <directory>target/site/apidocs</directory>
      <outputDirectory>docs/d/api</outputDirectory>
      <fileMode>644</fileMode>
      <directoryMode>755</directoryMode>        
    </fileSet>

    <fileSet>
      <directory>uima-ducc-duccdocs/target/site/duccbook-install</directory>
      <outputDirectory></outputDirectory>
      <fileMode>644</fileMode>
      <directoryMode>755</directoryMode>        
    </fileSet>
  </fileSets>
  
  <files>
  
    
      <file>
      <source>src/main/cglib/com.springsource.net.sf.cglib-${cglib.version}.jar</source>
      <outputDirectory>lib/springframework</outputDirectory>
      <destName>com.springsource.net.sf.cglib-${cglib.version}.jar</destName>
      <fileMode>644</fileMode>
    </file>
    
    <file>
      <source>uima-ducc-common/src/main/java/org/apache/uima/ducc/common/internationalization/Messages.properties</source>
      <outputDirectory>resources</outputDirectory>
      <destName>Messages.properties</destName>
      <fileMode>644</fileMode>
    </file>
    
   </files>
</assembly>
