You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@river.apache.org by jc...@apache.org on 2009/04/17 12:25:49 UTC

svn commit: r765935 [2/5] - in /incubator/river/jtsk/skunk/jcosters: build.properties build.xml common.xml integrationtest.xml qa/build.xml

Modified: incubator/river/jtsk/skunk/jcosters/build.xml
URL: http://svn.apache.org/viewvc/incubator/river/jtsk/skunk/jcosters/build.xml?rev=765935&r1=765934&r2=765935&view=diff
==============================================================================
--- incubator/river/jtsk/skunk/jcosters/build.xml (original)
+++ incubator/river/jtsk/skunk/jcosters/build.xml Fri Apr 17 10:25:49 2009
@@ -18,97 +18,91 @@
  !-->
 
 <!-- ################################################################## -->
-<!-- ##									-->
-<!-- ## Building Apache River						-->
-<!-- ## _____________________						-->
-<!-- ##									-->
-<!-- ## Refer to doc/build.html to obtain detailed instructions for	-->
-<!-- ##	building the Apache River source distribution.			-->
-<!-- ##									-->
+<!-- ##                                                                 -->
+<!-- ## Building Apache River                                           -->
+<!-- ## _____________________                                           -->
+<!-- ##                                                                 -->
+<!-- ## Refer to doc/build.html to obtain detailed instructions for     -->
+<!-- ##	building the Apache River source distribution.                  -->
+<!-- ##                                                                 -->
 <!-- ################################################################## -->
-<project name="River" basedir="." default="all">
-    <description>
-    </description>
-    <property environment="env"/>
-    <property file="build.properties"/>
-    <import file="integrationtest.xml" optional="true"/>
-    <target name="all"
-		description="Builds all sources."
-		depends="setup-all,
-			 configentry,
-			 compile,
-			 copy-resources,
-			 stubs">
-    </target>
+<project name="river" basedir="." default="all">
+
+    <description>Apache River is a project furthering the development
+        and advancement of Jini technology.</description>
+
+    <!-- import common settings and macros -->
+    <import file="common.xml" optional="true"/>
+
+    <!-- distribution settings -->
+    <property name="doc" value="doc"/>
+    <property name="src" value="src"/>
+    <property name="configentry" value="configentry"/>
+    <property name="lib" value="lib"/>
+    <property name="lib-dl" value="lib-dl"/>
+    <property name="lib-ext" value="lib-ext"/>
+    <property name="doc.spec.api" value="${doc}/specs/api"/>
+    <property name="doc.api" value="${doc}/api"/>
+    <property name="dist" value="dist"/>
+    <property name="bin.tar.bundle" location="${dist}/${product.name}-bin.tar.gz"/>
+    <property name="bin.zip.bundle" location="${dist}/${product.name}-bin.zip"/>
+    <property name="src.tar.bundle" location="${dist}/${product.name}-src.tar.gz"/>
+    <property name="src.zip.bundle" location="${dist}/${product.name}-src.zip"/>
+
+    <!-- directory settings -->
+    <property name="doc.api.dir" location="${doc.api}"/>
+    <property name="doc.spec.api.dir" location="${doc.spec.api}"/>
+    <property name="src.dir" location="${src}"/>
+    <property name="src.manifest.dir" location="${src}/manifest"/>
+    <property name="src.configentry.dir" location="${src}/configentry"/>
+    <property name="build.dir" location="build"/>
+    <property name="build.classes.dir" location="${build.dir}/classes"/>
+    <property name="build.deps.dir" location="${build.dir}/deps"/>
+    <property name="configentry.dir" location="${configentry}"/>
+    <property name="dist.dir" location="dist"/>
+    <property name="lib.dir" location="${lib}"/>
+    <property name="lib-dl.dir" location="${lib-dl}"/>
+    <property name="lib-ext.dir" location="${lib-ext}"/>
+
+    <!-- javadoc options -->
+    <property name="jdk-doc-url" value="http://java.sun.com/j2se/1.4.2/docs/api"/>
+    <property name="jdk-packages" value="${build.doc}/j2se"/>
+    <property name="api-doc-title" value="Apache River v${version} API Documentation"/>
+    <property name="api-win-title" value="${api-doc-title}"/>
+    <property name="spec-doc-title" value="Apache River v${version} Specifications"/>
+    <property name="spec-win-title" value="${spec-doc-title}"/>
+
+    <path id="river.classpath">
+        <pathelement path="${build.classes.dir}"/>
+    </path>
+
+    <path id="compile.classpath">
+        <pathelement location="tools/asm-3.1.jar"/>
+        <pathelement location="tools/asm-commons-3.1.jar"/>
+    </path>
+
+    <path id="classdep.classpath">
+        <path refid="river.classpath"/>
+        <path refid="compile.classpath"/>
+    </path>
+
+    <path id="javadoc.classpath" refid="classdep.classpath"/>
+
     <target name="copy-resources"
 		description="Copies various resources directories to the classes dir."
 		depends="start.copy-resources, tools.copy-resources">
     </target>
-    <target name="clean"
-		description="Removes all files and dirs created by the build."
-		depends="clean.all">
-    </target>
-    <target name="setup-all"
-		description="Initializes common environment"
-		depends="setup-dirs,
-			 setup-paths,
-			 deps">
-    </target>
-    <target name="env"
-		description="Initializes the build environment."
-		depends="">
-      
-        <!-- ## The default JDK version on Mac OSX does not have a		-->
-        <!-- ## tools.jar, in which case we'll use dt.jar .  However, if an	-->
-        <!-- ## alternate version of the JDK has been installed, we'll try	-->
-        <!-- ## to use tools.jar if it exists.					-->
-        <condition property="jdk-tools-jar" value="${env.JAVA_HOME}/lib/dt.jar">
-            <and>
-                <os family="mac"/>
-                <not>
-                    <available file="${env.JAVA_HOME}/lib/tools.jar"/>
-                </not>
-            </and>
-        </condition>
-        <condition property="jdk-tools-jar" value="${env.JAVA_HOME}/lib/tools.jar">
-            <not>
-                <os family="mac"/>
-            </not>
-        </condition>
-        <property name="jre-ext-dir" location="${env.JAVA_HOME}/jre/lib/ext"/>
-      
-	<!-- ## javac options	-->
-        <condition property="env.JAVADEBUG" value="lines,source,vars">
-            <not>
-                <isset property="env.JAVADEBUG"/>
-            </not>
-        </condition>
-      
-	<!-- ## Display some of our property settings:	-->
-        <echo message="JAVA_HOME:		${env.JAVA_HOME}"/>
-        <echo message="java.home:		${java.home}"/>
-        <echo message="Java  Ver:		${ant.java.version}"/>
-    </target>
-    <target name="build.release"
-		description=""
-		depends="all,
-			 jars,
-			 doc,
-			 spec-doc,
-			 release">
-    </target>
-    <target name="release"
-		description=""
-		depends="release.bin,
-			 release.src">
-    </target>
-    <target name="release.bin"
-		description=""
-		depends="env">
-        <mkdir dir="${dist}"/>
+
+    <target name="release" description="Create a release"
+		depends="release-src, release-bin">
+    </target>
+
+    <target name="release-bin" description="Create a binary release"
+		depends="all">
+        <mkdir dir="${dist.dir}"/>
         <delete file="${bin.zip.bundle}"/>
         <zip destfile="${bin.zip.bundle}">
-            <zipfileset dir="${basedir}" prefix="${install.dir}">
+            <zipfileset dir="${basedir}" prefix="${product.name}">
                 <include name="index.html"/>
                 <include name="DISCLAIMER"/>
                 <include name="LICENSE"/>
@@ -122,20 +116,25 @@
                 <include name="${doc}/simpleproxyverification.pdf"/>
                 <include name="${doc}/smartproxyverification.pdf"/>
                 <include name="${doc}/spec-index.html"/>
-                <include name="${doc}/specs/**/*"/>
+                <include name="${doc}/specs/**"/>
                 <include name="${doc.api}/**"/>
                 <include name="${lib}/**"/>
                 <include name="${lib-dl}/**"/>
                 <include name="${lib-ext}/**"/>
                 <include name="${configentry}/**"/>
             </zipfileset>
+            <zipfileset dir="${basedir}/qa" prefix="${product.name}/qa">
+                <include name="${lib}/**"/>
+                <include name="${lib-ext}/**"/>
+                <include name="${doc}/**"/>
+                <!-- is this needed? -->
+                <include name="harness/**"/>
+                <include name="README.txt"/>
+            </zipfileset>
         </zip>
         <delete file="${bin.tar.bundle}"/>
-        <!-- TODO: Investigate how to deal with the tar task's 100-character limitation. -->
-        <tar destfile="${bin.tar.bundle}"
-         compression="gzip"
-         longfile="gnu">
-            <tarfileset dir="${basedir}" prefix="${install.dir}">
+        <tar destfile="${bin.tar.bundle}" compression="gzip" longfile="gnu">
+            <tarfileset dir="${basedir}" prefix="${product.name}">
                 <include name="index.html"/>
                 <include name="DISCLAIMER"/>
                 <include name="LICENSE"/>
@@ -156,22 +155,28 @@
                 <include name="${lib-ext}/**"/>
                 <include name="${configentry}/**"/>
             </tarfileset>
+            <tarfileset dir="${basedir}/qa" prefix="${product.name}/qa">
+                <include name="${lib}/**"/>
+                <include name="${lib-ext}/**"/>
+                <include name="${doc}/**"/>
+                <!-- is this needed? -->
+                <include name="harness/**"/>
+                <include name="README.txt"/>
+            </tarfileset>
         </tar>
     </target>
-    <target name="release.src"
-		description=""
-		depends="env">
-        <mkdir dir="${dist}"/>
+
+    <target name="release-src" description="Create a source release">
+        <mkdir dir="${dist.dir}"/>
         <delete file="${src.zip.bundle}"/>
         <zip destfile="${src.zip.bundle}">
-            <zipfileset dir="." prefix="${install.dir}">
+            <zipfileset dir="${basedir}" prefix="${product.name}" >
                 <include name="index.html"/>
                 <include name="build.xml"/>
-                <include name="build_common.xml"/>
+                <include name="common.xml"/>
                 <include name="DISCLAIMER"/>
                 <include name="LICENSE"/>
                 <include name="NOTICE"/>
-                <include name="${doc}/arch2_0.html"/>
                 <include name="${doc}/info-index.html"/>
                 <include name="${doc}/build.html"/>
                 <include name="${doc}/j2se/**"/>
@@ -187,19 +192,27 @@
                 <exclude name="${src}/**/*.sh"/>
             </zipfileset>
             <zipfileset dir="${basedir}"
-				    prefix="${install.dir}"
+				    prefix="${product.name}"
 				    includes="${src}/**/*.sh"
 				    filemode="755"/>
+            <zipfileset dir="${basedir}/qa" prefix="${product.name}/qa">
+                <include name="${src}/**"/>
+                <include name="harness/**"/>
+                <!-- TODO investigate the source under this directory -->
+                <include name="jtreg/**"/>
+                <include name="${doc}/**"/>
+                <exclude name="${doc}/api"/>
+                <exclude name="${doc}/api/**"/>
+                <include name="build.xml"/>
+                <include name="README.txt"/>
+            </zipfileset>
         </zip>
         <delete file="${src.tar.bundle}"/>
-        <!-- TODO: investigate how to deal with the tar task's 100-character limitation. -->
-        <tar destfile="${src.tar.bundle}"
-		     compression="gzip"
-		     longfile="gnu">
+        <tar destfile="${src.tar.bundle}" compression="gzip" longfile="gnu">
             <tarfileset dir="${basedir}" prefix="${install.dir}">
                 <include name="index.html"/>
                 <include name="build.xml"/>
-                <include name="build_common.xml"/>
+                <include name="common.xml"/>
                 <include name="DISCLAIMER"/>
                 <include name="LICENSE"/>
                 <include name="NOTICE"/>
@@ -217,156 +230,52 @@
                 <include name="${doc}/specs/html/**"/>
                 <include name="${src}/**"/>
             </tarfileset>
+            <tarfileset dir="${basedir}/qa" prefix="${product.name}/qa">
+                <include name="${src}/**"/>
+                <include name="harness/**"/>
+                <!-- TODO investigate the source under this directory -->
+                <include name="jtreg/**"/>
+                <include name="${doc}/**"/>
+                <exclude name="${doc}/api"/>
+                <exclude name="${doc}/api/**"/>
+                <include name="build.xml"/>
+                <include name="README.txt"/>
+            </tarfileset>
         </tar>
     </target>
-    <target name="setup-dirs"
-		description="Creates dirs, paths, etc."
-		depends="env">
-        <!-- ## Create build directory structure -->
-        <mkdir dir="${build}"/>
-        <mkdir dir="${build.classes}"/>
-        <mkdir dir="${build.deps}"/>
-        <mkdir dir="${configentry}"/>
-        <mkdir dir="${doc.api}"/>
-        <mkdir dir="${doc.spec.api}"/>
-        <mkdir dir="${lib}"/>
-        <mkdir dir="${lib-dl}"/>
-        <mkdir dir="${lib-ext}"/>
-    </target>
-    <target name="setup-paths"
-		description="Creates path based properties"
-		depends="env">
-        <path id="path.jini">
-            <pathelement path="${build.classes}"/>
-        </path>
-        <path id="path.tools">
-            <pathelement path="${build.classes}"/>
-            <pathelement location="${jdk-tools-jar}"/>
-        </path>
-        <path id="path.apidoc">
-            <path refid="path.jini"/>
-            <path refid="path.tools"/>
-        </path>
-        <path id="path.classdep">
-            <pathelement path="${build.classes}"/>
-            <pathelement path="${src}"/>
-            <pathelement location="${jdk-tools-jar}"/>
-        </path>
-      
-        <!-- ## initialize patterns...	-->
-        <patternset id="pattern.nomakefiles">
-            <exclude name="**/GNUmakefile*"/>
-        </patternset>
-        <property name="tools-source" value="com/sun/jini/tool/**/*.java"/>
-        <patternset id="tools.source">
-            <include name="${tools-source}"/>
-        </patternset>
-        <condition property="java-source" value="**/*.java">
-            <not>
-                <isset property="java-source"/>
-            </not>
-        </condition>
-        <patternset id="java.source">
-            <include name="${java-source}"/>
-        </patternset>
+
+    <target name="prep" depends="deps" 
+            description="Create build directory structure">
+        <mkdir dir="${build.dir}"/>
+        <mkdir dir="${build.classes.dir}"/>
+        <mkdir dir="${build.deps.dir}"/>
+        <mkdir dir="${configentry.dir}"/>
+        <mkdir dir="${doc.api.dir}"/>
+        <mkdir dir="${doc.spec.api.dir}"/>
+        <mkdir dir="${lib.dir}"/>
+        <mkdir dir="${lib-dl.dir}"/>
+        <mkdir dir="${lib-ext.dir}"/>
     </target>
-    <target name="deps"
-	  description="Verifies build dependencies"
-	  depends="">
-      
-	<!-- ## verify JDK version	-->
-        <condition property="unsupported-jdk">
+
+    <target name="deps" description="Verify build dependencies">
+        <!-- verify JDK version	-->
+        <condition property="unsupported.jdk">
             <or>
                 <equals arg1="${ant.java.version}" arg2="1.1"/>
                 <equals arg1="${ant.java.version}" arg2="1.2"/>
                 <equals arg1="${ant.java.version}" arg2="1.3"/>
             </or>
         </condition>
-        <fail if="unsupported-jdk">
-      
-		${ant.project.name} requires Java 2 SDK 1.4 or greater to continue.
-        </fail>
-      
-	<!-- ##						-->
-	<!-- ## verify J2SDK installation directory	-->
-	<!-- ##						-->
-        <condition property="java-home-not-found">
-            <not>
-                <and>
-                    <isset property="env.JAVA_HOME"/>
-                    <available file="${jdk-tools-jar}"/>
-                </and>
-            </not>
-        </condition>
-        <fail if="java-home-not-found">
-	
-		A valid J2SDK installation could not be found at:
-			${env.JAVA_HOME}
-		
-		Please set the JAVA_HOME environment variable to point to the 
-		location of your J2SDK installation.
-        </fail>
-    </target>
-    <macrodef name="javac-cmd">
-        <attribute name="source.dir"/>
-        <attribute name="source.pat"/>
-        <attribute name="dest" default="${build.classes}"/>
-        <sequential>
-            <!-- ## Note the debug and debuglevel attribute settings.  The	-->
-            <!-- ## default for the "debug" attribute is "no" or "off"	-->
-            <!-- ## (in Ant version 1.6.2 at least).  That differs from the	-->
-            <!-- ## default for the actual javac command, which is "lines" 	-->
-            <!-- ## and "source", hence the need for the debug settings in	-->
-            <!-- ## the following javac task:				-->
-            <echo message='javac destdir="@{dest}"
-                                fork="yes"
-                                debug="yes"
-                                debuglevel="${env.JAVADEBUG}"
-                                deprecation="yes"
-                                nowarn="no"
-                                source="1.4"
-                                srcdir="@{source.dir}"
-                                target="1.4"
-                                verbose="no"'/>
-            <javac fork="yes"
-                    debug="yes"
-                    debuglevel="${env.JAVADEBUG}"
-                    deprecation="yes"
-                    destdir="@{dest}"
-                    nowarn="no"
-                    source="1.4"
-                    srcdir="@{source.dir}"
-                    target="1.4"
-                    verbose="no">
-                <classpath  refid="path.jini"/>
-                <patternset refid="@{source.pat}"/>
-            </javac>
-        </sequential>
-    </macrodef>
-    <macrodef name="preferredlistgen">
-        <element name="plg-elements" implicit="true"/>
-        <sequential>
-            <java classname="com.sun.jini.tool.PreferredListGen"
-			      classpath="${build.classes}"
-			      failonerror="true"
-			      fork="true">
-                <plg-elements/>
-            </java>
-        </sequential>
-    </macrodef>
-    <target name="javadoc"
-		description="For NetBeans compatibility."
-		depends="doc">
-    </target>
-    <target name="doc"
-		description="Generates the javadoc."
-		depends="setup-all">
-        <delete dir="${doc.api}" quiet="true"/>
-        <mkdir  dir="${doc.api}"/>
+        <fail if="unsupported.jdk">Building ${product.name} requires Java 2 SDK 1.4 or greater.</fail>
+    </target>
+
+    <target name="doc" description="Generate javadoc documentation"
+		depends="compile">
+        <delete dir="${doc.api.dir}" quiet="true"/>
+        <mkdir  dir="${doc.api.dir}"/>
         <javadoc author="true"
-			 bottom="${api-copyright}"
 			 breakiterator="yes"
-			 destdir="${doc.api}"
+			 destdir="${doc.api.dir}"
 			 doctitle="${api-doc-title}"
 			 linkoffline="${jdk-doc-url} ${jdk-packages}"
 			 serialwarn="yes"
@@ -378,12 +287,12 @@
 			     enabled="true"
 			     scope="packages,types"
 			     description="Implementation Specifics:"/>
-            <bottom></bottom>
-            <classpath refid="path.apidoc"/>
+            <bottom><![CDATA[${api-copyright}]]></bottom>
+            <classpath refid="javadoc.classpath"/>
             <sourcepath>
-                <pathelement path="${src}"/>
+                <pathelement path="${src.dir}"/>
             </sourcepath>
-            <fileset dir="${src}" includes="com/sun/jini/mahalo/MahaloPermission.java"/>
+            <fileset dir="${src.dir}" includes="com/sun/jini/mahalo/MahaloPermission.java"/>
             <package name="com.sun.jini.admin"/>
             <package name="com.sun.jini.config"/>
             <package name="com.sun.jini.discovery"/>
@@ -451,18 +360,19 @@
             <package name="net.jini.url.httpmd"/>
             <package name="net.jini.url.https"/>
         </javadoc>
-        <mkdir dir="${doc.api}/doc-files"/>
-        <copy file="./NOTICE" tofile="${doc.api}/doc-files/NOTICE"/>
+        <mkdir dir="${doc.api.dir}/doc-files"/>
+        <copy file="NOTICE" tofile="${doc.api.dir}/doc-files/NOTICE"/>
     </target>
+
     <target name="spec-doc"
-		description="Generates the specification-only javadoc."
-		depends="setup-all">
-        <delete dir="${doc.spec.api}" quiet="true"/>
-        <mkdir  dir="${doc.spec.api}"/>
+		description="Generates specification-only javadoc documentation"
+		depends="compile">
+        <delete dir="${doc.spec.api.dir}" quiet="true"/>
+        <mkdir  dir="${doc.spec.api.dir}"/>
         <javadoc author="true"
 			 bottom="${api-copyright}"
 			 breakiterator="yes"
-			 destdir="${doc.spec.api}"
+			 destdir="${doc.spec.api.dir}"
 			 doctitle="${spec-doc-title}"
 			 linkoffline="${jdk-doc-url} ${jdk-packages}"
 			 serialwarn="yes"
@@ -473,9 +383,9 @@
             <tag name="com.sun.jini.impl"
 			     enabled="false"
 			     description="ignore"/>
-            <classpath refid="path.apidoc"/>
+            <classpath refid="javadoc.classpath"/>
             <sourcepath>
-                <pathelement path="${src}"/>
+                <pathelement path="${src.dir}"/>
             </sourcepath>
             <package name="net.jini.activation"/>
             <package name="net.jini.config"/>
@@ -504,99 +414,107 @@
             <package name="net.jini.url.httpmd"/>
             <package name="net.jini.url.https"/>
         </javadoc>
-        <mkdir dir="${doc.spec.api}/doc-files"/>
-        <copy file="./NOTICE" tofile="${doc.spec.api}/doc-files/NOTICE"/>
+        <mkdir dir="${doc.spec.api.dir}/doc-files"/>
+        <copy file="NOTICE" tofile="${doc.spec.api.dir}/doc-files/NOTICE"/>
     </target>
-    <target name="jars"
-		description="Generates jar files for each sub-component."
-		depends="all, jini-core.jar,
-			 jini-ext.jar,
-			 jsk-dl.jar,
-			 jsk-lib.jar,
-			 jsk-resources.jar,
-			 jsk-platform.jar,
-			 jsk-policy.jar,
-			 sun-util.jar,
-			 toolwrappers,
-                        browser.jar,
-                        browser-dl.jar,
-                        destroy.jar,
-                        fiddler.jar,
-                        fiddler-dl.jar,
-                        group.jar,
-                        group-dl.jar,
-                        mahalo.jar,
-                        mahalo-dl.jar,
-                        mercury.jar,
-                        mercury-dl.jar,
-                        norm.jar,
-                        norm-dl.jar,
-                        outrigger.jar,
-                        outrigger-dl.jar,
-                        outrigger-snaplogstore.jar,
-                        phoenix.jar,
-                        phoenix-dl.jar,
-                        phoenix-group.jar,
-                        phoenix-init.jar,
-                        reggie.jar,
-                        reggie-dl.jar,
-                        sdm-dl.jar,
-                        serviceui.jar,
-                        sharedvm.jar,
-                        start.jar,
-                        client.jar,
+
+    <target name="jars"	description="Generates JAR files"
+		depends="river.jars,
+            toolswrappers.jars,
+            services.jars,
+            examples.jars" />
+
+    <target name="river.jars" depends="stubs,
+            jini-core.jar,
+			jini-ext.jar,
+			jsk-dl.jar,
+			jsk-lib.jar,
+			jsk-resources.jar,
+			jsk-platform.jar,
+			jsk-policy.jar,
+			sun-util.jar" />
+
+    <target name="services.jars" depends="toolswrappers.jars,
+            destroy.jar,
+            fiddler.jar,
+            fiddler-dl.jar,
+            group.jar,
+            group-dl.jar,
+            mahalo.jar,
+            mahalo-dl.jar,
+            mercury.jar,
+            mercury-dl.jar,
+            norm.jar,
+            norm-dl.jar,
+            outrigger.jar,
+            outrigger-dl.jar,
+            outrigger-snaplogstore.jar,
+            phoenix.jar,
+            phoenix-dl.jar,
+            phoenix-group.jar,
+            phoenix-init.jar,
+            reggie.jar,
+            reggie-dl.jar,
+            sdm-dl.jar,
+            serviceui.jar,
+            sharedvm.jar,
+            start.jar" />
+
+    <target name="examples.jars" depends="services.jars,
+            browser.jar,
+            browser-dl.jar,
+            client.jar,
 			mdprefld.jar,
 			server.jar,
 			server-act.jar,
-			server-dl.jar">
+			server-dl.jar" />
+
+    <target name="compile" description="Build classes"
+		depends="copy-resources">
+        <javac-cmd source.dir="${src.dir}" dest.dir="${build.classes.dir}">
+            <classpath refid="compile.classpath" />
+        </javac-cmd>
     </target>
-    <target name="build"
-		description="For NetBeans compatibility."
-		depends="compile">
+
+    <target name="install-policy"
+		description="Installs our policy jars into the JRE ext dir.">
+        <delete file="${jre.ext.dir}/jsk-policy.jar"/>
+        <copy file="${lib-ext.dir}/jsk-policy.jar"	todir="${jre.ext.dir}"/>
+    </target>
+    
+    <target name="uninstall-policy"
+		description="Removes our policy jars from the JRE ext dir.">
+        <delete file="${jre.ext.dir}/jsk-policy.jar"/>
     </target>
-    <target name="compile"
-		description="Compiles jini source"
-		depends="setup-all">
-        <echo message="Compiling sources: ${java-source} ..."/>
-        <javac-cmd source.dir="${src}" source.pat="java.source"/>
-    </target>
-    <target name="install.policy"
-		description="Installs our policy jars into the JRE ext dir."
-		depends="setup-all">
-        <delete file="${jre-ext-dir}/jsk-policy.jar"/>
-        <copy file="${lib-ext}/jsk-policy.jar"	todir="${jre-ext-dir}"/>
-    </target>
-    <target name="uninstall.policy"
-		description="Removes our policy jars from the JRE ext dir."
-		depends="env">
-        <delete file="${jre-ext-dir}/jsk-policy.jar"/>
-    </target>
-    <target name="stubs"
-		description="Generates stub files for each sub-component."
-		depends="compile, browser.stubs, fiddler.stubs, mahalo.stubs, mercury.stubs, norm.stubs, outrigger.stubs, phoenix.stubs, reggie.stubs, sdm.stubs, start.stubs, hello.stubs">
-    </target>
-    <target name="clean.all"
-		description="Deletes the lib, lib-dl, and lib-ext  directories."
-		depends="clean.dist,
-			 clean.jars">
-        <delete dir="${build}" quiet="true"/>
-        <delete dir="${doc.api}" quiet="true"/>
-        <delete dir="${doc.spec.api}" quiet="true"/>
-        <delete dir="${src}/com/sun/jini/example/hello/lib"	quiet="true"/>
-    </target>
-    <target name="clean.dist"
-		description="Deletes the distribution directory."
-		depends="env">
-        <delete dir="${dist}" quiet="true"/>
-    </target>
-    <target name="clean.jars"
-		description="Deletes the lib, lib-dl, and lib-ext directories."
-		depends="env">
-        <delete dir="${lib}"	quiet="true"/>
-        <delete dir="${lib-dl}"	quiet="true"/>
-        <delete dir="${lib-ext}"	quiet="true"/>
+
+    <target name="stubs" description="Generate stubs"
+		depends="compile, browser.stubs, fiddler.stubs, mahalo.stubs, 
+            mercury.stubs, norm.stubs, outrigger.stubs, phoenix.stubs,
+            reggie.stubs, sdm.stubs, start.stubs, hello.stubs">
+    </target>
+
+    <target name="clean" depends="clean-dist, clean-jars"
+		description="Removes all files and dirs created by the build">
+        <delete dir="${build.dir}" quiet="true"/>
+        <delete dir="${configentry.dir}" quiet="true"/>
+        <delete dir="${doc.api.dir}" quiet="true"/>
+        <delete dir="${doc.spec.api.dir}" quiet="true"/>
+        <delete dir="${src.dir}/com/sun/jini/example/hello/lib"	quiet="true"/>
     </target>
-    <target name="toolwrappers"
+
+    <target name="clean-dist"
+		description="Deletes the distribution directory.">
+        <delete dir="${dist.dir}" quiet="true"/>
+    </target>
+
+    <target name="clean-jars"
+		description="Deletes the lib, lib-dl, and lib-ext directories.">
+        <delete dir="${lib.dir}" quiet="true"/>
+        <delete dir="${lib-dl.dir}"	quiet="true"/>
+        <delete dir="${lib-ext.dir}" quiet="true"/>
+    </target>
+
+    <target name="toolswrappers.jars" description="Generate tools JARS"
 		depends="tools.jar,
 			 checkconfigurationfile.jar,
 			 checkser.jar,
@@ -609,196 +527,196 @@
 			 preferredlistgen.jar,
 			 envcheck.jar">
     </target>
+
     <target name="checkconfigurationfile.jar"
-		depends="setup-all,
-			 start.jar">
-        <delete file="${lib}/checkconfigurationfile.jar" quiet="true"/>
+		depends="tools.jar,start.jar">
+        <delete file="${lib.dir}/checkconfigurationfile.jar" quiet="true"/>
         <java classname="com.sun.jini.tool.JarWrapper"
-		      classpath="${build.classes}"
+		      classpath="${build.classes.dir}"
 		      failonerror="true">
-            <arg value="-manifest=${src.manifest}/checkconfigurationfile.mf"/>
-            <arg path="${lib}/checkconfigurationfile.jar"/>
-            <arg path="${lib}"/>
+            <arg value="-manifest=${src.manifest.dir}/checkconfigurationfile.mf"/>
+            <arg path="${lib.dir}/checkconfigurationfile.jar"/>
+            <arg path="${lib.dir}"/>
             <arg value="tools.jar"/>
         </java>
     </target>
-    <target name="checkser.jar"
-		depends="setup-all">
-        <delete file="${lib}/checkser.jar" quiet="true"/>
+
+    <target name="checkser.jar"	depends="tools.jar">
+        <delete file="${lib.dir}/checkser.jar" quiet="true"/>
         <java classname="com.sun.jini.tool.JarWrapper"
-		      classpath="${build.classes}"
+		      classpath="${build.classes.dir}"
 		      failonerror="true">
-            <arg value="-manifest=${src.manifest}/checkser.mf"/>
-            <arg path="${lib}/checkser.jar"/>
-            <arg path="${lib}"/>
+            <arg value="-manifest=${src.manifest.dir}/checkser.mf"/>
+            <arg path="${lib.dir}/checkser.jar"/>
+            <arg path="${lib.dir}"/>
             <arg value="tools.jar"/>
         </java>
     </target>
-    <target name="classdep.jar"
-		depends="setup-all">
-        <delete file="${lib}/classdep.jar" quiet="true"/>
+
+    <target name="classdep.jar"	depends="tools.jar">
+        <delete file="${lib.dir}/classdep.jar" quiet="true"/>
         <java classname="com.sun.jini.tool.JarWrapper"
-		      classpath="${build.classes}"
+		      classpath="${build.classes.dir}"
 		      failonerror="true">
-            <arg value="-manifest=${src.manifest}/classdep.mf"/>
-            <arg path="${lib}/classdep.jar"/>
-            <arg path="${lib}"/>
+            <arg value="-manifest=${src.manifest.dir}/classdep.mf"/>
+            <arg path="${lib.dir}/classdep.jar"/>
+            <arg path="${lib.dir}"/>
             <arg value="tools.jar"/>
         </java>
     </target>
-    <target name="classserver.jar"
-		depends="setup-all">
-        <delete file="${lib}/classserver.jar" quiet="true"/>
+
+    <target name="classserver.jar" depends="tools.jar">
+        <delete file="${lib.dir}/classserver.jar" quiet="true"/>
         <java classname="com.sun.jini.tool.JarWrapper"
-		      classpath="${build.classes}"
+		      classpath="${build.classes.dir}"
 		      failonerror="true">
-            <arg path="${lib}/classserver.jar"/>
-            <arg path="${lib}"/>
+            <arg path="${lib.dir}/classserver.jar"/>
+            <arg path="${lib.dir}"/>
             <arg value="tools.jar"/>
         </java>
     </target>
-    <target name="computedigest.jar"
-		depends="setup-all">
-        <delete file="${lib}/computedigest.jar" quiet="true"/>
+
+    <target name="computedigest.jar" depends="tools.jar">
+        <delete file="${lib.dir}/computedigest.jar" quiet="true"/>
         <java classname="com.sun.jini.tool.JarWrapper"
-		      classpath="${build.classes}"
+		      classpath="${build.classes.dir}"
 		      failonerror="true">
-            <arg value="-manifest=${src.manifest}/computedigest.mf"/>
-            <arg path="${lib}/computedigest.jar"/>
-            <arg path="${lib}"/>
+            <arg value="-manifest=${src.manifest.dir}/computedigest.mf"/>
+            <arg path="${lib.dir}/computedigest.jar"/>
+            <arg path="${lib.dir}"/>
             <arg value="tools.jar"/>
         </java>
     </target>
-    <target name="computehttpmdcodebase.jar"
-		depends="setup-all">
-        <delete file="${lib}/computehttpmdcodebase.jar" quiet="true"/>
+
+    <target name="computehttpmdcodebase.jar" depends="tools.jar">
+        <delete file="${lib.dir}/computehttpmdcodebase.jar" quiet="true"/>
         <java classname="com.sun.jini.tool.JarWrapper"
-		      classpath="${build.classes}"
+		      classpath="${build.classes.dir}"
 		      failonerror="true">
-            <arg value="-manifest=${src.manifest}/computehttpmdcodebase.mf"/>
-            <arg path="${lib}/computehttpmdcodebase.jar"/>
-            <arg path="${lib}"/>
+            <arg value="-manifest=${src.manifest.dir}/computehttpmdcodebase.mf"/>
+            <arg path="${lib.dir}/computehttpmdcodebase.jar"/>
+            <arg path="${lib.dir}"/>
             <arg value="tools.jar"/>
         </java>
     </target>
-    <target name="jarwrapper.jar"
-		depends="setup-all">
-        <delete file="${lib}/jarwrapper.jar" quiet="true"/>
+
+    <target name="jarwrapper.jar" depends="tools.jar">
+        <delete file="${lib.dir}/jarwrapper.jar" quiet="true"/>
         <java classname="com.sun.jini.tool.JarWrapper"
-		      classpath="${build.classes}"
+		      classpath="${build.classes.dir}"
 		      failonerror="true">
-            <arg value="-manifest=${src.manifest}/jarwrapper.mf"/>
-            <arg path="${lib}/jarwrapper.jar"/>
-            <arg path="${lib}"/>
+            <arg value="-manifest=${src.manifest.dir}/jarwrapper.mf"/>
+            <arg path="${lib.dir}/jarwrapper.jar"/>
+            <arg path="${lib.dir}"/>
             <arg value="tools.jar"/>
         </java>
     </target>
-    <target name="preferredlistgen.jar"
-		depends="setup-all">
-        <delete file="${lib}/preferredlistgen.jar" quiet="true"/>
+
+    <target name="preferredlistgen.jar" depends="tools.jar">
+        <delete file="${lib.dir}/preferredlistgen.jar" quiet="true"/>
         <java classname="com.sun.jini.tool.JarWrapper"
-		      classpath="${build.classes}"
+		      classpath="${build.classes.dir}"
 		      failonerror="true">
-            <arg value="-manifest=${src.manifest}/preferredlistgen.mf"/>
-            <arg path="${lib}/preferredlistgen.jar"/>
-            <arg path="${lib}"/>
+            <arg value="-manifest=${src.manifest.dir}/preferredlistgen.mf"/>
+            <arg path="${lib.dir}/preferredlistgen.jar"/>
+            <arg path="${lib.dir}"/>
             <arg value="tools.jar"/>
         </java>
     </target>
-    <target name="envcheck.jar"
-		depends="setup-all">
-        <delete file="${lib}/envcheck.jar" quiet="true"/>
+
+    <target name="envcheck.jar"	depends="tools.jar">
+        <delete file="${lib.dir}/envcheck.jar" quiet="true"/>
         <java classname="com.sun.jini.tool.JarWrapper"
-		      classpath="${build.classes}"
+		      classpath="${build.classes.dir}"
 		      failonerror="true">
-            <arg value="-manifest=${src.manifest}/envcheck.mf"/>
-            <arg path="${lib}/envcheck.jar"/>
-            <arg path="${lib}"/>
+            <arg value="-manifest=${src.manifest.dir}/envcheck.mf"/>
+            <arg path="${lib.dir}/envcheck.jar"/>
+            <arg path="${lib.dir}"/>
             <arg value="tools.jar"/>
         </java>
-        <jar destfile="${lib}/envcheck.jar"
+        <jar destfile="${lib.dir}/envcheck.jar"
 	       update="true"
 	       index="false">
-            <fileset dir="${src.manifest}/tools"
+            <fileset dir="${src.manifest.dir}/tools"
 		      includes="META-INF/services/com.sun.jini.tool.envcheck.Plugin"/>
         </jar>
     </target>
-    <target name="jini-core.jar"
-		depends="setup-all">
-        <delete file="${lib}/jini-core.jar" quiet="true"/>
-        <jar destfile="${lib}/jini-core.jar"
+
+    <target name="jini-core.jar" depends="stubs">
+        <delete file="${lib.dir}/jini-core.jar" quiet="true"/>
+        <jar destfile="${lib.dir}/jini-core.jar"
 		     index="false">
-            <fileset dir="${build.classes}"
+            <fileset dir="${build.classes.dir}"
 			 includes="net/jini/core/**"/>
         </jar>
     </target>
-    <target name="jini-ext.jar"
-		depends="setup-all">
-        <property name="jini-ext.deps" location="${build.deps}/jini-ext.deps"/>
+
+    <target name="jini-ext.jar" depends="stubs">
+        <property name="jini-ext.deps" location="${build.deps.dir}/jini-ext.deps"/>
         <java classname="com.sun.jini.tool.ClassDep"
 		      failonerror="true"
 		      output="${jini-ext.deps}">
-            <classpath refid="path.classdep"/>
+            <classpath refid="classdep.classpath"/>
             <arg value="-cp"/>
-            <arg path="${build.classes}"/>
+            <arg path="${build.classes.dir}"/>
             <arg value="-files"/>
             <arg line="-in com.sun.jini"/>
             <arg line="-in net.jini"/>
             <arg line="-out net.jini.core"/>
             <arg line="-prune net.jini.core"/>
-            <arg path="${build.classes}/net/jini"/>
-            <arg path="${build.classes}/com/sun/jini/discovery"/>
+            <arg path="${build.classes.dir}/net/jini"/>
+            <arg path="${build.classes.dir}/com/sun/jini/discovery"/>
         </java>
-        <delete file="${lib}/jini-ext.jar" quiet="true"/>
-        <jar destfile="${lib}/jini-ext.jar"
+        <delete file="${lib.dir}/jini-ext.jar" quiet="true"/>
+        <jar destfile="${lib.dir}/jini-ext.jar"
 		     index="false"
-		     manifest="${src.manifest}/jini-ext.mf">
-            <fileset dir="${build.classes}"  includesfile="${jini-ext.deps}"/>
+		     manifest="${src.manifest.dir}/jini-ext.mf">
+            <fileset dir="${build.classes.dir}"  includesfile="${jini-ext.deps}"/>
         </jar>
     </target>
-    <target name="jsk-debug-policy.jar"
-		depends="setup-all">
-        <property name="jsk-debug-policy.deps" location="${build.deps}/jsk-debug-policy.deps"/>
+
+    <target name="jsk-debug-policy.jar" depends="stubs">
+        <property name="jsk-debug-policy.deps" location="${build.deps.dir}/jsk-debug-policy.deps"/>
         <java classname="com.sun.jini.tool.ClassDep"
 		      failonerror="true"
 		      output="${jsk-debug-policy.deps}">
-            <classpath refid="path.classdep"/>
+            <classpath refid="classdep.classpath"/>
             <arg value="-cp"/>
-            <arg path="${build.classes}"/>
+            <arg path="${build.classes.dir}"/>
             <arg value="-files"/>
             <arg line="${jskprivate.include}"/>
             <arg line="-in com.sun.jini.tool"/>
             <arg value="com.sun.jini.tool.DebugDynamicPolicyProvider"/>
         </java>
-        <delete file="${lib}/jsk-debug-policy.jar" quiet="true"/>
-        <jar destfile="${lib}/jsk-debug-policy.jar"
+        <delete file="${lib.dir}/jsk-debug-policy.jar" quiet="true"/>
+        <jar destfile="${lib.dir}/jsk-debug-policy.jar"
 		     index="false"
-		     manifest="${src.manifest}/jsk-debug-policy.mf">
-            <fileset dir="${build.classes}"  includesfile="${jsk-debug-policy.deps}"/>
+		     manifest="${src.manifest.dir}/jsk-debug-policy.mf">
+            <fileset dir="${build.classes.dir}"  includesfile="${jsk-debug-policy.deps}"/>
         </jar>
     </target>
-    <target name="jsk-dl.jar"
-		depends="setup-all">
-        <property name="jsk-dl.deps" location="${build.deps}/jsk-dl.deps"/>
+
+    <target name="jsk-dl.jar" depends="stubs">
+        <property name="jsk-dl.deps" location="${build.deps.dir}/jsk-dl.deps"/>
         <java classname="com.sun.jini.tool.ClassDep"
 		      failonerror="true"
 		      output="${jsk-dl.deps}">
-            <classpath refid="path.classdep"/>
+            <classpath refid="classdep.classpath"/>
             <arg value="-cp"/>
-            <arg path="${build.classes}"/>
+            <arg path="${build.classes.dir}"/>
             <arg value="-files"/>
             <arg line="-in com.sun.jini"/>
             <arg line="-in net.jini"/>
             <arg line="${jskplatform.exclude}"/>
             <arg line="-skip net.jini.lookup.entry.EntryBeans"/>
-            <arg path="${build.classes}/com/sun/jini/admin"/>
-            <arg path="${build.classes}/com/sun/jini/lease"/>
-            <arg path="${build.classes}/com/sun/jini/proxy"/>
-            <arg path="${build.classes}/net/jini/admin"/>
-            <arg path="${build.classes}/net/jini/entry"/>
-            <arg path="${build.classes}/net/jini/event"/>
-            <arg path="${build.classes}/net/jini/lookup/entry"/>
-            <arg path="${build.classes}/net/jini/space"/>
+            <arg path="${build.classes.dir}/com/sun/jini/admin"/>
+            <arg path="${build.classes.dir}/com/sun/jini/lease"/>
+            <arg path="${build.classes.dir}/com/sun/jini/proxy"/>
+            <arg path="${build.classes.dir}/net/jini/admin"/>
+            <arg path="${build.classes.dir}/net/jini/entry"/>
+            <arg path="${build.classes.dir}/net/jini/event"/>
+            <arg path="${build.classes.dir}/net/jini/lookup/entry"/>
+            <arg path="${build.classes.dir}/net/jini/space"/>
             <arg value="com.sun.jini.jeri.internal.http.HttpParseException"/>
             <arg value="com.sun.jini.landlord.ConstrainableLandlordLease"/>
             <arg value="com.sun.jini.landlord.ConstrainableLandlordLeaseMap"/>
@@ -821,98 +739,99 @@
             <arg value="net.jini.lookup.DiscoveryAdmin"/>
             <arg value="net.jini.lookup.ServiceDiscoveryManager$$LookupCacheImpl$$LookupListener_Stub"/>
         </java>
-        <delete file="${lib-dl}/jsk-dl.jar" quiet="true"/>
-        <jar destfile="${lib-dl}/jsk-dl.jar"
+        <delete file="${lib-dl.dir}/jsk-dl.jar" quiet="true"/>
+        <jar destfile="${lib-dl.dir}/jsk-dl.jar"
 		     index="false">
-            <fileset dir="${build.classes}"  includesfile="${jsk-dl.deps}"/>
-            <metainf dir="${src.manifest}/jsk-dl/META-INF"/>
+            <fileset dir="${build.classes.dir}"  includesfile="${jsk-dl.deps}"/>
+            <metainf dir="${src.manifest.dir}/jsk-dl/META-INF"/>
         </jar>
     </target>
-    <target name="jsk-lib.jar"
-		depends="setup-all">
-        <property name="jsk-lib.deps" location="${build.deps}/jsk-lib.deps"/>
+
+    <target name="jsk-lib.jar" depends="stubs">
+        <property name="jsk-lib.deps" location="${build.deps.dir}/jsk-lib.deps"/>
         <java classname="com.sun.jini.tool.ClassDep"
 		      failonerror="true"
 		      output="${jsk-lib.deps}">
-            <classpath refid="path.classdep"/>
+            <classpath refid="classdep.classpath"/>
             <arg value="-cp"/>
-            <arg path="${build.classes}"/>
+            <arg path="${build.classes.dir}"/>
             <arg value="-files"/>
             <arg line="-in com.sun.jini"/>
             <arg line="-in net.jini"/>
             <arg line="${jskplatform.exclude}"/>
-            <arg path="${build.classes}/com/sun/jini/admin"/>
-            <arg path="${build.classes}/com/sun/jini/config"/>
-            <arg path="${build.classes}/com/sun/jini/landlord"/>
-            <arg path="${build.classes}/com/sun/jini/lease"/>
-            <arg path="${build.classes}/com/sun/jini/lookup/entry"/>
-            <arg path="${build.classes}/com/sun/jini/proxy"/>
-            <arg path="${build.classes}/com/sun/jini/reliableLog"/>
-            <arg path="${build.classes}/com/sun/jini/resource"/>
-            <arg path="${build.classes}/com/sun/jini/thread"/>
-            <arg path="${build.classes}/net/jini"/>
+            <arg path="${build.classes.dir}/com/sun/jini/admin"/>
+            <arg path="${build.classes.dir}/com/sun/jini/config"/>
+            <arg path="${build.classes.dir}/com/sun/jini/landlord"/>
+            <arg path="${build.classes.dir}/com/sun/jini/lease"/>
+            <arg path="${build.classes.dir}/com/sun/jini/lookup/entry"/>
+            <arg path="${build.classes.dir}/com/sun/jini/proxy"/>
+            <arg path="${build.classes.dir}/com/sun/jini/reliableLog"/>
+            <arg path="${build.classes.dir}/com/sun/jini/resource"/>
+            <arg path="${build.classes.dir}/com/sun/jini/thread"/>
+            <arg path="${build.classes.dir}/net/jini"/>
             <arg value="com.sun.jini.logging.Levels"/>
             <arg value="com.sun.jini.phoenix.ActivationAdmin"/>
             <arg value="com.sun.jini.start.LifeCycle"/>
             <arg value="com.sun.jini.start.ServiceProxyAccessor"/>
         </java>
-        <delete file="${lib}/jsk-lib.jar" quiet="true"/>
-        <jar destfile="${lib}/jsk-lib.jar"
+        <delete file="${lib.dir}/jsk-lib.jar" quiet="true"/>
+        <jar destfile="${lib.dir}/jsk-lib.jar"
 		     index="false">
-            <fileset dir="${build.classes}"  includesfile="${jsk-lib.deps}"/>
+            <fileset dir="${build.classes.dir}"  includesfile="${jsk-lib.deps}"/>
         </jar>
         <preferredlistgen>
             <arg line="-jar"/>
-            <arg path="${lib}/jsk-lib.jar"/>
+            <arg path="${lib.dir}/jsk-lib.jar"/>
             <arg line="-cp"/>
-            <arg path="${build.classes}"/>
+            <arg path="${build.classes.dir}"/>
             <arg line="-api com.sun.jini.start.LifeCycle"/>
             <arg line="-api com.sun.jini.start.ServiceProxyAccessor"/>
+            <classpath refid="river.classpath"/>
         </preferredlistgen>
     </target>
-    <target name="jsk-platform.jar"
-		depends="setup-all">
-        <property name="jsk-platform.deps" location="${build.deps}/jsk-platform.deps"/>
+
+    <target name="jsk-platform.jar"	depends="jsk-resources.jar">
+        <property name="jsk-platform.deps" location="${build.deps.dir}/jsk-platform.deps"/>
         <java classname="com.sun.jini.tool.ClassDep"
 		      failonerror="true"
 		      output="${jsk-platform.deps}">
-            <classpath refid="path.classdep"/>
+            <classpath refid="classdep.classpath"/>
             <arg value="-cp"/>
-            <arg path="${build.classes}"/>
+            <arg path="${build.classes.dir}"/>
             <arg value="-files"/>
             <arg line="-in com.sun.jini"/>
             <arg line="-in net.jini"/>
-            <arg path="${build.classes}/net/jini/activation"/>
-            <arg path="${build.classes}/net/jini/config"/>
-            <arg path="${build.classes}/net/jini/constraint"/>
-            <arg path="${build.classes}/net/jini/core"/>
-            <arg path="${build.classes}/net/jini/export"/>
-            <arg path="${build.classes}/net/jini/id"/>
-            <arg path="${build.classes}/net/jini/iiop"/>
-            <arg path="${build.classes}/net/jini/io"/>
-            <arg path="${build.classes}/net/jini/jeri"/>
-            <arg path="${build.classes}/net/jini/jrmp"/>
-            <arg path="${build.classes}/net/jini/loader"/>
-            <arg path="${build.classes}/net/jini/security"/>
-            <arg path="${build.classes}/net/jini/url"/>
+            <arg path="${build.classes.dir}/net/jini/activation"/>
+            <arg path="${build.classes.dir}/net/jini/config"/>
+            <arg path="${build.classes.dir}/net/jini/constraint"/>
+            <arg path="${build.classes.dir}/net/jini/core"/>
+            <arg path="${build.classes.dir}/net/jini/export"/>
+            <arg path="${build.classes.dir}/net/jini/id"/>
+            <arg path="${build.classes.dir}/net/jini/iiop"/>
+            <arg path="${build.classes.dir}/net/jini/io"/>
+            <arg path="${build.classes.dir}/net/jini/jeri"/>
+            <arg path="${build.classes.dir}/net/jini/jrmp"/>
+            <arg path="${build.classes.dir}/net/jini/loader"/>
+            <arg path="${build.classes.dir}/net/jini/security"/>
+            <arg path="${build.classes.dir}/net/jini/url"/>
             <arg value="net.jini.discovery.ConstrainableLookupLocator"/>
             <arg value="net.jini.discovery.ConstrainableLookupLocatorTrustVerifier"/>
-            <arg path="${build.classes}/com/sun/jini/discovery"/>
+            <arg path="${build.classes.dir}/com/sun/jini/discovery"/>
             <arg value="com.sun.jini.config.ConfigUtil"/>
             <arg value="com.sun.jini.config.KeyStores"/>
             <arg value="com.sun.jini.logging.LogManager"/>
         </java>
-        <delete file="${lib}/jsk-platform.jar" quiet="true"/>
-        <jar destfile="${lib}/jsk-platform.jar"
+        <delete file="${lib.dir}/jsk-platform.jar" quiet="true"/>
+        <jar destfile="${lib.dir}/jsk-platform.jar"
 		     index="false"
-		     manifest="${src.manifest}/jsk-platform.mf">
-            <fileset dir="${build.classes}"  includesfile="${jsk-platform.deps}"/>
+		     manifest="${src.manifest.dir}/jsk-platform.mf">
+            <fileset dir="${build.classes.dir}"  includesfile="${jsk-platform.deps}"/>
         </jar>
         <preferredlistgen>
             <arg line="-jar"/>
-            <arg path="${lib}/jsk-platform.jar"/>
+            <arg path="${lib.dir}/jsk-platform.jar"/>
             <arg line="-cp"/>
-            <arg path="${build.classes}"/>
+            <arg path="${build.classes.dir}"/>
             <arg line="-api net/jini/activation/-"/>
             <arg line="-api net/jini/config/-"/>
             <arg line="-api net/jini/constraint/-"/>
@@ -938,35 +857,36 @@
             <arg line="-api com.sun.jini.config.ConfigUtil"/>
             <arg line="-api com.sun.jini.config.KeyStores"/>
             <arg line="-api com.sun.jini.logging.LogManager"/>
+            <classpath refid="river.classpath"/>
         </preferredlistgen>
     </target>
-    <target name="jsk-policy.jar"
-		depends="setup-all">
-        <property name="jsk-policy.deps" location="${build.deps}/jsk-policy.deps"/>
+
+    <target name="jsk-policy.jar" depends="stubs">
+        <property name="jsk-policy.deps" location="${build.deps.dir}/jsk-policy.deps"/>
         <java classname="com.sun.jini.tool.ClassDep"
 		      failonerror="true"
 		      output="${jsk-policy.deps}">
-            <classpath refid="path.classdep"/>
+            <classpath refid="classdep.classpath"/>
             <arg value="-cp"/>
-            <arg path="${build.classes}"/>
+            <arg path="${build.classes.dir}"/>
             <arg value="-files"/>
             <arg value="net.jini.security.policy.DynamicPolicyProvider"/>
             <arg value="net.jini.security.policy.PolicyFileProvider"/>
             <arg line="-in com.sun.jini"/>
             <arg line="-in net.jini"/>
         </java>
-        <delete file="${lib-ext}/jsk-policy.jar" quiet="true"/>
-        <jar destfile="${lib-ext}/jsk-policy.jar"
+        <delete file="${lib-ext.dir}/jsk-policy.jar" quiet="true"/>
+        <jar destfile="${lib-ext.dir}/jsk-policy.jar"
 		     index="false">
-            <fileset dir="${build.classes}"  includesfile="${jsk-policy.deps}"/>
+            <fileset dir="${build.classes.dir}"  includesfile="${jsk-policy.deps}"/>
         </jar>
     </target>
-    <target name="jsk-resources.jar"
-		depends="setup-all">
-        <delete file="${lib}/jsk-resources.jar" quiet="true"/>
-        <jar destfile="${lib}/jsk-resources.jar"
+
+    <target name="jsk-resources.jar" depends="stubs">
+        <delete file="${lib.dir}/jsk-resources.jar" quiet="true"/>
+        <jar destfile="${lib.dir}/jsk-resources.jar"
 		     index="false">
-            <fileset dir="${src.manifest}/jsk-resources"
+            <fileset dir="${src.manifest.dir}/jsk-resources"
 				 includes="META-INF/services/com.sun.jini.discovery.DiscoveryFormatProvider
 					   META-INF/services/java.rmi.server.RMIClassLoaderSpi
 					   META-INF/services/net.jini.security.TrustVerifier
@@ -974,16 +894,15 @@
 					   META-INF/services/net.jini.export.ServerContext$$Spi"/>
         </jar>
     </target>
-    <target name="sun-util.jar"
-		description=""
-		depends="setup-all">
-        <property name="sun-util.deps" location="${build.deps}/sun-util.deps"/>
+
+    <target name="sun-util.jar"	depends="stubs">
+        <property name="sun-util.deps" location="${build.deps.dir}/sun-util.deps"/>
         <java classname="com.sun.jini.tool.ClassDep"
 		      failonerror="true"
 		      output="${sun-util.deps}">
-            <classpath refid="path.classdep"/>
+            <classpath refid="classdep.classpath"/>
             <arg value="-cp"/>
-            <arg path="${build.classes}"/>
+            <arg path="${build.classes.dir}"/>
             <arg value="-files"/>
             <arg value="com.sun.jini.discovery.ClientSubjectChecker"/>
             <arg value="com.sun.jini.fiddler.FiddlerAdmin"/>
@@ -993,12 +912,12 @@
             <arg value="com.sun.jini.start.ServiceProxyAccessor"/>
             <arg line="-in com.sun.jini"/>
         </java>
-        <delete file="${lib}/sun-util.jar" quiet="true"/>
-        <jar destfile="${lib}/sun-util.jar"
+        <delete file="${lib.dir}/sun-util.jar" quiet="true"/>
+        <jar destfile="${lib.dir}/sun-util.jar"
 		     duplicate="preserve"
 		     index="false">
-            <fileset  dir="${build.classes}"  includesfile="${sun-util.deps}"/>
-            <fileset  dir="${build.classes}"
+            <fileset  dir="${build.classes.dir}"  includesfile="${sun-util.deps}"/>
+            <fileset  dir="${build.classes.dir}"
 			    includes="com/sun/jini/action/**
 				      com/sun/jini/admin/**
 				      com/sun/jini/collection/**
@@ -1015,15 +934,15 @@
 				      com/sun/jini/thread/**"/>
         </jar>
     </target>
-    <target name="sdm-dl.jar"
-		depends="tools.jar">
-        <property name="sdm-dl.deps" location="${build.deps}/sdm-dl.deps"/>
+
+    <target name="sdm-dl.jar" depends="stubs">
+        <property name="sdm-dl.deps" location="${build.deps.dir}/sdm-dl.deps"/>
         <java classname="com.sun.jini.tool.ClassDep"
 		      failonerror="true"
 		      output="${sdm-dl.deps}">
-            <classpath refid="path.classdep"/>
+            <classpath refid="classdep.classpath"/>
             <arg value="-cp"/>
-            <arg path="${build.classes}"/>
+            <arg path="${build.classes.dir}"/>
             <arg value="-files"/>
             <arg line="${jskplatform.exclude}"/>
             <arg line="-in com.sun.jini"/>
@@ -1031,29 +950,30 @@
             <arg value="com.sun.jini.proxy.BasicProxyTrustVerifier"/>
             <arg value="net.jini.lookup.ServiceDiscoveryManager$$LookupCacheImpl$$LookupListener_Stub"/>
         </java>
-        <delete file="${lib-dl}/sdm-dl.jar" quiet="true"/>
-        <jar destfile="${lib-dl}/sdm-dl.jar"
+        <delete file="${lib-dl.dir}/sdm-dl.jar" quiet="true"/>
+        <jar destfile="${lib-dl.dir}/sdm-dl.jar"
 		     index="false">
-            <fileset dir="${build.classes}"  includesfile="${sdm-dl.deps}"/>
+            <fileset dir="${build.classes.dir}"  includesfile="${sdm-dl.deps}"/>
         </jar>
         <preferredlistgen>
             <arg line="-cp"/>
-            <arg path="${lib}/jsk-platform.jar"/>
+            <arg path="${lib.dir}/jsk-platform.jar"/>
             <arg line="-jar"/>
-            <arg path="${lib-dl}/sdm-dl.jar"/>
+            <arg path="${lib-dl.dir}/sdm-dl.jar"/>
             <arg line="-jar"/>
-            <arg path="${lib-dl}/jsk-dl.jar"/>
+            <arg path="${lib-dl.dir}/jsk-dl.jar"/>
             <arg line="-proxy net.jini.lookup.ServiceDiscoveryManager$$LookupCacheImpl$$LookupListener_Stub"/>
+            <classpath refid="river.classpath"/>
         </preferredlistgen>
     </target>
-    <target name="sdm.stubs"
-		description="Builds the RMI stubs for ${ant.project.name}."
-		depends="compile">
-        <rmic base="${build.classes}" stubversion="1.2">
-            <classpath refid="path.jini"/>
+
+    <target name="sdm.stubs" depends="compile">
+        <rmic base="${build.classes.dir}" stubversion="1.2">
+            <classpath refid="river.classpath"/>
             <include name="net/jini/lookup/ServiceDiscoveryManager$$LookupCacheImpl$$LookupListener.class"/>
         </rmic>
     </target>
+
     <patternset id="svc-common-entries-set">
         <include name="JoinManager"/>
         <patternset id="dis-common-entries-set">
@@ -1062,53 +982,57 @@
             <include name="LookupLocatorDiscovery"/>
         </patternset>
     </patternset>
+
     <macrodef name="create-activatable">
         <attribute name="prefix"/>
         <sequential>
-            <echo message="Creating ${configentry}/@{prefix}-activatable"/>
-            <concat destfile="${configentry}/@{prefix}-activatable">
-                <fileset dir="${src.configentry}">
+            <echo message="Creating ${configentry.dir}/@{prefix}-activatable"/>
+            <concat destfile="${configentry.dir}/@{prefix}-activatable">
+                <fileset dir="${src.configentry.dir}">
                     <include name="@{prefix}-activatable"/>
                     <include name="@{prefix}-persistent"/>
                     <include name="@{prefix}-transient"/>
                 </fileset>
-                <fileset dir="${src.configentry}">
+                <fileset dir="${src.configentry.dir}">
                     <patternset refid="svc-common-entries-set"/>
                 </fileset>
             </concat>
         </sequential>
     </macrodef>
+
     <macrodef name="create-persistent">
         <attribute name="prefix"/>
         <sequential>
-            <echo message="Creating ${configentry}/@{prefix}-persistent"/>
-            <concat destfile="${configentry}/@{prefix}-persistent">
-                <fileset dir="${src.configentry}">
+            <echo message="Creating ${configentry.dir}/@{prefix}-persistent"/>
+            <concat destfile="${configentry.dir}/@{prefix}-persistent">
+                <fileset dir="${src.configentry.dir}">
                     <include name="@{prefix}-persistent"/>
                     <include name="@{prefix}-transient"/>
                 </fileset>
-                <fileset dir="${src.configentry}">
+                <fileset dir="${src.configentry.dir}">
                     <patternset refid="svc-common-entries-set"/>
                 </fileset>
             </concat>
         </sequential>
     </macrodef>
+
     <macrodef name="create-transient">
         <attribute name="prefix"/>
         <sequential>
-            <echo message="Creating ${configentry}/@{prefix}-transient"/>
-            <concat destfile="${configentry}/@{prefix}-transient">
-                <fileset dir="${src.configentry}">
+            <echo message="Creating ${configentry.dir}/@{prefix}-transient"/>
+            <concat destfile="${configentry.dir}/@{prefix}-transient">
+                <fileset dir="${src.configentry.dir}">
                     <include name="@{prefix}-transient"/>
                 </fileset>
-                <fileset dir="${src.configentry}">
+                <fileset dir="${src.configentry.dir}">
                     <patternset refid="svc-common-entries-set"/>
                 </fileset>
             </concat>
         </sequential>
     </macrodef>
+
     <target name="configentry"
-		depends="setup-all,
+		depends="prep,
 			 browser.configentry,
 			 destroy.configentry,
 			 fiddler-activatable.configentry,
@@ -1141,157 +1065,190 @@
 			 start.configentry,
 			 WakeupManager.configentry" description="Populates the configentry directory.">
     </target>
+
     <target name="dis-common-entries"
 		depends="LeaseRenewalManager.configentry,
 			 LookupDiscovery.configentry,
 			 LookupLocatorDiscovery.configentry">
     </target>
+
     <target name="svc-common-entries"
 		depends="JoinManager.configentry,
 			 dis-common-entries">
     </target>
+
     <target name="browser.configentry"
 		depends="dis-common-entries">
-        <delete file="${configentry}/browser"/>
-        <echo message="Creating ${configentry}/browser"/>
-        <concat destfile="${configentry}/browser">
-            <fileset dir="${src.configentry}">
+        <delete file="${configentry.dir}/browser"/>
+        <echo message="Creating ${configentry.dir}/browser"/>
+        <concat destfile="${configentry.dir}/browser">
+            <fileset dir="${src.configentry.dir}">
                 <include name="browser"/>
             </fileset>
-            <fileset dir="${src.configentry}">
+            <fileset dir="${src.configentry.dir}">
                 <patternset refid="dis-common-entries-set"/>
             </fileset>
         </concat>
     </target>
+
     <target name="destroy.configentry">
-        <delete file="${configentry}/destroy"/>
-        <copy   file="${src.configentry}/destroy" todir="${configentry}"/>
+        <delete file="${configentry.dir}/destroy"/>
+        <copy   file="${src.configentry.dir}/destroy" todir="${configentry.dir}"/>
     </target>
+
     <target name="fiddler-activatable.configentry"
 		depends="fiddler-persistent.configentry,
 			 fiddler-transient.configentry,
 			 svc-common-entries">
-        <delete file="${configentry}/fiddler-activatable"/>
+        <delete file="${configentry.dir}/fiddler-activatable"/>
         <create-activatable prefix="fiddler"/>
     </target>
+
     <target name="fiddler-persistent.configentry">
-        <delete file="${configentry}/fiddler-persistent"/>
+        <delete file="${configentry.dir}/fiddler-persistent"/>
         <create-persistent prefix="fiddler"/>
     </target>
+
     <target name="fiddler-transient.configentry">
-        <delete file="${configentry}/fiddler-transient"/>
+        <delete file="${configentry.dir}/fiddler-transient"/>
         <create-transient prefix="fiddler"/>
     </target>
+
     <target name="JoinManager.configentry">
-        <delete file="${configentry}/JoinManager"/>
-        <copy   file="${src.configentry}/JoinManager" todir="${configentry}"/>
+        <delete file="${configentry.dir}/JoinManager"/>
+        <copy   file="${src.configentry.dir}/JoinManager" todir="${configentry.dir}"/>
     </target>
+
     <target name="LeaseRenewalManager.configentry">
-        <delete file="${configentry}/LeaseRenewalManager"/>
-        <copy   file="${src.configentry}/LeaseRenewalManager" todir="${configentry}"/>
+        <delete file="${configentry.dir}/LeaseRenewalManager"/>
+        <copy   file="${src.configentry.dir}/LeaseRenewalManager" todir="${configentry.dir}"/>
     </target>
+
     <target name="LookupDiscovery.configentry">
-        <delete file="${configentry}/LookupDiscovery"/>
-        <copy   file="${src.configentry}/LookupDiscovery" todir="${configentry}"/>
+        <delete file="${configentry.dir}/LookupDiscovery"/>
+        <copy   file="${src.configentry.dir}/LookupDiscovery" todir="${configentry.dir}"/>
     </target>
+
     <target name="LookupLocatorDiscovery.configentry">
-        <delete file="${configentry}/LookupLocatorDiscovery"/>
-        <copy   file="${src.configentry}/LookupLocatorDiscovery" todir="${configentry}"/>
+        <delete file="${configentry.dir}/LookupLocatorDiscovery"/>
+        <copy   file="${src.configentry.dir}/LookupLocatorDiscovery" todir="${configentry.dir}"/>
     </target>
+
     <target name="mahalo-activatable.configentry">
-        <delete file="${configentry}/mahalo-activatable"/>
+        <delete file="${configentry.dir}/mahalo-activatable"/>
         <create-activatable prefix="mahalo"/>
     </target>
+
     <target name="mahalo-persistent.configentry">
-        <delete file="${configentry}/mahalo-persistent"/>
+        <delete file="${configentry.dir}/mahalo-persistent"/>
         <create-persistent prefix="mahalo"/>
     </target>
+
     <target name="mahalo-transient.configentry">
-        <delete file="${configentry}/mahalo-transient"/>
+        <delete file="${configentry.dir}/mahalo-transient"/>
         <create-transient prefix="mahalo"/>
     </target>
+
     <target name="mercury-activatable.configentry">
-        <delete file="${configentry}/mercury-activatable"/>
+        <delete file="${configentry.dir}/mercury-activatable"/>
         <create-activatable prefix="mercury"/>
     </target>
+
     <target name="mercury-persistent.configentry">
-        <delete file="${configentry}/mercury-persistent"/>
+        <delete file="${configentry.dir}/mercury-persistent"/>
         <create-persistent prefix="mercury"/>
     </target>
+
     <target name="mercury-transient.configentry">
-        <delete file="${configentry}/mercury-transient"/>
+        <delete file="${configentry.dir}/mercury-transient"/>
         <create-transient prefix="mercury"/>
     </target>
+
     <target name="norm-activatable.configentry">
-        <delete file="${configentry}/norm-activatable"/>
+        <delete file="${configentry.dir}/norm-activatable"/>
         <create-activatable prefix="norm"/>
     </target>
+
     <target name="norm-persistent.configentry">
-        <delete file="${configentry}/norm-persistent"/>
+        <delete file="${configentry.dir}/norm-persistent"/>
         <create-persistent prefix="norm"/>
     </target>
+
     <target name="norm-transient.configentry">
-        <delete file="${configentry}/norm-transient"/>
+        <delete file="${configentry.dir}/norm-transient"/>
         <create-transient prefix="norm"/>
     </target>
+
     <target name="outrigger-activatable.configentry">
-        <delete file="${configentry}/outrigger-activatable"/>
+        <delete file="${configentry.dir}/outrigger-activatable"/>
         <create-activatable prefix="outrigger"/>
     </target>
+
     <target name="outrigger-persistent.configentry">
-        <delete file="${configentry}/outrigger-persistent"/>
+        <delete file="${configentry.dir}/outrigger-persistent"/>
         <create-persistent prefix="outrigger"/>
     </target>
+
     <target name="outrigger-transient.configentry">
-        <delete file="${configentry}/outrigger-transient"/>
+        <delete file="${configentry.dir}/outrigger-transient"/>
         <create-transient prefix="outrigger"/>
     </target>
+
     <target name="phoenix.configentry">
-        <delete file="${configentry}/phoenix"/>
-        <copy   file="${src.configentry}/phoenix" todir="${configentry}"/>
+        <delete file="${configentry.dir}/phoenix"/>
+        <copy   file="${src.configentry.dir}/phoenix" todir="${configentry.dir}"/>
     </target>
+
     <target name="phoenix-group.configentry">
-        <delete file="${configentry}/phoenix-group"/>
-        <copy   file="${src.configentry}/phoenix-group" todir="${configentry}"/>
+        <delete file="${configentry.dir}/phoenix-group"/>
+        <copy   file="${src.configentry.dir}/phoenix-group" todir="${configentry.dir}"/>
     </target>
+
     <target name="phoenix-stop.configentry">
-        <delete file="${configentry}/phoenix-stop"/>
-        <copy   file="${src.configentry}/phoenix-stop" todir="${configentry}"/>
+        <delete file="${configentry.dir}/phoenix-stop"/>
+        <copy   file="${src.configentry.dir}/phoenix-stop" todir="${configentry.dir}"/>
     </target>
+
     <target name="reggie-activatable.configentry">
-        <delete file="${configentry}/reggie-activatable"/>
+        <delete file="${configentry.dir}/reggie-activatable"/>
         <create-activatable prefix="reggie"/>
     </target>
+
     <target name="reggie-persistent.configentry">
-        <delete file="${configentry}/reggie-persistent"/>
+        <delete file="${configentry.dir}/reggie-persistent"/>
         <create-persistent prefix="reggie"/>
     </target>
+
     <target name="reggie-transient.configentry">
-        <delete file="${configentry}/reggie-transient"/>
+        <delete file="${configentry.dir}/reggie-transient"/>
         <create-transient prefix="reggie"/>
     </target>
+
     <target name="ServiceDiscoveryManager.configentry">
-        <delete file="${configentry}/ServiceDiscoveryManager"/>
-        <copy   file="${src.configentry}/ServiceDiscoveryManager" todir="${configentry}"/>
+        <delete file="${configentry.dir}/ServiceDiscoveryManager"/>
+        <copy   file="${src.configentry.dir}/ServiceDiscoveryManager" todir="${configentry.dir}"/>
     </target>
+
     <target name="sharedgroup.configentry">
-        <delete file="${configentry}/sharedgroup"/>
-        <copy   file="${src.configentry}/sharedgroup" todir="${configentry}"/>
+        <delete file="${configentry.dir}/sharedgroup"/>
+        <copy   file="${src.configentry.dir}/sharedgroup" todir="${configentry.dir}"/>
     </target>
+
     <target name="start.configentry">
-        <delete file="${configentry}/start"/>
-        <copy   file="${src.configentry}/start" todir="${configentry}"/>
+        <delete file="${configentry.dir}/start"/>
+        <copy   file="${src.configentry.dir}/start" todir="${configentry.dir}"/>
     </target>
+
     <target name="WakeupManager.configentry">
-        <delete file="${configentry}/WakeupManager"/>
-        <copy   file="${src.configentry}/WakeupManager" todir="${configentry}"/>
+        <delete file="${configentry.dir}/WakeupManager"/>
+        <copy   file="${src.configentry.dir}/WakeupManager" todir="${configentry.dir}"/>
     </target>
-    <target name="serviceui.jar"
-		depends="tools.jar">
-        <delete file="${lib}/serviceui.jar" quiet="true"/>
-        <jar destfile="${lib}/serviceui.jar"
+
+    <target name="serviceui.jar" depends="stubs">
+        <delete file="${lib.dir}/serviceui.jar" quiet="true"/>
+        <jar destfile="${lib.dir}/serviceui.jar"
 		     index="false">
-            <fileset dir="${build.classes}">
+            <fileset dir="${build.classes.dir}">
                 <include name="net/jini/lookup/entry/UIDescriptor.class"/>
                 <include name="net/jini/lookup/entry/UIDescriptorBean.class"/>
                 <include name="net/jini/lookup/ui/**"/>
@@ -1299,14 +1256,15 @@
             </fileset>
         </jar>
     </target>
-    <target name="browser.jar" depends="tools.jar">
-        <property name="browser.deps" location="${build.deps}/browser.deps"/>
+
+    <target name="browser.jar" depends="stubs">
+        <property name="browser.deps" location="${build.deps.dir}/browser.deps"/>
         <java classname="com.sun.jini.tool.ClassDep"
 		      failonerror="true"
 		      output="${browser.deps}">
-            <classpath refid="path.classdep"/>
+            <classpath refid="classdep.classpath"/>
             <arg value="-cp"/>
-            <arg path="${build.classes}"/>
+            <arg path="${build.classes.dir}"/>
             <arg value="-files"/>
             <arg line="${jskprivate.include}"/>
             <arg line="-in com.sun.jini.example.browser"/>
@@ -1314,22 +1272,22 @@
             <arg value="com.sun.jini.example.browser.Browser$$Listener_Stub"/>
             <arg value="com.sun.jini.example.browser.ServiceEditor$$NotifyReceiver_Stub"/>
         </java>
-        <delete file="${lib}/browser.jar" quiet="true"/>
-        <jar destfile="${lib}/browser.jar"
+        <delete file="${lib.dir}/browser.jar" quiet="true"/>
+        <jar destfile="${lib.dir}/browser.jar"
 		     index="false"
-		     manifest="${src.manifest}/browser.mf">
-            <fileset dir="${build.classes}" includesfile="${browser.deps}"/>
+		     manifest="${src.manifest.dir}/browser.mf">
+            <fileset dir="${build.classes.dir}" includesfile="${browser.deps}"/>
         </jar>
     </target>
-    <target name="browser-dl.jar"
-		depends="tools.jar">
-        <property name="browser-dl.deps" location="${build.deps}/browser-dl.deps"/>
+
+    <target name="browser-dl.jar" depends="stubs">
+        <property name="browser-dl.deps" location="${build.deps.dir}/browser-dl.deps"/>
         <java classname="com.sun.jini.tool.ClassDep"
 		      failonerror="true"
 		      output="${browser-dl.deps}">
-            <classpath refid="path.classdep"/>
+            <classpath refid="classdep.classpath"/>
             <arg value="-cp"/>
-            <arg path="${build.classes}"/>
+            <arg path="${build.classes.dir}"/>
             <arg value="-files"/>
             <arg line="${jskprivate.include}"/>
             <arg line="-in com.sun.jini.example.browser"/>
@@ -1337,39 +1295,39 @@
             <arg value="com.sun.jini.example.browser.ServiceEditor$$NotifyReceiver_Stub"/>
             <arg value="com.sun.jini.proxy.BasicProxyTrustVerifier"/>
         </java>
-        <delete file="${lib-dl}/browser-dl.jar" quiet="true"/>
-        <jar destfile="${lib-dl}/browser-dl.jar"
+        <delete file="${lib-dl.dir}/browser-dl.jar" quiet="true"/>
+        <jar destfile="${lib-dl.dir}/browser-dl.jar"
 		     index="false">
-            <fileset dir="${build.classes}" includesfile="${browser-dl.deps}"/>
+            <fileset dir="${build.classes.dir}" includesfile="${browser-dl.deps}"/>
         </jar>
         <preferredlistgen>
             <arg line="-cp"/>
-            <arg path="${lib}/jsk-platform.jar"/>
+            <arg path="${lib.dir}/jsk-platform.jar"/>
             <arg line="-jar"/>
-            <arg path="${lib-dl}/browser-dl.jar"/>
+            <arg path="${lib-dl.dir}/browser-dl.jar"/>
             <arg line="-jar"/>
-            <arg path="${lib-dl}/jsk-dl.jar"/>
+            <arg path="${lib-dl.dir}/jsk-dl.jar"/>
             <arg line="-proxy com.sun.jini.example.browser.ServiceEditor$$NotifyReceiver_Stub"/>
+            <classpath refid="river.classpath"/>
         </preferredlistgen>
     </target>
-    <target name="browser.stubs"
-		description="Builds the RMI stubs for ${ant.project.name}."
-		depends="compile">
-        <rmic base="${build.classes}" stubversion="1.2">
-            <classpath refid="path.jini"/>
+
+    <target name="browser.stubs" depends="compile">
+        <rmic base="${build.classes.dir}" stubversion="1.2">
+            <classpath refid="river.classpath"/>
             <include name="com/sun/jini/example/browser/Browser$$Listener.class"/>
             <include name="com/sun/jini/example/browser/ServiceEditor$$NotifyReceiver.class"/>
         </rmic>
     </target>
-    <target name="fiddler.jar"
-	  depends="tools.jar">
-        <property name="fiddler.deps" location="${build.deps}/fiddler.deps" />
+
+    <target name="fiddler.jar" depends="stubs">
+        <property name="fiddler.deps" location="${build.deps.dir}/fiddler.deps" />
         <java classname="com.sun.jini.tool.ClassDep"
           failonerror="true"
           output="${fiddler.deps}">
-            <classpath refid="path.classdep"/>
+            <classpath refid="classdep.classpath"/>
             <arg value="-cp"/>
-            <arg path="${build.classes}"/>
+            <arg path="${build.classes.dir}"/>
             <arg value="-files"	/>
             <arg line="${jskprivate.include}"/>
             <arg line="-in com.sun.jini.fiddler"/>
@@ -1379,29 +1337,30 @@
             <arg value="com.sun.jini.fiddler.NonActivatableFiddlerImpl"	/>
             <arg value="com.sun.jini.fiddler.TransientFiddlerImpl"/>
         </java>
-        <delete file="${lib}/fiddler.jar" quiet="true" />
-        <jar destfile="${lib}/fiddler.jar"
+        <delete file="${lib.dir}/fiddler.jar" quiet="true" />
+        <jar destfile="${lib.dir}/fiddler.jar"
          index="false"
-         manifest="${src.manifest}/fiddler.mf">
-            <fileset dir="${build.classes}"  includesfile="${fiddler.deps}" />
+         manifest="${src.manifest.dir}/fiddler.mf">
+            <fileset dir="${build.classes.dir}"  includesfile="${fiddler.deps}" />
         </jar>
         <preferredlistgen>
             <arg line="-cp"	/>
-            <arg path="${build.classes}"/>
+            <arg path="${build.classes.dir}"/>
             <arg line="-jar"/>
-            <arg path="${lib}/fiddler.jar"/>
+            <arg path="${lib.dir}/fiddler.jar"/>
             <arg line="-default true" />
+            <classpath refid="river.classpath"/>
         </preferredlistgen>
     </target>
-    <target name="fiddler-dl.jar"
-	  depends="tools.jar">
-        <property name="fiddler-dl.deps" location="${build.deps}/fiddler-dl.deps" />
+
+    <target name="fiddler-dl.jar" depends="stubs">
+        <property name="fiddler-dl.deps" location="${build.deps.dir}/fiddler-dl.deps" />
         <java classname="com.sun.jini.tool.ClassDep"
           failonerror="true"
           output="${fiddler-dl.deps}">
-            <classpath refid="path.classdep"/>
+            <classpath refid="classdep.classpath"/>
             <arg value="-cp"/>
-            <arg path="${build.classes}"/>
+            <arg path="${build.classes.dir}"/>
             <arg value="-files"	/>
             <arg line="${jskprivate.include}"/>
             <arg line="-in com.sun.jini.fiddler"/>
@@ -1417,841 +1376,818 @@
             <arg value="net.jini.discovery.RemoteDiscoveryEvent"/>
             <arg value="net.jini.lookup.entry.ServiceInfo"/>
         </java>
-        <delete file="${lib-dl}/fiddler-dl.jar" quiet="true"/>
-        <jar destfile="${lib-dl}/fiddler-dl.jar" index="false">
-            <fileset dir="${build.classes}"  includesfile="${fiddler-dl.deps}" />
+        <delete file="${lib-dl.dir}/fiddler-dl.jar" quiet="true"/>
+        <jar destfile="${lib-dl.dir}/fiddler-dl.jar" index="false">
+            <fileset dir="${build.classes.dir}"  includesfile="${fiddler-dl.deps}" />
         </jar>
         <preferredlistgen>
-            <arg line="-cp"							/>
-            <arg path="${build.classes}"					/>
-            <arg line="-jar"						/>
-            <arg path="${lib-dl}/fiddler-dl.jar"			/>
-            <arg line="-jar"						/>
-            <arg path="${lib-dl}/jsk-dl.jar"				/>
-            <arg line="-proxy com.sun.jini.fiddler.FiddlerProxy"		/>
-            <arg line="-proxy com.sun.jini.fiddler.FiddlerAdminProxy"	/>
+            <arg line="-cp"	/>
+            <arg path="${build.classes.dir}"/>
+            <arg line="-jar"/>
+            <arg path="${lib-dl.dir}/fiddler-dl.jar"/>
+            <arg line="-jar"/>
+            <arg path="${lib-dl.dir}/jsk-dl.jar"/>
+            <arg line="-proxy com.sun.jini.fiddler.FiddlerProxy"/>
+            <arg line="-proxy com.sun.jini.fiddler.FiddlerAdminProxy"/>
+            <classpath refid="river.classpath"/>
         </preferredlistgen>
     </target>
-    <target name="fiddler.stubs"
-          description="Builds the RMI stubs for ${ant.project.name}."
-          depends="compile">
-        <rmic base="${build.classes}" stubversion="1.2">
-            <classpath refid="path.jini" />
+
+    <target name="fiddler.stubs" depends="compile">
+        <rmic base="${build.classes.dir}" stubversion="1.2">
+            <classpath refid="river.classpath" />
             <include name="com/sun/jini/fiddler/FiddlerImpl.class" />
         </rmic>
     </target>
-    <target name="mahalo.jar"
-	  depends="tools.jar">
-        <property name="mahalo.deps" location="${build.deps}/mahalo.deps" />
+
+    <target name="mahalo.jar" depends="stubs">
+        <property name="mahalo.deps" location="${build.deps.dir}/mahalo.deps" />
         <java classname="com.sun.jini.tool.ClassDep"
           failonerror="true"
           output="${mahalo.deps}">
-            <classpath refid="path.classdep"					/>
-            <arg value="-cp"							/>
-            <arg path="${build.classes}"					/>
-            <arg value="-files"						/>
-            <arg line="${jskprivate.include}"					/>
-            <arg line="-in com.sun.jini.mahalo"				/>
-            <arg value="com.sun.jini.mahalo.ActivatableMahaloImpl"		/>
-            <arg value="com.sun.jini.mahalo.NonActivatableMahaloImpl"		/>
-            <arg value="com.sun.jini.mahalo.TransientMahaloImpl"		/>
-            <arg value="com.sun.jini.mahalo.MahaloPermission"			/>
-            <arg value="com.sun.jini.mahalo.TxnManagerImpl_Stub"		/>
-        </java>
-        <delete file="${lib}/mahalo.jar" quiet="true" />
-        <jar destfile="${lib}/mahalo.jar"
-         index="false"
-         manifest="${src.manifest}/mahalo.mf">
-            <fileset dir="${build.classes}"  includesfile="${mahalo.deps}" />
+            <classpath refid="classdep.classpath"/>
+            <arg value="-cp"/>
+            <arg path="${build.classes.dir}"/>
+            <arg value="-files"	/>
+            <arg line="${jskprivate.include}"/>
+            <arg line="-in com.sun.jini.mahalo"	/>
+            <arg value="com.sun.jini.mahalo.ActivatableMahaloImpl"/>
+            <arg value="com.sun.jini.mahalo.NonActivatableMahaloImpl"/>
+            <arg value="com.sun.jini.mahalo.TransientMahaloImpl"/>
+            <arg value="com.sun.jini.mahalo.MahaloPermission"/>
+            <arg value="com.sun.jini.mahalo.TxnManagerImpl_Stub"/>
+        </java>
+        <delete file="${lib.dir}/mahalo.jar" quiet="true" />
+        <jar destfile="${lib.dir}/mahalo.jar"  index="false"
+                manifest="${src.manifest.dir}/mahalo.mf">
+            <fileset dir="${build.classes.dir}"  includesfile="${mahalo.deps}" />
         </jar>
         <preferredlistgen>
-            <arg line="-jar"							/>
-            <arg path="${lib}/mahalo.jar"				/>
-            <arg line="-cp"							/>
-            <arg path="${build.classes}"					/>
-            <arg line="-default true"   					/>
+            <arg line="-jar"/>
+            <arg path="${lib.dir}/mahalo.jar"/>
+            <arg line="-cp"/>
+            <arg path="${build.classes.dir}"/>
+            <arg line="-default true" />
+            <classpath refid="river.classpath"/>
         </preferredlistgen>
     </target>
-    <target name="mahalo-dl.jar"
-	  depends="tools.jar">
-        <property name="mahalo-dl.deps" location="${build.deps}/mahalo-dl.deps" />
+
+    <target name="mahalo-dl.jar" depends="stubs">
+        <property name="mahalo-dl.deps" location="${build.deps.dir}/mahalo-dl.deps" />
         <java classname="com.sun.jini.tool.ClassDep"
           failonerror="true"
           output="${mahalo-dl.deps}">
-            <classpath refid="path.classdep"					/>
-            <arg value="-cp"							/>
-            <arg path="${build.classes}"					/>
-            <arg value="-files"						/>
-            <arg line="${jskprivate.include}"					/>
-            <arg line="-in com.sun.jini.mahalo"				/>
-            <arg value="com.sun.jini.mahalo.MahaloPermission"			/>
-            <arg value="com.sun.jini.mahalo.TxnMgrProxy"			/>
-            <arg value="com.sun.jini.mahalo.ProxyVerifier"			/>
-            <arg value="com.sun.jini.mahalo.TxnManagerInternalException"	/>
-            <arg value="net.jini.lookup.entry.Name"				/>
-            <arg value="net.jini.lookup.entry.ServiceInfo"			/>
-            <arg value="com.sun.jini.lookup.entry.BasicServiceType"		/>
-            <arg value="com.sun.jini.mahalo.TxnMgrAdminProxy"			/>
-            <arg value="com.sun.jini.mahalo.InternalManagerException"		/>
-            <arg value="com.sun.jini.mahalo.TxnManagerImpl_Stub"		/>
-        </java>
-        <delete file="${lib-dl}/mahalo-dl.jar" quiet="true" />
-        <jar destfile="${lib-dl}/mahalo-dl.jar"
-         index="false">
-            <fileset dir="${build.classes}"  includesfile="${mahalo-dl.deps}" />
+            <classpath refid="classdep.classpath"/>
+            <arg value="-cp"/>
+            <arg path="${build.classes.dir}"/>
+            <arg value="-files"	/>
+            <arg line="${jskprivate.include}"/>
+            <arg line="-in com.sun.jini.mahalo"	/>
+            <arg value="com.sun.jini.mahalo.MahaloPermission"/>
+            <arg value="com.sun.jini.mahalo.TxnMgrProxy"/>
+            <arg value="com.sun.jini.mahalo.ProxyVerifier"/>
+            <arg value="com.sun.jini.mahalo.TxnManagerInternalException"/>
+            <arg value="net.jini.lookup.entry.Name"	/>
+            <arg value="net.jini.lookup.entry.ServiceInfo"/>
+            <arg value="com.sun.jini.lookup.entry.BasicServiceType"	/>
+            <arg value="com.sun.jini.mahalo.TxnMgrAdminProxy"/>
+            <arg value="com.sun.jini.mahalo.InternalManagerException"/>
+            <arg value="com.sun.jini.mahalo.TxnManagerImpl_Stub"/>
+        </java>
+        <delete file="${lib-dl.dir}/mahalo-dl.jar" quiet="true" />
+        <jar destfile="${lib-dl.dir}/mahalo-dl.jar" index="false">
+            <fileset dir="${build.classes.dir}"  includesfile="${mahalo-dl.deps}" />
         </jar>
         <preferredlistgen>
-            <arg line="-cp"							/>
-            <arg path="${lib}/jsk-platform.jar"			/>
-            <arg line="-jar"						/>
-            <arg path="${lib-dl}/mahalo-dl.jar"			/>
-            <arg line="-jar"						/>
-            <arg path="${lib-dl}/jsk-dl.jar"				/>
-            <arg line="-proxy com.sun.jini.mahalo.TxnMgrAdminProxy"		/>
-            <arg line="-proxy com.sun.jini.mahalo.TxnMgrProxy"		/>
+            <arg line="-cp"	/>
+            <arg path="${lib.dir}/jsk-platform.jar"/>
+            <arg line="-jar"/>
+            <arg path="${lib-dl.dir}/mahalo-dl.jar"	/>
+            <arg line="-jar"/>
+            <arg path="${lib-dl.dir}/jsk-dl.jar"/>
+            <arg line="-proxy com.sun.jini.mahalo.TxnMgrAdminProxy"	/>
+            <arg line="-proxy com.sun.jini.mahalo.TxnMgrProxy"/>
+            <classpath refid="river.classpath"/>
         </preferredlistgen>
     </target>
-    <target name="mahalo.stubs"
-          description="Builds the RMI stubs for ${ant.project.name}."
-          depends="compile">
-        <rmic base="${build.classes}" stubversion="1.2">
-            <classpath refid="path.jini" />
+
+    <target name="mahalo.stubs" depends="compile">
+        <rmic base="${build.classes.dir}" stubversion="1.2">
+            <classpath refid="river.classpath" />
             <include name="com/sun/jini/mahalo/TxnManagerImpl.class" />
         </rmic>
     </target>
-    <target name="mercury.jar"
-	  depends="tools.jar">
-        <property name="mercury.deps" location="${build.deps}/mercury.deps" />
+
+    <target name="mercury.jar" depends="stubs">
+        <property name="mercury.deps" location="${build.deps.dir}/mercury.deps" />
         <java classname="com.sun.jini.tool.ClassDep"
           failonerror="true"
           output="${mercury.deps}">
-            <classpath refid="path.classdep"					/>
-            <arg value="-cp"							/>
-            <arg path="${build.classes}"					/>
-            <arg value="-files"						/>
-            <arg line="${jskprivate.include}"					/>
-            <arg line="-in com.sun.jini.mercury"				/>
-            <arg value="com.sun.jini.mercury.ActivatableMercuryImpl"		/>
+            <classpath refid="classdep.classpath"/>
+            <arg value="-cp"/>
+            <arg path="${build.classes.dir}"/>
+            <arg value="-files"	/>
+            <arg line="${jskprivate.include}"/>
+            <arg line="-in com.sun.jini.mercury"/>
+            <arg value="com.sun.jini.mercury.ActivatableMercuryImpl"/>
             <arg value="com.sun.jini.mercury.NonActivatableMercuryImpl"	/>
-            <arg value="com.sun.jini.mercury.TransientMercuryImpl"		/>
-            <arg value="com.sun.jini.mercury.MercuryPermission"		/>
-            <arg value="com.sun.jini.mercury.MailboxImpl_Stub"		/>
-        </java>
-        <delete file="${lib}/mercury.jar" quiet="true" />
-        <jar destfile="${lib}/mercury.jar"
-         index="false"
-         manifest="${src.manifest}/mercury.mf">
-            <fileset dir="${build.classes}"  includesfile="${mercury.deps}" />
+            <arg value="com.sun.jini.mercury.TransientMercuryImpl"/>
+            <arg value="com.sun.jini.mercury.MercuryPermission"	/>
+            <arg value="com.sun.jini.mercury.MailboxImpl_Stub"	/>
+        </java>
+        <delete file="${lib.dir}/mercury.jar" quiet="true" />
+        <jar destfile="${lib.dir}/mercury.jar" index="false"
+         manifest="${src.manifest.dir}/mercury.mf">
+            <fileset dir="${build.classes.dir}"  includesfile="${mercury.deps}" />
         </jar>
         <preferredlistgen>
-            <arg line="-jar"							/>
-            <arg path="${lib}/mercury.jar"				/>
-            <arg line="-cp"							/>
-            <arg path="${build.classes}"					/>
-            <arg line="-default true"   					/>
+            <arg line="-jar"/>
+            <arg path="${lib.dir}/mercury.jar"/>
+            <arg line="-cp"	/>
+            <arg path="${build.classes.dir}"/>
+            <arg line="-default true" />
+            <classpath refid="river.classpath"/>
         </preferredlistgen>
     </target>
-    <target name="mercury-dl.jar"
-	  depends="tools.jar">
-        <property name="mercury-dl.deps" location="${build.deps}/mercury-dl.deps" />
+
+    <target name="mercury-dl.jar" depends="stubs">
+        <property name="mercury-dl.deps" location="${build.deps.dir}/mercury-dl.deps" />
         <java classname="com.sun.jini.tool.ClassDep"
           failonerror="true"
           output="${mercury-dl.deps}">
-            <classpath refid="path.classdep"					/>
-            <arg value="-cp"							/>
-            <arg path="${build.classes}"					/>
-            <arg value="-files"						/>
-            <arg line="${jskprivate.include}"					/>
-            <arg line="-in com.sun.jini.mercury"				/>
-            <arg value="com.sun.jini.lookup.entry.BasicServiceType"		/>
+            <classpath refid="classdep.classpath"/>
+            <arg value="-cp"/>
+            <arg path="${build.classes.dir}"/>
+            <arg value="-files"	/>
+            <arg line="${jskprivate.include}"/>
+            <arg line="-in com.sun.jini.mercury"/>

[... 1305 lines stripped ...]