mstover1 2002/08/11 15:10:06
Modified: . build.xml
Log:
New build process to deal with separate source code sections.
Revision Changes Path
1.67 +191 -55 jakarta-jmeter/build.xml
Index: build.xml
===================================================================
RCS file: /home/cvs/jakarta-jmeter/build.xml,v
retrieving revision 1.66
retrieving revision 1.67
diff -u -r1.66 -r1.67
--- build.xml 9 Aug 2002 13:39:55 -0000 1.66
+++ build.xml 11 Aug 2002 22:10:06 -0000 1.67
@@ -1,9 +1,25 @@
<project name="JMeter" default="all" basedir=".">
<!-- Where the class files should live -->
- <property name="classes.dest.dir" value="bin/classes"/>
+ <property name="build.dir" value="build"/>
+ <property name="build.core" value="build/core"/>
+ <property name="build.http" value="build/protocol/http"/>
+ <property name="build.ftp" value="build/protocol/ftp"/>
+ <property name="build.jdbc" value="build/protocol/jdbc"/>
+ <property name="build.java" value="build/protocol/java"/>
+ <property name="build.components" value="build/components"/>
+ <property name="build.functions" value="build/functions"/>
+
<!-- Where the Sources live -->
- <property name="sources.src.dir" value="src_1"/>
+ <property name="src.dir" value="src"/>
+ <property name="src.core" value="src/core"/>
+ <property name="src.http" value="src/protocol/http"/>
+ <property name="src.ftp" value="src/protocol/ftp"/>
+ <property name="src.jdbc" value="src/protocol/jdbc"/>
+ <property name="src.java" value="src/protocol/java"/>
+ <property name="src.components" value="src/components"/>
+ <property name="src.functions" value="src/functions"/>
+
<!-- Where the API documentation lives -->
<property name="docs.api.dest.dir" value="docs/api"/>
<property name="version" value="1.7.3"/>
@@ -19,43 +35,61 @@
<include name="**/lib/*.jar"/>
<include name="**/ext/*.jar"/>
</fileset>
+ <pathelement location="${build.dir}"/>
<pathelement location="${tools.jar}"/>
</path>
<path id="testClasspath">
<path refid="classpath"/>
- <pathelement location="./lib/ext/ApacheJMeter_core.jar"/>
+ <fileset dir="./lib/ext">
+ <include name="*.jar"/>
+ <include name="*.jar"/>
+ </fileset>
</path>
+
+ <target name="init">
+ <mkdir dir="${build.dir}"/>
+ <mkdir dir="${build.core}"/>
+ <mkdir dir="${build.http}"/>
+ <mkdir dir="${build.jdbc}"/>
+ <mkdir dir="${build.ftp}"/>
+ <mkdir dir="${build.java}"/>
+ <mkdir dir="${build.components}"/>
+ <mkdir dir="${build.functions}"/>
+ </target>
<!--
- - Check for optional libraries, JavaMail and JSSE
- - Need two targets as JavaMail depends on JAF as well.
+ - Check for optional JSSE libs.
-->
- <target name="check.optional.libs1">
+ <target name="check.jsse.libs">
<available classname="com.sun.net.ssl.internal.ssl.Provider"
property="jsse.present">
<classpath refid="classpath"/>
</available>
- <available classname="javax.mail.Transport"
- property="javamail.present">
- <classpath refid="classpath"/>
- </available>
- <available classname="iaik.protocol.https.Handler"
- property="isasilk.present">
- <classpath refid="classpath"/>
- </available>
</target>
<!--
- - Check for optional libraries, JAF
- - Need two targets as JavaMail depends on JAF as well.
+ - Check for optional JavaMail libs.
-->
- <target name="check.optional.libs2" depends="check.optional.libs1"
- if="javamail.present">
+ <target name="check.mail.libs">
+ <available classname="javax.mail.Transport"
+ property="javamail.present">
+ <classpath refid="classpath"/>
+ </available>
<available classname="javax.activation.DataHandler"
property="javamail.complete"/>
</target>
+
+ <!--
+ - Check for optional IAIK libs (related to SSL)
+ -->
+ <target name="check.iaik.libs">
+ <available classname="iaik.protocol.https.Handler"
+ property="isasilk.present">
+ <classpath refid="classpath"/>
+ </available>
+ </target>
<!--
- Check for anakia task
@@ -71,15 +105,15 @@
</echo>
</target>
- <target name="ssl.message" depends="check.optional.libs1,iaik.message"
unless="jsse.present">
+ <target name="ssl.message" depends="check.jsse.libs,iaik.message"
unless="jsse.present">
<echo message="Classes for SSL not found in classpath"/>
</target>
- <target name="iaik.message" depends="check.optional.libs1"
unless="isasilk.present">
+ <target name="iaik.message" depends="check.iaik.libs" unless="isasilk.present">
<echo message="Classes for IAIK iSaSiLk not found in classpath"/>
</target>
- <target name="mail.message" depends="check.optional.libs2"
unless="javamail.complete">
+ <target name="mail.message" depends="check.mail.libs"
unless="javamail.complete">
<echo message="Classes for Mail support not found in classpath"/>
</target>
@@ -87,27 +121,49 @@
- Compiles the source into class files - dumping results into the
- bin/clases directory
-->
- <target name="compile" depends="mail.message,ssl.message">
- <mkdir dir="${classes.dest.dir}"/>
- <copy
tofile="${sources.src.dir}/org/apache/jmeter/util/JMeterUtils.java_temp"
-
file="${sources.src.dir}/org/apache/jmeter/util/JMeterUtils.java"
+ <target name="compile_all"
depends="init,ssl.message,iaik.message,mail.message">
+ <javac
+ destdir="${build.dir}"
+ optimize="${optimize}"
+ debug="on"
+ target="1.3">
+ <src path="${src.core}"/>
+ <src path="${src.components}"/>
+ <src path="${src.functions}"/>
+ <src path="${src.http}"/>
+ <src path="${src.ftp}"/>
+ <src path="${src.jdbc}"/>
+ <src path="${src.java}"/>
+ <include name="**/*.java"/>
+ <exclude name="org/apache/jmeter/util/JsseSSLManager.java"
+ unless="jsse.present"/>
+ <exclude name="org/apache/jmeter/util/IaikSSLManager.java"
+ unless="isasilk.present"/>
+ <exclude name="org/apache/jmeter/util/keystore/PKCS12KeyStore.java"
+ unless="isasilk.present"/>
+ <exclude name="org/apache/jmeter/util/keystore/DefaultKeyStore.java"
+ unless="jsse.present"/>
+ <exclude name="org/apache/jmeter/visualizers/MailerVisualizer.java"
+ unless="javamail.complete"/>
+ <exclude
name="org/apache/jmeter/reporters/MailerResultCollector.java"
+ unless="javamail.complete"/>
+ <classpath refid="classpath"/>
+ </javac>
+ </target>
+
+ <target name="compile_core" depends="init,compile_all">
+ <copy tofile="${src.core}/org/apache/jmeter/util/JMeterUtils.java_temp"
+
file="${src.core}/org/apache/jmeter/util/JMeterUtils.java"
overwrite="yes"/>
- <replace
file="${sources.src.dir}/org/apache/jmeter/util/JMeterUtils.java"
+ <replace file="${src.core}/org/apache/jmeter/util/JMeterUtils.java"
token="@VERSION@"
value="${version}"/>
- <javac srcdir="${sources.src.dir}"
- destdir="${classes.dest.dir}"
+ <javac srcdir="${src.core}"
+ destdir="${build.core}"
optimize="${optimize}"
debug="on"
target="1.3">
- <exclude name="**/*.df*"/>
- <exclude name="**/*.html"/>
- <exclude name="**/*.tpr"/>
- <exclude name="**/*.tws"/>
- <exclude name="**/make*"/>
- <exclude name="**/Makefile"/>
- <exclude name="**/Changelog*"/>
- <exclude name="**/*.orig"/>
+ <include name="**/*.java"/>
<exclude name="org/apache/jmeter/util/JsseSSLManager.java"
unless="jsse.present"/>
<exclude name="org/apache/jmeter/util/IaikSSLManager.java"
@@ -122,21 +178,95 @@
unless="javamail.complete"/>
<classpath refid="classpath"/>
</javac>
- <copy
tofile="${sources.src.dir}/org/apache/jmeter/util/JMeterUtils.java"
-
file="${sources.src.dir}/org/apache/jmeter/util/JMeterUtils.java_temp"
+ <copy tofile="${src.core}/org/apache/jmeter/util/JMeterUtils.java"
+
file="${src.core}/org/apache/jmeter/util/JMeterUtils.java_temp"
overwrite="yes"/>
- <delete
file="${sources.src.dir}/org/apache/jmeter/util/JMeterUtils.java_temp"/>
+ <delete
file="${src.core}/org/apache/jmeter/util/JMeterUtils.java_temp"/>
</target>
+
+ <target name="compile_components" depends="init,compile_all">
+ <javac srcdir="${src.components}"
+ destdir="${build.components}"
+ optimize="${optimize}"
+ debug="on"
+ target="1.3">
+ <include name="**/*.java"/>
+ <exclude name="org/apache/jmeter/visualizers/MailerVisualizer.java"
+ unless="javamail.complete"/>
+ <exclude
name="org/apache/jmeter/reporters/MailerResultCollector.java"
+ unless="javamail.complete"/>
+ <classpath refid="classpath"/>
+ </javac>
+ </target>
+
+ <target name="compile_functions" depends="init,compile_all">
+ <javac srcdir="${src.functions}"
+ destdir="${build.functions}"
+ optimize="${optimize}"
+ debug="on"
+ target="1.3">
+ <include name="**/*.java"/>
+ <classpath refid="classpath"/>
+ </javac>
+ </target>
+
+ <target name="compile_http" depends="init,compile_all">
+ <javac srcdir="${src.http}"
+ destdir="${build.http}"
+ optimize="${optimize}"
+ debug="on"
+ target="1.3">
+ <include name="**/*.java"/>
+ <classpath refid="classpath"/>
+ </javac>
+ </target>
+
+ <target name="compile_ftp" depends="init,compile_all">
+ <javac srcdir="${src.ftp}"
+ destdir="${build.ftp}"
+ optimize="${optimize}"
+ debug="on"
+ target="1.3">
+ <include name="**/*.java"/>
+ <classpath refid="classpath"/>
+ </javac>
+ </target>
+
+ <target name="compile_jdbc" depends="init,compile_all">
+ <javac srcdir="${src.jdbc}"
+ destdir="${build.jdbc}"
+ optimize="${optimize}"
+ debug="on"
+ target="1.3">
+ <include name="**/*.java"/>
+ <classpath refid="classpath"/>
+ </javac>
+ </target>
+
+ <target name="compile_java" depends="init,compile_all">
+ <javac srcdir="${src.java}"
+ destdir="${build.java}"
+ optimize="${optimize}"
+ debug="on"
+ target="1.3">
+ <include name="**/*.java"/>
+ <classpath refid="classpath"/>
+ </javac>
+ </target>
+
+ <target name="compile_protocols"
depends="compile_http,compile_ftp,compile_jdbc,compile_java"/>
+
+ <target name="compile"
depends="compile_core,compile_components,compile_functions,compile_protocols"/>
<target name="rmi" depends="compile">
- <rmic base="bin/classes"
classname="org.apache.jmeter.engine.RemoteJMeterEngineImpl">
+ <rmic base="${build.core}"
classname="org.apache.jmeter.engine.RemoteJMeterEngineImpl">
<classpath>
<path refid="classpath"/>
- <pathelement path="bin/classes"/>
+ <pathelement path="${build.core}"/>
</classpath>
</rmic>
- <rmic classpath="bin/classes" base="bin/classes"
classname="org.apache.jmeter.samplers.RemoteSampleListenerImpl"/>
+ <rmic classpath="${build.core}" base="${build.core}"
classname="org.apache.jmeter.samplers.RemoteSampleListenerImpl"/>
</target>
<!--
@@ -160,28 +290,33 @@
- Creates the ApacheJMeter.jar file.
-->
<target name="package" depends="compile,rmi">
- <copy toDir="${classes.dest.dir}/org/apache/jmeter/images">
- <fileset dir="${sources.src.dir}/org/apache/jmeter/images"/>
+ <copy toDir="${build.core}/org/apache/jmeter/images">
+ <fileset dir="${src.core}/org/apache/jmeter/images"/>
</copy>
- <copy toDir="${classes.dest.dir}/org/apache/jmeter/resources">
- <fileset dir="${sources.src.dir}/org/apache/jmeter/resources">
+ <copy toDir="${build.core}/org/apache/jmeter/resources">
+ <fileset dir="${src.core}/org/apache/jmeter/resources">
<exclude name="*eucJP*"/>
</fileset>
</copy>
- <copy toFile="${classes.dest.dir}/org/apache/jmeter/help.txt"
- file="${sources.src.dir}/org/apache/jmeter/help.txt"/>
+ <copy toFile="${build.core}/org/apache/jmeter/help.txt"
+ file="${src.core}/org/apache/jmeter/help.txt"/>
<mkdir dir="./lib/ext/"/>
- <jar jarfile="./lib/ext/ApacheJMeter_core.jar" excludes="**/NewDriver*"
manifest="${sources.src.dir}/MANIFEST" basedir="${classes.dest.dir}"/>
- <jar jarfile="ApacheJMeter.jar" includes="**/NewDriver*"
manifest="${sources.src.dir}/MANIFEST" basedir="${classes.dest.dir}"/>
</target>
+ <jar jarfile="./lib/ext/ApacheJMeter_core.jar" excludes="**/NewDriver*"
manifest="${src.core}/MANIFEST" basedir="${build.core}"/>
+ <jar jarfile="bin/ApacheJMeter.jar" includes="**/NewDriver*"
manifest="${src.core}/MANIFEST" basedir="${build.core}"/>
+ <jar jarfile="./lib/ext/ApacheJMeter_components.jar"
basedir="${build.components}"/>
+ <jar jarfile="./lib/ext/ApacheJMeter_functions.jar"
basedir="${build.functions}"/>
+ <jar jarfile="./lib/ext/ApacheJMeter_http.jar" basedir="${build.http}"/>
+ <jar jarfile="./lib/ext/ApacheJMeter_ftp.jar" basedir="${build.ftp}"/>
+ <jar jarfile="./lib/ext/ApacheJMeter_jdbc.jar" basedir="${build.jdbc}"/>
+ <jar jarfile="./lib/ext/ApacheJMeter_java.jar" basedir="${build.java}"/>
+ </target>
<!--
- Copies the jar file to bin/ and everything else needed to run JMeter
- from bin/.
-->
<target name="install" depends="package">
- <copy file="ApacheJMeter.jar" toFile="bin/ApacheJMeter.jar"/>
- <delete file="ApacheJMeter.jar"/>
<fixcrlf srcdir="." eol="lf" includes="**/jmeter,**/jmeter-server" />
</target>
@@ -203,14 +338,14 @@
<zip zipfile="../ApacheJMeter_${version}.zip">
<fileset dir="../">
<include name="jakarta-jmeter/**"/>
+ <exclude name="**/build/**"/>
<exclude name="**/classes*/**"/>
<exclude name="**/xdocs/**"/>
<exclude name="jakarta-jmeter/ext/**"/>
- <exclude name="**/src/**"/>
</fileset>
</zip>
<tar tarfile="../ApacheJMeter_${version}.tar" basedir=".."
includes="jakarta-jmeter/**"
-
excludes="**/classes*/**,**/xdocs/**,jakarta-jmeter/ext/**,**/src/**"/>
+
excludes="**/classes*/**,**/xdocs/**,jakarta-jmeter/ext/**,**/build/**"/>
<gzip zipfile="$../ApacheJMeter_${version}.tar.gz"
src="../ApacheJMeter_${version}.tar" />
</target>
@@ -219,7 +354,8 @@
-->
<target name="clean">
<delete file="bin/ApacheJMeter.jar"/>
- <delete dir="${classes.dest.dir}"/>
+ <delete dir="lib/ext"/>
+ <delete dir="${build.dir}"/>
<delete dir="${docs.api.dest.dir}"/>
</target>
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>