You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hivemind.apache.org by hl...@apache.org on 2004/07/11 19:14:43 UTC

cvs commit: jakarta-hivemind/library build.xml

hlship      2004/07/11 10:14:43

  Modified:    .        build.xml status.xml
               framework build.xml
               library  build.xml
  Added:       hivebuild/report-artifacts license-report.trailer.xml
                        license-report.header.xml
               hivebuild javadoc-report.xml dist.xml dist.properties
                        forrest.xml hivedoc-report.xml
                        jar-module.properties javacc.properties
                        hivedoc-report.properties hivebuild.xml project.xml
                        jar-module.xml clover-report.xml
                        license-report.properties license-report.xml
                        javacc.xml hivebuild.properties dependency.xml
                        clover.properties
               .        version.properties
  Removed:     common   jar-module.xml clover-report.xml
                        license-report.properties license-report.xml
                        dist.xml hivedoc-report.properties project.xml
                        javacc.xml version.properties hivedoc-report.xml
                        forrest.xml jar-module.properties dependency.xml
                        javadoc-report.xml common.properties common.xml
                        dist.properties clover.properties
               common/report-artifacts license-report.trailer.xml
                        license-report.header.xml
  Log:
  Move the Ant build scripts to a new directory, hivebuild, in preparation for making hivebuild reusable on new projects.
  
  Revision  Changes    Path
  1.1                  jakarta-hivemind/hivebuild/report-artifacts/license-report.trailer.xml
  
  Index: license-report.trailer.xml
  ===================================================================
  	
  ]]>
  </source>
  <!-- $Id: license-report.trailer.xml,v 1.1 2004/07/11 17:14:43 hlship Exp $ -->
  <!-- 
     Copyright 2004 The Apache Software Foundation
  
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at
  
         http://www.apache.org/licenses/LICENSE-2.0
  
     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
  -->    
    </body>
  </document>
  
  
  1.1                  jakarta-hivemind/hivebuild/report-artifacts/license-report.header.xml
  
  Index: license-report.header.xml
  ===================================================================
  <?xml version="1.0"?>
  <!-- $Id: license-report.header.xml,v 1.1 2004/07/11 17:14:43 hlship Exp $ -->
  <!-- 
     Copyright 2004 The Apache Software Foundation
  
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at
  
         http://www.apache.org/licenses/LICENSE-2.0
  
     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
  -->
  <!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.2//EN" "./dtd/document-v12.dtd">
  <document>
  
    <header>
      <title>Project License</title>
    </header>
  
    <body>
  <source>
  	<!-- The contents of the license file are copies in place after this CDATA section.
  		   The license-report.trailer.xml contains the rest. -->
  <![CDATA[	
  
  
  
  
  1.1                  jakarta-hivemind/hivebuild/javadoc-report.xml
  
  Index: javadoc-report.xml
  ===================================================================
  <?xml version="1.0"?>
  <!-- $Id: javadoc-report.xml,v 1.1 2004/07/11 17:14:43 hlship Exp $ -->
  <!-- 
     Copyright 2004 The Apache Software Foundation
  
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at
  
         http://www.apache.org/licenses/LICENSE-2.0
  
     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
  -->
  <project name="javadoc-report">
  	<fail unless="ant.file.forrest" message="Must import forrest.xml first."/>
  	<property file="${hivebuild.dir}/license-report.properties"/>
  	<macrodef name="javadoc-report">
  		<sequential>
  			<announce message="Running JavaDoc Report ..."/>
  			<antcall target="javadoc"/>
  			<add-report-to-menu element="javadoc-report" label="JavaDoc"
  				file="apidocs/index.html"/>
  		</sequential>
  	</macrodef>
  </project>
  
  
  
  1.1                  jakarta-hivemind/hivebuild/dist.xml
  
  Index: dist.xml
  ===================================================================
  <?xml version="1.0"?>
  <!-- 
     Copyright 2004 The Apache Software Foundation
  
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at
  
         http://www.apache.org/licenses/LICENSE-2.0
  
     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
  -->
  <project name="dist">
  	
  	<property file="${basedir}/project.properties"/>
  	<property file="${hivebuild.dir}/dist.properties"/>
  	
  	<!-- This will be here until we add some new taskdefs and typedefs to simplify this. -->
  	
  	<target name="dist" description="Build a distribution." depends="clean,install,site,dist-build"/>
  	
  	<target name="dist-build" description="Constructs final distribution files.">
  		<mkdir dir="${dist.dir}"/>
  		
  		<fail unless="dist.name"
  				message="You must provide a value for property property dist.name."/>
  				
  		<announce message="Assembling binary/src distribution (.tar.gz format) ..."/>
  		
  		<tar destfile="${dist.basefile}.tar.gz"
  			compression="gzip">
  						
  			<tarfileset id="dist.src.set" dir="." prefix="${dist.base.name}">
  				<exclude name="**/target/**"/>
  				<exclude name="target/**"/>
  				<exclude name="ext-package/**"/>
  				
  				<!-- These are all related to Eclipse. -->
  				<exclude name="bin/**"/>
  				<exclude name=".*"/>
  				
  				<!-- These are left around by PaintShopPro and Windows Explorer -->
  				
  				<exclude name="**/Thumbs.db"/>
  				<exclude name="**/pspbrwse.jbf"/>
  			</tarfileset>
  			
  			<!-- Pick up the packaged libraries. -->
  			
  			<tarfileset id="dist.bin.set" dir="${target.dir}" prefix="${dist.base.name}">
  				<include name="*.jar"/>
  			</tarfileset>		
  		</tar>
  		
  		<announce message="Assembling binary/src distribution (.zip format) ..."/>
  		
  		<zip destfile="${dist.basefile}.zip">						
  			<zipfileset refid="dist.src.set"/>
  			<zipfileset refid="dist.bin.set"/>	
  		</zip>		
  		
  		<announce message="Assembling documentation distribution ..."/>
      
  		<tar destfile="${dist.dir}/${dist.docs.file}" compression="gzip">
  			<tarfileset dir="${project.docs.target.dir}"/>
  		</tar>
  		
  		<checksum fileext=".md5">
  		  <fileset dir="${dist.dir}">
  		  	<include name="*.zip"/>
  		  	<include name="*.gz"/>
  		  </fileset>
  		</checksum>
  	</target>
  
  	
  	<target name="-check-password" unless="password">
  	
  		<input message="Please provide password for installation:" addproperty="password"/>
  
  	</target>
    
  	<target name="install-docs" depends="-check-password"
  			description="Copies the documentation to a directory and unpacks it remotely.">
  
  		<!-- TODO: Check for missing properties. -->
  		
  		<announce message="Installing documentation distribution to ${dist.install.docs.dir} ..."/>
      
  		<scp
  				file="${dist.dir}/${dist.docs.file}" 
  				todir="${dist.install.docs.dir}"
  				password="${password}"
  				trust="yes"/>
  		
  		<sshexec 
  			username="${dist.install.docs.user}"
  			host="${dist.install.docs.host}"
  			command="cd ${dist.install.docs.path} ; tar xzvf ${dist.docs.file} ; rm ${dist.docs.file}"
  			password="${password}"
  			trust="yes"/>
  
  	</target>
  	
  	<target name="install-dist" depends="-check-password"
  		description="Install current distributions.">
  		
  		<announce message="Installing distributions to ${dist.install.dir} ..."/> 
      
  		<scp todir="${dist.install.dir}"
  				password="${password}"
  				trust="yes">
  			<fileset dir="${dist.dir}"/>
        <fileset dir="." includes="KEYS"/>
  		</scp>
      
      <announce message="Fixing distribution file permissions ..."/>
      
  		<sshexec 
  			username="${dist.install.user}"
  			host="${dist.install.host}"
  			command="cd ${dist.install.path} ; chgrp * ${dist.install.group}; chmod ${dist.install.mode} *"
  			password="${password}"
  			trust="yes"/>  
      
  	</target>
  	
  </project>
  
  
  
  1.1                  jakarta-hivemind/hivebuild/dist.properties
  
  Index: dist.properties
  ===================================================================
  #
  # Copyright 2004 The Apache Software Foundation
  #
  # Licensed under the Apache License, Version 2.0 (the "License");
  # you may not use this file except in compliance with the License.
  # You may obtain a copy of the License at
  #
  #     http://www.apache.org/licenses/LICENSE-2.0
  #
  # Unless required by applicable law or agreed to in writing, software
  # distributed under the License is distributed on an "AS IS" BASIS,
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  # See the License for the specific language governing permissions and
  # limitations under the License.
  
  dist.dir=${target.dir}/dist
  dist.base.name=${dist.name}-${project.version}
  dist.basefile=${dist.dir}/${dist.base.name}
  dist.docs.file=${dist.base.name}-docs.tar.gz
  
  dist.install.dir=${dist.install.user}@${dist.install.host}:${dist.install.path}
  
  # Distribution files will be changed to this group.
  
  dist.install.group=jakarta
  
  # Unix mode for the uploaded files.  664=-rw-rw-r--
  # which is important for the Apache mirrors.
  
  dist.install.mode=664
  
  dist.install.docs.host=${dist.install.host}
  dist.install.docs.user=${dist.install.user}
  
  dist.install.docs.dir=${dist.install.docs.user}@${dist.install.docs.host}:${dist.install.docs.path}
  
  
  
  1.1                  jakarta-hivemind/hivebuild/forrest.xml
  
  Index: forrest.xml
  ===================================================================
  <?xml version="1.0"?>
  <project name="forrest">
  	
  		<fail unless="ant.file.hivebuild" message="Must import hivebuild.xml first."/>
  		<fail unless="ant.file.dependency" message="Must import dependency.xml first."/>
  
  		<property name="forrest-package-dir" value="${external.package.dir}/apache-forrest-0.5.1-bin"/>
  
  		<target name="run-forrest" description="Runs Forrest to generate final site documentation.">
  			<announce message="Invoking Forrest ..."/>
  				
  			<ant antfile="${forrest-package-dir}/forrest.antproxy.xml" target="site">
  				<property name="project.home" location="${basedir}"/>
  				<property name="forrest.home" location="${forrest-package-dir}"/>
  			</ant>			
  		</target>
  		
  		<macrodef name="add-report-to-menu">
  			<attribute name="element" default="report" description="Element name to use inside site.xml, useful when creating a link to the report."/>
  			<attribute name="label" description="The label to use in the menus."/>
  			<attribute name="file" description="The relative path to the report file (relative to the documentation root)."/>
  			
  			<sequential>
  				<echo file="${forrest.report-menu.file}" append="true">
  <![CDATA[ <@{element} label="@{label}" href="@{file}"/> ]]>	
  				</echo>	
  			</sequential>	
  		</macrodef>
  		
  		<target name="-initialize-report-menu-file">
  		
  			<mkdir dir="${project.forrest.xdocs.dir}"/>
  			
  			<echo message="" file="${forrest.report-menu.file}"/>
  			
  		</target>  
          
  		<target name="marshall-documentation"
  			depends="-initialize-report-menu-file"
  			description="Copy static content into the forrest composite, and generate dynamic reports.">
  	
  			<antcall target="copy-documentation-to-composite"/>
  			<antcall target="run-reports"/>
  			
  		</target>
  			
  		<target name="run-reports" description="Overridden in project or module to run dynamic reports."/>
  		
  		<available file="${forrest.documentation.dir}" type="dir" property="exists-forrest-documentation-dir"/>
  		
  		<target name="copy-documentation-to-composite" if="exists-forrest-documentation-dir">
  			<copy todir="${project.forrest.composite.dir}" includeEmptyDirs="no">
  				<fileset dir="${forrest.documentation.dir}"/>	
  			</copy>
  		</target>
  		
  </project>
  
  
  1.1                  jakarta-hivemind/hivebuild/hivedoc-report.xml
  
  Index: hivedoc-report.xml
  ===================================================================
  <?xml version="1.0"?>
  <!-- $Id: hivedoc-report.xml,v 1.1 2004/07/11 17:14:43 hlship Exp $ -->
  <!-- 
     Copyright 2004 The Apache Software Foundation
  
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at
  
         http://www.apache.org/licenses/LICENSE-2.0
  
     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
  -->
  <project name="hivedoc-report">
  	<fail unless="ant.file.forrest" message="Must import forrest.xml first."/>
  	<property file="${hivebuild.dir}/hivedoc-report.properties"/>
  	
  	<!-- Fileset used to identify the derived files that will be scanned for
  		   module deployment descriptors. -->
  		   
  	<path id="default.hivedoc.classpath">
  		<fileset dir="${target.dir}">
  			<include name="*.jar"/>
  		</fileset>
  		<fileset dir="${external.lib.dir}">
  			<include name="*.jar"/>
  		</fileset>
  	</path>
  	
  	
  	<macrodef name="hivedoc-report">
  		<attribute name="doc-path-id" default="default.hivedoc.classpath"
  				description="Path defining the files to obtain deployment descriptors from."/>
  		
  		<attribute name="taskdef-path-id" default="default.hivedoc.classpath"
  				description="Path containing the master HiveMind module, which contains the Ant tasks."/>
  				
  		<sequential>
  			<announce message="Building Master Registry ..."/>
  
  			<taskdef resource="hivemind-tasks.properties">
  				<classpath refid="@{taskdef-path-id}"/>	
  			</taskdef>
  
  			<constructregistry output="${hivedoc.registry.file}">
  				<descriptors refid="@{doc-path-id}"/>	
  			</constructregistry>
  
  			<mkdir dir="${hivedoc.output.dir}"/>
  			
  			<announce message="Building HiveDoc ..."/>
  			
  			<xslt out="${hivedoc.output.dir}/index.html"
  				in="${hivedoc.registry.file}"
  				style="${hivedoc.xslt.file}">
  				<param name="base.dir" expression="${hivedoc.output.dir}"/>
  			</xslt>
  				
  			<copy todir="${hivedoc.output.dir}">
  				<fileset dir="${hivedoc.assets.dir}">
  					<exclude name="*.xsl"/>	
  				</fileset>	
  			</copy>
  				
  
  			<add-report-to-menu element="hivedoc-report" label="HiveDoc"
  				file="hivedocs/index.html"/>
  		</sequential>
  	</macrodef>
  </project>
  
  
  
  1.1                  jakarta-hivemind/hivebuild/jar-module.properties
  
  Index: jar-module.properties
  ===================================================================
  #
  # Copyright 2004 The Apache Software Foundation
  #
  # Licensed under the Apache License, Version 2.0 (the "License");
  # you may not use this file except in compliance with the License.
  # You may obtain a copy of the License at
  #
  #     http://www.apache.org/licenses/LICENSE-2.0
  #
  # Unless required by applicable law or agreed to in writing, software
  # distributed under the License is distributed on an "AS IS" BASIS,
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  # See the License for the specific language governing permissions and
  # limitations under the License.
  
  # Contains properties specific to jar-modules.  Many properties in hivebuild.properties
  # should move here.
  
  # The following several properties define arguments passed to the javac task when compiling
  # target code.
  
  module.javac.debug=on
  module.javac.debuglevel=lines,vars,source
  module.javac.optimize=off
  module.javac.deprecation=on
  module.javac.target=1.1
  module.javac.verbose=off
  module.javac.source=1.3
  module.javac.listfiles=off
  
  # Each of the above has a corresponding javac-test that defaults to the same value.
  
  module.javac-test.debug=${module.javac.test}
  module.javac-test.debug=${module.javac.debug}
  module.javac-test.debuglevel=${module.javac.debuglevel}
  module.javac-test.optimize=${module.javac.optimize}
  module.javac-test.deprecation=${module.javac.deprecation}
  module.javac-test.target=${module.javac.target}
  module.javac-test.verbose=${module.javac.verbose}
  module.javac-test.source=${module.javac.source}
  module.javac-test.listfiles=${module.javac.listfiles}
  
  
  
  
  
  1.1                  jakarta-hivemind/hivebuild/javacc.properties
  
  Index: javacc.properties
  ===================================================================
  #  Copyright 2004 The Apache Software Foundation
  #
  # Licensed under the Apache License, Version 2.0 (the "License");
  # you may not use this file except in compliance with the License.
  # You may obtain a copy of the License at
  #
  #     http:#www.apache.org/licenses/LICENSE-2.0
  #
  # Unless required by applicable law or agreed to in writing, software
  # distributed under the License is distributed on an "AS IS" BASIS,
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  # See the License for the specific language governing permissions and
  # limitations under the License.
  
  # Directory containing JavaCC input files.
  
  javacc.src.dir=${src.dir}/javacc
  
  # The file to which the JavaCC distribution is downloaded.
  
  javacc.dist.zip=${external.package.dir}/JavaCC.zip
  
  
  1.1                  jakarta-hivemind/hivebuild/hivedoc-report.properties
  
  Index: hivedoc-report.properties
  ===================================================================
  #
  # Copyright 2004 The Apache Software Foundation
  #
  # Licensed under the Apache License, Version 2.0 (the "License");
  # you may not use this file except in compliance with the License.
  # You may obtain a copy of the License at
  #
  #     http://www.apache.org/licenses/LICENSE-2.0
  #
  # Unless required by applicable law or agreed to in writing, software
  # distributed under the License is distributed on an "AS IS" BASIS,
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  # See the License for the specific language governing permissions and
  # limitations under the License.
  
  # File containing the master registry (used as input to the XSLT transform). Generated
  # by the constructregistry task.
  
  hivedoc.registry.file=${target.dir}/registry.xml
  
  hivedoc.xslt.file=${src.dir}/xsl/hivemind.xsl
  
  # Directory containing additional assets needed by the generated HTML files; this
  # consists of images and stylesheets.
  
  hivedoc.assets.dir=${src.dir}/xsl
  
  # Directory to which HiveDoc should be generated
  
  hivedoc.output.dir=${project.docs.target.dir}/hivedocs
  
  
  
  1.1                  jakarta-hivemind/hivebuild/hivebuild.xml
  
  Index: hivebuild.xml
  ===================================================================
  <?xml version="1.0"?>
  <!-- 
     Copyright 2004 The Apache Software Foundation
  
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at
  
         http://www.apache.org/licenses/LICENSE-2.0
  
     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
  -->
  <project name="hivebuild">
  
  	<!-- Ant magically sets ant.file.common to the location of this exact file.
  		   So we can compute hivebuild.dir from that. -->
  	
  	<dirname property="hivebuild.dir" file="${ant.file.hivebuild}"/>
  	
  	<property file="${hivebuild.dir}/hivebuild.properties"/>
    
    <!-- Note: this should move out of the hivebuild.dir -->
    
  	<property file="${root.dir}/version.properties"/>
  
  	<target name="clean" description="Deletes all derived files.">
  	
  		<delete dir="${target.dir}" quiet="true"/>
  		
  	</target>
  
  	<target name="clean-ext-packages" description="Delete all downloaded external packages.">
  		<delete dir="${external.package.dir}" quiet="true"/>	
  	</target>
  
  	<presetdef name="invoke-ant">
  		<ant inheritAll="false"/>
  	</presetdef>
  
  	<macrodef name="announce">
  		<attribute name="message" description="Message to display."/>
  		
  		<sequential>
  			<echo>
  
  *** @{message}				
  				
  </echo>			
  		</sequential>	
  	</macrodef>
  
  </project>
  
  
  1.1                  jakarta-hivemind/hivebuild/project.xml
  
  Index: project.xml
  ===================================================================
  <?xml version="1.0"?>
  <!-- $Id: project.xml,v 1.1 2004/07/11 17:14:43 hlship Exp $ -->
  <!-- 
     Copyright 2004 The Apache Software Foundation
  
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at
  
         http://www.apache.org/licenses/LICENSE-2.0
  
     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
  -->
  <project name="project">
    
    <!-- Top level module used to combine other types of modules. -->
  
  	<import file="hivebuild.xml"/>
  	<import file="dependency.xml"/>
  	<import file="forrest.xml"/>
  	
  	<property name="forrest.report-menu.file" value="${project.forrest.xdocs.dir}/project-report-menu.ent"/>
  	
  	<!-- Typically, project.name is all lower case and the title is mixed case, but
  		the project name is still a good default. -->
  		
  	<property name="project.title" value="${project.name}"/>
  	
  	<macrodef name="reinvoke-ant">
  		<attribute name="target" description="Target to achieve in each module."/>
  		<attribute name="files" default="project.modules" description="List of build.xml's, in build order."/>
  		<element name="parameters" optional="true" description="Parameters passed to the subant task."/>
  		
  		<sequential>
  			<subant target="@{target}" inheritall="false">
  				<filelist refid="@{files}"/>
  				<parameters/>
  			</subant>	
  		</sequential>
  			
  	</macrodef>
  
  	<target name="install" description="Reinvokes install in each module.">
  		<reinvoke-ant target="install"/>
  	</target>
  	
  	<target name="clean" description="Deletes all derived files in the project and in each module.">
  		
  		<reinvoke-ant target="clean"/>
  		<antcall target="hivebuild.clean"/>	
  		
  	</target>
  	
  	<target name="marshall-documentation" description="Marshall documentation in the project and in each module.">
  		<antcall target="forrest.marshall-documentation"/>
  		<reinvoke-ant target="marshall-documentation"/>
  	</target>
  	
  		<target name="site" description="Build site documentation using Forrest.">
  		
  			<unpacked-zip-dependency
  					url="http://www.apache.org/dist/xml/forrest/binaries"
  					zip="apache-forrest-0.5.1-bin.zip"
  					dir="${forrest-package-dir}"/>
  			
  			<antcall target="marshall-documentation"/>
  			<antcall target="run-forrest"/>
  		</target>
  		
  </project>
  
  
  1.1                  jakarta-hivemind/hivebuild/jar-module.xml
  
  Index: jar-module.xml
  ===================================================================
  <?xml version="1.0"?>
  <!-- $Id: jar-module.xml,v 1.1 2004/07/11 17:14:43 hlship Exp $ -->
  <!-- 
     Copyright 2004 The Apache Software Foundation
  
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at
  
         http://www.apache.org/licenses/LICENSE-2.0
  
     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
  -->
  <project name="jar-module">
  
  	<!-- 
  		Imports are computed relative the this file (to the build.xml
  		that imported this file). -->
  	
  	<import file="hivebuild.xml"/>
  	<import file="dependency.xml"/>
  	<import file="forrest.xml"/>
    <property file="${hivebuild.dir}/jar-module.properties"/>
  		
  	<property name="forrest.report-menu.file" value="${project.forrest.xdocs.dir}/${module.name}-report-menu.ent"/>
  		
  	<!-- The default classpath for compilation is all external package JARs. -->
  	
  	<path id="default.compile.classpath">
  			<fileset dir="${module.lib.dir}/compile">
  				<include name="*.jar"/>	
  			</fileset>
  	</path>
  	
  	<path id="default.test-compile.classpath">
  		<path refid="default.compile.classpath"/>
  		<path location="${java.classes.dir}"/>
  		<fileset dir="${module.lib.dir}/test">
  			<include name="*.jar"/>	
  		</fileset>
  	</path>
  	
  	<path id="default.test.classpath">
  		<path refid="default.test-compile.classpath"/>
  		<pathelement location="${test.classes.dir}"/>
  		
  		<!-- To pick up any classpath resources. -->
  		
  		<path location="${test.src.dir}"/>
  		
  		<!-- To pick up log4j.properties or other runtime resources. -->
  		<pathelement location="${conf.src.dir}"/>	
  		
  		<!-- This is pretty specific to HiveMind, but eventually
  				 everything will be a HiveMind module. Pick up
  				 the module deployment descriptor. -->
  				 
  		<pathelement location="${descriptor.src.dir}"/>	
  	</path>
  	
  	<path id="default.source.path">
  		<pathelement location="${java.src.dir}"/>
  		<pathelement location="${generated-java.src.dir}"/>	
  	</path>
  	
  	<macrodef name="copy-source-resources">
  		<attribute name="classes-dir" default="${java.classes.dir}" description="Directory to copy resources to."/>
  		
  		<sequential>
  		
  			<announce message="Copying resources to @{classes-dir} ..."/>
  			
  			<copy todir="@{classes-dir}" includeEmptyDirs="false">
  				<fileset dir="${java.src.dir}">
  					<exclude name="**/*.java"/>	
  					<exclude name="**/package.html"/>
  				</fileset>
  			</copy>
  			
  		</sequential>
  		
  	</macrodef>
  	
  	<macrodef name="default-compile">
  		<attribute name="compile-classpath-id" 
  				default="default.compile.classpath"
  				description="Reference to a path defining compile-time libraries."/>
  		<attribute name="sourcepath-id"
  			default="default.source.path"
  			description="Referencce to a path of source directories to compile."/>
  		<attribute name="classes-dir"
  				default="${java.classes.dir}"
  				description="Directory to compile classes into."/>
  		
  		<sequential>
  			
  			<antcall target="-compile-init"/>
  			<mkdir dir="@{classes-dir}"/>
  			
  			<!-- Make the directory, before it is referenced via default.compile.classpath.
  				   The javacc.xml module actually puts files into generated Java.  Perhaps
  				   in the future, an XDoclet extension will make use of this as well. -->
  			
  			<announce message="Compiling Java sources to @{classes-dir} ..."/>
  			
  			<javac
  				destdir="@{classes-dir}"
  				classpathref="@{compile-classpath-id}"
          debug="${module.javac.debug}"
          debuglevel="${module.javac.debuglevel}"
          optimize="${module.javac.optimize}"
          deprecation="${module.javac.deprecation}"
          target="${module.javac.target}"
          verbose="${module.javac.verbose}"
          source="${module.javac.source}"
          listfiles="${module.javac.listfiles}"
          >
  				<src>
  					<path refid="@{sourcepath-id}"/>
  				</src>	
  			</javac>
  				
  			<copy-source-resources classes-dir="@{classes-dir}"/>				
  		</sequential>	
  	</macrodef>
  	
  	<macrodef name="default-compile-tests">
  		<attribute name="compile-classpath-id"
  			default="default.test-compile.classpath"
  			description="Reference to a path used to compile unit tests."/>
      <sequential>
        <mkdir dir="${test.classes.dir}"/>
        
        <announce message="Compiling tests to ${test.classes.dir} ..."/>
        
        <javac destdir="${test.classes.dir}" 
          classpathref="@{compile-classpath-id}"
          srcdir="${test.src.dir}" 
          debug="${module.javac-test.debug}" 
          debuglevel="${module.javac-test.debuglevel}" 
          optimize="${module.javac-test.optimize}" 
          deprecation="${module.javac-test.deprecation}" 
          target="${module.javac-test.target}" 
          verbose="${module.javac-test.verbose}" 
          source="${module.javac-test.source}" 
          listfiles="${module.javac-test.listfiles}" />
      </sequential>
  	</macrodef>
  	
  	<macrodef name="default-run-tests">
  		<attribute name="classpath-id" default="default.test.classpath"
  			description="Reference to path used for tests."/>
  		<attribute name="fork" default="off" description="Run the tests in a seperate JVM if on."/>
  		<element name="junit-elements" optional="true" description="Additional elements placed within the junit task."/>
  		
  		<sequential>
  			<mkdir dir="${junit.temp.dir}"/>
  			<mkdir dir="${junit.report.dir}"/>
  
  			<announce message="Running unit tests ..."/>
  
  			<junit 
  				fork="@{fork}"
  				haltonfailure="off"
  				failureproperty="junit-failure"
  				tempdir="${junit.temp.dir}">
  					
  					<classpath refid="@{classpath-id}"/>
  					
  					<formatter type="xml"/>
            <formatter type="brief" usefile="false"/>
            <formatter type="plain"/>
            					
  					<batchtest todir="${junit.report.dir}">
  						<fileset dir="${test.classes.dir}">
  							<!-- Inner classes cause problems! -->
  							<exclude name="**/*$*.class"/>
  							<include name="**/Test*.class"/>	
  						</fileset>	
  					</batchtest>	
  					
  					<junit-elements/>					
  			</junit>
  			
  			<fail if="junit-failure" message="Some tests failed."/>
  			
  		</sequential>	
  	</macrodef>
  	
  	<target name="compile-dependencies" description="Overriden to download dependencies as external package.">
  		<!-- Does nothing. This is often overriden, and becomes a series of
  			   calls to macros defines in download.xml. -->
  	</target>
  	 
  	<target name="-compile-init">
  		<mkdir dir="${module.lib.dir}/compile"/>
  		<mkdir dir="${module.lib.dir}/test"/>
  		<mkdir dir="${module.lib.dir}/run"/>	
  		
  		<mkdir dir="${generated-java.src.dir}"/>				
  	</target>
  	
  	<!-- Usually overriden so that the options used when compiling, especially compile-classpath-id, can be overriden. -->
  	
  	<target name="compile" description="Compile Java source code." depends="compile-dependencies">
  		<default-compile/>
  	</target>
  	
  	<target name="compile-tests" description="Compiles JUnit tests." depends="compile">
  		<default-compile-tests/>
  	</target>
  	
  	<target name="run-tests" description="Runs JUnit tests." depends="compile-tests">
  		<default-run-tests/>	
  	</target>
  	
  	<target name="jar" depends="run-tests" description="Compile classes and package into a JAR.">
  		
  		<fail unless="module.name" message="Property module.name must be set."/>
  		
  		<property name="complete-jar-path" value="${jar.target.dir}/${module.name}-${project.version}.jar"/>
  		
  		<mkdir dir="${jar.target.dir}"/>
  		
  		<announce message="Packaging as ${complete-jar-path} ..."/>
  
  		<jar
  				destfile="${complete-jar-path}"
  				index="yes">
  				<fileset dir="${descriptor.src.dir}"/>
  				<fileset dir="${java.classes.dir}"/>
  		</jar>
  		
  	</target>
  	
  	<macrodef name="default-javadoc">
  		<attribute name="sourcepath-id" default="default.source.path" description="Reference to source path."/>
  		<attribute name="classpath-id" default="default.compile.classpath"/>
  		
  		<sequential>
  			<fail unless="javadoc.package" message="You must specify property javadoc.packages."/>
  			
  			<mkdir dir="${javadoc.target.dir}"/>
  			
  			<announce message="Generating Javadoc ..."/>
  	
  			<javadoc
  				destdir="${javadoc.target.dir}"
  				classpathref="@{classpath-id}"
  				version="yes"
  				use="yes"
  				splitindex="yes"
  				windowtitle="${module.name} - ${project.version} API">
  				<package name="${javadoc.package}"/>
  				<sourcepath>
  					<pathelement location="${java.src.dir}"/>
  					<pathelement location="${generated-java.src.dir}"/>	
  				</sourcepath>
  			</javadoc>
  		</sequential>	
  	</macrodef>
  	
  	<target name="javadoc" depends="-compile-init" description="Create JavaDoc from Java source files.">
  		<default-javadoc/>	
  	</target>
  	
  	<target name="install" depends="jar" 
  		description="Synonym for 'jar' invoked by the containing project."/>
  			
  </project>
  
  
  1.1                  jakarta-hivemind/hivebuild/clover-report.xml
  
  Index: clover-report.xml
  ===================================================================
  <?xml version="1.0"?>
  <project name="clover-report">
  	<fail unless="ant.file.hivebuild" message="Must import hivebuild.xml first."/>
  	<fail unless="ant.file.dependency" message="Must import dependency.xml first."
  		/>
  	<property file="${hivebuild.dir}/clover.properties"/>
  	<path id="default.clover.classpath">
  		<pathelement location="${clover.classes.dir}"/>
  		<pathelement location="${ant.home}/lib/${clover.jar}"/>
  		<path refid="default.test.classpath"/>
  	</path>
  	<available property="clover.available"
  		classname="org.apache.tools.ant.taskdefs.CloverCompilerAdapter"/>
  	<target name="-check-for-clover" unless="clover.available">
  		<antcall target="-display-download-warning"/>
  		<grabber dest="${ant.home}/lib/${clover.jar}"
  			src="${maven.ibiblio.url}/clover/jars/${clover.jar}"
  			md5="${maven.ibiblio.url}/clover/jars/${clover.jar}.md5" />
  		<echo><![CDATA[
  		
  *** Clover has been installed into ${ant.home}/lib. 
  *** 
  *** You must restart the build.
  	
  ]]></echo>
  		<fail message="Clover has been installed. Restart the build."/>
  	</target>
  	<macrodef name="default-clover">
  		<attribute name="sourcepath-id" default="default.source.path"
  			description="Path reference to source files to compile."/>
  		<attribute name="compile-classpath-id" default="default.compile.classpath"
  			description="Compile-time classpath."/>
  		<attribute name="test-classpath-id" default="default.clover.classpath"
  			description="Runtime classpath for unit tests running under clover."/>
  		<element name="clover-junit-elements" optional="true"
  			description="Additional elements passed to the JUnit task."/>
  		<sequential>
  			<antcall target="-check-for-clover"/>
  			<antcall target="-compile-init"/>
  			<antcall target="compile-dependencies"/>
  			<mkdir dir="${clover.classes.dir}"/>
  			<taskdef resource="clovertasks"/>
  			<typedef resource="clovertypes"/>
  			<announce message="Recompiling Java sources for Clover ..."/>
  			<clover-setup initString="${clover.db.dir}" preserve="true"
  				tmpdir="${target.dir}"/>
  			<default-compile classes-dir="${clover.classes.dir}"/>
  			<default-run-tests fork="on" classpath-id="default.clover.classpath">
  				<junit-elements>
  					<clover-junit-elements/>
  				</junit-elements>
  			</default-run-tests>
  		</sequential>
  	</macrodef>
  	<macrodef name="generate-clover-html">
  		<sequential>
  			<announce message="Generating HTML code coverage report ..."/>
  			<clover-report>
  				<current
  					title="Code Coverage for ${module.name} release ${project.version}"
  					outfile="${module.docs.target.dir}/clover">
  					<format type="html">
  					</format>
  				</current>
  			</clover-report>
  			<add-report-to-menu element="clover-${module.name}"
  				label="Clover Code Coverage" file="clover/index.html"/>
  		</sequential>
  	</macrodef>
  	<macrodef name="clover-report">
  		<sequential>
  			<default-clover/>
  			<generate-clover-html/>
  		</sequential>
  	</macrodef>
  </project>
  
  
  
  1.1                  jakarta-hivemind/hivebuild/license-report.properties
  
  Index: license-report.properties
  ===================================================================
  #
  # Copyright 2004 The Apache Software Foundation
  #
  # Licensed under the Apache License, Version 2.0 (the "License");
  # you may not use this file except in compliance with the License.
  # You may obtain a copy of the License at
  #
  #     http://www.apache.org/licenses/LICENSE-2.0
  #
  # Unless required by applicable law or agreed to in writing, software
  # distributed under the License is distributed on an "AS IS" BASIS,
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  # See the License for the specific language governing permissions and
  # limitations under the License.
  
  # The name of the license file, as stored in the project root folder.
  
  license-report.license-file=LICENSE-2.0.txt
  
  
  
  
  1.1                  jakarta-hivemind/hivebuild/license-report.xml
  
  Index: license-report.xml
  ===================================================================
  <?xml version="1.0"?>
  <!-- $Id: license-report.xml,v 1.1 2004/07/11 17:14:43 hlship Exp $ -->
  <!-- 
     Copyright 2004 The Apache Software Foundation
  
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at
  
         http://www.apache.org/licenses/LICENSE-2.0
  
     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
  -->
  <project name="license-report">
  	<fail unless="ant.file.forrest" message="Must import forrest.xml first."/>
  	<property file="${hivebuild.dir}/license-report.properties"/>
  	<macrodef name="license-report">
  		<sequential>
  			<announce message="Generating License Report ..."/>
  			<concat destfile="${project.forrest.xdocs.dir}/license-report.xml">
  				<filelist dir="${forrest.report-artifacts.dir}"
  					files="license-report.header.xml"/>
  				<filelist dir="." files="${license-report.license-file}"/>
  				<filelist dir="${forrest.report-artifacts.dir}"
  					files="license-report.trailer.xml"/>
  			</concat>
  			<add-report-to-menu element="license-report" label="License"
  				file="license-report.html"/>
  		</sequential>
  	</macrodef>
  </project>
  
  
  
  1.1                  jakarta-hivemind/hivebuild/javacc.xml
  
  Index: javacc.xml
  ===================================================================
  <?xml version="1.0"?>
  <!-- $Id: javacc.xml,v 1.1 2004/07/11 17:14:43 hlship Exp $ -->
  <!-- 
     Copyright 2004 The Apache Software Foundation
  
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at
  
         http://www.apache.org/licenses/LICENSE-2.0
  
     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
  -->
  <project name="javacc">
  		<fail unless="ant.file.hivebuild" message="Must import hivebuild.xml first."/>
  		<fail unless="ant.file.dependency" message="Must import dependency.xml first."/>
  		
      <property file="${hivebuild.dir}/javacc.properties"/>
  		
  		<macrodef name="run-javacc">
  			<attribute name="input" description="The path to the input (.jj) file to compile."/>
  			<attribute name="package-path" description="The package path to which files should be created."/>
  			
  			<sequential>
  				<grabber
  					src="${maven.ibiblio.url}/javacc/jars/JavaCC.zip"
  					dest="${javacc.dist.zip}"/>
  					
  				<mkdir dir="${generated-java.src.dir}/@{package-path}"/>
  				
  				<announce message="Building JavaCC parser from @{input} ..."/>
  			
  				<!-- JavaCC is stupid; we have to tell it about package directories, which is stupid. -->
  			
  				<javacc
  					javacchome="${external.package.dir}"
  					target="@{input}"
  					outputdirectory="${generated-java.src.dir}/@{package-path}"/>
  									
  			</sequential>						
  		</macrodef>
  		
  </project>
  
  
  
  1.1                  jakarta-hivemind/hivebuild/hivebuild.properties
  
  Index: hivebuild.properties
  ===================================================================
  #  Copyright 2004 The Apache Software Foundation
  #
  # Licensed under the Apache License, Version 2.0 (the "License");
  # you may not use this file except in compliance with the License.
  # You may obtain a copy of the License at
  #
  #     http:#www.apache.org/licenses/LICENSE-2.0
  #
  # Unless required by applicable law or agreed to in writing, software
  # distributed under the License is distributed on an "AS IS" BASIS,
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  # See the License for the specific language governing permissions and
  # limitations under the License.
  
  # Common properties related to the build.
  
  # Default root (project) directory; override inside modules
  
  root.dir=.
  
  # Directory containing build files and such. This is normally computed
  # on the fly, inside hivebuild.xml.
  
  hivebuild.dir=${root.dir}/hivebuild
  
  # target directory ... where all derived files are placed (usually in subdirs).
  
  target.dir=target
  
  # Top-level target directory, used when generating a distribution
  
  project.target.dir=${root.dir}/${target.dir}
  
  # Directory containing various forms of source code, used when packaging
  # a source distribution.
  
  src.dir=src
  
  # Directory for main Java classes and resources (those that will be packaged up in the
  # derived JAR or WAR).
  
  java.src.dir=${src.dir}/java
  
  # Output directory for compilation of java.src.dir
  
  java.classes.dir=${target.dir}/classes
  
  # Directory for test code, i.e., where unit tests live
  
  test.src.dir=${src.dir}/test
  
  # Output directory for test code
  
  test.classes.dir=${target.dir}/test-classes
  
  # Output directory for XML test reports
  
  test.reports.dir=${target.dir}/test-reports
  
  # Directory used to store external packages used within the project
  # (by the project, project build scripts, modules, or module build scripts)
  
  external.package.dir=${root.dir}/ext-package
  
  # Directory to which external package JARs are extracted
  
  external.lib.dir=${external.package.dir}/lib
  
  # Directory containing dependencies of the module.
  
  module.lib.dir=${target.dir}/module-lib
  
  # URL root for downloads from the Maven IBiblio repository
  
  maven.ibiblio.url=http://www.ibiblio.org/maven
  
  # Directory to which all generated Java source code is stored.
  
  generated-java.src.dir=${target.dir}/generated-java
  
  # Directory used for temporary files by the JUnit tests
  
  junit.temp.dir=${target.dir}/junit-temp
  
  # Directory where JUnit test reports are written.
  
  junit.report.dir=${target.dir}/junit-reports
  
  # Directory containing run-time configuration information (often only
  # needed during testing, such as a log4.properties file).
  
  conf.src.dir=${src.dir}/conf
  
  # Directory containing descriptors (specifically, the HiveMind module deployment descriptor).
  
  descriptor.src.dir=${src.dir}/descriptor
  
  # Directory into which packaged JARs (or other archives) should be copied.
  # This may be overriden when creating a distribution.
  
  jar.target.dir=${project.target.dir}
  
  # Note: project.version is defined in ${root.dir}/version.properties
  
  # Project-level directory for documentation. Modules copy into this directory,
  # so they need to know about it.
  
  project.docs.target.dir=${project.target.dir}/docs
  
  # Directory to which documentation is generated.
  module.docs.target.dir=${project.docs.target.dir}/${module.name}
  
  # Directory to which javadoc is generated
  javadoc.target.dir=${module.docs.target.dir}/apidocs
  
  # Directory to which project and module documentation files are ultimately copied (or generated)
  project.forrest.composite.dir=${project.target.dir}/forrest-composite
  
  # Directory to which Forrest XDoc files should be copied or generated.
  project.forrest.xdocs.dir=${project.forrest.composite.dir}/content/xdocs
  
  # File into which reports can record menu items.
  
  # Directory containing documentation to be copied into the composite.
  forrest.documentation.dir=${src.dir}/documentation
  
  # Directory containing report artifacts (templates used by
  # some of the reports).
  
  forrest.report-artifacts.dir=${hivebuild.dir}/report-artifacts
  
  
  
  
  1.1                  jakarta-hivemind/hivebuild/dependency.xml
  
  Index: dependency.xml
  ===================================================================
  <?xml version="1.0"?>
  <!-- 
     Copyright 2004 The Apache Software Foundation
  
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at
  
         http://www.apache.org/licenses/LICENSE-2.0
  
     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
  -->
  <project name="dependency">
  	<fail unless="ant.file.hivebuild" message="Must import hivebuild.xml first."/>
  	
  	<available classname="org.apache.ant.grabber.Grabber" property="grabber-task-available"/>
  	<fail unless="grabber-task-available" message="Grab task (from ant-grabber.jar) not on Ant classpath."/>
  	
  	<taskdef classname="org.apache.ant.grabber.Grabber" name="grabber"/>
  
  	<property name="download-warning-marker.file" value="${external.package.dir}/download-warning-marker"/>
  	
  	<available property="download-warning-marker-displayed"
  			type="file"
  			file="${download-warning-marker.file}"/>
  			
  	<target name="-display-download-warning" unless="download-warning-marker-displayed">
  		<echo>
  **************************************************************************************************
  *                                                                                                *
  *                             D O W N L O A D   W A R N I N G                                    *
  *                                                                                                *
  * Dependent libraries will be downloaded.  These are NOT necessarily downloaded from apache.org, *  
  * and may use other licences besides the Apache Software License. Dependencies will use an       *
  * open-source license compatible with the ASL, such as Berkeley Software Distribution (BSD) or   *
  * Mozilla Public License (MPL).                                                                  *
  *                                                                                                *
  **************************************************************************************************
  </echo>
  	
  		<input 
  			validargs="continue" 
  			message="Enter 'continue' to continue with the build:"/>
  	
  		<mkdir dir="${external.package.dir}"/>
  		<echo file="${download-warning-marker.file}">Download warning accepted.</echo>
  		
  	</target>
  
  	<macrodef name="safe-copy">
  		<attribute name="file" description="File to copy."/>
  		<attribute name="dir" description="Directory to copy to."/>
  		
  		<sequential>
  			<mkdir dir="@{dir}"/>
  			<copy file="@{file}" todir="@{dir}"/>	
  		</sequential>	
  	</macrodef>
  
  	<!-- macro for downloading a JAR from maven's repository on ibiblio. -->
  	
  	<macrodef name="ibiblio-dependency">
  		<attribute name="jar" description="The name of the JAR to download."/>
  		<attribute name="group-id" description="The Maven group-id containing the JAR."/>
  		<attribute name="use" default="compile" description="Useage of the dependency: compile, test or run."/>
  		
  		<sequential>
  			<mkdir dir="${external.lib.dir}"/>
  			
  			<antcall target="-display-download-warning"/>
  
  			<grabber
  				dest="${external.lib.dir}/@{jar}"
  				src="${maven.ibiblio.url}/@{group-id}/jars/@{jar}" 
  				md5="${maven.ibiblio.url}/@{group-id}/jars/@{jar}.md5"
  				/>
  
  			<safe-copy
  					file="${external.lib.dir}/@{jar}"
  					dir="${module.lib.dir}/@{use}"/>
  			
  		</sequential>
  	</macrodef>
  	
  	<available file="${unpack-zip-dir}" type="dir" property="unpacked-zip-dir-exists"/>
  	
  	<target name="-unpack-zip-dependency" unless="unpacked-zip-dir-exists" depends="-display-download-warning">
  		<property name="local-copy-path" value="${external.package.dir}/${unpack-zip-name}"/>
  		<grabber
  				src="${unpack-zip-url}"
  				dest="${local-copy-path}"/>
  		<unzip src="${local-copy-path}" dest="${external.package.dir}"/>
  	</target>
  	
  	<macrodef name="unpacked-zip-dependency">
  		<attribute name="url" description="The URL of the folder containing the zip file."/>
  		<attribute name="zip" description="The name of the zip file itself."/>
  		<attribute name="dir" description="The name of the directory that will be created."/>
  		
  		<sequential>
  			<antcall target="-unpack-zip-dependency" inheritAll="false">
  				<param name="unpack-zip-dir" value="@{dir}"/>
  				<param name="unpack-zip-url" value="@{url}/@{zip}"/>
  				<param name="unpack-zip-name" value="@{zip}"/>
  			</antcall>
  		</sequential>
  		
  	</macrodef>
  
  	
  	<!-- An internal dependency to another library previously created
  		   by a sibiling module.  Assumes that the module is infixed
  		   with the project's version. -->
  		   
  	<macrodef name="project-dependency">
  		<attribute name="name" description="The name of the dependency (the part before the version number)."/>
  		<attribute name="version" default="${project.version}" description="The version number."/>
  		<attribute name="extension" default="jar" description="The extension to use; default is 'jar'."/>
  		<attribute name="use" default="compile" description="Useage of the dependency: compile, test or run."/>
  		
  		<sequential>
  			<safe-copy
  					file="${jar.target.dir}/@{name}-@{version}.@{extension}"
  					dir="${module.lib.dir}/@{use}"/>					
  		</sequential>	
  	</macrodef>
  
  </project>
  
  
  1.1                  jakarta-hivemind/hivebuild/clover.properties
  
  Index: clover.properties
  ===================================================================
  #
  # Copyright 2004 The Apache Software Foundation
  #
  # Licensed under the Apache License, Version 2.0 (the "License");
  # you may not use this file except in compliance with the License.
  # You may obtain a copy of the License at
  #
  #     http://www.apache.org/licenses/LICENSE-2.0
  #
  # Unless required by applicable law or agreed to in writing, software
  # distributed under the License is distributed on an "AS IS" BASIS,
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  # See the License for the specific language governing permissions and
  # limitations under the License.
  
  clover.classes.dir=${target.dir}/clover-classes
  clover.db.dir=${target.dir}/clover-db
  clover.report.dir=${project.forrest.content.dir}/${module.name}/clover
  clover.jar=clover-1.2.3.jar
  
  
  
  
  
  1.8       +5 -4      jakarta-hivemind/build.xml
  
  Index: build.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-hivemind/build.xml,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- build.xml	17 Jun 2004 15:16:14 -0000	1.7
  +++ build.xml	11 Jul 2004 17:14:43 -0000	1.8
  @@ -23,10 +23,11 @@
   		dir="."
   		files="framework/build.xml library/build.xml"/>
   
  -	<import file="common/project.xml"/>
  -	<import file="common/license-report.xml"/>
  -	<import file="common/hivedoc-report.xml"/>
  -	<import file="common/dist.xml"/>
  +	<import file="hivebuild/project.xml"/>
  +  
  +	<import file="${hivebuild.dir}/license-report.xml"/>
  +	<import file="${hivebuild.dir}/hivedoc-report.xml"/>
  +	<import file="${hivebuild.dir}/dist.xml"/>
   
   	<target name="run-reports">
   		<license-report/>
  
  
  
  1.20      +19 -1     jakarta-hivemind/status.xml
  
  Index: status.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-hivemind/status.xml,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- status.xml	27 Jun 2004 00:17:49 -0000	1.19
  +++ status.xml	11 Jul 2004 17:14:43 -0000	1.20
  @@ -21,10 +21,28 @@
     <todo>
       <actions priority="Release 1.0">
         <action context="lib" dev="HLS">JMX Integration</action>
  +      <action context="project" dev="HLS">Make build scripts more portable.</action>
       </actions>
     </todo>
  +  
  +  
  +  
     <changes>
  -    <release version="1.0-beta-1" date="unreleased">
  +  
  +    <release version="1.0.beta-2" date="unreleased">
  +      <action type="update" dev="HLS">
  +        Add link to the Jakarta mailing lists page.
  +      </action>
  +      <action type="fix" dev="HLS" fixes-bug="HIVEMIND-21" due-to="Achim Hügen">
  +        Modify build scripts to properly include variable info when compiling.
  +      </action>
  +      <action type="update" dev="HLS">
  +        Move the Ant build scripts to a new directory, hivebuild, in preparation
  +        for making hivebuild reusable on new projects.
  +      </action>
  +    </release>
  +  
  +    <release version="1.0-beta-1" date="Jun 26 2004">
         <action type="update" dev="HLS">Added change log. </action>
         <action type="update" dev="HLS">Refactored ClassFab and related classes 
           for easier reuse outside of HiveMind. Added a new suite of tests 
  
  
  
  1.1                  jakarta-hivemind/version.properties
  
  Index: version.properties
  ===================================================================
  #  Copyright 2004 The Apache Software Foundation
  #
  # Licensed under the Apache License, Version 2.0 (the "License");
  # you may not use this file except in compliance with the License.
  # You may obtain a copy of the License at
  #
  #     http:#www.apache.org/licenses/LICENSE-2.0
  #
  # Unless required by applicable law or agreed to in writing, software
  # distributed under the License is distributed on an "AS IS" BASIS,
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  # See the License for the specific language governing permissions and
  # limitations under the License.
  
  # Version of project; incorporated into the names of
  # archives and distributions.
  
  # Version of project; incorporated into the names of
  # archives and distributions.
  
  project.version=1.0-beta-2-snapshot
  
  
  
  1.8       +4 -4      jakarta-hivemind/framework/build.xml
  
  Index: build.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-hivemind/framework/build.xml,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- build.xml	21 Jun 2004 14:25:44 -0000	1.7
  +++ build.xml	11 Jul 2004 17:14:43 -0000	1.8
  @@ -18,10 +18,10 @@
   	<property name="module.name" value="hivemind"/>
   	<property name="javadoc.package" value="org.apache.hivemind.*"/>
   	<property name="root.dir" value=".."/>
  -	<import file="${root.dir}/common/jar-module.xml"/>
  -	<import file="${common.dir}/javacc.xml"/>
  -	<import file="${common.dir}/javadoc-report.xml"/>
  -	<import file="${common.dir}/clover-report.xml"/>
  +	<import file="${root.dir}/hivebuild/jar-module.xml"/>
  +	<import file="${hivebuild.dir}/javacc.xml"/>
  +	<import file="${hivebuild.dir}/javadoc-report.xml"/>
  +	<import file="${hivebuild.dir}/clover-report.xml"/>
   	<target name="compile">
   		<ibiblio-dependency jar="commons-logging-1.0.3.jar"
   			group-id="commons-logging"/>
  
  
  
  1.8       +3 -3      jakarta-hivemind/library/build.xml
  
  Index: build.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-hivemind/library/build.xml,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- build.xml	17 Jun 2004 15:16:15 -0000	1.7
  +++ build.xml	11 Jul 2004 17:14:43 -0000	1.8
  @@ -20,9 +20,9 @@
   	<property name="javadoc.package" value="org.apache.hivemind.lib.*"/>
   	
   	<property name="root.dir" value=".."/>
  -	<import file="${root.dir}/common/jar-module.xml"/>
  -	<import file="${common.dir}/javadoc-report.xml"/>	
  -	<import file="${common.dir}/clover-report.xml"/>
  +	<import file="${root.dir}/hivebuild/jar-module.xml"/>
  +	<import file="${hivebuild.dir}/javadoc-report.xml"/>	
  +	<import file="${hivebuild.dir}/clover-report.xml"/>
   		
   	<target name="compile">
   		<ibiblio-dependency jar="geronimo-spec-ejb-1.0-M1.jar" group-id="geronimo-spec"/>
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: hivemind-cvs-unsubscribe@jakarta.apache.org
For additional commands, e-mail: hivemind-cvs-help@jakarta.apache.org