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

    </dependencySets>

</assembly>
