You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by th...@apache.org on 2008/09/28 02:26:40 UTC

svn commit: r699760 - in /labs/droids/branch/LABS-144: build.xml default.properties

Author: thorsten
Date: Sat Sep 27 17:26:40 2008
New Revision: 699760

URL: http://svn.apache.org/viewvc?rev=699760&view=rev
Log:
LABS-144 Preparing the split for the build files

Modified:
    labs/droids/branch/LABS-144/build.xml
    labs/droids/branch/LABS-144/default.properties

Modified: labs/droids/branch/LABS-144/build.xml
URL: http://svn.apache.org/viewvc/labs/droids/branch/LABS-144/build.xml?rev=699760&r1=699759&r2=699760&view=diff
==============================================================================
--- labs/droids/branch/LABS-144/build.xml (original)
+++ labs/droids/branch/LABS-144/build.xml Sat Sep 27 17:26:40 2008
@@ -60,26 +60,56 @@
 <!-- will generate the properties file which we need to substitute all of our 
     variables (@var@) -->
   <target name="droids.properties">
+    <!-- If possible, include the svnversion -->
+     <exec dir="." executable="${svnversion.exe}" outputproperty="build.current.revision"
+       failifexecutionfails="false">
+      <arg line="${basedir}"/>
+       <redirector>
+           <outputfilterchain>
+             <tokenfilter>
+                 <replaceregex pattern="^([0-9]*):.*" replace="\1" flags="g"/>
+             </tokenfilter>
+          </outputfilterchain>
+        </redirector>
+     </exec>
     <echoproperties destfile="${build.dir}/droids.properties"/>
   </target>
   <!-- ====================================================== -->
   <!-- Compile the Java files                                 -->
   <!-- ====================================================== -->
-  <target name="droids.compile" depends="droids.compile-core" description="--> Will compile/deploy the droids core"/>
-<!-- ,ivy.resolve -->
-  <target name="droids.compile-core" depends="droids.init,droids.properties" description="--> Will compile the droids core" >
-    <javac 
+  
+  <!-- Macro for compilation -->
+  <macrodef name="droids-javac">
+    <attribute name="srcdir" />
+    <attribute name="destdir" />
+    <attribute name="classpathref" />
+    <element name="nested" optional="true" implicit="true" />
+    <sequential>
+      <mkdir dir="@{destdir}" />
+      <javac 
      encoding="${build.encoding}" 
-     srcdir="${src.dir.core}"
-     includes="org/apache/droids/**/*.java"
-     destdir="${build.classes}"
+     srcdir="@{srcdir}"
+     includes="org/apache/**/*.java"
+     destdir="@{destdir}"
      debug="${javac.debug}"
      optimize="${javac.optimize}"
      target="${javac.version}"
      source="${javac.version}"
      deprecation="${javac.deprecation}">
-      <classpath refid="droids.classpath"/>
+      <classpath refid="@{classpathref}"/>
     </javac>
+    </sequential>
+  </macrodef>
+
+  
+ <!-- <target name="droids.compile" 
+    depends="droids.compile-core,droids.compile-dynamics,droids.compile-plugins,droids.compile-robots,droids.compile-example" 
+    description="-> Will compile/deploy the droids core"/>-->
+  <target name="droids.compile" 
+    depends="droids.compile-core,droids.compile-example" 
+    description="-> Will compile/deploy the droids core"/>
+  <target name="droids.compile-core" depends="droids.init,droids.properties" description="-> Will compile the droids core" >
+    <droids-javac destdir="${build.classes}" srcdir="${src.dir.core}" classpathref="droids.classpath" />
     <filter filtersfile="${build.dir}/droids.properties"/>
     <copy todir="${build.classes}" preservelastmodified="true" filtering="true">
       <fileset dir="${src.dir.core}" includes="**/*.properties,**/*.xml,**/*.txt"/>
@@ -87,52 +117,121 @@
   </target>
   <!-- Examples -->
 	<target name="droids.compile-example" depends="droids.compile-core" description="-> Will compile the droids examples" >
-    <javac 
-     encoding="${build.encoding}" 
-     srcdir="${src.dir.example}"
-     includes="org/apache/droids/**/*.java"
-     destdir="${build.classesExample}"
-     debug="${javac.debug}"
-     optimize="${javac.optimize}"
-     target="${javac.version}"
-     source="${javac.version}"
-     deprecation="${javac.deprecation}">
-      <classpath refid="droids.classpath"/>
-    </javac>
+    <droids-javac destdir="${build.classesExample}" srcdir="${src.dir.example}" classpathref="droids.classpath" />
     <filter filtersfile="${build.dir}/droids.properties"/>
     <copy todir="${build.classesExample}" preservelastmodified="true" filtering="true">
       <fileset dir="${src.dir.example}" includes="**/*.properties,**/*.xml,**/*.txt"/>
     </copy>
   </target>
-	<target name="droids.crawl" description="-> Will invoke the crawling.">
-	    <java classname="org.apache.droids.Cli" fork="true" dir="${build.dir}"
-	      maxmemory="${droids.maxmemory}" failonerror="true"
-	      resultproperty="buildResult">
-	      <arg value="${droids.name}"/>
-	      <arg value="${droids.spring.context}"/> 
-	      <classpath>
-	        <path refid="droids.classpath"/>
-	      </classpath>
-	    </java>
-	  </target>
+  <!--<!-#- dynamics -#->
+  <target name="droids.compile-dynamics" depends="droids.compile-core" description="-> Will compile the droids core" >
+    <droids-javac destdir="${build.classes.dynamics}" srcdir="${src.dir.dynamics}" classpathref="droids.classpath" />
+    <filter filtersfile="${build.dir}/droids.properties"/>
+    <copy todir="${build.classes.dynamics}" preservelastmodified="true" filtering="true">
+      <fileset dir="${src.dir.dynamics}" includes="**/*.properties,**/*.xml,**/*.txt"/>
+    </copy>
+  </target>
+  <!-#- plugins -#->
+  <target name="droids.compile-plugins" depends="droids.compile-core" description="-> Will compile the droids core" >
+    <droids-javac destdir="${build.classes.plugins}" srcdir="${src.dir.plugins}" classpathref="droids.classpath" />
+    <filter filtersfile="${build.dir}/droids.properties"/>
+    <copy todir="${build.classes.plugins}" preservelastmodified="true" filtering="true">
+      <fileset dir="${src.dir.plugins}" includes="**/*.properties,**/*.xml,**/*.txt"/>
+    </copy>
+  </target>
+  <!-#- robots -#->
+  <target name="droids.compile-robots" depends="droids.compile-core" description="-> Will compile the droids core" >
+    <droids-javac destdir="${build.classes.robots}" srcdir="${src.dir.robots}" classpathref="droids.classpath" />
+    <filter filtersfile="${build.dir}/droids.properties"/>
+    <copy todir="${build.classes.robots}" preservelastmodified="true" filtering="true">
+      <fileset dir="${src.dir.robots}" includes="**/*.properties,**/*.xml,**/*.txt"/>
+    </copy>
+  </target>-->
   
-  <target name="droids.jar" depends="droids.compile-core,droids.compile-example" description="-> Make droids.jar">
-    <jar jarfile="${build.dir}/${final.name}.jar"
-         basedir="${build.classes}">
-      <manifest>
-        <attribute name="Main-Class" value="org.apache.droids.Cli"/>
-        <section name="org/apache/droids/">
-          <attribute name="Comment" value="Support classes for Apache Droids"/>
-          <attribute name="Implementation-Title" value="org.apache.droids"/>
-          <attribute name="Implementation-Version" value="${final.name} "/> 
-          <attribute name="Implementation-Vendor" value="The Apache Software Foundation"/>
-          <attribute name="Implementation-URL" value="http://labs.apache.org/droids/"/>
-        </section>
-      </manifest>
-    </jar>
+  <!-- ====================================================== -->
+  <!-- Jar the Java files                                 -->
+  <!-- ====================================================== -->
+  <!-- Creates a Manifest file for Jars -->
+  <macrodef name="make-manifest">
+    <attribute name="class-dir" default="${build.classes}" />
+    <element name="nested" optional="true" implicit="true" />
+    <sequential>
+     <mkdir dir="@{class-dir}/META-INF/" />
+     <manifest mode="replace" file="@{class-dir}/META-INF/MANIFEST.MF">
+        <!--
+        http://java.sun.com/j2se/1.5.0/docs/guide/jar/jar.html#JAR%20Manifest
+        http://java.sun.com/j2se/1.5.0/docs/guide/versioning/spec/versioning2.html
+        http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Package.html
+        http://java.sun.com/j2se/1.5.0/docs/api/java/util/jar/package-summary.html
+        http://java.sun.com/developer/Books/javaprogramming/JAR/basics/manifest.html
+        -->
+        <!-- Don't set 'Manifest-Version' it identifies the version of the
+             manifest file format, and should always be 1.0 (the default)
+
+             Don't set 'Created-by' attribute, its purpose is 
+             to identify the version of java used to build the jar,
+             which ant will do by default.
+
+             Ant will happily override these with bogus strings if you
+             tell it to, so don't.
+
+             NOTE: we don't use section info because all of our manifest data
+             applies to the entire jar/war ... no package specific info.
+        -->
+       <attribute name="Comment" 
+                   value="Support classes for Apache Droids"/>
+        <attribute name="Extension-Name" 
+                   value="org.apache.droids"/>
+        <attribute name="Specification-Title" 
+                   value="Apache Droids Robot Framework"/>
+        <!-- spec version must match "digit+{.digit+}*" -->
+        <attribute name="Specification-Version" 
+                   value="${specversion}"/>
+        <attribute name="Specification-Vendor" 
+                   value="The Apache Software Foundation"/>
+        <attribute name="Implementation-Title" 
+                   value="org.apache.droids"/>
+        <!-- impl version can be any string -->
+        <attribute name="Implementation-Version" 
+                   value="${final.name} ${svnversion} - ${user.name} "/>
+        <attribute name="Implementation-Vendor" 
+                   value="The Apache Software Foundation"/>
+
+        <attribute name="X-Compile-Source-JDK" 
+                   value="${java.compat.version}"/>
+        <attribute name="X-Compile-Target-JDK" 
+                   value="${java.compat.version}"/>
+     </manifest>
+    </sequential>
+  </macrodef>
+  <!-- Macro for building Jars -->
+  <macrodef name="droids-jar">
+    <attribute name="destfile" />
+    <attribute name="srcdir" default="${build.classes}" />
+    <attribute name="includes" default="org/apache/**" />
+    <attribute name="excludes" default="" />
+    <attribute name="manifest" default="@{srcdir}/META-INF/MANIFEST.MF" />
+    <element name="nested" optional="true" implicit="true" />
+    <sequential>
+      <make-manifest class-dir="@{srcdir}"/>
+      <jar destfile="@{destfile}"
+           basedir="@{srcdir}"
+           includes="@{includes}"
+           excludes="@{excludes}"
+           filesetmanifest="skip"
+           manifest="@{manifest}">
+        <metainf dir="${basedir}" includes="LICENSE.txt"/>
+        <nested />
+      </jar>
+    </sequential>
+  </macrodef>
+  <!-- Creates the droids jars. -->
+  <target name="droids.jar" depends="droids.compile-core" description="-> Make droids.jar">
+    <droids-jar destfile="${build.dir}/${final.name}.jar"/>
   </target>
   <target name="droids.example.jar" depends="droids.compile-example" description="-> Make droids-example.jar">
-    <jar jarfile="${build.dir}/${final.name}-example.jar"
+    <droids-jar destfile="${build.dir}/${final.name}-example.jar" srcdir="${build.classesExample}" />
+    <!--<jar jarfile="${build.dir}/${final.name}-example.jar"
          basedir="${build.classesExample}">
       <manifest>
         <section name="org/apache/droids/">
@@ -143,7 +242,7 @@
           <attribute name="Implementation-URL" value="http://labs.apache.org/droids/"/>
         </section>
       </manifest>
-    </jar>
+    </jar>-->
     <copy todir="${lib.dir}">
       <fileset dir="${build.dir}" includes="${final.name}-example.jar"/>
     </copy>
@@ -203,5 +302,17 @@
   <target name="droids.clean" description="-> Delete the build files, and their directories">
     <delete dir="${build.dir}"/>
   </target>
+  
+  <target name="droids.crawl" description="-> Will invoke the crawling.">
+	    <java classname="org.apache.droids.Cli" fork="true" dir="${build.dir}"
+	      maxmemory="${droids.maxmemory}" failonerror="true"
+	      resultproperty="buildResult">
+	      <arg value="${droids.name}"/>
+	      <arg value="${droids.spring.context}"/> 
+	      <classpath>
+	        <path refid="droids.classpath"/>
+	      </classpath>
+	    </java>
+	  </target>
 
 </project>

Modified: labs/droids/branch/LABS-144/default.properties
URL: http://svn.apache.org/viewvc/labs/droids/branch/LABS-144/default.properties?rev=699760&r1=699759&r2=699760&view=diff
==============================================================================
--- labs/droids/branch/LABS-144/default.properties (original)
+++ labs/droids/branch/LABS-144/default.properties Sat Sep 27 17:26:40 2008
@@ -55,12 +55,17 @@
 Name=Droids
 name=droids
 version=initial
-final.name=${name}-${version}
+final.name=${name}-${version}-r${build.current.revision}
 year=2008
 
+svnversion.exe=svnversion
+
 basedir = ./
 src.dir.core = ${basedir}/src/core/java
 src.dir.example = ${basedir}/src/examples/java
+src.dir.dynamics = ${basedir}/src/dynamics/java
+src.dir.plugins = ${basedir}/src/plugins/java
+src.dir.robots = ${basedir}/src/robots/java
 lib.dir = ${basedir}/lib
 conf.dir = ${basedir}/conf
 docs.dir = ${basedir}/docs
@@ -68,8 +73,12 @@
 xmlcatalog.dir = ${basedir}/src/xmlcatalog
 
 build.dir = ${basedir}/build
-build.classes = ${build.dir}/classes
-build.classesExample = ${build.dir}/classesExample
+build.classes = ${build.dir}/classes/core
+build.classesExample = ${build.dir}/classes/example
+build.classes.dynamics = ${build.dir}/classes/dynamics
+build.classes.plugins = ${build.dir}/classes/plugins
+build.classes.robots = ${build.dir}/classes/robots
+
 build.webapps = ${build.dir}/webapps
 build.plugins = ${build.dir}/plugins
 build.docs = ${build.dir}/docs



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org