<?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></id> <!-- intentionally left blank -> http://jira.codehaus.org/browse/MASSEMBLY-301 -->
    <formats>
        <format>zip</format>
    </formats>
    <fileSets>


      <!-- Copy license and other files from root -->
      <fileSet>
          <directory>..</directory>
          <outputDirectory>/</outputDirectory>
          <includes>
              <include>README.txt</include>
              <include>RELEASE*.txt</include>
          </includes>
          <lineEnding>dos</lineEnding>
      </fileSet>

      <!-- Copy over everything that needs to get dos line endings -->
      <fileSet>
          <directory>src/main/distribution/text</directory>
          <outputDirectory>/</outputDirectory>
          <lineEnding>dos</lineEnding>
      </fileSet>        
      <fileSet>
          <directory>src/main/distribution/windows-text</directory>
          <outputDirectory>/</outputDirectory>
          <lineEnding>dos</lineEnding>
      </fileSet>        
      <fileSet>
          <directory>target/classes/etc</directory>
          <outputDirectory>/etc/</outputDirectory>
          <lineEnding>dos</lineEnding>
      </fileSet>

        <!-- Copy over the examples -->
        <fileSet>
            <directory>../demos</directory>
            <outputDirectory>/demos/</outputDirectory>
            <lineEnding>dos</lineEnding>
            <excludes>
                <exclude>**/target/**</exclude>
            </excludes>
        </fileSet>

      <!-- Copy over files that should not get the line endings converted -->
      <fileSet>
          <directory>src/main/distribution/binary</directory>
          <outputDirectory>/</outputDirectory>
      </fileSet>

      <!-- Copy over the files that should not get the line endings converted but need to be chmod to 755 -->
      <fileSet>
          <directory>src/main/distribution/windows-binary</directory>
          <outputDirectory>/</outputDirectory>
      </fileSet>
      
      <!-- Copy over jar files -->
      <fileSet>
          <directory>target/dependencies</directory>
          <outputDirectory>/lib/</outputDirectory>
      </fileSet>

    </fileSets>

    <files>
        <file>
            <source>${basedir}/target/maven-shared-archive-resources/META-INF/LICENSE</source>
            <outputDirectory>/</outputDirectory>
            <destName>LICENSE.txt</destName>
            <fileMode>0644</fileMode>
            <lineEnding>dos</lineEnding>
        </file>
        <file>
            <source>${basedir}/target/maven-shared-archive-resources/META-INF/NOTICE</source>
            <outputDirectory>/</outputDirectory>
            <destName>NOTICE.txt</destName>
            <fileMode>0644</fileMode>
            <lineEnding>dos</lineEnding>
        </file>
        <file>
            <source>${basedir}/target/classes/features.xml</source>
            <outputDirectory>/system/org/apache/felix/karaf/apache-felix-karaf/${version}</outputDirectory>
            <destName>apache-felix-karaf-${version}-features.xml</destName>
            <fileMode>0644</fileMode>
            <lineEnding>dos</lineEnding>
        </file>
    </files>

    <dependencySets>

        <dependencySet>
            <outputDirectory>/system</outputDirectory>
            <unpack>false</unpack>
            <useProjectArtifact>false</useProjectArtifact>
            <outputFileNameMapping>org/apache/felix/${artifact.artifactId}/${artifact.baseVersion}/${artifact.artifactId}-${artifact.baseVersion}${dashClassifier?}.${artifact.extension}</outputFileNameMapping>
            <includes>
                <include>org.apache.felix:org.osgi.compendium</include>
                <include>org.apache.felix:org.apache.felix.configadmin</include>
                <include>org.apache.felix:org.apache.felix.prefs</include>
                <include>org.apache.felix:org.apache.felix.framework</include>
            </includes>
        </dependencySet>
        <dependencySet>
            <outputDirectory>/system</outputDirectory>
            <unpack>false</unpack>
            <useProjectArtifact>false</useProjectArtifact>
            <outputFileNameMapping>org/ops4j/pax/logging/${artifact.artifactId}/${artifact.baseVersion}/${artifact.artifactId}-${artifact.baseVersion}${dashClassifier?}.${artifact.extension}</outputFileNameMapping>
            <includes>
                <include>org.ops4j.pax.logging:pax-logging-api</include>
                <include>org.ops4j.pax.logging:pax-logging-service</include>
            </includes>
        </dependencySet>
        <dependencySet>
            <outputDirectory>/system</outputDirectory>
            <unpack>false</unpack>
            <useProjectArtifact>false</useProjectArtifact>
            <outputFileNameMapping>org/ops4j/pax/url/${artifact.artifactId}/${artifact.baseVersion}/${artifact.artifactId}-${artifact.baseVersion}${dashClassifier?}.${artifact.extension}</outputFileNameMapping>
            <includes>
                <include>org.ops4j.pax.url:pax-url-mvn</include>
                <include>org.ops4j.pax.url:pax-url-wrap</include>
            </includes>
        </dependencySet>
        <!--
        <dependencySet>
            <outputDirectory>/system</outputDirectory>
            <unpack>false</unpack>
            <useProjectArtifact>false</useProjectArtifact>
            <outputFileNameMapping>org/springframework/${artifact.artifactId}/${artifact.baseVersion}/${artifact.artifactId}-${artifact.baseVersion}${dashClassifier?}.${artifact.extension}</outputFileNameMapping>
            <includes>
                <include>org.springframework:spring-aop</include>
                <include>org.springframework:spring-beans</include>
                <include>org.springframework:spring-context</include>
                <include>org.springframework:spring-core</include>
            </includes>
        </dependencySet>
        <dependencySet>
            <outputDirectory>/system</outputDirectory>
            <unpack>false</unpack>
            <useProjectArtifact>false</useProjectArtifact>
            <outputFileNameMapping>org/springframework/osgi/${artifact.artifactId}/${artifact.baseVersion}/${artifact.artifactId}-${artifact.baseVersion}${dashClassifier?}.${artifact.extension}</outputFileNameMapping>
            <includes>
                <include>org.springframework.osgi:spring-osgi-core</include>
                <include>org.springframework.osgi:spring-osgi-extender</include>
                <include>org.springframework.osgi:spring-osgi-io</include>
            </includes>
        </dependencySet>
        -->
        <dependencySet>
            <outputDirectory>/system</outputDirectory>
            <unpack>false</unpack>
            <useProjectArtifact>false</useProjectArtifact>
            <outputFileNameMapping>org/apache/geronimo/specs/${artifact.artifactId}/${artifact.baseVersion}/${artifact.artifactId}-${artifact.baseVersion}${dashClassifier?}.${artifact.extension}</outputFileNameMapping>
            <includes>
                <include>org.apache.geronimo.specs:geronimo-servlet_2.5_spec</include>
                <!--
                <include>org.apache.geronimo.specs:geronimo-annotation_1.0_spec</include>
                -->
            </includes>
        </dependencySet>
        <dependencySet>
            <outputDirectory>/system</outputDirectory>
            <unpack>false</unpack>
            <useProjectArtifact>false</useProjectArtifact>
            <outputFileNameMapping>org/apache/servicemix/bundles/${artifact.artifactId}/${artifact.baseVersion}/${artifact.artifactId}-${artifact.baseVersion}${dashClassifier?}.${artifact.extension}</outputFileNameMapping>
            <includes>
                <!--
                <include>org.apache.servicemix.bundles:org.apache.servicemix.bundles.aopalliance</include>
                <include>org.apache.servicemix.bundles:org.apache.servicemix.bundles.cglib</include>
                -->
                <include>org.apache.servicemix.bundles:org.apache.servicemix.bundles.jaxp-ri</include>
                <include>org.apache.servicemix.bundles:org.apache.servicemix.bundles.oro</include>
                <include>org.apache.servicemix.bundles:org.apache.servicemix.bundles.commons-jexl</include>
                <include>org.apache.servicemix.bundles:org.apache.servicemix.bundles.commons-vfs</include>
                <include>org.apache.servicemix.bundles:org.apache.servicemix.bundles.commons-codec</include>
                <include>org.apache.servicemix.bundles:org.apache.servicemix.bundles.commons-httpclient</include>
                <include>org.apache.servicemix.bundles:org.apache.servicemix.bundles.jline</include>
            </includes>
        </dependencySet>
        <dependencySet>
            <outputDirectory>/system</outputDirectory>
            <unpack>false</unpack>
            <useProjectArtifact>false</useProjectArtifact>
            <outputFileNameMapping>org/apache/servicemix/specs/${artifact.artifactId}/${artifact.baseVersion}/${artifact.artifactId}-${artifact.baseVersion}${dashClassifier?}.${artifact.extension}</outputFileNameMapping>
            <includes>
                <include>org.apache.servicemix.specs:org.apache.servicemix.specs.jaxp-api-1.4</include>
            </includes>
        </dependencySet>
        <dependencySet>
            <outputDirectory>/system</outputDirectory>
            <unpack>false</unpack>
            <useProjectArtifact>false</useProjectArtifact>
            <outputFileNameMapping>org/apache/felix/karaf/${artifact.artifactId}/${artifact.baseVersion}/${artifact.artifactId}-${artifact.baseVersion}${dashClassifier?}.${artifact.extension}</outputFileNameMapping>
            <includes>
                <include>org.apache.felix.karaf:org.apache.felix.karaf.management</include>
            </includes>
        </dependencySet>
        <dependencySet>
            <outputDirectory>/system</outputDirectory>
            <unpack>false</unpack>
            <useProjectArtifact>false</useProjectArtifact>
            <outputFileNameMapping>org/apache/felix/karaf/deployer/${artifact.artifactId}/${artifact.baseVersion}/${artifact.artifactId}-${artifact.baseVersion}${dashClassifier?}.${artifact.extension}</outputFileNameMapping>
            <includes>
                <include>org.apache.felix.karaf.deployer:org.apache.felix.karaf.deployer.filemonitor</include>
                <include>org.apache.felix.karaf.deployer:org.apache.felix.karaf.deployer.spring</include>
                <include>org.apache.felix.karaf.deployer:org.apache.felix.karaf.deployer.blueprint</include>
                <include>org.apache.felix.karaf.deployer:org.apache.felix.karaf.deployer.features</include>
            </includes>
        </dependencySet>
        <dependencySet>
            <outputDirectory>/system</outputDirectory>
            <unpack>false</unpack>
            <useProjectArtifact>false</useProjectArtifact>
            <outputFileNameMapping>org/apache/felix/karaf/gshell/${artifact.artifactId}/${artifact.baseVersion}/${artifact.artifactId}-${artifact.baseVersion}${dashClassifier?}.${artifact.extension}</outputFileNameMapping>
            <includes>
                <include>org.apache.felix.karaf.gshell:org.apache.felix.karaf.gshell.core</include>
                <include>org.apache.felix.karaf.gshell:org.apache.felix.karaf.gshell.run</include>
                <include>org.apache.felix.karaf.gshell:org.apache.felix.karaf.gshell.admin</include>
                <include>org.apache.felix.karaf.gshell:org.apache.felix.karaf.gshell.osgi</include>
                <include>org.apache.felix.karaf.gshell:org.apache.felix.karaf.gshell.log</include>
                <include>org.apache.felix.karaf.gshell:org.apache.felix.karaf.gshell.features</include>
                <include>org.apache.felix.karaf.gshell:org.apache.felix.karaf.gshell.config</include>
                <include>org.apache.felix.karaf.gshell:org.apache.felix.karaf.gshell.packages</include>
            </includes>
        </dependencySet>
        <dependencySet>
            <outputDirectory>/system</outputDirectory>
            <unpack>false</unpack>
            <useProjectArtifact>false</useProjectArtifact>
            <outputFileNameMapping>org/apache/felix/karaf/jaas/${artifact.artifactId}/${artifact.baseVersion}/${artifact.artifactId}-${artifact.baseVersion}${dashClassifier?}.${artifact.extension}</outputFileNameMapping>
            <includes>
                <include>org.apache.felix.karaf.jaas:org.apache.felix.karaf.jaas.config</include>
                <include>org.apache.felix.karaf.jaas:org.apache.felix.karaf.jaas.modules</include>
            </includes>
        </dependencySet>
        <dependencySet>
            <outputDirectory>/system</outputDirectory>
            <unpack>false</unpack>
            <useProjectArtifact>false</useProjectArtifact>
            <outputFileNameMapping>org/apache/sshd/${artifact.artifactId}/${artifact.baseVersion}/${artifact.artifactId}-${artifact.baseVersion}${dashClassifier?}.${artifact.extension}</outputFileNameMapping>
            <includes>
                <include>org.apache.sshd:sshd-core</include>
            </includes>
        </dependencySet>
        <dependencySet>
            <outputDirectory>/system</outputDirectory>
            <unpack>false</unpack>
            <useProjectArtifact>false</useProjectArtifact>
            <outputFileNameMapping>org/apache/mina/${artifact.artifactId}/${artifact.baseVersion}/${artifact.artifactId}-${artifact.baseVersion}${dashClassifier?}.${artifact.extension}</outputFileNameMapping>
            <includes>
                <include>org.apache.mina:mina-core</include>
            </includes>
        </dependencySet>
        <dependencySet>
            <outputDirectory>/system</outputDirectory>
            <unpack>false</unpack>
            <useProjectArtifact>false</useProjectArtifact>
            <outputFileNameMapping>org/osgi/${artifact.artifactId}/${artifact.baseVersion}/${artifact.artifactId}-${artifact.baseVersion}${dashClassifier?}.${artifact.extension}</outputFileNameMapping>
            <includes>
                <include>org.osgi:jmx</include>
            </includes>
        </dependencySet>
        <dependencySet>
            <outputDirectory>/system</outputDirectory>
            <unpack>false</unpack>
            <useProjectArtifact>false</useProjectArtifact>
            <outputFileNameMapping>com/oracle/osgi/${artifact.artifactId}/${artifact.baseVersion}/${artifact.artifactId}-${artifact.baseVersion}${dashClassifier?}.${artifact.extension}</outputFileNameMapping>
            <includes>
                <include>com.oracle.osgi:jmx-impl</include>
            </includes>
        </dependencySet>
        <dependencySet>
            <outputDirectory>/system</outputDirectory>
            <unpack>false</unpack>
            <useProjectArtifact>false</useProjectArtifact>
            <outputFileNameMapping>org/eclipse/${artifact.artifactId}/${artifact.baseVersion}/${artifact.artifactId}-${artifact.baseVersion}${dashClassifier?}.${artifact.extension}</outputFileNameMapping>
            <includes>
                <include>org.eclipse:osgi</include>
            </includes>
        </dependencySet>
        <dependencySet>
            <outputDirectory>/system</outputDirectory>
            <unpack>false</unpack>
            <useProjectArtifact>false</useProjectArtifact>
            <outputFileNameMapping>org/apache/geronimo/${artifact.artifactId}/${artifact.baseVersion}/${artifact.artifactId}-${artifact.baseVersion}${dashClassifier?}.${artifact.extension}</outputFileNameMapping>
            <includes>
                <include>org.apache.geronimo:blueprint-bundle</include>
            </includes>
        </dependencySet>

    </dependencySets>

</assembly>
