hi!

I've been working on a build file that
compiles all avalon projects and then
runs phoenix. I use it with JBuilder and
AntRunner for debugging 'n stuff.

Place the build.xml file in a directory
parallel to your CVS checkouts of the
Avalon code; to use the run target you
also need to put EmbeddedLoader.java in
the appropriate
(org/apache/avalon/phoenix/engine/loader)
directory.

Once I clean up that loader I'll put this
in CVS.

cheers,

Leo

PS: while I'm at it, here's my JBuilder
project file...
<?xml version="1.0"?>
<!--
===============================================================================
=== Avalon project buildfile                                                ===
===============================================================================
=== Authors:                                                                ===
===		Leo Simons <[EMAIL PROTECTED]>									    ===
===                                                                         ===
=== Copyright (c) 2001 The Apache Software Foundation. All Rights Reserved. ===
===============================================================================
-->
<project default="main" basedir=".">
	<!--
	=========================================================================
	=== Set all properties                                                ===
	=========================================================================
	-->
	<property name="build.dir" value="../build" />
	<property name="classes.dir" value="${build.dir}/classes" />
	<property name="dist.dir" value="../dist" />
	<property name="lib.dir" value="../lib" />
	<property name="docs.dir" value="${dist.dir}/docs" />
	<property name="javadocs.dir" value="${docs.dir}/api" />
	<property name="jdk.javadocs.dir" value="file:///G:/Programma's/Programming/JBuilder/jdk1.3/docs/api" />

	<property name="debug" value="off" />
	<property name="optimize" value="off" />
	<property name="deprecation" value="off" />

	<!-- framework properties -->
	<property name="framework.dir" value="../jakarta-avalon" />
	<property name="framework.dir" value="../jakarta-avalon" />
	<property name="framework.src.dir" value="${framework.dir}/src" />
	<property name="framework.java.dir" value="${framework.src.dir}/java" />
	<property name="framework.scratchpad.dir" value="${framework.src.dir}/scratchpad" />

	<!-- excalibur properties -->
	<property name="excalibur.dir" value="../jakarta-avalon" />
	<property name="excalibur.src.dir" value="${excalibur.dir}/src" />
	<property name="excalibur.java.dir" value="${excalibur.src.dir}/java" />
	<property name="excalibur.scratchpad.dir" value="${excalibur.src.dir}/scratchpad" />

	<!-- logkit properties -->
	<property name="logkit.dir" value="../jakarta-avalon-logkit" />
	<property name="logkit.src.dir" value="${logkit.dir}/src" />
	<property name="logkit.java.dir" value="${logkit.src.dir}/java" />

	<!-- cornerstone properties -->
	<property name="cornerstone.dir" value="../jakarta-avalon-cornerstone" />
	<property name="cornerstone.src.dir" value="${cornerstone.dir}/src" />
	<property name="cornerstone.java.dir" value="${cornerstone.src.dir}/java" />

	<!-- phoenix properties -->
	<property name="phoenix.dir" value="../jakarta-avalon-phoenix" />
	<property name="phoenix.home" value="F:/avalon" />
	<property name="phoenix.src.dir" value="${phoenix.dir}/src" />
	<property name="phoenix.java.dir" value="${phoenix.src.dir}/java" />
	<property name="phoenix.constants.file" value="org/apache/avalon/phoenix/engine/Constants.java"/>
	<property name="phoenix.version" value="3.5a" />
	<property name="phoenix.name" value="Avalon Phoenix" />

	<!-- apps properties -->
	<property name="apps.dir" value="../jakarta-avalon-cornerstone" />
	<property name="apps.src.dir" value="${apps.dir}/src" />
	<property name="apps.java.dir" value="${apps.src.dir}/java" />


	<!-- paths -->
	<path id="project.class.path">
		<pathelement path="${java.class.path}" />
	    <fileset dir="${lib.dir}">
			<include name="*.jar" />
			<include name="*.zip" />
		</fileset>
		<pathelement path="${classes.dir}" />
	</path>
	<path id="project.src.path">
	    <pathelement path="${framework.java.dir}" />
	    <pathelement path="${framework.scratchpad.dir}" />
	    <pathelement path="${excalibur.java.dir}" />
	    <pathelement path="${excalibur.scratchpad.dir}" />
	    <pathelement path="${logkit.java.dir}" />
	    <pathelement path="${cornerstone.java.dir}" />
	    <pathelement path="${phoenix.java.dir}" />
	</path>

	<!--
	===========================================================================
	=== Project-wide Targets                                                ===
	===========================================================================
	-->

	<!-- compile and then run phoenix; doesn't quite work yet... -->
	<target
		    name="run"
			depends="compile">
		<java
			    classname="org.apache.avalon.phoenix.engine.loader.EmbeddedLoader"
				fork="yes">
			<classpath refid="project.class.path" />
			<jvmarg value="-Dphoenix.home=${phoenix.home}" />
		</java>
	</target>

	<!-- default: compile -->
	<target
			name="main"
			depends="compile" />

	<!-- compile all projects -->
	<target
			name="compile"
			depends="compile-framework, compile-logkit, compile-excalibur, compile-cornerstone, compile-phoenix, compile-apps" />

	<!-- recompile all projects -->
	<target
			name="recompile"
			depends="compile-clean" />
	<target
			name="compile-clean"
			depends="clean, compile" />

	<!-- create complete documentation -->
<!--	<target
		name="docs"
		depends="docs-framework, docs-logkit, docs-excalibur, docs-cornerstone, docs-phoenix, docs-apps" />-->

	<!-- create API documentation -->
	<target name="javadoc" depends="apidoc" />
	<target name="javadocs" depends="apidoc" />
	<target name="api" depends="apidoc" />
	<target
			name="apidoc"
			depends="compile">
		<copy file="${excalibur.java.dir}/org/apache/avalon/excalibur/datasource/Jdbc2Connection.java"
				tofile="${excalibur.java.dir}/org/apache/avalon/excalibur/datasource/Jdbc2Connection.java.bak"
				overwrite="yes" />
		<delete file="${excalibur.java.dir}/org/apache/avalon/excalibur/datasource/Jdbc2Connection.java" />
		<copy file="${excalibur.java.dir}/org/apache/avalon/excalibur/datasource/Jdbc3Connection.java"
				tofile="${excalibur.java.dir}/org/apache/avalon/excalibur/datasource/Jdbc3Connection.java.bak"
				overwrite="yes" />
		<delete file="${excalibur.java.dir}/org/apache/avalon/excalibur/datasource/Jdbc3Connection.java" />
		<javadoc
			    packagenames="org.apache.*"
				destdir="${javadocs.dir}">
			<classpath refid="project.class.path" />
			<sourcepath refid="project.src.path" />
			<link href="${jdk.javadocs.dir}" />
		    <doclet name="com.sun.tools.doclets.standard.Standard">
				<param name="-author"/>
				<param name="-version"/>
				<param name="-use"/>
				<param name="-doctitle" value="Avalon Server Framework"/>
				<param name="-windowtitle" value="Avalon Server Framework API"/>
				<param
					    name="-bottom"
						value="&quot;Copyright &#169; 2001 Apache Jakarta Project. All Rights Reserved.&quot;"/>
		    </doclet>
		</javadoc>
		<copy file="${excalibur.java.dir}/org/apache/avalon/excalibur/datasource/Jdbc2Connection.java.bak"
				tofile="${excalibur.java.dir}/org/apache/avalon/excalibur/datasource/Jdbc2Connection.java"
				overwrite="yes" />
		<delete file="${excalibur.java.dir}/org/apache/avalon/excalibur/datasource/Jdbc2Connection.java.bak" />
		<copy file="${excalibur.java.dir}/org/apache/avalon/excalibur/datasource/Jdbc3Connection.java.bak"
				tofile="${excalibur.java.dir}/org/apache/avalon/excalibur/datasource/Jdbc3Connection.java"
				overwrite="yes" />
		<delete file="${excalibur.java.dir}/org/apache/avalon/excalibur/datasource/Jdbc3Connection.java.bak" />
	</target>

	<!-- prepare output dir structure -->
	<target
			name="prepare"
			depends="check-environment,jdbc2,jdbc3">
		<mkdir dir="${build.dir}" />
		<mkdir dir="${classes.dir}" />
		<mkdir dir="${dist.dir}" />
		<mkdir dir="${docs.dir}" />
		<mkdir dir="${api.dir}" />
	</target>

	<!-- remove ouput dir structure -->
	<target
			name="clean">
		<delete dir="${build.dir}" />
		<delete dir="${classes.dir}" />
		<delete dir="${dist.dir}" />
		<delete dir="${docs.dir}" />
		<delete dir="${api.dir}" />
	</target>

	<!-- check for existing resources -->
	<target
			name="check-environment">
		<available property="jndi.present" classname="javax.naming.Context">
			<classpath refid="project.class.path"/>
		</available>
		<available property="datasource.present" classname="javax.sql.DataSource">
			<classpath refid="project.class.path"/>
		</available>
	    <available property="jsse.present" classname="javax.net.ssl.SSLServerSocket">
			<classpath refid="project.class.path"/>
		</available>
		<available
			    property="servlet.present"
				classname="javax.servlet.ServletContext">
			<classpath refid="project.class.path" />
		</available>
		<available
			    property="avalon-framework.present"
				classname="org.apache.avalon.framework.CascadingThrowable">
			<classpath refid="project.class.path" />
		</available>
		<available
			    property="jdbc3.present"
				classname="java.sql.Savepoint">
		    <classpath refid="project.class.path"/>
		</available>
	</target>

	<target
		    name="jdbc2"
			depends="check-environment"
			unless="jdbc3.present">
		<copy file="${excalibur.java.dir}/org/apache/avalon/excalibur/datasource/Jdbc2Connection.java"
				tofile="${excalibur.java.dir}/org/apache/avalon/excalibur/datasource/JdbcConnection.java"
				overwrite="yes"/>
	</target>
	<target
		    name="jdbc3"
			depends="check-environment"
			if="jdbc3.present">
		<copy file="${excalibur.java.dir}/org/apache/avalon/excalibur/datasource/Jdbc3Connection.java"
				tofile="${excalibur.java.dir}/org/apache/avalon/excalibur/datasource/JdbcConnection.java"
				overwrite="yes"/>
	</target>

	<!--
	===========================================================================
	=== LOGKIT Targets                                                      ===
	===========================================================================
	-->
	<target
			name="compile-logkit"
			depends="prepare-logkit">
	    <javac srcdir="${logkit.java.dir}"
		        destdir="${classes.dir}"
				debug="${debug}"
				optimize="${optimize}"
				deprecation="${deprecation}">
			<classpath refid="project.class.path"/>
			<include name="org/apache/log/**" />
		    <exclude
				    name="org/apache/log/output/ServletOutputLogTarget.java"
				    unless="servlet.present"/>
		    <exclude
				    name="org/apache/log/format/AvalonFormatter.java"
				    unless="avalon-framework.present"/>
		</javac>
	</target>
	<target
			name="prepare-logkit"
			depends="prepare" />

	<!--
	===========================================================================
	=== FRAMEWORK Targets                                                   ===
	===========================================================================
	-->
	<!-- compile Framework classes -->
	<target
			name="compile-framework"
			depends="prepare-framework, compile-logkit">
	    <javac srcdir="${framework.java.dir}"
		        destdir="${classes.dir}"
				debug="${debug}"
				optimize="${optimize}"
				deprecation="${deprecation}">
			<src path="${framework.scratchpad.dir}" />
			<classpath refid="project.class.path"/>
			<include name="org/apache/avalon/framework/**" />
		</javac>
	</target>

	<!-- prepare Framework-specific properties and resources -->
	<target
			name="prepare-framework"
			depends="prepare, prepare-logkit" />

	<!--
	===========================================================================
	=== EXCALIBUR Targets                                                   ===
	===========================================================================
	-->
	<!-- compile Excalibur classes -->
	<target
			name="compile-excalibur"
			depends="prepare-excalibur, compile-logkit, compile-framework">
	    <javac srcdir="${excalibur.java.dir}"
		        destdir="${classes.dir}"
				debug="${debug}"
				optimize="${optimize}"
				deprecation="${deprecation}">
			<src path="${excalibur.scratchpad.dir}" />
			<classpath refid="project.class.path"/>
			<include name="org/apache/avalon/excalibur/**" />
			<exclude
					name="org/apache/avalon/excalibur/datasource/J2eeDataSource.java"
	            	unless="datasource.present"/>
			<exclude name="org/apache/avalon/excalibur/datasource/Jdbc2Connection.java"/>
			<exclude name="org/apache/avalon/excalibur/datasource/Jdbc3Connection.java"/>
		</javac>

		<delete file="${excalibur.java.dir}/org/apache/avalon/excalibur/datasource/JdbcConnection.java"/>
	</target>
	<!-- prepare Excalibur-specific properties and resources -->
	<target
			name="prepare-excalibur"
			depends="prepare, prepare-logkit, prepare-framework" />

	<!--
	===========================================================================
	=== CORNERSTONE Targets                                                 ===
	===========================================================================
	-->
	<!-- compile Cornerstone classes -->
	<target
			name="compile-cornerstone"
			depends="prepare-cornerstone, compile-logkit, compile-framework, compile-excalibur, compile-phoenix">
		<javac srcdir="${cornerstone.java.dir}"
				destdir="${classes.dir}"
				debug="${debug}"
				optimize="${optimize}"
				deprecation="${deprecation}">
			<classpath refid="project.class.path" />
			<include name="org/apache/avalon/cornerstone/**" />
			<exclude name="org/apache/avalon/cornerstone/blocks/serversocket/TLSServerSocketAcceptor.java"
					unless="jsse.present" />
			<exclude name="org/apache/avalon/cornerstone/blocks/sockets/TLSServerSocketFactory.java"
					unless="jsse.present" />
			<exclude name="org/apache/avalon/cornerstone/demos/**" />
		</javac>
	</target>
	<!-- prepare Cornerstone-specific properties and resources -->
	<target
			name="prepare-cornerstone"
			depends="prepare, prepare-logkit, prepare-framework, prepare-excalibur, prepare-phoenix" />

	<!--
	===========================================================================
	=== PHOENIX Targets                                                     ===
	===========================================================================
	-->
	<!-- compile Phoenix classes -->
	<target
			name="compile-phoenix"
			depends="prepare-phoenix, compile-logkit, compile-framework, compile-excalibur">
		<javac srcdir="${phoenix.java.dir}"
				destdir="${classes.dir}"
				debug="${debug}"
				optimize="${optimize}"
				deprecation="${deprecation}">
		    <classpath refid="project.class.path" />
		    <exclude name="${phoenix.constants.file}" />
		</javac>

		<rmic base="${classes.dir}"
				classname="org.apache.jmx.adaptor.RMIAdaptorImpl"
				stubVersion="1.2">
		    <classpath refid="project.class.path" />
		</rmic>

		<copy file="${phoenix.java.dir}/${phoenix.constants.file}.bak"
				tofile="${phoenix.java.dir}/${phoenix.constants.file}"
				overwrite="yes"/>
		<delete file="${phoenix.java.dir}/${phoenix.constants.file}.bak" />
	</target>
	<!-- prepare Phoenix-specific properties and resources -->
	<target
			name="prepare-phoenix"
			depends="prepare, prepare-logkit, prepare-framework, prepare-excalibur">
		<copy file="${phoenix.java.dir}/${phoenix.constants.file}"
				tofile="${phoenix.java.dir}$/${phoenix.constants.file}.bak"
				overwrite="yes"/>
		<replace file="${phoenix.java.dir}/${phoenix.constants.file}" token="@@VERSION@@" value="${phoenix.version}"/>
		<replace file="${phoenix.java.dir}/${phoenix.constants.file}" token="@@NAME@@" value="${phoenix.name}"/>
		<replace file="${phoenix.java.dir}/${phoenix.constants.file}" token="@@DATE@@" value="${TODAY}"/>
	</target>

	<!--
	===========================================================================
	=== APPS Targets                                                        ===
	===========================================================================
	-->
	<!-- compile Apps classes -->
	<target
			name="compile-apps"
			depends="prepare-apps, compile-logkit, compile-framework, compile-excalibur, compile-cornerstone, compile-phoenix">
		<javac srcdir="${cornerstone.java.dir}"
				destdir="${classes.dir}"
				debug="${debug}"
				optimize="${optimize}"
				deprecation="${deprecation}">
			<classpath refid="project.class.path" />
			<include name="org/apache/avalon/cornerstone/demos/**" />
		</javac>
	</target>
	<!-- prepare Apps-specific properties and resources -->
	<target
			name="prepare-apps"
			depends="prepare, prepare-logkit, prepare-framework, prepare-excalibur, prepare-cornerstone, prepare-phoenix" />
</project>

avalon.jpx

EmbeddedLoader.java

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to