<!--

    Copyright (c) 2002, 2018 Oracle and/or its affiliates. All rights reserved.

    This program and the accompanying materials are made available under the
    terms of the Eclipse Public License v. 2.0, which is available at
    http://www.eclipse.org/legal/epl-2.0.

    This Source Code may also be made available under the following Secondary
    Licenses when the conditions for such availability set forth in the
    Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
    version 2 with the GNU Classpath Exception, which is available at
    https://www.gnu.org/software/classpath/license.html.

    SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0

-->

<!DOCTYPE project [
  <!ENTITY common SYSTEM "../../../../../config/common.xml">
  <!ENTITY testcommon SYSTEM "../../../../../config/properties.xml">
]>

<project name="connector1.5 MDB" default="all" basedir=".">

  <property name="j2ee.home" value="../../../.."/>

  <!-- include common.xml and testcommon.xml -->
  &common;
  &testcommon;

  <target name="all" depends="init-common">
   <antcall target="compile-common">
        <param name="src" value="." />
        <param name="s1astest.classpath" value="${s1astest.classpath}:../../ra/src/classes" />
    </antcall>

    <antcall target="ejb-jar-common">
        <param name="ejb-jar.xml" value="META-INF/ejb-jar.xml" />
        <param name="ejbjar.classes" value="mdb/*.class, beans/*.class, connector/*.class" />
        <param name="sun-ejb-jar.xml" value="META-INF/sun-ejb-jar.xml" />
        <param name="appname" value="worktest" />
    </antcall>

    <antcall target="appclient-jar-common">
        <param name="appname" value="worktest" />
        <param name="application-client.xml" value="META-INF/application-client.xml" />
        <param name="appclientjar.classes" value="mdb/*.class, beans/*.class, connector/*.class, client/Client.class" />
        <param name="sun-application-client.xml" value="META-INF/sun-application-client.xml" />
    </antcall>
<!--
    <jar jarfile="../ejb.jar" basedir="classes"
         includes="mdb/*.class, beans/*.class, connector/*.class" >
                <metainf dir="META-INF">
                        <include name="ejb-jar.xml"/>
                        <include name="sun-ejb-jar.xml"/>
                </metainf>
    </jar>
-->
  </target>

  <target name="clean">
    <antcall target="clean-classes-common">
        <param name="build.classes.dir" value="classes" />
    </antcall>
  </target>
</project>
