<?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>

      <!-- Expanded ServiceMix Runtime -->
      <fileSet>
          <directory>target/dependencies/win/apache-karaf-${karaf.version}</directory>
          <outputDirectory>/</outputDirectory>
          <excludes>
             <exclude>**/demos/**</exclude>
             <exclude>etc/system.properties</exclude>
             <exclude>etc/org.apache.karaf.features.cfg</exclude>
             <exclude>etc/org.ops4j.pax.logging.cfg</exclude>
             <exclude>etc/users.properties</exclude>
             <exclude>etc/custom.properties</exclude>
             <exclude>etc/jre.properties</exclude>
             <!-- SMX4-764 - Override the Felix Framework version -->
             <!-- begin snippet -->
             <exclude>system/org/apache/felix/org.apache.felix.framework/**</exclude>
             <!-- end snippet -->
             <exclude>LICENSE</exclude>
             <exclude>NOTICE</exclude>
             <exclude>README</exclude>
             <exclude>RELEASE-NOTES</exclude>
             <exclude>karaf-manual*</exclude>
          </excludes>
      </fileSet>

      <!-- Copy over kernel demo to examples folder -->
      <fileSet>
          <directory>target/dependencies/win/apache-karaf-${karaf.version}/demos</directory>
          <outputDirectory>/examples/karaf-demos</outputDirectory>
          <lineEnding>dos</lineEnding>
          <includes>
            <include>pom.xml</include>
            <include>**/web/**</include>
          </includes>
      </fileSet>
      
      <!-- Copy over ant files -->
       <fileSet>
            <directory>target/dependencies/win/apache-servicemix-nmr-${servicemix.nmr.version}/ant</directory>
            <outputDirectory>/ant</outputDirectory>
            <lineEnding>dos</lineEnding>
       </fileSet>

      <!-- Copy over nmr examples files -->
      <fileSet>
           <directory>target/dependencies/win/apache-servicemix-nmr-${servicemix.nmr.version}/examples</directory>
           <outputDirectory>/examples/</outputDirectory>
           <excludes>
               <exclude>pom.xml</exclude>
               <exclude>**/itests/**</exclude>
               <exclude>**/target/**</exclude>
               <exclude>**/.classpath</exclude>
               <exclude>**/.project</exclude>
               <exclude>**/.settings/**</exclude>
           </excludes>
           <lineEnding>dos</lineEnding>
      </fileSet>

      <!-- Copy license and other files from root -->
      <fileSet>
          <directory>${basedir}/..</directory>
          <outputDirectory>/</outputDirectory>
          <includes>
              <include>README</include>
              <include>RELEASE*</include>
          </includes>
          <lineEnding>dos</lineEnding>
          <fileMode>0644</fileMode>
      </fileSet>

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

      <!-- Copy over jar files -->
      <fileSet>
          <directory>target/dependencies</directory>
          <includes>
              <include>servicemix-version.jar</include>
          </includes>
          <outputDirectory>/lib/</outputDirectory>
      </fileSet>

      <!-- Copy over the examples -->
      <fileSet>
          <directory>${basedir}/../examples</directory>
          <outputDirectory>/examples/</outputDirectory>
          <lineEnding>dos</lineEnding>
          <excludes>
              <exclude>pom.xml</exclude>
              <!--we need add filtered README.txt, so exclude the raw one here-->
              <exclude>**/README.txt</exclude>
              <exclude>**/itests/**</exclude>
              <exclude>**/target/**</exclude>
              <exclude>**/.classpath</exclude>
              <exclude>**/.project</exclude>
              <exclude>**/.settings/**</exclude>
              <exclude>**/wsdl-first/**</exclude>
              <exclude>**/loan-broker-bpel/**</exclude>
              <exclude>**/web/**</exclude>
          </excludes>
      </fileSet>

      <fileSet>
        <directory>target/features-repo</directory>
        <outputDirectory>system</outputDirectory>
      </fileSet>
      
    </fileSets>

    <files>
        <file>
            <source>${basedir}/target/dependencies/win/apache-karaf-${karaf.version}/bin/karaf.bat</source>
            <outputDirectory>/bin/</outputDirectory>
            <destName>servicemix.bat</destName>
            <fileMode>0755</fileMode>
            <lineEnding>dos</lineEnding>
        </file>
        <file>
            <source>${basedir}/target/dependencies/servicemix-version.jar</source>
            <outputDirectory>/lib/</outputDirectory>
            <fileMode>0644</fileMode>
        </file>
        <file>
            <source>${basedir}/target/classes/features.xml</source>
            <outputDirectory>system/org/apache/servicemix/${artifactId}/${version}</outputDirectory>
            <destName>${artifactId}-${version}-features.xml</destName>
            <fileMode>0644</fileMode>
            <lineEnding>dos</lineEnding>
        </file>
        <file>
            <source>${basedir}/target/classes/activemq-features.xml</source>
            <outputDirectory>system/org/apache/activemq/activemq-karaf/${activemq.version}</outputDirectory>
            <destName>activemq-karaf-${activemq.version}-features.xml</destName>
            <fileMode>0644</fileMode>
            <lineEnding>dos</lineEnding>
        </file>
        <file>
            <source>${basedir}/target/classes/camel-features.xml</source>
            <outputDirectory>system/org/apache/camel/karaf/apache-camel/${camel.version}</outputDirectory>
            <destName>apache-camel-${camel.version}-features.xml</destName>
            <fileMode>0644</fileMode>
            <lineEnding>dos</lineEnding>
        </file>

        <file>
            <source>${basedir}/target/maven-shared-archive-resources/META-INF/LICENSE</source>
            <outputDirectory>/</outputDirectory>
            <destName>LICENSE</destName>
            <fileMode>0644</fileMode>
            <lineEnding>dos</lineEnding>
        </file>
        <file>
            <source>${basedir}/target/maven-shared-archive-resources/META-INF/NOTICE</source>
            <outputDirectory>/</outputDirectory>
            <destName>NOTICE</destName>
            <fileMode>0644</fileMode>
            <lineEnding>dos</lineEnding>
        </file>
        
        <!--filtering README.txt-->
        <file>
            <source>${basedir}/../examples/README.txt</source>
            <outputDirectory>/examples/</outputDirectory>
            <filtered>true</filtered>
            <fileMode>0644</fileMode>
            <lineEnding>dos</lineEnding>
        </file>

        <file>
              <source>${basedir}/../examples/bridge/README.txt</source>
              <outputDirectory>/examples/bridge</outputDirectory>
              <filtered>true</filtered>
              <fileMode>0644</fileMode>
              <lineEnding>dos</lineEnding>
        </file>
        <file>
              <source>${basedir}/../examples/cxf-ws-addressing/README.txt</source>
              <outputDirectory>/examples/cxf-ws-addressing</outputDirectory>
              <filtered>true</filtered>
              <fileMode>0644</fileMode>
              <lineEnding>dos</lineEnding>
        </file>
        <file>
              <source>${basedir}/../examples/cxf-jaxrs/README.txt</source>
              <outputDirectory>/examples/cxf-jaxrs</outputDirectory>
              <filtered>true</filtered>
              <fileMode>0644</fileMode>
              <lineEnding>dos</lineEnding>
        </file>
        <file>
            <source>${basedir}/../examples/cxf-wsdl-first-osgi-package/README.txt</source>
            <outputDirectory>/examples/cxf-wsdl-first-osgi-package</outputDirectory>
            <filtered>true</filtered>
            <fileMode>0644</fileMode>
            <lineEnding>dos</lineEnding>
        </file>
        <file>
              <source>${basedir}/../examples/bridge-camel/README.txt</source>
              <outputDirectory>/examples/bridge-camel</outputDirectory>
              <filtered>true</filtered>
              <fileMode>0644</fileMode>
              <lineEnding>dos</lineEnding>
        </file>
        <file>
              <source>${basedir}/../examples/camel/README.txt</source>
              <outputDirectory>/examples/camel</outputDirectory>
              <filtered>true</filtered>
              <fileMode>0644</fileMode>
              <lineEnding>dos</lineEnding>
        </file>
        <file>
              <source>${basedir}/../examples/camel-blueprint/README.txt</source>
              <outputDirectory>/examples/camel-blueprint</outputDirectory>
              <filtered>true</filtered>
              <fileMode>0644</fileMode>
              <lineEnding>dos</lineEnding>
        </file>
        <file>
              <source>${basedir}/../examples/cxf-wsdl-first/README.txt</source>
              <outputDirectory>/examples/cxf-wsdl-first</outputDirectory>
              <filtered>true</filtered>
              <fileMode>0644</fileMode>
              <lineEnding>dos</lineEnding>
        </file>
        <file>
              <source>${basedir}/../examples/camel-osgi/README.txt</source>
              <outputDirectory>/examples/camel-osgi</outputDirectory>
              <filtered>true</filtered>
              <fileMode>0644</fileMode>
              <lineEnding>dos</lineEnding>
            </file>
            <file>
              <source>${basedir}/../examples/camel-nmr/README.txt</source>
              <outputDirectory>/examples/camel-nmr</outputDirectory>
              <filtered>true</filtered>
              <fileMode>0644</fileMode>
              <lineEnding>dos</lineEnding>
            </file>
        <file>
          <source>${basedir}/../examples/camel-nmr-blueprint/README.txt</source>
          <outputDirectory>/examples/camel-nmr-blueprint</outputDirectory>
          <filtered>true</filtered>
          <fileMode>0644</fileMode>
          <lineEnding>dos</lineEnding>
        </file>
            <file>
              <source>${basedir}/../examples/cxf-nmr/README.txt</source>
              <outputDirectory>/examples/cxf-nmr</outputDirectory>
              <filtered>true</filtered>
              <fileMode>0644</fileMode>
              <lineEnding>dos</lineEnding>
            </file>
            <file>
              <source>${basedir}/../examples/cxf-osgi/README.txt</source>
              <outputDirectory>/examples/cxf-osgi</outputDirectory>
              <filtered>true</filtered>
              <fileMode>0644</fileMode>
              <lineEnding>dos</lineEnding>
            </file>
            <file>
              <source>${basedir}/../examples/cxf-ws-security-osgi/README.txt</source>
              <outputDirectory>/examples/cxf-ws-security-osgi</outputDirectory>
              <filtered>true</filtered>
              <fileMode>0644</fileMode>
              <lineEnding>dos</lineEnding>
            </file>
            <file>
              <source>${basedir}/../examples/cxf-ws-rm/README.txt</source>
              <outputDirectory>/examples/cxf-ws-rm</outputDirectory>
              <filtered>true</filtered>
              <fileMode>0644</fileMode>
              <lineEnding>dos</lineEnding>
            </file>

            <file>
              <source>${basedir}/../examples/cxf-camel-nmr/README.txt</source>
              <outputDirectory>/examples/cxf-camel-nmr</outputDirectory>
              <filtered>true</filtered>
              <fileMode>0644</fileMode>
              <lineEnding>dos</lineEnding>
            </file>
            <file>
              <source>${basedir}/../examples/simple/README.txt</source>
              <outputDirectory>/examples/simple</outputDirectory>
              <filtered>true</filtered>
              <fileMode>0644</fileMode>
              <lineEnding>dos</lineEnding>
            </file>
            <file>
              <source>${basedir}/target/classes/pom.xml</source>
              <outputDirectory>/examples/</outputDirectory>
              <filtered>true</filtered>
              <fileMode>0644</fileMode>
              <lineEnding>dos</lineEnding>
            </file>

    </files>

    <dependencySets>
        <dependencySet>
            <outputDirectory>/lib/endorsed</outputDirectory>
            <includes>
                <include>com.sun.xml.parsers:jaxp-ri</include>
            </includes>
        </dependencySet>        
        <dependencySet>
            <outputDirectory>/system</outputDirectory>
            <outputFileNameMapping>org/apache/servicemix/nmr/${artifact.artifactId}/${artifact.baseVersion}/${artifact.artifactId}-${artifact.baseVersion}${dashClassifier?}.${artifact.extension}</outputFileNameMapping>
            <unpack>false</unpack>
            <scope>runtime</scope>
            <includes>
                <include>org.apache.servicemix.nmr:apache-servicemix-nmr:xml:features</include>
            </includes>
        </dependencySet>
        <dependencySet>
            <outputDirectory>/system</outputDirectory>
            <outputFileNameMapping>org/apache/ode/${artifact.artifactId}/${artifact.baseVersion}/${artifact.artifactId}-${artifact.baseVersion}${dashClassifier?}.${artifact.extension}</outputFileNameMapping>
            <unpack>false</unpack>
            <scope>runtime</scope>
            <includes>
                <include>org.apache.ode:ode-jbi-karaf:xml:features</include>
            </includes>
        </dependencySet>
        <dependencySet>
            <outputDirectory>/system</outputDirectory>
            <outputFileNameMapping>org/apache/camel/karaf/${artifact.artifactId}/${artifact.baseVersion}/${artifact.artifactId}-${artifact.baseVersion}${dashClassifier?}.${artifact.extension}</outputFileNameMapping>
            <unpack>false</unpack>
            <scope>runtime</scope>
            <includes>
                <include>org.apache.camel.karaf:apache-camel:xml:features</include>
            </includes>
        </dependencySet>
        <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>
            </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>
                <include>org.springframework:spring-tx</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_3.0_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>
            </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>
                <include>org.apache.servicemix.specs:org.apache.servicemix.specs.stax-api-1.0</include>
            </includes>
        </dependencySet>
        <!-- SMX4-764 - Override the Felix Framework version -->
        <!-- begin snippet -->
        <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.apache.felix.framework</include>
            </includes>
        </dependencySet>
        <!-- end snippet -->

    </dependencySets>

</assembly>
