<!--
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.
-->
<component xmlns="http://maven.apache.org/ASSEMBLY-COMPONENT/2.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/ASSEMBLY-COMPONENT/2.1.0 http://maven.apache.org/xsd/assembly-component-2.1.0.xsd">
  <dependencySets>
    <dependencySet>
      <useProjectArtifact>false</useProjectArtifact>
      <outputDirectory>boot</outputDirectory>
      <includes>
        <include>org.codehaus.plexus:plexus-classworlds</include>
      </includes>
    </dependencySet>
    <dependencySet>
      <useProjectArtifact>false</useProjectArtifact>
      <outputDirectory>lib</outputDirectory>
      <excludes>
        <exclude>org.codehaus.plexus:plexus-classworlds</exclude>
        <exclude>org.jsoup:jsoup</exclude>
      </excludes>
    </dependencySet>
  </dependencySets>
  <fileSets>
    <fileSet>
      <includes>
        <include>README*</include>
      </includes>
    </fileSet>
    <fileSet>
      <directory>target/maven-shared-archive-resources/META-INF</directory>
      <outputDirectory>./</outputDirectory>
      <includes>
        <include>LICENSE</include>
        <include>NOTICE</include>
      </includes>
    </fileSet>
    <fileSet>
      <directory>target/licenses/lib</directory>
      <outputDirectory>lib</outputDirectory>
      <includes>
        <include>**</include>
      </includes>
    </fileSet>
    <fileSet>
      <directory>target/licenses/boot</directory>
      <outputDirectory>boot</outputDirectory>
      <includes>
        <include>**</include>
      </includes>
    </fileSet>
    <fileSet>
      <directory>src/assembly/maven/bin</directory>
      <outputDirectory>bin</outputDirectory>
      <includes>
        <include>*.cmd</include>
        <include>*.conf</include>
      </includes>
      <lineEnding>dos</lineEnding>
    </fileSet>
    <fileSet>
      <directory>target/dependency/org/fusesource/jansi/internal/native</directory>
      <outputDirectory>lib/jansi-native</outputDirectory>
      <includes>
        <include>**</include>
      </includes>
    </fileSet>
	<fileSet>
      <directory>src/assembly/maven/bin</directory>
      <outputDirectory>bin</outputDirectory>
      <includes>
        <include>mvn</include>
        <include>mvnDebug</include>
        <!-- This is so that CI systems can periodically run the profiler -->
        <include>mvnyjp</include>
      </includes>
      <lineEnding>unix</lineEnding>
      <fileMode>0755</fileMode>
    </fileSet>
    <fileSet>
      <directory>src/assembly/maven/conf</directory>
      <outputDirectory>conf</outputDirectory>
    </fileSet>
    <fileSet>
      <directory>src/assembly/maven/lib</directory>
      <outputDirectory>lib</outputDirectory>
    </fileSet>
  </fileSets>

  <files>
    <file>
      <sources>
        <source>src/assembly/shared/validate.cmd</source>
        <source>src/assembly/shared/mvnvalidate.cmd</source>
        <source>src/assembly/shared/init.cmd</source>
        <source>src/assembly/shared/mvnlauncher.cmd</source>
        <source>src/assembly/shared/run.cmd</source>
      </sources>
      <destName>mvn.cmd</destName>
      <outputDirectory>bin</outputDirectory>
      <lineEnding>dos</lineEnding>
      <filtered>true</filtered>
    </file>
    <file>
      <sources>
        <source>src/assembly/shared/validate</source>
        <source>src/assembly/shared/mvnvalidate</source>
        <source>src/assembly/shared/init</source>
        <source>src/assembly/shared/mvnlauncher</source>
        <source>src/assembly/shared/run</source>
      </sources>
      <destName>mvn</destName>
      <outputDirectory>bin</outputDirectory>
      <lineEnding>unix</lineEnding>
      <fileMode>0755</fileMode>
      <filtered>true</filtered>
    </file>
  </files>
</component>
