<project default="build.sample">
  <property environment="env"/>
  <fail message="You must set the AXIS2_HOME environment variable to a valid Axis2 installation.">
    <condition>
      <not>
        <isset property="env.AXIS2_HOME"/>
      </not>
    </condition>
  </fail>
  <echo message="${env.AXIS2_HOME}"/>

  <target name="build.sample" depends="clean">
    <property name="eventing.temp.dir" value="build/temp"/>
    <property name="listener1.temp.dir" value="${eventing.temp.dir}/listener1"/>
    <property name="listener2.temp.dir" value="${eventing.temp.dir}/listener2"/>
    <property name="publisher.temp.dir" value="${eventing.temp.dir}/publisher"/>


    <mkdir dir="${listener1.temp.dir}"/>
    <mkdir dir="${listener1.temp.dir}/META-INF"/>
    <mkdir dir="${listener2.temp.dir}"/>
    <mkdir dir="${listener2.temp.dir}/META-INF"/>
    <mkdir dir="${publisher.temp.dir}"/>
    <mkdir dir="${publisher.temp.dir}/META-INF"/>

    <mkdir dir="build/classes"/>
    <mkdir dir="build/lib"/>

    <javac srcdir="src" destdir="build/classes">
      <classpath>
        <fileset dir="../../core/target">
          <include name="*.jar"/>
        </fileset>
        <fileset dir="${env.AXIS2_HOME}/lib">
          <include name="*.jar"/>
        </fileset>
      </classpath>
    </javac>

    <copy toFile="${listener1.temp.dir}/META-INF/services.xml" file="listener1.services.xml"/>
    <copy toFile="${listener2.temp.dir}/META-INF/services.xml" file="listener2.services.xml"/>
    <copy toFile="${publisher.temp.dir}/META-INF/services.xml" file="publisher.services.xml"/>

    <jar destfile="build/ListenerService1.aar">
      <fileset dir="build/classes">
        <include name="sample/eventing/**/**/*ListenerService1*"/>
      </fileset>
      <fileset dir="${listener1.temp.dir}">
        <include name="META-INF/**"/>
      </fileset>
    </jar>

    <jar destfile="build/ListenerService2.aar">
      <fileset dir="build/classes">
        <include name="sample/eventing/**/**/*ListenerService2*"/>
      </fileset>
      <fileset dir="${listener2.temp.dir}">
        <include name="META-INF/**"/>
      </fileset>
    </jar>

    <jar destfile="build/PublisherService.aar">
      <fileset dir="build/classes">
        <include name="sample/eventing/**/**/*PublisherService*"/>
      </fileset>
      <fileset dir="${publisher.temp.dir}">
        <include name="META-INF/**"/>
      </fileset>
    </jar>

    <jar destfile="build/ListenerService1.aar">
      <fileset dir="build/classes">
        <include name="sample/eventing/**/**/*ListenerService1*"/>
      </fileset>
      <fileset dir="${listener1.temp.dir}">
        <include name="META-INF/**"/>
      </fileset>
    </jar>

    <jar destfile="build/EventingSample.jar">
      <fileset dir="build/classes">
        <include name="sample/eventing/**"/>
      </fileset>
    </jar>

    <copy todir="build">
      <fileset dir=".">
        <include name="*.sh"/>
        <include name="*.bat"/>
      </fileset>
    </copy>
  </target>

  <target name="clean">
    <delete dir="build"/>
  </target>

  <target name="deploy" depends="build.sample">
    <!-- deploy savan module to axis2 -->
    <copy todir="${env.AXIS2_HOME}/repository/modules">
      <fileset dir="../../mar/target" includes="savan-*.mar"/>
    </copy>

    <!-- copy core jar (used by the PublisherService) -->
    <copy todir="${env.AXIS2_HOME}/lib">
      <fileset dir="../../core/target" includes="savan-core-*.jar"/>
    </copy>

    <!-- deploy samples -->
    <copy todir="${env.AXIS2_HOME}/repository/services">
      <fileset dir="build" includes="*.aar"/>
    </copy>
  </target>

</project>
