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

<!-- $Rev: 576067 $ $Date: 2007-09-16 03:17:08 -0700 (Sun, 16 Sep 2007) $ -->

<assembly>
  <id>itests</id>
  <formats>
    <format>war</format>
  </formats>
  <includeBaseDirectory>false</includeBaseDirectory>
  <fileSets>
    <fileSet>
      <includes>
        <include>README.txt</include>
      </includes>
    </fileSet>
    <fileSet>
      <!-- TODO: There're two ways to leverage MRRP:
         -  o the one below
         -  o pom.xml where MRRP is configured to output the files in the directory of our choice
         -->
      <directory>target/maven-shared-archive-resources/META-INF</directory>
      <outputDirectory>META-INF</outputDirectory>
      <includes>
        <include>LICENSE</include>
        <include>NOTICE</include>
      </includes>
    </fileSet>
  </fileSets>
  <dependencySets>
    <dependencySet>
      <outputDirectory>WEB-INF/lib</outputDirectory>
      <includes>
          <include>junit:junit</include>
          <include>org.apache.openejb:openejb-itests-beans</include>
      </includes>
      <scope>test</scope>
    </dependencySet>
  </dependencySets>
</assembly>

