<!--

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

    <javac
      srcdir="."
      classpath="${env.APS_HOME}/lib/reporter.jar"
      includes="client/WebTest.java" destdir="../" />


    <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="connector16" />
    </antcall>

      <antcall target="webclient-war-common">
      <param name="hasWebclient" value="yes"/>
          <param name="appname" value="connector16" />
          <param name="web.xml" value="META-INF/web.xml" />
          <param name="sun-web.xml" value="META-INF/sun-web.xml" />
      <param name="webclient.war.classes" value="servlet/*.class, beans/*.class"/>
      </antcall>


<!--
     <antcall target="war-common">
        <param name="war.classes" value="servlet/*.class, beans/*.class, connector/*.class, mdb/*.class" />
         <param name="appname" value="connector16" />
         <param name="web.xml" value="META-INF/web.xml" />
         <param name="sun-web.xml" value="META-INF/sun-web.xml" />
     </antcall>
-->



<!--
    <antcall target="appclient-jar-common">
        <param name="appname" value="connector16" />
        <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>
