<!--
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>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>src/main/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>
