<!--

    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>

    <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="simple-connector-bean-validation" />
    </antcall>

<!--
      <antcall target="webclient-war-common">
      <param name="hasWebclient" value="yes"/>
          <param name="appname" value="simple-connector-bean-validation" />
          <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="simple-connector-bean-validation" />
         <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="simple-connector-bean-validation" />
        <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>
