All pastes #217132 Raw Edit

Anonymous

public text v1 · immutable
#217132 ·published 2006-10-23 14:03 UTC
rendered paste body
<?xml version="1.0"?>
<project name="RED5" basedir="." default="all">

	<!-- project properties -->

	<property environment="env"/>

	<property name="java.home" value="${env.JAVA_HOME}"/>
	<property name="java.target_version" value="1.5"/>

	<property name="src.dir" value="src"/>
	<property name="bin.dir" value="bin"/>
	<property name="dist.dir" value="dist"/>
	<property name="lib.dir" value="lib"/>
	<property name="classes.dir" value="bin"/>
	<property name="debug.state" value="true"/>
	<property name="config.dir" value="conf"/>
	<property name="javadoc.dir" value="doc/api"/>
	<!-- JUNIT TESTING -->
	<property name="test.dir" value="test"/>
	<property name="testclass.dir" value="bin/testcases"/>
	<property name="testreports.dir" value="${testclass.dir}/testreports"/>
	<property name="testdoc.dir" value="doc/test"/>
	<target name="-junit.check">
		<available property="junit.installed" classname="junit.framework.TestCase" />
	</target>

	<path id="project.classpath">
		<fileset dir="${lib.dir}">
			<include name="*.jar"/>
		</fileset>
	</path>

	<path id="webapps.classpath">
		<fileset dir="${lib.dir}">
			<include name="*.jar"/>
		</fileset>
		<pathelement location="${bin.dir}"/>
	</path>

	<path id="full.classpath">
		<fileset dir="${lib.dir}">
			<include name="*.jar"/>
		</fileset>
		<fileset dir="./">
			<include name="red5.jar"/>
		</fileset>
	</path>

	<echo>java.home is ${java.home} and the target version is ${java.target_version}</echo>


	<!-- setup the directories for building -->

	<target name="prepare">
		<mkdir dir="${classes.dir}"/>
		<mkdir dir="${bin.dir}"/>
		<mkdir dir="${dist.dir}"/>
		<mkdir dir="${testclass.dir}"/>
		<mkdir dir="${testreports.dir}"/>
		<mkdir dir="${src.dir}/../webapps/fitcDemo/WEB-INF/classes"/>
		<mkdir dir="${src.dir}/../webapps/fitcDemo/WEB-INF/lib"/>
		<mkdir dir="${src.dir}/../webapps/oflaDemo/WEB-INF/classes"/>
		<mkdir dir="${src.dir}/../webapps/oflaDemo/WEB-INF/lib"/>
		<mkdir dir="${src.dir}/../webapps/test/WEB-INF/classes"/>
		<mkdir dir="${src.dir}/../webapps/test/WEB-INF/lib"/>
		<mkdir dir="${src.dir}/../webapps/tutorial/WEB-INF/classes"/>
		<mkdir dir="${src.dir}/../webapps/tutorial/WEB-INF/lib"/>
	</target>

	<!-- do a clean -->

	<target name="clean">
		<delete dir="${classes.dir}"/>
		<delete dir="${bin.dir}"/>
		<delete dir="${dist.dir}"/>
		<delete dir="${javadoc.dir}"/>
		<delete dir="${testdoc.dir}"/>
		<delete dir="${src.dir}/../webapps/fitcDemo/WEB-INF/classes"/>
		<delete dir="${src.dir}/../webapps/fitcDemo/WEB-INF/lib"/>
		<delete dir="${src.dir}/../webapps/oflaDemo/WEB-INF/classes"/>
		<delete dir="${src.dir}/../webapps/oflaDemo/WEB-INF/lib"/>
		<delete dir="${src.dir}/../webapps/test/WEB-INF/classes"/>
		<delete dir="${src.dir}/../webapps/test/WEB-INF/lib"/>
		<delete dir="${src.dir}/../webapps/tutorial/WEB-INF/classes"/>
		<delete dir="${src.dir}/../webapps/tutorial/WEB-INF/lib"/>
	</target>

	<target name="compile" depends="-junit.check, prepare">
		<javac
				sourcepath=""
				srcdir="${src.dir}"
				destdir="${classes.dir}"
				debug="${debug.state}"
				classpathref="project.classpath"
				fork="yes"
				verbose="no"
				nowarn="yes"
				executable="${java.home}/../bin/javac"
				target="${java.target_version}">

		</javac>

		<javac
				sourcepath=""
				srcdir="${src.dir}/../webapps/fitcDemo/WEB-INF/src"
				destdir="${src.dir}/../webapps/fitcDemo/WEB-INF/classes"
				debug="${debug.state}"
				classpathref="webapps.classpath"
				fork="yes"
				verbose="no"
				nowarn="yes"
				executable="${java.home}/../bin/javac"
				target="${java.target_version}">

		</javac>

		<javac
				sourcepath=""
				srcdir="${src.dir}/../webapps/oflaDemo/WEB-INF/src"
				destdir="${src.dir}/../webapps/oflaDemo/WEB-INF/classes"
				debug="${debug.state}"
				classpathref="webapps.classpath"
				fork="yes"
				verbose="no"
				nowarn="yes"
				executable="${java.home}/../bin/javac"
				target="${java.target_version}">

		</javac>

		<javac
				sourcepath=""
				srcdir="${src.dir}/../webapps/test/WEB-INF/src"
				destdir="${src.dir}/../webapps/test/WEB-INF/classes"
				debug="${debug.state}"
				classpathref="webapps.classpath"
				fork="yes"
				verbose="no"
				nowarn="yes"
				executable="${java.home}/../bin/javac"
				target="${java.target_version}">

		</javac>

		<javac
				sourcepath=""
				srcdir="${src.dir}/../webapps/tutorial/WEB-INF/src"
				destdir="${src.dir}/../webapps/tutorial/WEB-INF/classes"
				debug="${debug.state}"
				classpathref="webapps.classpath"
				fork="yes"
				verbose="no"
				nowarn="yes"
				executable="${java.home}/../bin/javac"
				target="${java.target_version}">

		</javac>
	</target>

	<target name="javadoc" description="Generate JavaDoc">
		<javadoc
				classpathref="project.classpath"
				destdir="${javadoc.dir}"
				author="true"
				version="true"
				use="true"
				splitindex="true"
				windowtitle="Red5">

			<fileset dir="src" defaultexcludes="yes">
				<include name="org/red5/**"/>
				<exclude name="**/*.xml"/>
				<exclude name="**/*.xsd"/>
			</fileset>

			<doctitle><![CDATA[<h1>Red5 Server Documentation</h1>]]></doctitle>
			<bottom><![CDATA[<i>Copyright &#169; 2006 <a href="http://osflash.org/red5" target="_blank">the Red5 project</a>.</i>]]></bottom>
			<tag name="todo" scope="all" description="To do:"/>
			<group title="Public API" packages="org.red5.server.api:org.red5.server.api.*"/>
			<group title="Network Protocols" packages="org.red5.server.net:org.red5.server.net.*"/>
			<group title="Streaming" packages="org.red5.server.stream:org.red5.server.stream.*"/>
			<group title="IO Packages" packages="org.red5.io:org.red5.io.*"/>
			<link href="http://java.sun.com/j2se/1.5.0/docs/api"/>
			<link href="http://jetty.mortbay.org/jetty6/jetty"/>
			<link href="http://java.sun.com/j2se/1.5.0/docs/api"/>
			<link href="http://directory.apache.org/subprojects/mina/apidocs"/>
			<link href="http://www.springframework.org/docs/api"/>
			<link href="http://www.opensymphony.com/quartz/api"/>
		</javadoc>
	</target>

	<target name="jar" description="Make Archive" depends="compile">
		<jar destfile="red5.jar">
			<fileset dir="${classes.dir}">
				<include name="**"/>
				<exclude name="testcases/**"/>
			</fileset>
			<!--
		 <metainf dir="${src}/${metainf}">
			 <include name="*.xml"/>
		 </metainf>
		 -->
			<manifest>
				<attribute name="Built-By" value="RED5 Project - red5@osflash.org"/>
				<attribute name="Main-Class" value="org.red5.server.Standalone"/>
				<attribute name="Class-Path"
						   value="conf/ lib/slf4j-log4j12.jar lib/cglib-nodep-2.1_2.jar lib/jetty.jar lib/jetty-util.jar lib/commons-beanutils.jar lib/commons-collections.jar lib/commons-logging.jar lib/jpda.jar lib/log4j-1.2.9.jar lib/mina-filter-ssl-0.9.4.jar lib/mina-core-0.9.4.jar lib/mina-integration-spring-0.9.4.jar lib/servlet-api.jar lib/spring.jar lib/quartz-1.5.2.jar lib/xmlrpc-2.0.1.jar lib/commons-codec-1.3.jar lib/commons-httpclient-3.0.1.jar lib/jasper-compiler-5.5.15.jar lib/jasper-compiler-jdt-5.5.15.jar lib/servlet-api.jar lib/jasper-runtime-5.5.15.jar lib/xercesImpl-2.6.2.jar lib/jsp-api-2.0.jar lib/xmlParserAPIs-2.6.2.jar lib/jcl104-over-slf4j-1.0.1.jar lib/slf4j-simple-1.0.1.jar lib/commons-el-1.0.jar"/>
			</manifest>
		</jar>
		
		<jar destfile="${src.dir}/../webapps/fitcDemo/WEB-INF/lib/fitcDemo.jar">
			<fileset dir="${src.dir}/../webapps/fitcDemo/WEB-INF/classes">
				<include name="**"/>
			</fileset>
		</jar>
		
		<jar destfile="${src.dir}/../webapps/oflaDemo/WEB-INF/lib/oflaDemo.jar">
			<fileset dir="${src.dir}/../webapps/oflaDemo/WEB-INF/classes">
				<include name="**"/>
			</fileset>
		</jar>
		
		<jar destfile="${src.dir}/../webapps/test/WEB-INF/lib/test.jar">
			<fileset dir="${src.dir}/../webapps/test/WEB-INF/classes">
				<include name="**"/>
			</fileset>
		</jar>
		
		<jar destfile="${src.dir}/../webapps/tutorial/WEB-INF/lib/tutorial.jar">
			<fileset dir="${src.dir}/../webapps/tutorial/WEB-INF/classes">
				<include name="**"/>
			</fileset>
		</jar>
	</target>

	<target name="dist" description="Make Binary Distribution" depends="clean, jar, javadoc">
		<copy todir="${dist.dir}/doc">
			<fileset dir="doc"/>
		</copy>
		<copy todir="${dist.dir}/lib">
			<fileset dir="lib"/>
		</copy>
		<copy todir="${dist.dir}/conf">
			<fileset dir="conf"/>
		</copy>
		<copy todir="${dist.dir}/webapps">
			<fileset dir="webapps">
				<include name="**"/>
				<exclude name="**/classes/**"/>
				<exclude name="**/src/**"/>
			</fileset>
		</copy>
		<copy todir="${dist.dir}">
			<fileset dir="./">
				<include name="red5.jar"/>
				<include name="red5.bat"/>
				<include name="red5.sh"/>
				<include name="license.txt"/>
			</fileset>
		</copy>
	</target>

	<target name="installerdist" description="Make Installer Distribution" depends="dist">
		<copy todir="${dist.dir}">
			<fileset dir="./">
				<include name=".classpath"/>
				<include name=".project"/>
				<include name=".springBeans"/>
				<include name="build.xml"/>
			</fileset>
		</copy>
		<copy todir="${dist.dir}/src">
			<fileset dir="src"/>
		</copy>
		<copy todir="${dist.dir}/swf">
			<fileset dir="swf"/>
		</copy>
		<copy todir="${dist.dir}/webapps">
			<fileset dir="webapps">
				<include name="**/src/**"/>
			</fileset>
		</copy>
	</target>

	<target name="server" depends="compile">
		<java classname="org.red5.server.Standalone" fork="true">
			<classpath>
				<pathelement location="${classes.dir}"/>
				<path refid="project.classpath"/>
				<pathelement location="${config.dir}"/>
			</classpath>
			<jvmarg value="-Djava.security.manager"/>
			<jvmarg value="-Djava.security.policy=${config.dir}/red5.policy"/>
		</java>
	</target>
	
	<!-- I have disabled this until we know its has been tested - Luke
	<target name="webwar" depends="compile">
		<delete dir="webdir"/>
		<mkdir dir="webdir"/>
		<mkdir dir="webdir/WEB-INF"/>
		<mkdir dir="webdir/WEB-INF/lib"/>
		<mkdir dir="webdir/conf"/>
		<mkdir dir="webdir/hosts"/>
		<copy todir="webdir/WEB-INF/lib">
			<fileset dir="${lib.dir}">
				<include name="cglib-nodep-2.1_2.jar"/>
				<include name="commons*"/>
				<include name="mina*"/>
				<include name="jpda.jar"/>
				<include name="log4j-1.2.9.jar"/>
				<include name="slf4j-log4j12.jar"/>
				<include name="spring.jar"/>
			</fileset>
			<fileset dir="./">
				<include name="red5.jar"/>
			</fileset>
		</copy>
		<copy todir="webdir/conf">
			<fileset dir="./conf">
				<include name="global.xml"/>
				<include name="log4j.properties"/>
				<include name="red5.properties"/>
				<include name="red5_web.xml"/>
			</fileset>
		</copy>
		<copy todir="webdir">
			<fileset dir="./webapps/root">
				<include name="index.html"/>
			</fileset>
		</copy>
		<war destfile="Red5.war" webxml="conf/web-default.xml">
			<fileset dir="webdir"/>
			<lib dir="webdir/WEB-INF/lib"/>
		</war>
		<delete dir="webdir"/>
	</target>
	-->

	<target name="run-tests"  if="junit.installed" depends="compiletests" description="Run JUnit tests and generate HTML reports">
		<junit fork="true" haltonfailure="no" printsummary="no" showoutput="no" dir="${testreports.dir}">
			<classpath>
				<path refid="full.classpath"/>
				<pathelement location="${testclass.dir}"/>
			</classpath>
			<formatter type="xml" />
			<batchtest todir="${testreports.dir}">
				<fileset dir="${testclass.dir}">
					<include name="**/*Test.class"/>
					<exclude name="**/Abstract*Test.class"/>
					<exclude name="**/*AbstractTest.class"/>
				</fileset>
			</batchtest>
		</junit>
		<junitreport todir="${test.dir}">
			<fileset dir="${testreports.dir}">
				<include name="TEST-*.xml"/>
			</fileset>
			<report format="frames" todir="${testdoc.dir}"/>
		</junitreport>
	</target>

	<target name="compiletests" depends="jar" if="junit.installed" description="Compiles junit test classes">
		<javac srcdir="${test.dir}" destdir="${testclass.dir}">
			<classpath>
				<path refid="full.classpath"/>
			</classpath>
			<include name="**/*.java"/>
		</javac>
	</target>

	<target name="all" depends="clean, prepare, compile, jar, javadoc"/>

</project>