<project name="tests-aop-jars">

  <!-- aop test -->
  <target name="_jars-aop">
    <mkdir dir="${build.lib}"/>
    <taskdef name="aopc" classname="org.jboss.aop.ant.AopC" classpathref="jboss.aop.classpath"/>
    <path id="aop.task.classpath">
      <path refid="javassist.classpath"/>
      <path refid="qdox.classpath"/>
      <path refid="trove.classpath"/>
      <path refid="jboss.aop.classpath"/>
      <path refid="jboss.common.classpath"/>
    </path>
    <taskdef name="annotationc" classname="org.jboss.aop.ant.AnnotationC" classpathref="jboss.aop.classpath"/>
    <annotationc compilerclasspathref="aop.task.classpath" bytecode="true">
      <classpath refid="thirdparty.classpath"/>
      <classpath path="${build.classes}"/>
      <src path="${source.java}"/>
      <include name="org/jboss/test/aop/bean/AnnotatedSecuredPOJO.java"/>
      <include name="org/jboss/test/aop/bean/AnnotatedTxPOJO.java"/>
      <include name="org/jboss/test/aop/bean/AnnotatedTxLockedPOJO.java"/>
      <include name="org/jboss/test/aop/scoped/AnnotatedInterceptor.java"/>
    </annotationc>
    <!-- build aopest.jar -->
    <jar destfile="${build.lib}/aoptest.jar"
     >
      <fileset dir="${build.classes}">
        <patternset refid="common.test.client.classes"/>
        <include name="org/jboss/test/aop/test/**"/>
        <include name="org/somepackage/**"/>
      </fileset>
      <fileset dir="${build.resources}/aop">
        <include name="*.*"/>
      </fileset>
    </jar>

    <!-- build simpleejb.jar -->
    <jar destfile="${build.lib}/simpleejb.jar">
      <fileset dir="${build.classes}">
        <include name="org/jboss/test/aop/simpleejb/"/>
      </fileset>
      <metainf dir="${build.resources}/aop/simpleejb/META-INF/"/>
    </jar>


    <jar destfile="${build.lib}/aop-call-logging.aop">
      <fileset dir="${build.classes}">
        <include name="org/jboss/test/aop/test/CallLoggingUnitTestCase.class"/>
      </fileset>
      <metainf dir="${build.resources}/aop/calllogging/META-INF/"/>
    </jar>

    <jar destfile="${build.lib}/aop-invocationlog.aop">
      <fileset dir="${build.classes}">
        <include name="org/jboss/test/aop/test/InvocationLogUnitTestCase.class"/>
        <include name="org/jboss/test/aop/bean/POJO.class"/>
        <include name="org/jboss/test/aop/bean/SomeException.class"/>
      </fileset>
      <fileset dir="${build.resources}/aop/invocationlog">
        <include name="META-INF/jboss-aop.xml"/>
      </fileset>
    </jar>
    <jar destfile="${build.lib}/aop-invocationlog.sar">
      <fileset dir="${build.lib}">
        <include name="aop-invocationlog.aop"/>
      </fileset>
      <fileset dir="${build.resources}/aop/invocationlog">
        <include name="META-INF/jboss-service.xml"/>
      </fileset>
    </jar>

    <jar destfile="${build.lib}/aoptest.aop"
     >
      <fileset dir="${build.classes}">
        <include name="org/jboss/test/aop/bean/Implements*.class"/>
        <include name="org/jboss/test/aop/bean/CFlowedPOJO.class"/>
        <include name="org/jboss/test/aop/bean/InstanceOfInterceptor.class"/>
        <include name="org/jboss/test/aop/bean/InterceptorCounter.class"/>
        <include name="org/jboss/test/aop/bean/SomeInterface.class"/>
        <include name="org/jboss/test/aop/bean/EmptyInterface.class"/>
        <include name="org/jboss/test/aop/bean/Aspect.class"/>
        <include name="org/jboss/test/aop/bean/Person.class"/>
        <include name="org/jboss/test/aop/bean/Address.class"/>
        <include name="org/jboss/test/aop/bean/NoInterceptorsPOJO*.class"/>
        <include name="org/jboss/test/aop/bean/NonadvisedPOJO.class"/>
        <include name="org/jboss/test/aop/bean/SecuredPOJO.class"/>
        <include name="org/jboss/test/aop/bean/AnnotatedSecuredPOJO.class"/>
        <include name="org/jboss/test/aop/bean/SomeException.class"/>
        <include name="org/jboss/test/aop/bean/POJO*.class"/>
        <include name="org/jboss/test/aop/bean/Call*.class"/>
        <include name="org/jboss/test/aop/bean/SomeIntroduction.class"/>
        <include name="org/jboss/test/aop/bean/SubclassIntroduction.class"/>
        <include name="org/jboss/test/aop/bean/AnotherIntroduction.class"/>
        <include name="org/jboss/test/aop/bean/Introduction.class"/>
        <include name="org/jboss/test/aop/bean/Introduction2.class"/>
        <include name="org/jboss/test/aop/bean/InterfaceMixin.class"/>
        <include name="org/jboss/test/aop/bean/AnnotatedTxPOJO.class"/>
        <include name="org/jboss/test/aop/bean/TxPOJO.class"/>
        <include name="org/jboss/test/aop/bean/TxLockedPOJO.class"/>
        <include name="org/jboss/test/aop/bean/AnnotatedTxLockedPOJO.class"/>
        <include name="org/jboss/test/aop/bean/VersionedPOJO.class"/>
        <include name="org/jboss/test/aop/bean/SimpleInterceptor.class"/>
        <include name="org/jboss/test/aop/bean/SimpleInterceptorFactory.class"/>
        <include name="org/jboss/test/aop/bean/SimpleBeanInterceptor.class"/>
        <include name="org/jboss/test/aop/bean/SimpleBeanCallerInterceptor.class"/>
        <include name="org/jboss/test/aop/bean/SimpleBeanInterceptorFactory.class"/>
        <include name="org/jboss/test/aop/bean/Temperature*.class"/>
        <include name="org/jboss/test/aop/bean/Observable*.class"/>
        <include name="org/jboss/test/aop/bean/LogUtil*.class"/>
      </fileset>
      <fileset dir="${build.resources}/aop">
        <include name="META-INF/jboss-aop.xml"/>
      </fileset>
    </jar>

    <jar destfile="${build.lib}/aoptest.sar">
      <fileset dir="${build.lib}">
        <include name="aoptest.aop"/>
      </fileset>
      <fileset dir="${build.classes}">
        <include name="org/jboss/test/aop/bean/AOPTester.class"/>
        <include name="org/jboss/test/aop/bean/AOPTesterMBean.class"/>
        <include name="org/jboss/test/aop/bean/RemotingTester.class"/>
        <include name="org/jboss/test/aop/bean/RemotingTesterMBean.class"/>
        <include name="org/jboss/test/aop/bean/SecurityTester.class"/>
        <include name="org/jboss/test/aop/bean/SecurityTesterMBean.class"/>
        <include name="org/jboss/test/aop/bean/TxTester.class"/>
        <include name="org/jboss/test/aop/bean/TxTesterMBean.class"/>
        <include name="org/jboss/test/aop/bean/TxLockTester*.class"/>
        <include name="org/jboss/test/aop/bean/TxLockTesterMBean.class"/>
        <include name="org/jboss/test/aop/bean/VersionedObjectTester.class"/>
        <include name="org/jboss/test/aop/bean/VersionedObjectTesterMBean.class"/>
        <include name="org/jboss/test/aop/bean/CacheTester.class"/>
        <include name="org/jboss/test/aop/bean/CacheTesterMBean.class"/>
        <include name="org/jboss/test/aop/bean/BeforeInterceptor.class"/>
        <include name="org/jboss/test/aop/bean/AfterInterceptor.class"/>
        <include name="org/jboss/test/aop/bean/LogUtil.class"/>
        <include name="org/jboss/test/aop/bean/Temperature.class"/>
        <include name="org/jboss/test/aop/bean/ObservableTester.class"/>
        <include name="org/jboss/test/aop/bean/ObservableTesterMBean.class"/>
      </fileset>
      <fileset dir="${build.resources}/aop">
        <include name="users.properties"/>
        <include name="roles.properties"/>
      </fileset>
      <fileset dir="${build.resources}/aop">
        <include name="META-INF/jboss-service.xml"/>
      </fileset>
    </jar>

    <jar destfile="${build.lib}/simpleejb.sar">
      <fileset dir="${build.lib}">
        <include name="aoptest.aop"/>
      </fileset>
      <fileset dir="${build.lib}">
        <include name="simpleejb.jar"/>
      </fileset>
      <fileset dir="${build.classes}">
        <include name="org/jboss/test/aop/bean/SimpleBeanTester.class"/>
        <include name="org/jboss/test/aop/bean/SimpleBeanTesterMBean.class"/>
      </fileset>
      <fileset dir="${build.resources}/aop">
        <include name="users.properties"/>
        <include name="roles.properties"/>
      </fileset>
      <fileset dir="${build.resources}/aop/simpleejb">
        <include name="META-INF/jboss-service.xml"/>
      </fileset>
    </jar>

    <!-- jars for scoped test -->
    <jar destfile="${build.lib}/aop-scopedtest1.aop">
      <fileset dir="${build.classes}">
        <include name="org/jboss/test/aop/scoped/*.class"/>
        <include name="org/jboss/test/aop/scoped/excluded/**/*.class"/>
        <exclude name="org/jboss/test/aop/scoped/ScopedTester*.class"/>
      </fileset>
      <fileset dir="${build.resources}/aop/scoped/sar1">
        <include name="META-INF/jboss-aop.xml"/>
      </fileset>
    </jar>
    <jar destfile="${build.lib}/aop-scopedtest1.sar">
      <fileset dir="${build.lib}">
        <include name="aop-scopedtest1.aop"/>
      </fileset>
      <fileset dir="${build.classes}">
        <include name="org/jboss/test/aop/scoped/ScopedTester*.class"/>
      </fileset>
      <fileset dir="${build.resources}/aop/scoped/sar1">
        <include name="META-INF/jboss-service.xml"/>
      </fileset>
    </jar>
    <jar destfile="${build.lib}/aop-scopedtest2.sar">
      <fileset dir="${build.classes}">
        <include name="org/jboss/test/aop/scoped/*.class"/>
        <include name="org/jboss/test/aop/scoped/excluded/**/*.class"/>
        <exclude name="org/jboss/test/aop/scoped/Annotated*.class"/>
      </fileset>
      <fileset dir="${build.resources}/aop/scoped/sar2/META-INF">
        <include name="scoped-aop.xml"/>
      </fileset>
      <fileset dir="${build.resources}/aop/scoped/sar2">
        <include name="META-INF/jboss-service.xml"/>
      </fileset>
    </jar>

    <jar destfile="${build.lib}/aop-scopedear1-ejb.jar">
      <fileset dir="${build.classes}">
        <include name="org/jboss/test/aop/scoped/ear/ejb/*.class"/>
      </fileset>
      <fileset dir="${build.resources}/aop/scoped/ear1">
        <include name="META-INF/ejb-jar.xml"/>
        <include name="META-INF/jboss.xml"/>
      </fileset>
    </jar>
    <jar destfile="${build.lib}/aop-scopedear1.aop">
      <fileset dir="${build.classes}">
        <include name="org/jboss/test/aop/scoped/ear/interceptor/*.class"/>
      </fileset>
      <fileset dir="${build.resources}/aop/scoped/ear1">
        <include name="META-INF/jboss-aop.xml"/>
      </fileset>
    </jar>
    <jar destfile="${build.lib}/aop-scopedear1.war">
      <fileset dir="${build.classes}">
        <include name="org/jboss/test/aop/scoped/ear/servlet/*.class"/>
      </fileset>
      <fileset dir="${build.resources}/aop/scoped/ear1">
        <include name="WEB-INF/web.xml"/>
      </fileset>
    </jar>
    <jar destfile="${build.lib}/aop-scopedear1.ear">
      <fileset dir="${build.lib}">
        <include name="aop-scopedear1-ejb.jar"/>
        <include name="aop-scopedear1.aop"/>
        <include name="aop-scopedear1.war"/>
      </fileset>
      <fileset dir="${build.resources}/aop/scoped/ear1">
        <include name="META-INF/application.xml"/>
        <include name="META-INF/jboss-app.xml"/>
      </fileset>
    </jar>

    <jar destfile="${build.lib}/aop-scopedear2-ejb.jar">
      <fileset dir="${build.classes}">
        <include name="org/jboss/test/aop/scoped/ear/ejb/*.class"/>
      </fileset>
      <fileset dir="${build.resources}/aop/scoped/ear2">
        <include name="META-INF/ejb-jar.xml"/>
        <include name="META-INF/jboss.xml"/>
      </fileset>
    </jar>
    <jar destfile="${build.lib}/aop-scopedear2.aop">
      <fileset dir="${build.classes}">
        <include name="org/jboss/test/aop/scoped/ear/interceptor/*.class"/>
      </fileset>
      <fileset dir="${build.resources}/aop/scoped/ear2">
        <include name="META-INF/jboss-aop.xml"/>
      </fileset>
    </jar>
    <jar destfile="${build.lib}/aop-scopedear2.war">
      <fileset dir="${build.classes}">
        <include name="org/jboss/test/aop/scoped/ear/servlet/*.class"/>
      </fileset>
      <fileset dir="${build.resources}/aop/scoped/ear2">
        <include name="WEB-INF/web.xml"/>
      </fileset>
    </jar>
    <jar destfile="${build.lib}/aop-scopedear2.ear">
      <fileset dir="${build.lib}">
        <include name="aop-scopedear2-ejb.jar"/>
        <include name="aop-scopedear2.aop"/>
        <include name="aop-scopedear2.war"/>
      </fileset>
      <fileset dir="${build.resources}/aop/scoped/ear2">
        <include name="META-INF/application.xml"/>
        <include name="META-INF/jboss-app.xml"/>
      </fileset>
    </jar>

    <!-- ************************ -->
    <!-- jars for extender test   -->
    <!-- ***********************  -->
    <jar destfile="${build.lib}/aop-extendertest.aop">
       <fileset dir="${build.classes}">
          <include name="org/jboss/test/aop/extender/*.class"/>
          <exclude name="org/jboss/test/aop/extender/ExtenderTester*.class"/>
       </fileset>
       <fileset dir="${build.resources}/aop/extender">
          <include name="META-INF/jboss-aop.xml"/>
       </fileset>
    </jar>
    <jar destfile="${build.lib}/aop-extendertest.sar">
       <fileset dir="${build.lib}">
          <include name="aop-extendertest.aop"/>
       </fileset>
       <fileset dir="${build.classes}">
          <include name="org/jboss/test/aop/extender/ExtenderTester*.class"/>
       </fileset>
       <fileset dir="${build.resources}/aop/extender">
          <include name="META-INF/jboss-service.xml"/>
       </fileset>
    </jar>

    <!-- jars for scoped attachment test -->
    <jar destfile="${build.lib}/aop-scopedattachtest1.aop">
      <fileset dir="${build.classes}">
        <include name="org/jboss/test/aop/scopedattach/**/*.class"/>
        <exclude name="org/jboss/test/aop/scopedattach/ScopedTester*.class"/>
        <exclude name="org/jboss/test/aop/scopedattach/POJO.class"/>
      </fileset>
      <fileset dir="${build.resources}/aop/scoped-attach/sar1">
        <include name="META-INF/jboss-aop.xml"/>
      </fileset>
    </jar>
    <jar destfile="${build.lib}/aop-scopedattachtest1.sar">
      <fileset dir="${build.classes}">
        <include name="org/jboss/test/aop/scopedattach/ScopedTester*.class"/>
        <include name="org/jboss/test/aop/scopedattach/POJO.class"/>
      </fileset>
      <fileset dir="${build.resources}/aop/scoped-attach/sar1">
        <include name="META-INF/jboss-service.xml"/>
      </fileset>
      <fileset dir="${build.resources}/aop/scoped-attach/sar1/META-INF">
        <include name="prepare-aop.xml"/>
      </fileset>      
    </jar>
    <jar destfile="${build.lib}/aop-scopedattachtest2.aop">
      <fileset dir="${build.classes}">
        <include name="org/jboss/test/aop/scopedattach/**/*.class"/>
        <exclude name="org/jboss/test/aop/scopedattach/ScopedTester*.class"/>
        <exclude name="org/jboss/test/aop/scopedattach/POJO.class"/>
      </fileset>
      <fileset dir="${build.resources}/aop/scoped-attach/sar2">
        <include name="META-INF/jboss-aop.xml"/>
      </fileset>
    </jar>
    <jar destfile="${build.lib}/aop-scopedattachtest2.sar">
      <fileset dir="${build.classes}">
        <include name="org/jboss/test/aop/scopedattach/ScopedTester*.class"/>
        <include name="org/jboss/test/aop/scopedattach/POJO.class"/>
      </fileset>
      <fileset dir="${build.resources}/aop/scoped-attach/sar2">
        <include name="META-INF/jboss-service.xml"/>
      </fileset>
      <fileset dir="${build.resources}/aop/scoped-attach/sar2/META-INF">
        <include name="prepare-aop.xml"/>
      </fileset>      
    </jar>
    
     <!-- Create jars for earwithwebinf test -->
     <jar destfile="${build.lib}/aop-classesinwebinf.aop">
        <fileset dir="${build.classes}">
           <include name="org/jboss/test/aop/earwithwebinf/interceptor/EJBInterceptor.class"/>
           <include name="org/jboss/test/aop/earwithwebinf/interceptor/WebInterceptor.class"/>
        </fileset>
        <fileset dir="${build.resources}/aop/earwithwebinf/">
           <include name="META-INF/jboss-aop.xml"/>
        </fileset>
     </jar>
     <jar destfile="${build.lib}/aop-classesinwebinf-lib.jar">
        <fileset dir="${build.classes}">
           <include name="org/jboss/test/aop/earwithwebinf/webinf/lib/*.class"/>
        </fileset>
     </jar>
     <jar destfile="${build.lib}/aop-classesinwebinf.war">
        <fileset dir="${build.resources}/aop/earwithwebinf/">
           <include name="WEB-INF/web.xml"/>
        </fileset>
        <zipfileset dir="${build.classes}" prefix="WEB-INF/classes">
           <include name="org/jboss/test/aop/earwithwebinf/webinf/classes/*.class"/>
           <include name="org/jboss/test/aop/earwithwebinf/servlet/*.class"/>
        </zipfileset>
        <zipfileset dir="${build.lib}" prefix="WEB-INF/lib">
           <include name="aop-classesinwebinf-lib.jar"/>
        </zipfileset>
     </jar>
     <jar destfile="${build.lib}/aop-classesinwebinf-ejb.jar">
        <fileset dir="${build.classes}">
           <include name="org/jboss/test/aop/earwithwebinf/ejb/*.class"/>
        </fileset>
        <fileset dir="${build.resources}/aop/earwithwebinf/">
           <include name="META-INF/ejb-jar.xml"/>
        </fileset>
     </jar>
     <jar destfile="${build.lib}/aop-classesinwebinf.ear">
        <fileset dir="${build.lib}">
           <include name="aop-classesinwebinf.aop"/>
           <include name="aop-classesinwebinf.war"/>
           <include name="aop-classesinwebinf-ejb.jar"/>
        </fileset>
        <fileset dir="${build.resources}/aop/earwithwebinf/">
           <include name="META-INF/application.xml"/>
        </fileset>
     </jar>

    <!-- ok, we have created the loadtime jars, let us now precompile the classes for standalone test  -->

    <!--
          <aopc compilerclasspathref="aop.task.classpath">
             <classpath refid="thirdparty.classpath"/>
             <classpath path="${build.classes}"/>
             <src path="${build.classes}"/>
             <include name="org/jboss/test/aop/bean/**"/>
             <aoppath path="${build.resources}/aop/META-INF/jboss-aop.xml"/>
          </aopc>
    -->

  </target>

</project>
