<?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 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>distribution</id>
  <formats>
    <format>zip</format>
    <format>tar.gz</format>
    <!--<format>tar.bz2</format>-->
  </formats>

  <dependencySets>
    
    <!-- All dependencies. -->
    <dependencySet>
      <useProjectArtifact>false</useProjectArtifact>
      <outputDirectory>lib</outputDirectory>
      <unpack>false</unpack>
      <includes>
        <include>*:*:jar</include>
      </includes>
      <excludes>
        <exclude>org.apache.jena:jena-*:*:sources</exclude>
        <exclude>org.apache.jena:jena-*:*:javadoc</exclude>
      </excludes>
      <fileMode>0644</fileMode>
      <directoryMode>0755</directoryMode>
    </dependencySet>

    <dependencySet>
      <useProjectArtifact>false</useProjectArtifact>
      <outputDirectory>lib-src</outputDirectory>
      <unpack>false</unpack>
      <includes>
        <include>org.apache.jena:jena-*:*:sources</include>
      </includes>
      <fileMode>0644</fileMode>
      <directoryMode>0755</directoryMode>
    </dependencySet>

    <!-- All the javadoc is quite large yet one use of the binary download
         is for people with limited or unreliable connectivity.
         **javadoc**
    <dependencySet>
      <useProjectArtifact>false</useProjectArtifact>
      <outputDirectory>javadoc-core</outputDirectory>
      <unpack>true</unpack>
      <includes>
        <include>org.apache.jena:jena-core:*:javadoc</include>
      </includes>
      <fileMode>0644</fileMode>
      <directoryMode>0755</directoryMode>
    </dependencySet>

    <dependencySet>
      <useProjectArtifact>false</useProjectArtifact>
      <outputDirectory>javadoc-arq</outputDirectory>
      <unpack>true</unpack>
      <includes>
        <include>org.apache.jena:jena-arq:*:javadoc</include>
      </includes>
      <fileMode>0644</fileMode>
      <directoryMode>0755</directoryMode>
    </dependencySet>

    <dependencySet>
      <useProjectArtifact>false</useProjectArtifact>
      <outputDirectory>javadoc-tdb</outputDirectory>
      <unpack>true</unpack>
      <includes>
        <include>org.apache.jena:jena-tdb:*:javadoc</include>
      </includes>
      <fileMode>0644</fileMode>
      <directoryMode>0755</directoryMode>
    </dependencySet>
    **javadoc** -->

  </dependencySets>

  <fileSets>

    <fileSet>
      <outputDirectory>/</outputDirectory>
      <includes>
        <include>NOTICE</include>
        <include>LICENSE</include>
        <include>README</include>
      </includes>
      <fileMode>0644</fileMode>
    </fileSet>

    <fileSet>
      <outputDirectory>/</outputDirectory>
      <includes>
        <include>bin/*</include>
      </includes>
      <lineEnding>unix</lineEnding>
      <fileMode>0755</fileMode>
    </fileSet>

    <fileSet>
      <outputDirectory>/</outputDirectory>
      <includes>
        <include>jena-log4j.properties</include>
      </includes> 
      <fileMode>0644</fileMode>
    </fileSet>
    
    <fileSet>
      <outputDirectory>/</outputDirectory>
      <includes>
        <include>bat/*</include>
      </includes>
      <lineEnding>dos</lineEnding>
      <fileMode>0755</fileMode>
    </fileSet>

    <!-- Examples : needs tidying up -->
    <fileSet>
      <outputDirectory>src-examples/jena-examples</outputDirectory>
      <directory>../jena-examples</directory>
      <includes>
        <include>**</include>
      </includes>
      <excludes>
        <exclude>**/target/**</exclude>
      </excludes>
      <fileMode>0644</fileMode>
      <directoryMode>0755</directoryMode>
      <filtered>false</filtered>
    </fileSet>

    <fileSet>
      <outputDirectory>src-examples</outputDirectory>
      <directory>../jena-core/src-examples</directory>
      <includes>
        <include>**</include>
      </includes>
      <fileMode>0644</fileMode>
      <directoryMode>0755</directoryMode>
      <filtered>false</filtered>
    </fileSet>

    <fileSet>
      <outputDirectory>src-examples</outputDirectory>
      <directory>../jena-arq/src-examples</directory>
      <includes>
        <include>**</include>
      </includes>
      <fileMode>0644</fileMode>
      <directoryMode>0755</directoryMode>
      <filtered>false</filtered>
    </fileSet>

    <fileSet>
      <outputDirectory>src-examples</outputDirectory>
      <directory>../jena-tdb/src-examples</directory>
      <includes>
        <include>**</include>
      </includes>
      <fileMode>0644</fileMode>
      <directoryMode>0755</directoryMode>
      <filtered>false</filtered>
    </fileSet>

  </fileSets>

</assembly>
