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]>

Reply via email to