Ryan,
Everything looks good, I would flip the <property> imports to first load
the user's local properties first since it would allow them to override
settings used in the build.properties. This would also exclude the need
to remove <property> imports:
<property file="${user.home}/build.properties" />
<property file="local.properties"/>
<property file="build.properties"/>
<property file="../local.properties"/>
<property file="../build.properties"/>
This way, we still remove the redundant build.properties files, but
still allow for the property values to be overridden in the user.home,
and in a property files created in each module. In addition, it is
common to allow a local.properties to be used instead of modifying the
provided build.properties.
I think the base library path is an excellent idea. The only thing I
would change is all of the hardcoded versioning used. Instead use a
wild card on the JAR locations in filesets like **/*.jar. This way when
developers download the newest cactus and try to build, they don't have
to muck with version numbers on all of the properties.
base.library.path=/some/path
.. build.xml
<fileset dir="${base.library.path}" includes="**/*.jar" />
I don't think it would hurt to get more libraries than needed for compilation, possibly instead define 'cactus.library.path' in the build.properties so we can isolate versioning to one property instead of all of the contained Jars (cactus, cactus-ant, httpclient, aspectjrt, etc). I would think the same could apply to pulling jars from the JWSDP with it's common lib directories.
Otherwise, looks good!
Jacob Hookom
Ryan Lubke wrote:
> Merge all child build.properties (from jsf-api, jsf-ri, etc.) into one
> common build.properties.
> Simplifies setting up a local workspace in that:
> 1. one one file to edit
> 2. once created and working, can be copied to user's home directory
> so that if a user creates a new repository, nothing needs to be
> edited.
>
> SECTION: Modified Files
> -----------------------------------
> M jsf-api/build.xml
> M jsf-demo/build-tests.xml
> M jsf-demo/build.xml
> M jsf-demo/carstore/build.xml
> M jsf-demo/characterCombat/build.xml
> M jsf-demo/components/build.xml
> M jsf-demo/test/mappingDemo/build.xml
> M jsf-portlet/build.xml
> M jsf-portlet/portlet-lib/build.xml
> M jsf-ri/build-tests.xml
> M jsf-ri/build.xml
> M jsf-ri/systest/build.xml
> M jsf-ri/systest-per-webapp/build-tests.xml
> M jsf-ri/systest-per-webapp/build.xml
> M jsf-tools/build.xml
> - refer to 'project' level build.properties
> - in some cases, removed duplicate property definitions
>
> New Files
> ------------------
> A build.properties.sample
> - new 'project' level build.properties
>
> Files Removed
> ------------------
> R jsf-api/build.properties.sample
> R jsf-demo/build.properties.sample
> R jsf-portlet/build.properties.sample
> R jsf-ri/build.properties.sample
> R jsf-tools/build.properties.sample
> - no longer needed
>
>
> SECTION: Diffs
> ---------------------------------------
> Index: jsf-api/build.xml
> ===================================================================
> RCS file: /cvs/javaserverfaces-sources/jsf-api/build.xml,v
> retrieving revision 1.133
> diff -u -r1.133 build.xml
> --- jsf-api/build.xml 17 Jun 2004 16:50:33 -0000 1.133
> +++ jsf-api/build.xml 2 Sep 2004 15:24:34 -0000
> @@ -13,7 +13,6 @@
> -->
> <project name="JSF-API" default="main" basedir=".">
>
> - <property file="build.properties"/> <!-- Component
> local -->
> <property file="../build.properties"/> <!-- Commons
> local -->
> <property file="${user.home}/build.properties"/> <!-- User
> local -->
>
> Index: jsf-demo/build-tests.xml
> ===================================================================
> RCS file: /cvs/javaserverfaces-sources/jsf-demo/build-tests.xml,v
> retrieving revision 1.13
> diff -u -r1.13 build-tests.xml
> --- jsf-demo/build-tests.xml 20 Jul 2004 20:17:43 -0000 1.13
> +++ jsf-demo/build-tests.xml 2 Sep 2004 15:24:36 -0000
> @@ -39,7 +39,7 @@
> <project name="JSF Demo unit tests" default="build" basedir=".">
> <!-- Test Properties -->
> - <property file="build.properties"/>
> + <property file="../build.properties"/>
> <property file="default.properties"/>
> <property name="build" value="${basedir}/test/build"/>
> <property name="url" value="http://${host}:${port}/manager"/>
> Index: jsf-demo/build.xml
> ===================================================================
> RCS file: /cvs/javaserverfaces-sources/jsf-demo/build.xml,v
> retrieving revision 1.81
> diff -u -r1.81 build.xml
> --- jsf-demo/build.xml 17 Aug 2004 20:32:49 -0000 1.81
> +++ jsf-demo/build.xml 2 Sep 2004 15:24:37 -0000
> @@ -65,7 +65,6 @@
>
> <!-- ************ Per user local properties
> ******************************* -->
>
> - <property file="build.properties"/> <!-- demo
> local -->
> <property file="../build.properties"/> <!-- jsf
> local -->
> <property file="${user.home}/build.properties"/> <!-- user
> local -->
> <property name="depth" value=""/>
> Index: jsf-demo/default.properties
> ===================================================================
> RCS file: /cvs/javaserverfaces-sources/jsf-demo/default.properties,v
> retrieving revision 1.11
> diff -u -r1.11 default.properties
> --- jsf-demo/default.properties 12 May 2004 18:46:28 -0000 1.11
> +++ jsf-demo/default.properties 2 Sep 2004 15:24:37 -0000
> @@ -1,4 +1,3 @@
> -#
> # Copyright 2004 Sun Microsystems, Inc. All Rights Reserved.
> #
> # Redistribution and use in source and binary forms, with or
> @@ -34,7 +33,6 @@
> # You acknowledge that this software is not designed, licensed or
> # intended for use in the design, construction, operation or
> # maintenance of any nuclear facility.
> -#
>
> # The base directory for the JSF API and RI
>
> @@ -58,8 +56,8 @@
> jasper-runtime.jar=${tomcat.home}/common/lib/jasper-runtime.jar
> commons-modeler.jar=${tomcat.home}/server/lib/commons-modeler.jar
> jmx.jar=${tomcat.home}/common/lib/jmx.jar
> -jstl.jar=${tomcat.home}/jstl/lib/jstl.jar
> -standard.jar=${tomcat.home}/jstl/lib/standard.jar
> +jstl.jar=/files/appserv81/lib/appserv-jstl.jar
> +standard.jar=/files/appserv81/lib/appserv-jstl.jar
> servlet.jar=${tomcat.home}/common/lib/servlet-api.jar
> jsp.jar=${tomcat.home}/common/lib/jsp-api.jar
> jsf-api.dtd=${jsf-api.home}/build/lib/web-facesconfig_1_0.dtd
> @@ -84,5 +82,4 @@
> password=tomcat
> host=localhost
> port=8080
> -
> -jsf-portlet.jar=${jsf-ri.home}/build/lib/jsf-portlet.jar
> +jsf-portlet.jar=../${depth}/jsf-portlet/portlet-lib/build/lib/jsf-portlet.jar
>
> Index: jsf-demo/carstore/build.xml
> ===================================================================
> RCS file: /cvs/javaserverfaces-sources/jsf-demo/carstore/build.xml,v
> retrieving revision 1.5
> diff -u -r1.5 build.xml
> --- jsf-demo/carstore/build.xml 20 May 2004 17:07:19 -0000 1.5
> +++ jsf-demo/carstore/build.xml 2 Sep 2004 15:24:37 -0000
> @@ -248,7 +248,7 @@
>
> <target name="build" depends="copyJars,javadocs"
> description="Compile Java files and copy static files." >
> - <javac debug="on"
> + <javac debug="on" fork="true"
> srcdir="src/java"
> destdir="${build}/${example}/WEB-INF/classes">
> <include name="**/*.java" />
> <classpath refid="classpath"/>
> Index: jsf-demo/characterCombat/build.xml
> ===================================================================
> RCS file:
> /cvs/javaserverfaces-sources/jsf-demo/characterCombat/build.xml,v
> retrieving revision 1.7
> diff -u -r1.7 build.xml
> --- jsf-demo/characterCombat/build.xml 12 May 2004 18:46:35
> -0000 1.7
> +++ jsf-demo/characterCombat/build.xml 2 Sep 2004 15:24:38 -0000
> @@ -201,7 +201,8 @@
> <target name="build" unless="skip.build" depends="copyJars"
> description="Compile Java files and copy static files." >
> <touch file="${build}/last-build"/>
> - <javac debug="on" srcdir="src"
> destdir="${build}/${example}/WEB-INF/classes">
> + <javac debug="on" srcdir="src"
> destdir="${build}/${example}/WEB-INF/classes"
> + fork="true">
> <include name="**/*.java" />
> <classpath refid="classpath"/>
> </javac>
> Index: jsf-demo/components/build.xml
> ===================================================================
> RCS file: /cvs/javaserverfaces-sources/jsf-demo/components/build.xml,v
> retrieving revision 1.29
> diff -u -r1.29 build.xml
> --- jsf-demo/components/build.xml 24 May 2004 18:24:55 -0000 1.29
> +++ jsf-demo/components/build.xml 2 Sep 2004 15:24:39 -0000
> @@ -210,7 +210,8 @@
> description="Compile Java files for components, not webapp." >
> <touch file="${build}/last-build"/>
>
> - <javac debug="on" srcdir="src/java"
> destdir="${build}/classes/components">
> + <javac debug="on" srcdir="src/java"
> destdir="${build}/classes/components"
> + fork="true">
> <include name="components/**" />
> <classpath refid="classpath"/>
> @@ -219,7 +220,7 @@
> <copy todir="${build}/classes/components/META-INF"
> file="src/java/components/taglib/components.tld"/>
>
> - <javac debug="on" srcdir="src/java"
> destdir="${build}/${webapp}/WEB-INF/classes">
> + <javac debug="on" srcdir="src/java" fork="true"
> destdir="${build}/${webapp}/WEB-INF/classes">
> <include name="demo/**" />
> <classpath refid="classpath"/>
> </javac>
> Index: jsf-demo/test/mappingDemo/build.xml
> ===================================================================
> RCS file:
> /cvs/javaserverfaces-sources/jsf-demo/test/mappingDemo/build.xml,v
> retrieving revision 1.3
> diff -u -r1.3 build.xml
> --- jsf-demo/test/mappingDemo/build.xml 5 Feb 2004 16:26:23
> -0000 1.3
> +++ jsf-demo/test/mappingDemo/build.xml 2 Sep 2004 15:24:40 -0000
> @@ -42,7 +42,7 @@
>
> <property file="build.properties"/> <!-- this demo
> local -->
> <property file="../build.properties"/> <!-- demos
> local -->
> - <property file="../../build.properties"/> <!-- jsf
> local -->
> + <property file="../../../build.properties"/> <!-- jsf
> local -->
> <property file="${user.home}/build.properties"/> <!-- user
> local -->
> <property file="../../default.properties"/> <!-- last
> resort -->
>
> @@ -85,6 +85,7 @@
>
> <target name="clean" >
> + <echo message="JAR: ${catalina-ant.jar}"/>
> <delete dir="${build}" />
> <delete dir="${context.path}" />
> </target>
> Index: jsf-portlet/build.xml
> ===================================================================
> RCS file: /cvs/javaserverfaces-sources/jsf-portlet/build.xml,v
> retrieving revision 1.6
> diff -u -r1.6 build.xml
> --- jsf-portlet/build.xml 15 Jul 2004 22:05:59 -0000 1.6
> +++ jsf-portlet/build.xml 2 Sep 2004 15:24:40 -0000
> @@ -5,29 +5,16 @@
>
>
> <!-- Initialize property values -->
> - <property file="build.properties"/>
> - <property file="../build.properties"/>
> + <property file="../build.properties"/>
> <property file="${user.home}/build.properties"/>
>
>
> <!-- Dependency home directory defaults -->
> <property name="jsf.api.home" value="../jsf-api"/>
> - <property name="portlet.home"
> value="${tomcat.home}/../portlet1_0"/>
>
> <!-- Dependency library defaults -->
> - <property name="commons-beanutils.jar"
> -
> value="${tomcat.home}/jwsdp-shared/lib/commons-beanutils.jar"/>
> - <property name="commons-collections.jar"
> -
> value="${tomcat.home}/jwsdp-shared/lib/commons-collections.jar"/>
> - <property name="commons-digester.jar"
> -
> value="${tomcat.home}/jwsdp-shared/lib/commons-digester.jar"/>
> - <property name="commons-logging.jar"
> -
> value="${tomcat.home}/jwsdp-shared/lib/commons-logging.jar"/>
> - <property name="jsp.jar"
> value="${tomcat.home}/common/lib/jsp-api.jar"/>
> - <property name="jstl.jar"
> value="${tomcat.home}/jstl/lib/jstl.jar"/>
> <property name="jsf-api.jar"
> value="${jsf.api.home}/build/lib/jsf-api.jar"/>
> - <property name="portlet-api.jar"
> value="${portlet.home}/lib/portlet.jar"/>
> <property name="servlet.jar"
> value="${tomcat.home}/common/lib/servlet-api.jar"/>
> <property name="standard.jar"
> value="${tomcat.home}/jstl/lib/standard.jar"/>
>
> Index: jsf-portlet/portlet-lib/build.xml
> ===================================================================
> RCS file:
> /cvs/javaserverfaces-sources/jsf-portlet/portlet-lib/build.xml,v
> retrieving revision 1.6
> diff -u -r1.6 build.xml
> --- jsf-portlet/portlet-lib/build.xml 15 Jul 2004 22:05:59 -0000
> 1.6
> +++ jsf-portlet/portlet-lib/build.xml 2 Sep 2004 15:24:40 -0000
> @@ -5,28 +5,16 @@
>
>
> <!-- Initialize property values -->
> - <property file="build.properties"/>
> <property file="../../build.properties"/>
> <property file="${user.home}/build.properties"/>
>
>
> <!-- Dependency home directory defaults -->
> <property name="jsf.api.home" value="../../jsf-api"/>
> - <property name="portlet.home"
> value="${tomcat.home}/../portlet1_0"/>
>
> <!-- Dependency library defaults -->
> - <property name="commons-beanutils.jar"
> - value="${tomcat.home}/jwsdp-shared/lib/commons-beanutils.jar"/>
> - <property name="commons-collections.jar"
> - value="${tomcat.home}/jwsdp-shared/lib/commons-collections.jar"/>
> - <property name="commons-digester.jar"
> - value="${tomcat.home}/jwsdp-shared/lib/commons-digester.jar"/>
> - <property name="commons-logging.jar"
> - value="${tomcat.home}/jwsdp-shared/lib/commons-logging.jar"/>
>
> <property name="jsp.jar"
> value="${tomcat.home}/common/lib/jsp-api.jar"/>
> - <property name="jstl.jar"
> value="${tomcat.home}/jstl/lib/jstl.jar"/>
> - <property name="portlet-api.jar"
> value="${portlet.home}/lib/portlet.jar"/>
> <property name="servlet.jar"
> value="${tomcat.home}/common/lib/servlet-api.jar"/>
> <property name="standard.jar"
> value="${tomcat.home}/jstl/lib/standard.jar"/>
> <property name="jsf-api.jar"
> value="${jsf.api.home}/build/lib/jsf-api.jar"/>
> Index: jsf-ri/build-tests.xml
> ===================================================================
> RCS file: /cvs/javaserverfaces-sources/jsf-ri/build-tests.xml,v
> retrieving revision 1.204
> diff -u -r1.204 build-tests.xml
> --- jsf-ri/build-tests.xml 16 Jun 2004 19:48:03 -0000 1.204
> +++ jsf-ri/build-tests.xml 2 Sep 2004 15:24:41 -0000
> @@ -61,7 +61,6 @@
> generally should NOT be overridden by command line settings
> -->
>
> - <property file="build.properties"/> <!-- Component
> local -->
> <property file="../build.properties"/> <!-- Commons
> local -->
> <property file="${user.home}/build.properties"/> <!-- User
> local -->
>
> Index: jsf-ri/build.xml
> ===================================================================
> RCS file: /cvs/javaserverfaces-sources/jsf-ri/build.xml,v
> retrieving revision 1.165
> diff -u -r1.165 build.xml
> --- jsf-ri/build.xml 17 Aug 2004 20:10:11 -0000 1.165
> +++ jsf-ri/build.xml 2 Sep 2004 15:24:42 -0000
> @@ -16,7 +16,6 @@
>
> <!-- ************ Per user local properties
> ******************************* -->
>
> - <property file="build.properties"/> <!-- Component
> local -->
> <property file="../build.properties"/> <!-- Commons
> local -->
> <property file="${user.home}/build.properties"/> <!-- User
> local -->
> <property environment="myenv" />
> Index: jsf-ri/systest/build.xml
> ===================================================================
> RCS file: /cvs/javaserverfaces-sources/jsf-ri/systest/build.xml,v
> retrieving revision 1.19
> diff -u -r1.19 build.xml
> --- jsf-ri/systest/build.xml 8 Apr 2004 22:54:45 -0000 1.19
> +++ jsf-ri/systest/build.xml 2 Sep 2004 15:24:43 -0000
> @@ -17,7 +17,7 @@
> <!-- ************ Per user local properties
> ******************************* -->
>
> <property file="build.properties"/> <!-- Component
> local -->
> - <property file="../build.properties"/> <!-- RI
> local -->
> + <property file="../../build.properties"/> <!-- RI
> local -->
> <property file="${user.home}/build.properties"/> <!-- User
> local -->
>
>
> Index: jsf-ri/systest-per-webapp/build-tests.xml
> ===================================================================
> RCS file:
> /cvs/javaserverfaces-sources/jsf-ri/systest-per-webapp/build-tests.xml,v
> retrieving revision 1.6
> diff -u -r1.6 build-tests.xml
> --- jsf-ri/systest-per-webapp/build-tests.xml 17 Jun 2004 16:50:37
> -0000 1.6
> +++ jsf-ri/systest-per-webapp/build-tests.xml 2 Sep 2004 15:24:43
> -0000
> @@ -20,7 +20,7 @@
>
> <!-- Load properties in case this script executed directly -->
> <property file="build.properties"/>
> - <property file="../build.properties"/>
> + <property file="../../build.properties"/>
> <property file="${user.home}/build.properties"/>
>
> <!-- SystestClient connection properties -->
> Index: jsf-ri/systest-per-webapp/build.xml
> ===================================================================
> RCS file:
> /cvs/javaserverfaces-sources/jsf-ri/systest-per-webapp/build.xml,v
> retrieving revision 1.6
> diff -u -r1.6 build.xml
> --- jsf-ri/systest-per-webapp/build.xml 9 Jun 2004 21:28:17
> -0000 1.6
> +++ jsf-ri/systest-per-webapp/build.xml 2 Sep 2004 15:24:44 -0000
> @@ -17,7 +17,7 @@
> <!-- ************ Per user local properties
> ******************************* -->
>
> <property file="build.properties"/> <!-- Component
> local -->
> - <property file="../build.properties"/> <!-- RI
> local -->
> + <property file="../../build.properties"/> <!-- RI
> local -->
> <property file="${user.home}/build.properties"/> <!-- User
> local -->
>
>
> Index: jsf-tools/build.xml
> ===================================================================
> RCS file: /cvs/javaserverfaces-sources/jsf-tools/build.xml,v
> retrieving revision 1.32
> diff -u -r1.32 build.xml
> --- jsf-tools/build.xml 12 May 2004 03:08:49 -0000 1.32
> +++ jsf-tools/build.xml 2 Sep 2004 15:24:46 -0000
> @@ -13,7 +13,6 @@
> -->
> <project name="JSF-TOOLS" default="main" basedir=".">
>
> - <property file="build.properties"/> <!-- Component
> local -->
> <property file="../build.properties"/> <!-- Commons
> local -->
> <property file="${user.home}/build.properties"/> <!-- User
> local -->
>
>
> SECTION: New Files
> ---------------------------------------
> SEE ATTACHMENT
>
>------------------------------------------------------------------------
>
># -----------------------------------------------------------------------------
># build.properties.sample
>#
># This is an example "build.properties" file, used to customize building the
># javaserverfaces-sources for your local environment. It defines the location
># of all external modules that the javaserverfaces-source project relies on.
>#
># $Id$
># -----------------------------------------------------------------------------
>
>
># ----- Compile Control Flags -----
>
>compile.deprecation = true
>compile.optimized = true
>compile.debug = false
>
>
># ----- Build Control Flags -----
>
># determines whether dependent library JARs
># are included with the generated WAR
>
>build.standalone = true
>
>
># ----- Run Control Flags -----
>
># Define the arguments to give to the jvm to enable debugging
># If this is commented out, no debugging arguments will be passed.
># Make sure to uncomment the proper arguments for your platform.
>
># ----- Unix
>#debug.jvm.args = -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n
>
># ----- Windows
>#debug.jvm.args = -Xdebug -Xrunjdwp:transport=dt_shmem,address=jdbconn,server=y,suspend=n
>
>
># ------------------------------------------------------------------------------
># Base Path for dependent library JARs not included with JWSDP.
># For simplicity, install these libraries in your home directory.
># JUnit 3.8.1
># HtmlUnit 1.2.3
># MIF Doclet (http://developer.java.sun.com/developer/earlyAccess/mifdoclet)
># Portlet API 1.0
># Jakarta Cactus version 13-1.4.1
># ------------------------------------------------------------------------------
>base.library.path=/home/user
>
>mifdoclet.home=${base.library.path}/mifdoclet1.2
>mifdoclet.jar=${mifdoclet.home}/lib/mifdoclet.jar
>
>junit.home=${base.library.path}/junit3.8.1
>junit.jar=${junit.home}/junit.jar
>
>htmlunit.home=${base.library.path}/htmlunit-1.2.3
>
>portlet-api.home=${base.library.path}/portlet1_0
>portlet-api.jar=${portlet-api.home}/lib/portlet.jar
>
>cactus.home=${base.library.path}/jakarta-cactus-13-1.4.1
>cactus.lib=${cactus.home}/lib
>cactus.jar=${cactus.lib}/cactus-1.4.1.jar
>cactus.ant.jar=${cactus.lib}/cactus-ant-1.4.1.jar
>httpclient.jar=${cactus.lib}/commons-httpclient-2.0alpha1-20020606.jar
>aspectjrt.jar=${cactus.lib}/aspectjrt-1.0.5.jar
>
>
># --------------------------------------------------
># PATH TO TOMCAT/JWSDP INSTALLATION
># --------------------------------------------------
>tomcat.home=
>
>
># --------------------------------------------------
># PATH TO PLUTO INSTALLATION
># (OPTIONAL unless working with portlets)
># --------------------------------------------------
>pluto.home=
>
># --------------------------------------------------
># REQUIRED LIBRARIES
># --------------------------------------------------
>
># ----- Commons Library JARs
>commons-logging.jar=${tomcat.home}/jwsdp-shared/lib/commons-logging.jar
>commons-digester.jar=${tomcat.home}/jwsdp-shared/lib/commons-digester.jar
>commons-beanutils.jar=${tomcat.home}/jwsdp-shared/lib/commons-beanutils.jar
>commons-collections.jar=${tomcat.home}/common/lib/commons-collections.jar
>
># ----- JSTL 1.0 or 1.1 Library JARs
>jstl.jar=${tomcat.home}/jstl/lib/jstl.jar
>standard.jar=${tomcat.home}/jstl/lib/standard.jar
>
># ----- JAXP implementation JAR
>xerces.jar=${tomcat.home}/jaxp/lib/endorsed/xercesImpl.jar
>
>
>------------------------------------------------------------------------
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: dev-unsubscribe_at_javaserverfaces.dev.java.net
>For additional commands, e-mail: dev-help_at_javaserverfaces.dev.java.net
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe_at_javaserverfaces.dev.java.net
For additional commands, e-mail: dev-help_at_javaserverfaces.dev.java.net