<project name="JEDI" basedir="." default="buildAll">
<property name="srcdir" value="src" />
<property name="builddir" value="target" />
<property name="distdir" value="dist" />
<property name="axi2stagedir" value="axis2" />
<property name="xsdschemasdir" value="xsdschemas" />
<property name="javadocdir" value="javadoc" />
<property name="tpcl" location="../../TPCL" />
<property name="AXIS2_HOME" value="${tpcl}/axis2-1.3"/>
<property name="configdir" value="../Config"/>
<property name="utestdir" value="utest"/>
<property name="testdir" value="test"/>
<property name="instrumenteddir" value="${testdir}/instrumented"/>
<property name="reportsdir" value="${testdir}/reports"/>
<property name="testclassname" value="*" />
<path id="axis2.classpath">
<fileset dir="${AXIS2_HOME}/lib">
<include name="*.jar"/>
</fileset>
</path>
<path id="src.classpath">
<fileset dir="${tpcl}">
<include name="commons-collections.jar" />
<include name="commons-dbcp-1.1.jar" />
<include name="commons-pool-1.1.jar" />
<include name="jakarta-oro.jar" />
<include name="log4j-1.2.8.jar" />
<include name="jms.jar" />
<include name="tibrvj.jar" />
<include name="tibjms.jar" />
<include name="xalan.jar" />
<include name="xercesImpl.jar" />
<include name="xml-apis.jar" />
<include name="mail.jar" />
<include name="activation.jar" />
<include name="weblogic.jar" />
<include name="joda-time-1.5.2.jar" />
<include name="wls-api.jar" />
<include name="saxon9.jar" />
<include name="saxon9-dom.jar" />
<include name="saxon9-xpath.jar" />
<include name="mvel2-2.0.19.jar"/>
</fileset>
<fileset dir="${tpcl}">
<include name="castor-0.9.7-xml.jar"/>
</fileset>
</path>
<path id="test.classpath">
<fileset dir="${tpcl}/utest">
<include name="junit-4.6.jar" />
<include name="privateaccessor.jar" />
<include name="mock.jar" />
<include name="jmsSender.jar"/>
<include name="ojdbc14.jar"/>
</fileset>
</path>
<path id="cobertura.classpath">
<fileset dir="${tpcl}/utest/cobertura">
<include name="*.jar" />
</fileset>
<path refid="test.classpath"/>
<path refid="axis2.classpath"/>
</path>
<taskdef classpathref="cobertura.classpath" resource="tasks.properties"/>
<target name="cleanup">
<delete dir="${builddir}" />
<delete dir="${distdir}" />
<delete file="${axi2stagedir}/repository/services/ExceptionMessageService.aar"/>
<!-- clean up the test,report and instrumention dir -->
<delete dir="${testdir}" />
<!-- clean up the classes coverage log info-->
<delete file="cobertura.ser"/>
</target>
<target name="init" depends="cleanup">
<mkdir dir="${builddir}" />
<mkdir dir="${distdir}" />
</target>
<target name="inittest" depends="cleanup">
<mkdir dir="${testdir}" />
<mkdir dir="${instrumenteddir}" />
<mkdir dir="${reportsdir}/junitxml" />
<mkdir dir="${reportsdir}/junithtml" />
</target>
<target name="compile" depends="init">
<javac srcdir="${srcdir}" destdir="${builddir}" encoding="ISO-8859-1" debug="yes">
<classpath refid="src.classpath"/>
<classpath refid="axis2.classpath"/>
</javac>
<copy todir="${builddir}">
<fileset dir="${srcdir}">
<include name="**/*.xslt" />
<include name="**/*.xml" />
<include name="**/*.gif" />
<include name="**/*.jpg" />
<include name="**/*.aar" />
<include name="**/*.list" />
<include name="castor.properties" />
</fileset>
<fileset dir="${configdir}">
<include name="GEHLicense.dat" />
<include name="GALLicense.dat" />
</fileset>
</copy>
</target>
<target name="compiletestcode" depends="inittest,compile">
<javac srcdir="${utestdir}/java;" destdir="${testdir}" debug="yes" >
<classpath refid="src.classpath" />
<classpath refid="test.classpath" />
<classpath refid="axis2.classpath"/>
<classpath>
<pathelement location="${builddir}"/>
</classpath>
</javac>
<copy todir="resources">
<fileset dir="${utestdir}/resources">
<include name="**/*.xml" />
<include name="**/*.properties" />
<include name="**/*.sql" />
<include name="**/*.gif" />
</fileset>
</copy>
<copy todir="${builddir}">
<fileset dir="${UTGlobalEnvDir}">
<include name="GlobalEnvProperties.properties" />
</fileset>
<fileset dir="${utestdir}/resources">
<include name="GenericAuditLoggerEngineConfiguration.xml" />
<include name="InvalidGenericAuditLoggerEngineConfiguration_NoGlobalVariables.xml" />
<include name="InvalidGenericAuditLoggerEngineConfiguration_NoRVJMS.xml" />
<include name="GenericExceptionHandlerEngineConfiguration.xml" />
<include name="InvalidGenericExceptionHandlerEngineConfiguration_NoGlobalVariables.xml" />
<include name="InvalidGenericExceptionHandlerEngineConfiguration_NoRVJMS.xml" />
</fileset>
<fileset dir="${utestdir}/resources/InvalidLicense"/>
<fileset dir="${utestdir}/java">
<include name="**/*.xml" />
</fileset>
</copy>
</target>
<target name="buildJEDI" depends="compile">
<tstamp/>
<jar basedir="${builddir}" destfile="${distdir}/jedi.jar">
<include name="com/prft/jedi/**/*.class" />
<include name="com/prft/jedi/**/*.gif" />
<include name="com/prft/jedi/**/*.jpg" />
</jar>
</target>
<target name="buildTM" depends="compile">
<tstamp/>
<jar basedir="${builddir}" destfile="${distdir}/tm.jar">
<include name="com/prft/tm/**/*.class" />
<include name="com/prft/tm/**/*.xml" />
<include name="castor.properties" />
</jar>
</target>
<target name="buildGAL" depends="compile">
<tstamp/>
<jar basedir="${builddir}" destfile="${distdir}/gal.jar">
<include name="com/prft/gal/**/*.class" />
<include name="com/prft/gal/**/*.xml" />
<include name="com/prft/geh/common/**/*.class" />
<include name="com/prft/gal/xslt/*.xslt" />
<include name="castor.properties" />
</jar>
</target>
<target name="buildGEH" depends="compile">
<tstamp />
<jar basedir="${builddir}" destfile="${builddir}/com/prft/geh/soap/repository/services/ExceptionMessageService.aar">
<include name="com/prft/geh/jedi/engine/handler/impl/soap/ExceptionMessageService.class"/>
<metainf dir="${xsdschemasdir}/geh/soap">
<include name="**/*.xml"/>
<include name="**/*.wsdl"/>
</metainf>
</jar>
<jar basedir="${builddir}" destfile="${distdir}/geh.jar">
<include name="com/prft/geh/**/*.class" />
<include name="com/prft/geh/**/*.xml" />
<include name="com/prft/geh/**/*.aar" />
<include name="com/prft/geh/**/*.list" />
<include name="com/prft/gal/common/**/*.class" />
<exclude name="com/prft/geh/jedi/engine/handler/impl/soap/ExceptionMessageService.class"/>
<include name="castor.properties" />
</jar>
</target>
<target name="buildDocs">
<delete dir="${javadocdir}" />
<javadoc packagenames="com.prft.*" sourcepath="${srcdir}" destdir="${javadocdir}" package="true">
<classpath>
<pathelement location="${tpcl}/castor-0.9.7-xml.jar" />
<pathelement location="${tpcl}/commons-collections.jar" />
<pathelement location="${tpcl}/commons-dbcp-1.1.jar" />
<pathelement location="${tpcl}/commons-pool-1.1.jar" />
<pathelement location="${tpcl}/jakarta-oro.jar" />
<pathelement location="${tpcl}/log4j-1.2.8.jar" />
<pathelement location="${tpcl}/jms.jar" />
<pathelement location="${tpcl}/tibrvj.jar" />
<pathelement location="${tpcl}/xalan.jar" />
<pathelement location="${tpcl}/xercesImpl.jar" />
<pathelement location="${tpcl}/xml-apis.jar" />
<pathelement location="${tpcl}/mail.jar" />
<pathelement location="${tpcl}/activation.jar" />
<pathelement location="${tpcl}/weblogic.jar" />
<pathelement location="${tpcl}/joda-time-1.5.2.jar" />
</classpath>
<classpath refid="axis2.classpath"/>
</javadoc>
</target>
<!-- this part is for unit test and coverage -->
<target name="instrument" >
<cobertura-instrument todir="${instrumenteddir}">
<!--
The following line causes instrument to ignore any
source line containing a reference to log4j, for the
purposes of coverage reporting.
-->
<ignore regex="org.apache.log4j.*" />
<fileset dir="${builddir}">
</fileset>
</cobertura-instrument>
</target>
<target name="instrumentGEH" >
<cobertura-instrument todir="${instrumenteddir}">
<!--
The following line causes instrument to ignore any
source line containing a reference to log4j, for the
purposes of coverage reporting.
-->
<ignore regex="org.apache.log4j.*" />
<!--
This one using to know which will be show at coverage table
-->
<fileset dir="${builddir}">
<include name="com/prft/geh/**/*.class" />
<include name="com/prft/jedi/**/*.class"/>
<include name="com/zw/geh/util/bw/listener/**/*.class"/>
<exclude name="com/prft/geh/**/xmlimpl/**/*.class" />
<exclude name="com/prft/**/rv/**/*.class" />
<exclude name="com/prft/geh/**/mssql/*.class" />
<exclude name="com/prft/geh/**/db2/*.class" />
<exclude name="com/prft/geh/**/oracle/*.class" />
<exclude name="com/prft/geh/**/dto/*.class" />
<exclude name="com/prft/geh/**/configurator/**/*.class" />
<exclude name="com/prft/jedi/configurator/ui/*.class"/>
<exclude name="com/zw/geh/util/bw/listener/xmlimpl/**/*.class"/>
<exclude name="com/prft/jedi/**/xmlimpl/**/*.class"/>
<exclude name="com/prft/geh/jedi/engine/process/common/Rv*.class"/>
<exclude name="com/prft/jedi/exceptions/common/XPathProcessorException.class"/>
<exclude name="com/prft/jedi/exceptions/soap/manager/SoapManagerException.class"/>
<exclude name="com/prft/jedi/exceptions/mail/manager/MailReceiverException.class"/>
<exclude name="com/prft/jedi/jms/manager/JmsManagerConstants.class"/>
<exclude name="com/prft/jedi/exceptions/jms/managerr/JmsQueueConnectionException.class" />
</fileset>
</cobertura-instrument>
</target>
<target name="instrumentGAL" >
<cobertura-instrument todir="${instrumenteddir}">
<!--
The following line causes instrument to ignore any
source line containing a reference to log4j, for the
purposes of coverage reporting.
-->
<ignore regex="org.apache.log4j.*" />
<fileset dir="${builddir}">
<include name="com/prft/gal/**/*.class" />
<include name="com/prft/tm/**/*.class" />
<exclude name="com/prft/gal/**/xmlimpl/*.class" />
<exclude name="com/prft/gal/**/rv/*.class" />
<exclude name="com/prft/gal/**/mssql/*.class" />
<exclude name="com/prft/gal/**/db2/*.class" />
<exclude name="com/prft/gal/**/oracle/*.class" />
<exclude name="com/prft/gal/**/dto/*.class" />
<exclude name="com/prft/gal/**/configurator/*.class" />
<exclude name="com/prft/tm/common/castor/xmlbeans/trxdef/*.class" />
<exclude name="com/prft/tm/**/mssql/*.class" />
<exclude name="com/prft/tm/**/db2/*.class" />
<exclude name="com/prft/tm/**/oracle/*.class" />
<exclude name="com/prft/tm/**/dto/*.class" />
</fileset>
</cobertura-instrument>
</target>
<target name="testGEH" >
<junit dir="./" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" showoutput="true">
<!--
Note the classpath order: instrumented classes are before the
original (uninstrumented) classes. This is important.
-->
<classpath location="${instrumenteddir}" />
<classpath refid="src.classpath" />
<classpath refid="test.classpath" />
<classpath refid="axis2.classpath"/>
<syspropertyset>
<propertyref prefix="test-sys-prop."/>
<mapper from="test-sys-prop.*" to="*" type="glob"/>
</syspropertyset>
<classpath location="${builddir}" />
<classpath location="${testdir}" />
<!--
The instrumented classes reference classes used by the
Cobertura runtime, so Cobertura and its dependencies
must be on your classpath.
-->
<classpath refid="cobertura.classpath" />
<formatter type="brief" usefile="false"/>
<formatter type="xml" />
<test name="${testcase}" todir="${reportsdir}/junitxml" if="testcase" />
<batchtest todir="${reportsdir}/junitxml" unless="testcase">
<fileset dir="${utestdir}/java">
<include name="com/prft/geh/**/*Test.java" />
<include name="com/prft/jedi/**/*Test.java"/>
<include name="com/zw/geh/util/bw/listener/**/*Test.java" />
</fileset>
</batchtest>
</junit>
<junitreport todir="${reportsdir}/junitxml">
<fileset dir="${reportsdir}/junitxml">
<include name="TEST-*.xml" />
</fileset>
<report format="frames" todir="${reportsdir}/junithtml" />
</junitreport>
</target>
<target name="testGAL" >
<junit dir="./" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" showoutput="true">
<!--
Note the classpath order: instrumented classes are before the
original (uninstrumented) classes. This is important.
-->
<classpath location="${instrumenteddir}" />
<classpath refid="src.classpath" />
<classpath refid="test.classpath" />
<classpath refid="axis2.classpath"/>
<syspropertyset>
<propertyref prefix="test-sys-prop."/>
<mapper from="test-sys-prop.*" to="*" type="glob"/>
</syspropertyset>
<classpath location="${builddir}" />
<classpath location="${testdir}" />
<!--
The instrumented classes reference classes used by the
Cobertura runtime, so Cobertura and its dependencies
must be on your classpath.
-->
<classpath refid="cobertura.classpath" />
<formatter type="brief" usefile="false"/>
<formatter type="xml" />
<test name="${testcase}" todir="${reportsdir}/junitxml" if="testcase" />
<batchtest todir="${reportsdir}/junitxml" unless="testcase">
<fileset dir="${utestdir}/java">
<include name="com/prft/gal/**/*Test.java" />
<!-- also include TM cases in GAL-->
<include name="com/prft/tm/**/*Test.java" />
</fileset>
</batchtest>
</junit>
<junitreport todir="${reportsdir}/junitxml">
<fileset dir="${reportsdir}/junitxml">
<include name="TEST-*.xml" />
</fileset>
<report format="frames" todir="${reportsdir}/junithtml" />
</junitreport>
</target>
<target name="test" >
<junit dir="./" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" showoutput="true">
<!--
Note the classpath order: instrumented classes are before the
original (uninstrumented) classes. This is important.
-->
<classpath location="${instrumenteddir}" />
<classpath refid="src.classpath" />
<classpath refid="test.classpath" />
<classpath refid="axis2.classpath"/>
<syspropertyset>
<propertyref prefix="test-sys-prop."/>
<mapper from="test-sys-prop.*" to="*" type="glob"/>
</syspropertyset>
<classpath location="${builddir}" />
<classpath location="${testdir}" />
<!--
The instrumented classes reference classes used by the
Cobertura runtime, so Cobertura and its dependencies
must be on your classpath.
-->
<classpath refid="cobertura.classpath" />
<formatter type="brief" usefile="false"/>
<formatter type="xml" />
<test name="${testcase}" todir="${reportsdir}/junitxml" if="testcase" />
<batchtest todir="${reportsdir}/junitxml" unless="testcase">
<fileset dir="${utestdir}/java">
<include name="**/${testclassname}Test.java" />
</fileset>
</batchtest>
</junit>
<junitreport todir="${reportsdir}/junitxml">
<fileset dir="${reportsdir}/junitxml">
<include name="TEST-*.xml" />
</fileset>
<report format="frames" todir="${reportsdir}/junithtml" />
</junitreport>
</target>
<target name="coverage-check">
<cobertura-check branchrate="34" totallinerate="100" />
</target>
<target name="coverage-report">
<!--
Generate an XML file containing the coverage data using
the "srcdir" attribute.
-->
<cobertura-report srcdir="${srcdir}" destdir="${reportsdir}/coveragexml" format="xml" />
</target>
<target name="coverage-gal-report">
<!--
Generate an XML file containing the coverage data using
the "srcdir" attribute.
-->
<cobertura-report destdir="${reportsdir}/gal/coveragexml" format="xml">
<fileset dir="${srcdir}">
<include name="com/prft/gal/**/*.java" />
<include name="com/prft/tm/**/*.java" />
</fileset>
</cobertura-report>
</target>
<target name="coverage-geh-report">
<!--
Generate an XML file containing the coverage data using
the "srcdir" attribute.
-->
<cobertura-report destdir="${reportsdir}/geh/coveragexml" format="xml">
<fileset dir="${srcdir}">
<include name="com/prft/geh/**/*.java" />
<include name="com/prft/jedi/**/*.java"/>
<include name="com/zw/geh/util/bw/listener/**/*.java"/>
</fileset>
</cobertura-report>
</target>
<target name="alternate-coverage-report">
<!--
Generate a series of HTML files containing the coverage
data in a user-readable form using nested source filesets.
-->
<cobertura-report destdir="${reportsdir}/coveragehtml">
<fileset dir="${srcdir}">
<include name="**/*.java" />
</fileset>
</cobertura-report>
</target>
<target name="alternate-gal-coverage-report">
<!--
Generate a series of HTML files containing the coverage
data in a user-readable form using nested source filesets.
-->
<cobertura-report destdir="${reportsdir}/gal/coveragehtml">
<fileset dir="${srcdir}">
<include name="com/prft/gal/**/*.java" />
<include name="com/prft/tm/**/*.java" />
</fileset>
</cobertura-report>
</target>
<target name="alternate-geh-coverage-report">
<!--
Generate a series of HTML files containing the coverage
data in a user-readable form using nested source filesets.
-->
<cobertura-report destdir="${reportsdir}/geh/coveragehtml">
<fileset dir="${srcdir}">
<include name="com/prft/geh/**/*.java" />
<include name="com/prft/jedi/**/*.java"/>
<include name="com/zw/geh/util/bw/listener/**/*.java"/>
</fileset>
</cobertura-report>
</target>
<target name="buildAll" depends="buildJEDI,buildGAL,buildTM,buildGEH"/>
<target name="cleanupJMS">
<echo message="cleanJMS"/>
<ant antfile="cleanupJMS/build-cleanupJMS.xml" target="cleanupJMS"/>
<echo message="clean up jms successful"/>
</target>
<target name="cleanupJMSForLocalMachine">
<echo message="cleanJMS"/>
<exec executable="/apps/tibco/ems/5.0/bin/cleanupJMSForUTLocal.sh" />
<echo message="clean up jms successful"/>
</target>
<target name="clean">
<antcall target="cleanupJMSForLocalMachine"/>
</target>
<target name="defineUSProp">
<property name="UTGlobalEnvDir" value="${utestdir}/resources/GlobalEnvironment/US"/>
</target>
<target name="coverageGEHUS" depends="cleanupJMSForLocalMachine, defineUSProp, compiletestcode, instrumentGEH, testGEH, coverage-geh-report, alternate-geh-coverage-report" description="Compile, instrument ourself, run the tests and generate JUnit and coverage reports.">
<antcall target="cleanupJMSForLocalMachine" />
</target>
<target name="allGEHUS" depends="coverageGEHUS, buildGEH, buildJEDI" />
<target name="coverageGALUS" depends="cleanupJMSForLocalMachine, defineUSProp, compiletestcode, instrumentGAL, testGAL, coverage-gal-report, alternate-gal-coverage-report" description="Compile, instrument ourself, run the tests and generate JUnit and coverage reports.">
<antcall target="cleanupJMSForLocalMachine" />
</target>
<target name="allGALUS" depends="coverageGALUS, buildGAL, buildTM, buildJEDI" />
</project>
<role rolename="tomcat"/>
<role rolename="manager"/>
<role rolename="admin"/>
<user username="hudson" password="hudson" roles="tomcat,manager,admin"/>