You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ta...@apache.org on 2010/06/17 22:49:27 UTC

svn commit: r955738 [3/3] - in /activemq/activemq-dotnet: Apache.NMS.MSMQ/trunk/ Apache.NMS.Stomp/trunk/ Apache.NMS.WCF/trunk/

Modified: activemq/activemq-dotnet/Apache.NMS.WCF/trunk/nant-common.xml
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.WCF/trunk/nant-common.xml?rev=955738&r1=955737&r2=955738&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.WCF/trunk/nant-common.xml (original)
+++ activemq/activemq-dotnet/Apache.NMS.WCF/trunk/nant-common.xml Thu Jun 17 20:49:27 2010
@@ -17,586 +17,600 @@
 -->
 <project xmlns="http://nant.sourceforge.net/release/0.85/nant.xsd">
 
-	<!-- ============================================================================================ -->
-	<!--    P R O P E R T Y    D E F I N I T I O N S                                                  -->
-	<!-- ============================================================================================ -->
-
-	<!-- global project settings -->
-	<property name="project.cls.compliant"   value="true" unless="${property::exists('project.cls.compliant')}" />
-	<property name="project.release.type"    value="SNAPSHOT" unless="${property::exists('project.release.type')}" />
-	<property name="project.version.full"    value="${project.version + if(project.release.type == 'snapshot', '-' + project.release.type, '')}" dynamic="true" />
-	<property name="project.startyear"       value="2005" />
-	<property name="build.dir"               value="${basedir}/build" />
-	<property name="doc.dir"                 value="${build.dir}/doc" />
-	<property name="lib.dir"                 value="${path::combine(basedir, 'lib')}" dynamic="true" />
-	<property name="lib.family.dir"          value="${path::combine(lib.dir, framework::get-family(framework::get-target-framework()))}" dynamic="true" />
-	<property name="lib.framework.dir"       value="${path::combine(lib.family.dir, version::to-string(framework::get-version(framework::get-target-framework())))}" dynamic="true" />
-
-	<!-- default configuration -->
-	<property name="build.defines"           value="" />
-	<property name="build.noskip"            value="false" />
-	<property name="build.skip"              value="false" />
-	<property name="build.skip.release"      value="false" unless="${property::exists('build.skip.release')}" />
-	<property name="compile.skip"            value="false" unless="${property::exists('compile.skip')}" />
-	<property name="current.build.config"    value="${if(project.release.type == 'release', 'release', 'debug')}" overwrite="false" />
-	<property name="current.build.framework" value="${framework::get-target-framework()}" overwrite="false" />
-	<property name="current.build.defines"   value="${build.defines}" />
-	<property name="build.framework.strings" value="net-2.0,net-3.5,mono-2.0,netcf-2.0,netcf-3.5" unless="${property::exists('build.framework.strings')}"/>
-	<property name="current.build.framework.assembly.dir" value="${framework::get-assembly-directory(framework::get-target-framework())}" dynamic="true" />
-
-	<property name="build.config.strings"    value="${if(property::exists('configuration'), configuration, if(build.skip.release == 'true', 'debug', 'debug,release'))}" dynamic="true" />
-
-	<!-- Figure out the user's HOME directory -->
-	<property name="user.home" value="${environment::get-variable('HOME')}"
-			if="${environment::variable-exists('HOME') and platform::is-unix()}"
-			unless="${property::exists('user.home')}" />
-	<property name="user.home" value="${environment::get-variable('USERPROFILE')}"
-			if="${environment::variable-exists('USERPROFILE') and platform::is-windows()}"
-			unless="${property::exists('user.home')}" />
-	<fail message="The HOME environment variable is not defined.  Please set it to your home directory."
-			unless="${property::exists('user.home')}" if="${platform::is-unix()}" />
-	<fail message="The USERPROFILE environment variable is not defined.  Please set it to your home directory."
-			unless="${property::exists('user.home')}" if="${platform::is-windows()}" />
-
-	<!-- Figure out the NANT repositories -->
-	<property name="nant.remote.repo" value="${environment::get-variable('NANT_REMOTE_REPO')}"
-			if="${environment::variable-exists('NANT_REMOTE_REPO')}"
-			unless="${property::exists('nant.remote.repo')}" />
-	<property name="nant.local.repo" value="${environment::get-variable('NANT_REPO')}/local"
-			if="${environment::variable-exists('NANT_REPO')}"
-			unless="${property::exists('nant.local.repo')}" />
-	<property name="nant.local.repo" value="${user.home}/.nant/repository/local"
-			unless="${property::exists('nant.local.repo')}" />
-
-	<!-- Figure out the keyfile location -->
-	<property name="snk.file" value="${environment::get-variable('ACTIVEMQ_DOTNET_SNK')}"
-			if="${environment::variable-exists('ACTIVEMQ_DOTNET_SNK')}"
-			unless="${property::exists('snk.file')}" />
-	<property name="snk.file" value="${basedir}/keyfile/NMSKey.snk"
-			if="${not property::exists('snk.file')}" />
-
-	<!-- ============================================================================================ -->
-	<!--      I N I T I A L I Z A T I O N     T A R G E T S                                           -->
-	<!-- ============================================================================================ -->
-
-	<target name="init" description="Initializes build properties">
-		<!-- enabled the release or debug configuration -->
-		<call target="set-${current.build.config}-configuration" />
-
-		<!-- Check to see if our build setup for the target framework -->
-		<if test="${not(target::exists('set-'+current.build.framework+'-framework-configuration'))}">
-			<fail message="The '${current.build.framework}' framework is not supported by this version of ActiveMQ .NET" />
-		</if>
-		<call target="set-${current.build.framework}-framework-configuration" />
-
-		<!-- Check to see current platform supports the target framework -->
-		<if test="${framework::exists(current.build.framework)}">
-			<property name="build.skip" value="false" />
-		</if>
-		<if test="${not framework::exists(current.build.framework)}">
-			<if test="${build.noskip}">
-				<fail message="${current.build.framework.name} is not available." />
-			</if>
-			<if test="${not(build.noskip)}">
-				<echo message="${current.build.framework.name} is not available. Build skipped." />
-				<property name="build.skip" value="true" />
-			</if>
-		</if>
-
-		<!-- Check to see if we should skip this build framework. -->
-		<if test="${not(build.skip)}">
-			<if test="${property::exists('build.'+current.build.framework+'.skip')}">
-				<property name="build.skip" value="true" />
-				<echo message="The '${current.build.framework}' framework is not supported by this version of ActiveMQ .NET" />
-			</if>
-		</if>
-
-		<property name="current.build.keysign" value="${current.build.framework.sign}" />
-		<property name="build.bin.dir" value="${build.dir}/${nant.settings.currentframework}/${current.build.config}" />
-		<if test="${not(build.skip)}">
-			<echo message="Doing ${if(current.build.keysign,'a signed','an unsigned')} ${current.build.config} build for the ${current.build.framework.name} framework" />
-			<mkdir dir="${build.bin.dir}" />
-		</if>
-		<call target="dependency-init" />
-	</target>
-
-	<!-- Generate four-digit build number -->
-	<target name="generate-build-number">
-		<if test="${not property::exists('project.version.numeric')}">
-			<script language="C#">
-				<imports>
-					<import namespace="System.Globalization" />
-					<import namespace="System.Threading" />
-				</imports>
-				<code>
-					<!-- Format for assembly revision is the number of days from the year the project 'started', property project.startyear.  -->
-					<![CDATA[
-						public static void ScriptMain(Project project)
-						{
-							int startYear = Convert.ToInt32(project.Properties["project.startyear"]);
-							DateTime start = new DateTime(startYear, 1, 1);
-							TimeSpan ts = DateTime.Now - start;
-							project.Properties["project.version.numeric"] = project.Properties["project.version"].ToString() + "." + ts.Days.ToString();
-						}
-					]]>
-				</code>
-			</script>
-		</if>
-	</target>
-
-	<!-- Generate assemblyinfo.cs files -->
-	<target name="generate-assemblyinfo" depends="generate-build-number" description="Generate the assembly info for the path in assemblyinfo.filename">
-		<asminfo output="${assemblyinfo.filename}" language="CSharp">
-			<imports>
-				<import namespace="System" />
-				<import namespace="System.Reflection" />
-				<import namespace="System.Runtime.InteropServices" />
-			</imports>
-			<attributes>
-				<attribute type="ComVisibleAttribute" value="false" />
-				<attribute type="CLSCompliantAttribute" value="${project.cls.compliant}" />
-				<attribute type="AssemblyTitleAttribute" value="${project.short_description}" />
-				<attribute type="AssemblyDescriptionAttribute" value="${project.description}" />
-				<attribute type="AssemblyConfigurationAttribute" value="${project.release.type}" />
-				<attribute type="AssemblyCompanyAttribute" value="http://activemq.apache.org/nms" />
-				<attribute type="AssemblyProductAttribute" value="${project.short_description}" />
-				<attribute type="AssemblyCopyrightAttribute" value="Copyright (C) ${project.startyear}-${datetime::get-year(datetime::now())} Apache Software Foundation" />
-				<attribute type="AssemblyTrademarkAttribute" value="" />
-				<attribute type="AssemblyCultureAttribute" value="" />
-				<attribute type="AssemblyVersionAttribute" value="${project.version.numeric}" />
-				<attribute type="AssemblyInformationalVersionAttribute" value="${project.version}" />
-			</attributes>
-		</asminfo>
-	</target>
-
-	<!-- ============================================================================================ -->
-	<!--    C O N F I G U R A T I O N     T A R G E T S                                               -->
-	<!-- ============================================================================================ -->
-
-	<target name="set-noskip-configuration" description="Disable skipping builds">
-		<property name="project.noskip" value="true" />
-	</target>
-
-	<target name="set-debug-configuration" description="Enabled 'debug' builds">
-		<property name="current.build.config" value="debug" />
-		<property name="current.build.config.debug" value="true" />
-		<property name="current.build.config.release" value="false" />
-		<property name="current.build.defines" value="${build.defines}DEBUG,TRACE," dynamic="true" />
-		<property name="csc.debug" value="Full" />
-		<property name="csc.optimize" value="false" />
-	</target>
-
-	<target name="set-release-configuration" description="Enabled 'release' builds">
-		<property name="current.build.config" value="release" />
-		<property name="current.build.config.release" value="true" />
-		<property name="current.build.config.debug" value="false" />
-		<property name="csc.debug" value="Full" />
-		<property name="csc.optimize" value="true" />
-	</target>
-
-	<target name="set-net-2.0-framework-configuration">
-		<property name="current.build.framework" value="net-2.0" />
-		<property name="current.build.framework.name" value=".NET 2.0" />
-		<property name="current.build.defines" value="${build.defines}NET,NET_2_0" dynamic="true" />
-		<property name="current.build.framework.sign" value="true" />
-		<property name="link.sdkdoc.version" value="SDK_v2_0" />
-		<property name="link.sdkdoc.web" value="true" />
-		<if test="${framework::exists(current.build.framework)}">
-			<property name="nant.settings.currentframework" value="${current.build.framework}" />
-		</if>
-	</target>
-
-	<target name="set-net-3.5-framework-configuration">
-		<property name="current.build.framework" value="net-3.5" />
-		<property name="current.build.framework.name" value=".NET 3.5" />
-		<property name="current.build.defines" value="${build.defines}NET,NET_2_0,NET_3_5" dynamic="true" />
-		<property name="current.build.framework.sign" value="true" />
-		<property name="link.sdkdoc.version" value="SDK_v6_1" />
-		<property name="link.sdkdoc.web" value="true" />
-		<if test="${framework::exists(current.build.framework)}">
-			<property name="nant.settings.currentframework" value="${current.build.framework}" />
-		</if>
-	</target>
-
-	<target name="set-netcf-2.0-framework-configuration">
-		<property name="current.build.framework" value="netcf-2.0" />
-		<property name="current.build.framework.name" value=".NET Compact Framework 2.0" />
-		<property name="current.build.defines" value="${build.defines}PocketPC,NETCF,NETCF_2_0" dynamic="true" />
-		<property name="current.build.framework.sign" value="true" />
-		<property name="link.sdkdoc.version" value="SDK_v1_1" />
-		<property name="link.sdkdoc.web" value="true" />
-		<if test="${framework::exists(current.build.framework)}">
-			<property name="nant.settings.currentframework" value="${current.build.framework}" />
-		</if>
-	</target>
-
-	<target name="set-netcf-3.5-framework-configuration">
-		<property name="current.build.framework" value="netcf-3.5" />
-		<property name="current.build.framework.name" value=".NET Compact Framework 3.5" />
-		<property name="current.build.defines" value="${build.defines}PocketPC,NETCF,NETCF_3_5" dynamic="true" />
-		<property name="current.build.framework.sign" value="true" />
-		<property name="link.sdkdoc.version" value="SDK_v3_5" />
-		<property name="link.sdkdoc.web" value="true" />
-		<if test="${framework::exists(current.build.framework)}">
-			<property name="nant.settings.currentframework" value="${current.build.framework}" />
-		</if>
-	</target>
-
-	<target name="set-mono-2.0-framework-configuration">
-		<property name="current.build.framework" value="mono-2.0" />
-		<property name="current.build.framework.name" value="Mono 2.0" />
-		<property name="current.build.defines" value="${build.defines}MONO,MONO_2_0" dynamic="true" />
-		<property name="current.build.framework.sign" value="true" />
-		<property name="link.sdkdoc.version" value="SDK_v1_1" />
-		<property name="link.sdkdoc.web" value="true" />
-		<if test="${framework::exists(current.build.framework)}">
-			<property name="nant.settings.currentframework" value="${current.build.framework}" />
-		</if>
-	</target>
-
-	<!-- ============================================================================================ -->
-	<!--     C O M P I L E    T A R G E T S                                                           -->
-	<!-- ============================================================================================ -->
-
-	<target name="compile-all" description="Compile all build configurations for all runtime configurations">
-		<echo message="Compiling all build configurations for all runtime configurations." />
-		<foreach item="String" in="${build.framework.strings}" delim="," property="current.build.framework">
-			<foreach item="String" in="${build.config.strings}" delim="," property="current.build.config">
-				<call target="compile-target" />
-			</foreach>
-		</foreach>
-	</target>
-
-	<target name="compile-target" depends="init, download-vendor, conditional-compile" />
-
-	<target name="conditional-compile" depends="init" unless="${build.skip or compile.skip}"
-			description="Conditionaly compiles all the modules if build framework and type are supported">
-		<call target="compile" />
-	</target>
-
-	<target name="compile" description="Compile everything">
-		<call target="compile-main" cascade="false" />
-		<call target="compile-test" cascade="false" />
-	</target>
-
-	<target name="compile-main" depends="init" description="Build the main library">
-		<echo message="Building the ${project.name} library" />
-		<property name="assemblyinfo.filename" value="src/main/csharp/CommonAssemblyInfo.cs" />
-		<call target="generate-assemblyinfo" />
-
-		<csc if="${current.build.keysign}" keyfile="${snk.file}" target="library"
-				define="${current.build.defines}" warnaserror="false" debug="${csc.debug}" optimize="${csc.optimize}"
-				output="${build.bin.dir}/${project.name}.dll" doc="${build.bin.dir}/${project.name}.xml">
-			<nowarn>
-				<warning number="1591" /> <!-- do not report warnings for missing XML comments -->
-			</nowarn>
-			<sources failonempty="true">
-				<include name="src/main/csharp/**.cs" />
-			</sources>
-			<references refid="dependencies" />
-		</csc>
-		<csc if="${not current.build.keysign}" target="library"
-				define="${current.build.defines}" warnaserror="false" debug="${csc.debug}" optimize="${csc.optimize}"
-				output="${build.bin.dir}/${project.name}.dll" doc="${build.bin.dir}/${project.name}.xml">
-			<nowarn>
-				<warning number="1591" /> <!-- do not report warnings for missing XML comments -->
-			</nowarn>
-			<sources failonempty="true">
-				<include name="src/main/csharp/**.cs" />
-			</sources>
-			<references refid="dependencies" />
-		</csc>
-		<call target="copy-content" />
-	</target>
-
-	<!-- Compile the nms-test module -->
-	<target name="compile-test" depends="compile-main" description="Build the test library">
-		<echo message="Building the ${project.name}.Test library" />
-		<property name="assemblyinfo.filename" value="src/test/csharp/CommonAssemblyInfo.cs" />
-		<call target="generate-assemblyinfo" />
-
-		<csc if="${current.build.keysign}" keyfile="${snk.file}" target="library"
-				define="${current.build.defines}" warnaserror="false" debug="${csc.debug}" optimize="${csc.optimize}"
-				output="${build.bin.dir}/${project.name}.Test.dll" doc="${build.bin.dir}/${project.name}.Test.xml">
-			<nowarn>
-				<warning number="1591" /> <!-- do not report warnings for missing XML comments -->
-			</nowarn>
-			<sources failonempty="true">
-				<include name="src/test/csharp/**.cs" />
-			</sources>
-			<references refid="test.dependencies" />
-		</csc>
-		<csc if="${not current.build.keysign}" target="library"
-				define="${current.build.defines}" warnaserror="false" debug="${csc.debug}" optimize="${csc.optimize}"
-				output="${build.bin.dir}/${project.name}.Test.dll" doc="${build.bin.dir}/${project.name}.Test.xml">
-			<nowarn>
-				<warning number="1591" /> <!-- do not report warnings for missing XML comments -->
-			</nowarn>
-			<sources failonempty="true">
-				<include name="src/test/csharp/**.cs" />
-			</sources>
-			<references refid="test.dependencies" />
-		</csc>
-		<call target="copy-content" />
-	</target>
-
-	<target name="copy-content">
-		<foreach item="File" property="content.filename">
-			<in>
-				<items refid="content.filenames" />
-			</in>
-			<do>
-				<copy todir="${build.bin.dir}" file="${content.filename}" if="${not file::up-to-date(content.filename, '${build.bin.dir}/${content.filename}')}" />
-			</do>
-		</foreach>
-	</target>
-
-	<!-- ============================================================================================ -->
-	<!--      I N S T A L L     T A R G E T S                                                         -->
-	<!-- ============================================================================================ -->
-
-	<target name="install-all" description="Install all build configurations for all runtime configurations">
-		<echo message="Installing all build configurations for all runtime configurations." />
-		<foreach item="String" in="${build.framework.strings}" delim="," property="current.build.framework">
-			<foreach item="String" in="${build.config.strings}" delim="," property="current.build.config">
-				<call target="install" />
-			</foreach>
-		</foreach>
-	</target>
-
-	<!-- Install the modules to the local repo -->
-	<target name="install" depends="init, compile-target, conditional-install"
-			description="Install the artifacts into the nant repo" />
-
-	<target name="conditional-install" unless="${build.skip}"
-			description="Install the artifacts into the nant repo">
-		<property name="path" value="${project.group}/${project.name}/${project.version.full}/${current.build.framework}/${current.build.config}" />
-		<foreach item="File" property="install.filename">
-			<in>
-				<items refid="install.filenames" />
-			</in>
-			<do>
-				<property name="repo.task.artifact" value="${path}/${path::get-file-name(install.filename)}" />
-				<property name="repo.task.src" value="${install.filename}" />
-				<property name="repo.task.dest" value="${nant.local.repo}/${repo.task.artifact}" />
-				<mkdir dir="${directory::get-parent-directory(repo.task.dest)}" />
-				<copy file="${repo.task.src}" tofile="${repo.task.dest}" />
-			</do>
-		</foreach>
-	</target>
-
-	<!-- ============================================================================================ -->
-	<!--      R E P O    D O W N L O A D     T A R G E T S                                            -->
-	<!-- ============================================================================================ -->
-
-	<target name="download-vendor-all" description="Download vendor files for all runtime configurations">
-		<echo message="Downloading vendor files for all runtime configurations." />
-		<property name="current.build.config" value="release" />
-		<foreach item="String" in="${build.framework.strings}" delim="," property="current.build.framework">
-			<call target="download-vendor" />
-		</foreach>
-	</target>
-
-	<target name="download-vendor" depends="vendor-init, conditional-download"
-				description="Download the vendor artifacts from the nant repo" />
-
-	<target name="conditional-download" unless="${build.skip}"
-				description="Download the artifacts from the nant repo">
-		<!-- Iterate over the defined vendor filesets. -->
-		<foreach item="String" in="${vendor.fileset.names}" delim="," property="current.vendor">
-			<property name="vendor.name" value="${property::get-value(current.vendor + '.name')}" />
-			<property name="vendor.group" value="${property::get-value(current.vendor + '.group')}" />
-			<property name="vendor.version" value="${property::get-value(current.vendor + '.version')}" />
-			<property name="vendor.filenames" value="${property::get-value(current.vendor + '.filenames')}" />
-			<property name="local.repo.vendor.path" value="${nant.local.repo}/${vendor.group}/${vendor.name}/${vendor.version}/${current.build.framework}/${current.build.config}" />
-			<property name="lib.path" value="lib/${vendor.name}/${current.build.framework}" />
-			<!--
-			Update the LIB folder with the latest version of the file.  If there is a newer version
-			installed in the local repository, then that version will be copied into the LIB folder.
-			-->
-			<foreach item="String" in="${vendor.filenames}" delim="," property="repo.task.artifact">
-				<property name="lib.task.dest" value="${lib.path}/${repo.task.artifact}" />
-				<mkdir dir="${directory::get-parent-directory(lib.task.dest)}" />
-				<property name="repo.task.src" value="${local.repo.vendor.path}/${repo.task.artifact}" />
-				<copy file="${repo.task.src}" tofile="${lib.task.dest}" if="${file::exists(repo.task.src)}" />
-				<if test="${not file::exists(lib.task.dest)}">
-					<echo message="Required dependent assembly ${repo.task.artifact} from ${vendor.name} for ${current.build.framework.name} is not available. Build skipped." />
-					<property name="build.skip" value="true" />
-				</if>
-			</foreach>
-		</foreach>
-	</target>
-
-	<!-- ============================================================================================ -->
-	<!--      T E S T     T A R G E T S                                                               -->
-	<!-- ============================================================================================ -->
-
-	<target name="test" depends="test-debug" description="Alias test target to test-debug" />
-
-	<target name="test-all" depends="test-debug, test-release" description="Test all build configurations for all runtime configurations" />
-
-	<target name="test-debug" depends="" description="Test debug build configurations for all runtime configurations">
-		<property name="current.build.config" value="debug" />
-		<call target="test-frameworks" />
-	</target>
-
-	<target name="test-release" depends="" description="Test release build configurations for all runtime configurations">
-		<property name="current.build.config" value="release" />
-		<call target="test-frameworks" />
-	</target>
-
-	<target name="test-frameworks">
-		<foreach item="String" in="${build.framework.strings}" delim="," property="current.build.framework">
-			<call target="init" />
-			<if test="${not build.skip}">
-				<exec program="nunit-console" failonerror="true" workingdir="build/${current.build.framework}/${current.build.config}">
-					<arg value="${NUnit.Projectfile}" />
-					<arg value="-labels" />
-					<arg value="-xml=Nunit.TestOutput.xml" />
-				</exec>
-			</if>
-		</foreach>
-	</target>
-
-	<!-- ============================================================================================ -->
-	<!--      M I S C E L L A N E O U S    T A R G E T S                                              -->
-	<!-- ============================================================================================ -->
-
-	<target name="build" depends="default" description="Build the project." />
-
-	<target name="rebuild" depends="clean,build" description="Rebuild the project." />
-
-	<target name="clean" description="Deletes build">
-		<if test="${target::exists('clean-init')}">
-			<call target="clean-init" />
-		</if>
-		<delete dir="build" if="${directory::exists('build')}" />
-		<delete dir="obj" if="${directory::exists('obj')}" />
-		<delete dir="package" if="${directory::exists('package')}" />
-	</target>
-
-	<target name="doc" depends="build">
-		<mkdir dir="${doc.dir}" />
-		<ndoc failonerror="false">
-			<assemblies basedir="${build.bin.dir}">
-				<include name="${project.name}.dll" />
-			</assemblies>
-			<summaries basedir="${basedir}/src/main/ndoc">
-				<include name="NamespaceSummary.xml" />
-			</summaries>
-			<documenters>
-				<documenter name="MSDN">
-					<property name="OutputDirectory" value="${doc.dir}" />
-					<property name="HtmlHelpName" value="${project.name}" />
-					<property name="HtmlHelpCompilerFilename" value="hhc.exe" />
-					<property name="IncludeFavorites" value="False" />
-					<property name="Title" value="${project.short_description}" />
-					<property name="SplitTOCs" value="False" />
-					<property name="DefaulTOC" value="" />
-					<!--
-					<property name="ShowVisualBasic" value="True" />
-					<property name="ShowMissingSummaries" value="True" />
-					<property name="ShowMissingRemarks" value="True" />
-					<property name="ShowMissingParams" value="True" />
-					<property name="ShowMissingReturns" value="True" />
-					<property name="ShowMissingValues" value="True" />
-					-->
-					<property name="DocumentInternals" value="False" />
-					<property name="DocumentProtected" value="True" />
-					<property name="DocumentPrivates" value="False" />
-					<property name="DocumentEmptyNamespaces" value="False" />
-					<property name="IncludeAssemblyVersion" value="True" />
-					<property name="CopyrightText" value="" />
-					<property name="CopyrightHref" value="" />
-				</documenter>
-			</documenters>
-		</ndoc>
-	</target>
-
-	<target name="sandcastle" depends="set-release-configuration, init, conditional-compile">
-		<!-- Directories -->
-		<property name="sandcastle.style" value="vs2005" unless="${property::exists('sandcastle.style')}" />
-		<property name="documentation.dir" value="${build.bin.dir}" />
-		<property name="bin.intern.dir" value="${build.bin.dir}" />
-		<property name="bin.extern.dir" value="${basedir}\vendor\NUnit\net-2.0" />
-		<property name="sandcastle.dir" value="${environment::get-variable('DXROOT')}" />
-		<property name="sandcastle.workingdir" value="${build.dir}\doc\${sandcastle.style}" />
-		<property name="sandcastle.output.dir" value="${sandcastle.workingdir}\Output" />
-
-		<!-- Executables -->
-		<property name="sandcastle.mrefbuilder.exe" value="${sandcastle.dir}\productiontools\mrefbuilder.exe" />
-		<property name="sandcastle.buildassembler.exe" value="${sandcastle.dir}\productiontools\buildassembler.exe" />
-		<property name="sandcastle.xsltransform.exe" value="${sandcastle.dir}\productiontools\xsltransform.exe" />
-		<property name="sandcastle.productiontransforms.dir" value="${sandcastle.dir}\ProductionTransforms" />
-
-		<!-- Create or Cleanup Working Directory -->
-		<mkdir dir="${sandcastle.workingdir}"
-				if="${not directory::exists(sandcastle.workingdir)}" />
-		<delete>
-			<fileset basedir="${sandcastle.workingdir}">
-				<include name="**\*" />
-			</fileset>
-		</delete>
-
-		<!-- Copy configuration file, and hard code references -->
-		<copy file="${sandcastle.dir}/Presentation/${sandcastle.style}/Configuration/Sandcastle.config"
-				tofile="${sandcastle.workingdir}/Sandcastle.config">
-			<filterchain>
-				<replacestring from="&quot;..\..\" to="&quot;${sandcastle.dir}\" />
-				<replacestring from="&quot;..\" to="&quot;${sandcastle.dir}\Examples\" />
-				<replacestring from="&quot;.\comments.xml" to="&quot;${documentation.dir}\${project.name}.xml" />
-				<replacestring from="&quot;%DXROOT%\Presentation\${sandcastle.style}\content\feedback_content.xml&quot;" to="&quot;${basedir}/src/main/sandcastle/feedback_content.xml&quot;" />
-			</filterchain>
-		</copy>
-
-		<!-- Run MRefBuilder (introspection on assemblies) to create basic Reflection XML -->
-		<exec program="${sandcastle.mrefbuilder.exe}" workingdir="${sandcastle.workingdir}">
-			<arg value="${bin.intern.dir}/${project.name}.dll" />
-			<arg value="/out:reflection.int.xml" />
-			<arg value="/dep:${bin.extern.dir}\*.dll" />
-		</exec>
-
-		<!-- Create Reflection XML -->
-		<exec program="${sandcastle.xsltransform.exe}" workingdir="${sandcastle.workingdir}">
-			<arg value="/xsl:&quot;${sandcastle.productiontransforms.dir}\ApplyVSDocModel.xsl&quot;" if="${sandcastle.style != 'prototype'}" />
-			<arg value="/xsl:&quot;${sandcastle.productiontransforms.dir}\ApplyPrototypeDocModel.xsl&quot;" if="${sandcastle.style == 'prototype'}" />
-			<arg value="/xsl:&quot;${sandcastle.productiontransforms.dir}\AddFriendlyFilenames.xsl&quot;" /> <!-- if="${sandcastle.style != 'prototype'}" /> -->
-			<arg value="/xsl:&quot;${sandcastle.productiontransforms.dir}\AddGuidFilenames.xsl&quot;" if="${sandcastle.style == 'disabled'}" />
-			<arg value="reflection.int.xml" />
-			<arg value="/out:reflection.xml" />
-			<arg value="/arg:IncludeAllMembersTopic=true" />
-			<arg value="/arg:IncludeInheritedOverloadTopics=true" />
-		</exec>
-
-		<!-- Create Manifest (list of Topics) -->
-		<exec program="${sandcastle.xsltransform.exe}" workingdir="${sandcastle.workingdir}">
-			<arg value="/xsl:&quot;${sandcastle.productiontransforms.dir}\ReflectionToManifest.xsl&quot;" />
-			<arg value="reflection.xml" />
-			<arg value="/out:manifest.xml" />
-		</exec>
-
-		<!-- Create Output Environment -->
-		<mkdir dir="${sandcastle.output.dir}" />
-		<mkdir dir="${sandcastle.output.dir}/html" />
-		<copy todir="${sandcastle.output.dir}">
-			<fileset basedir="${sandcastle.dir}/Presentation/${sandcastle.style}">
-				<include name="icons/*" />
-				<include name="media/*" />
-				<include name="scripts/*" />
-				<include name="styles/*" />
-			</fileset>
-		</copy>
-
-		<!-- Run BuildAssembler (create html topic files) -->
-		<exec program="${sandcastle.buildassembler.exe}" workingdir="${sandcastle.workingdir}">
-			<arg value="/config:Sandcastle.config" />
-			<arg value="manifest.xml" />
-		</exec>
-	</target>
-
-	<target name="sandcastle-all" description="Generate all formats of the Sandcastle documentation files.">
-		<foreach item="String" in="vs2005,prototype,hana" delim="," property="sandcastle.style">
-			<call target="sandcastle" />
-		</foreach>
-	</target>
+    <!-- ============================================================================================ -->
+    <!--    P R O P E R T Y    D E F I N I T I O N S                                                  -->
+    <!-- ============================================================================================ -->
+
+    <!-- global project settings -->
+    <property name="project.cls.compliant"   value="true" unless="${property::exists('project.cls.compliant')}" />
+    <property name="project.release.type"    value="SNAPSHOT" unless="${property::exists('project.release.type')}" />
+    <property name="project.version.full"    value="${project.version + if(project.release.type == 'snapshot', '-' + project.release.type, '')}" dynamic="true" />
+    <property name="project.startyear"       value="2005" />
+    <property name="build.dir"               value="${basedir}/build" />
+    <property name="doc.dir"                 value="${build.dir}/doc" />
+    <property name="lib.dir"                 value="${path::combine(basedir, 'lib')}" dynamic="true" />
+    <property name="lib.family.dir"          value="${path::combine(lib.dir, framework::get-family(framework::get-target-framework()))}" dynamic="true" />
+    <property name="lib.framework.dir"       value="${path::combine(lib.family.dir, version::to-string(framework::get-version(framework::get-target-framework())))}" dynamic="true" />
+    <property name="package.dir"             value="${basedir}/package" />
+    <property name="src.package.name"        value="${project.name + '-' + project.version + if(project.release.type == 'SNAPSHOT', '-' + project.release.type, '') + '-src.zip'}" />
+    <property name="bin.package.name"        value="${project.name + '-' + project.version + if(project.release.type == 'SNAPSHOT', '-' + project.release.type, '') + '-bin.zip'}" />
+
+    <!-- default configuration -->
+    <property name="build.defines"           value="" />
+    <property name="build.noskip"            value="false" />
+    <property name="build.skip"              value="false" />
+    <property name="build.skip.release"      value="false" unless="${property::exists('build.skip.release')}" />
+    <property name="compile.skip"            value="false" unless="${property::exists('compile.skip')}" />
+    <property name="current.build.config"    value="${if(project.release.type == 'release', 'release', 'debug')}" overwrite="false" />
+    <property name="current.build.framework" value="${framework::get-target-framework()}" overwrite="false" />
+    <property name="current.build.defines"   value="${build.defines}" />
+    <property name="build.framework.strings" value="net-2.0,net-3.5,mono-2.0,netcf-2.0,netcf-3.5" unless="${property::exists('build.framework.strings')}"/>
+    <property name="current.build.framework.assembly.dir" value="${framework::get-assembly-directory(framework::get-target-framework())}" dynamic="true" />
+
+    <property name="build.config.strings"    value="${if(property::exists('configuration'), configuration, if(build.skip.release == 'true', 'debug', 'debug,release'))}" dynamic="true" />
+
+    <!-- Figure out the user's HOME directory -->
+    <property name="user.home" value="${environment::get-variable('HOME')}"
+            if="${environment::variable-exists('HOME') and platform::is-unix()}"
+            unless="${property::exists('user.home')}" />
+    <property name="user.home" value="${environment::get-variable('USERPROFILE')}"
+            if="${environment::variable-exists('USERPROFILE') and platform::is-windows()}"
+            unless="${property::exists('user.home')}" />
+    <fail message="The HOME environment variable is not defined.  Please set it to your home directory."
+            unless="${property::exists('user.home')}" if="${platform::is-unix()}" />
+    <fail message="The USERPROFILE environment variable is not defined.  Please set it to your home directory."
+            unless="${property::exists('user.home')}" if="${platform::is-windows()}" />
+
+    <!-- Figure out the NANT repositories -->
+    <property name="nant.remote.repo" value="${environment::get-variable('NANT_REMOTE_REPO')}"
+            if="${environment::variable-exists('NANT_REMOTE_REPO')}"
+            unless="${property::exists('nant.remote.repo')}" />
+    <property name="nant.local.repo" value="${environment::get-variable('NANT_REPO')}/local"
+            if="${environment::variable-exists('NANT_REPO')}"
+            unless="${property::exists('nant.local.repo')}" />
+    <property name="nant.local.repo" value="${user.home}/.nant/repository/local"
+            unless="${property::exists('nant.local.repo')}" />
+
+    <!-- Figure out the keyfile location -->
+    <property name="snk.file" value="${environment::get-variable('ACTIVEMQ_DOTNET_SNK')}"
+            if="${environment::variable-exists('ACTIVEMQ_DOTNET_SNK')}"
+            unless="${property::exists('snk.file')}" />
+    <property name="snk.file" value="${basedir}/keyfile/NMSKey.snk"
+            if="${not property::exists('snk.file')}" />
+
+    <!-- ============================================================================================ -->
+    <!--      I N I T I A L I Z A T I O N     T A R G E T S                                           -->
+    <!-- ============================================================================================ -->
+
+    <target name="init" description="Initializes build properties">
+        <!-- enabled the release or debug configuration -->
+        <call target="set-${current.build.config}-configuration" />
+
+        <!-- Check to see if our build setup for the target framework -->
+        <if test="${not(target::exists('set-'+current.build.framework+'-framework-configuration'))}">
+            <fail message="The '${current.build.framework}' framework is not supported by this version of ActiveMQ .NET" />
+        </if>
+        <call target="set-${current.build.framework}-framework-configuration" />
+
+        <!-- Check to see current platform supports the target framework -->
+        <if test="${framework::exists(current.build.framework)}">
+            <property name="build.skip" value="false" />
+        </if>
+        <if test="${not framework::exists(current.build.framework)}">
+            <if test="${build.noskip}">
+                <fail message="${current.build.framework.name} is not available." />
+            </if>
+            <if test="${not(build.noskip)}">
+                <echo message="${current.build.framework.name} is not available. Build skipped." />
+                <property name="build.skip" value="true" />
+            </if>
+        </if>
+
+        <!-- Check to see if we should skip this build framework. -->
+        <if test="${not(build.skip)}">
+            <if test="${property::exists('build.'+current.build.framework+'.skip')}">
+                <property name="build.skip" value="true" />
+                <echo message="The '${current.build.framework}' framework is not supported by this version of ActiveMQ .NET" />
+            </if>
+        </if>
+
+        <property name="current.build.keysign" value="${current.build.framework.sign}" />
+        <property name="build.bin.dir" value="${build.dir}/${nant.settings.currentframework}/${current.build.config}" />
+        <if test="${not(build.skip)}">
+            <echo message="Doing ${if(current.build.keysign,'a signed','an unsigned')} ${current.build.config} build for the ${current.build.framework.name} framework" />
+            <mkdir dir="${build.bin.dir}" />
+        </if>
+        <call target="dependency-init" />
+    </target>
+
+    <!-- Generate four-digit build number -->
+    <target name="generate-build-number">
+        <if test="${not property::exists('project.version.numeric')}">
+            <script language="C#">
+                <imports>
+                    <import namespace="System.Globalization" />
+                    <import namespace="System.Threading" />
+                </imports>
+                <code>
+                    <!-- Format for assembly revision is the number of days from the year the project 'started', property project.startyear.  -->
+                    <![CDATA[
+                        public static void ScriptMain(Project project)
+                        {
+                            int startYear = Convert.ToInt32(project.Properties["project.startyear"]);
+                            DateTime start = new DateTime(startYear, 1, 1);
+                            TimeSpan ts = DateTime.Now - start;
+                            project.Properties["project.version.numeric"] = project.Properties["project.version"].ToString() + "." + ts.Days.ToString();
+                        }
+                    ]]>
+                </code>
+            </script>
+        </if>
+    </target>
+
+    <!-- Generate assemblyinfo.cs files -->
+    <target name="generate-assemblyinfo" depends="generate-build-number" description="Generate the assembly info for the path in assemblyinfo.filename">
+        <asminfo output="${assemblyinfo.filename}" language="CSharp">
+            <imports>
+                <import namespace="System" />
+                <import namespace="System.Reflection" />
+                <import namespace="System.Runtime.InteropServices" />
+            </imports>
+            <attributes>
+                <attribute type="ComVisibleAttribute" value="false" />
+                <attribute type="CLSCompliantAttribute" value="${project.cls.compliant}" />
+                <attribute type="AssemblyTitleAttribute" value="${project.short_description}" />
+                <attribute type="AssemblyDescriptionAttribute" value="${project.description}" />
+                <attribute type="AssemblyConfigurationAttribute" value="${project.release.type}" />
+                <attribute type="AssemblyCompanyAttribute" value="http://activemq.apache.org/nms" />
+                <attribute type="AssemblyProductAttribute" value="${project.short_description}" />
+                <attribute type="AssemblyCopyrightAttribute" value="Copyright (C) ${project.startyear}-${datetime::get-year(datetime::now())} Apache Software Foundation" />
+                <attribute type="AssemblyTrademarkAttribute" value="" />
+                <attribute type="AssemblyCultureAttribute" value="" />
+                <attribute type="AssemblyVersionAttribute" value="${project.version.numeric}" />
+                <attribute type="AssemblyInformationalVersionAttribute" value="${project.version}" />
+            </attributes>
+        </asminfo>
+    </target>
+
+    <!-- ============================================================================================ -->
+    <!--    C O N F I G U R A T I O N     T A R G E T S                                               -->
+    <!-- ============================================================================================ -->
+
+    <target name="set-noskip-configuration" description="Disable skipping builds">
+        <property name="project.noskip" value="true" />
+    </target>
+
+    <target name="set-debug-configuration" description="Enabled 'debug' builds">
+        <property name="current.build.config" value="debug" />
+        <property name="current.build.config.debug" value="true" />
+        <property name="current.build.config.release" value="false" />
+        <property name="current.build.defines" value="${build.defines}DEBUG,TRACE," dynamic="true" />
+        <property name="csc.debug" value="Full" />
+        <property name="csc.optimize" value="false" />
+    </target>
+
+    <target name="set-release-configuration" description="Enabled 'release' builds">
+        <property name="current.build.config" value="release" />
+        <property name="current.build.config.release" value="true" />
+        <property name="current.build.config.debug" value="false" />
+        <property name="csc.debug" value="Full" />
+        <property name="csc.optimize" value="true" />
+    </target>
+
+    <target name="set-net-2.0-framework-configuration">
+        <property name="current.build.framework" value="net-2.0" />
+        <property name="current.build.framework.name" value=".NET 2.0" />
+        <property name="current.build.defines" value="${build.defines}NET,NET_2_0" dynamic="true" />
+        <property name="current.build.framework.sign" value="true" />
+        <property name="link.sdkdoc.version" value="SDK_v2_0" />
+        <property name="link.sdkdoc.web" value="true" />
+        <if test="${framework::exists(current.build.framework)}">
+            <property name="nant.settings.currentframework" value="${current.build.framework}" />
+        </if>
+    </target>
+
+    <target name="set-net-3.5-framework-configuration">
+        <property name="current.build.framework" value="net-3.5" />
+        <property name="current.build.framework.name" value=".NET 3.5" />
+        <property name="current.build.defines" value="${build.defines}NET,NET_2_0,NET_3_5" dynamic="true" />
+        <property name="current.build.framework.sign" value="true" />
+        <property name="link.sdkdoc.version" value="SDK_v6_1" />
+        <property name="link.sdkdoc.web" value="true" />
+        <if test="${framework::exists(current.build.framework)}">
+            <property name="nant.settings.currentframework" value="${current.build.framework}" />
+        </if>
+    </target>
+
+    <target name="set-netcf-2.0-framework-configuration">
+        <property name="current.build.framework" value="netcf-2.0" />
+        <property name="current.build.framework.name" value=".NET Compact Framework 2.0" />
+        <property name="current.build.defines" value="${build.defines}PocketPC,NETCF,NETCF_2_0" dynamic="true" />
+        <property name="current.build.framework.sign" value="true" />
+        <property name="link.sdkdoc.version" value="SDK_v1_1" />
+        <property name="link.sdkdoc.web" value="true" />
+        <if test="${framework::exists(current.build.framework)}">
+            <property name="nant.settings.currentframework" value="${current.build.framework}" />
+        </if>
+    </target>
+
+    <target name="set-netcf-3.5-framework-configuration">
+        <property name="current.build.framework" value="netcf-3.5" />
+        <property name="current.build.framework.name" value=".NET Compact Framework 3.5" />
+        <property name="current.build.defines" value="${build.defines}PocketPC,NETCF,NETCF_3_5" dynamic="true" />
+        <property name="current.build.framework.sign" value="true" />
+        <property name="link.sdkdoc.version" value="SDK_v3_5" />
+        <property name="link.sdkdoc.web" value="true" />
+        <if test="${framework::exists(current.build.framework)}">
+            <property name="nant.settings.currentframework" value="${current.build.framework}" />
+        </if>
+    </target>
+
+    <target name="set-mono-2.0-framework-configuration">
+        <property name="current.build.framework" value="mono-2.0" />
+        <property name="current.build.framework.name" value="Mono 2.0" />
+        <property name="current.build.defines" value="${build.defines}MONO,MONO_2_0" dynamic="true" />
+        <property name="current.build.framework.sign" value="true" />
+        <property name="link.sdkdoc.version" value="SDK_v1_1" />
+        <property name="link.sdkdoc.web" value="true" />
+        <if test="${framework::exists(current.build.framework)}">
+            <property name="nant.settings.currentframework" value="${current.build.framework}" />
+        </if>
+    </target>
+
+    <!-- ============================================================================================ -->
+    <!--     C O M P I L E    T A R G E T S                                                           -->
+    <!-- ============================================================================================ -->
+
+    <target name="compile-all" description="Compile all build configurations for all runtime configurations">
+        <echo message="Compiling all build configurations for all runtime configurations." />
+        <foreach item="String" in="${build.framework.strings}" delim="," property="current.build.framework">
+            <foreach item="String" in="${build.config.strings}" delim="," property="current.build.config">
+                <call target="compile-target" />
+            </foreach>
+        </foreach>
+    </target>
+
+    <target name="compile-target" depends="init, download-vendor, conditional-compile" />
+
+    <target name="conditional-compile" depends="init" unless="${build.skip or compile.skip}"
+            description="Conditionaly compiles all the modules if build framework and type are supported">
+        <call target="compile" />
+    </target>
+
+    <target name="compile" description="Compile everything">
+        <call target="compile-main" cascade="false" />
+        <call target="compile-test" cascade="false" />
+    </target>
+
+    <target name="compile-main" depends="init" description="Build the main library">
+        <echo message="Building the ${project.name} library" />
+        <property name="assemblyinfo.filename" value="src/main/csharp/CommonAssemblyInfo.cs" />
+        <call target="generate-assemblyinfo" />
+
+        <csc if="${current.build.keysign}" keyfile="${snk.file}" target="library"
+                define="${current.build.defines}" warnaserror="false" debug="${csc.debug}" optimize="${csc.optimize}"
+                output="${build.bin.dir}/${project.name}.dll" doc="${build.bin.dir}/${project.name}.xml">
+            <nowarn>
+                <warning number="1591" /> <!-- do not report warnings for missing XML comments -->
+            </nowarn>
+            <sources failonempty="true">
+                <include name="src/main/csharp/**.cs" />
+            </sources>
+            <references refid="dependencies" />
+        </csc>
+        <csc if="${not current.build.keysign}" target="library"
+                define="${current.build.defines}" warnaserror="false" debug="${csc.debug}" optimize="${csc.optimize}"
+                output="${build.bin.dir}/${project.name}.dll" doc="${build.bin.dir}/${project.name}.xml">
+            <nowarn>
+                <warning number="1591" /> <!-- do not report warnings for missing XML comments -->
+            </nowarn>
+            <sources failonempty="true">
+                <include name="src/main/csharp/**.cs" />
+            </sources>
+            <references refid="dependencies" />
+        </csc>
+        <call target="copy-content" />
+    </target>
+
+    <!-- Compile the nms-test module -->
+    <target name="compile-test" depends="compile-main" description="Build the test library">
+        <echo message="Building the ${project.name}.Test library" />
+        <property name="assemblyinfo.filename" value="src/test/csharp/CommonAssemblyInfo.cs" />
+        <call target="generate-assemblyinfo" />
+
+        <csc if="${current.build.keysign}" keyfile="${snk.file}" target="library"
+                define="${current.build.defines}" warnaserror="false" debug="${csc.debug}" optimize="${csc.optimize}"
+                output="${build.bin.dir}/${project.name}.Test.dll" doc="${build.bin.dir}/${project.name}.Test.xml">
+            <nowarn>
+                <warning number="1591" /> <!-- do not report warnings for missing XML comments -->
+            </nowarn>
+            <sources failonempty="true">
+                <include name="src/test/csharp/**.cs" />
+            </sources>
+            <references refid="test.dependencies" />
+        </csc>
+        <csc if="${not current.build.keysign}" target="library"
+                define="${current.build.defines}" warnaserror="false" debug="${csc.debug}" optimize="${csc.optimize}"
+                output="${build.bin.dir}/${project.name}.Test.dll" doc="${build.bin.dir}/${project.name}.Test.xml">
+            <nowarn>
+                <warning number="1591" /> <!-- do not report warnings for missing XML comments -->
+            </nowarn>
+            <sources failonempty="true">
+                <include name="src/test/csharp/**.cs" />
+            </sources>
+            <references refid="test.dependencies" />
+        </csc>
+        <call target="copy-content" />
+    </target>
+
+    <target name="copy-content">
+        <foreach item="File" property="content.filename">
+            <in>
+                <items refid="content.filenames" />
+            </in>
+            <do>
+                <copy todir="${build.bin.dir}" file="${content.filename}" if="${not file::up-to-date(content.filename, '${build.bin.dir}/${content.filename}')}" />
+            </do>
+        </foreach>
+    </target>
+
+    <!-- ============================================================================================ -->
+    <!--      I N S T A L L     T A R G E T S                                                         -->
+    <!-- ============================================================================================ -->
+
+    <target name="install-all" description="Install all build configurations for all runtime configurations">
+        <echo message="Installing all build configurations for all runtime configurations." />
+        <foreach item="String" in="${build.framework.strings}" delim="," property="current.build.framework">
+            <foreach item="String" in="${build.config.strings}" delim="," property="current.build.config">
+                <call target="install" />
+            </foreach>
+        </foreach>
+    </target>
+
+    <!-- Install the modules to the local repo -->
+    <target name="install" depends="init, compile-target, conditional-install"
+            description="Install the artifacts into the nant repo" />
+
+    <target name="conditional-install" unless="${build.skip}"
+            description="Install the artifacts into the nant repo">
+        <property name="path" value="${project.group}/${project.name}/${project.version.full}/${current.build.framework}/${current.build.config}" />
+        <foreach item="File" property="install.filename">
+            <in>
+                <items refid="install.filenames" />
+            </in>
+            <do>
+                <property name="repo.task.artifact" value="${path}/${path::get-file-name(install.filename)}" />
+                <property name="repo.task.src" value="${install.filename}" />
+                <property name="repo.task.dest" value="${nant.local.repo}/${repo.task.artifact}" />
+                <mkdir dir="${directory::get-parent-directory(repo.task.dest)}" />
+                <copy file="${repo.task.src}" tofile="${repo.task.dest}" />
+            </do>
+        </foreach>
+    </target>
+
+    <!-- ============================================================================================ -->
+    <!--      R E P O    D O W N L O A D     T A R G E T S                                            -->
+    <!-- ============================================================================================ -->
+
+    <target name="download-vendor-all" description="Download vendor files for all runtime configurations">
+        <echo message="Downloading vendor files for all runtime configurations." />
+        <property name="current.build.config" value="release" />
+        <foreach item="String" in="${build.framework.strings}" delim="," property="current.build.framework">
+            <call target="download-vendor" />
+        </foreach>
+    </target>
+
+    <target name="download-vendor" depends="vendor-init, conditional-download"
+                description="Download the vendor artifacts from the nant repo" />
+
+    <target name="conditional-download" unless="${build.skip}"
+                description="Download the artifacts from the nant repo">
+        <!-- Iterate over the defined vendor filesets. -->
+        <foreach item="String" in="${vendor.fileset.names}" delim="," property="current.vendor">
+            <property name="vendor.name" value="${property::get-value(current.vendor + '.name')}" />
+            <property name="vendor.group" value="${property::get-value(current.vendor + '.group')}" />
+            <property name="vendor.version" value="${property::get-value(current.vendor + '.version')}" />
+            <property name="vendor.filenames" value="${property::get-value(current.vendor + '.filenames')}" />
+            <property name="local.repo.vendor.path" value="${nant.local.repo}/${vendor.group}/${vendor.name}/${vendor.version}/${current.build.framework}/${current.build.config}" />
+            <property name="lib.path" value="lib/${vendor.name}/${current.build.framework}" />
+            <!--
+            Update the LIB folder with the latest version of the file.  If there is a newer version
+            installed in the local repository, then that version will be copied into the LIB folder.
+            -->
+            <foreach item="String" in="${vendor.filenames}" delim="," property="repo.task.artifact">
+                <property name="lib.task.dest" value="${lib.path}/${repo.task.artifact}" />
+                <mkdir dir="${directory::get-parent-directory(lib.task.dest)}" />
+                <property name="repo.task.src" value="${local.repo.vendor.path}/${repo.task.artifact}" />
+                <copy file="${repo.task.src}" tofile="${lib.task.dest}" if="${file::exists(repo.task.src)}" />
+                <if test="${not file::exists(lib.task.dest)}">
+                    <echo message="Required dependent assembly ${repo.task.artifact} from ${vendor.name} for ${current.build.framework.name} is not available. Build skipped." />
+                    <property name="build.skip" value="true" />
+                </if>
+            </foreach>
+        </foreach>
+    </target>
+
+    <!-- ============================================================================================ -->
+    <!--      T E S T     T A R G E T S                                                               -->
+    <!-- ============================================================================================ -->
+
+    <target name="test" depends="test-debug" description="Alias test target to test-debug" />
+
+    <target name="test-all" depends="test-debug, test-release" description="Test all build configurations for all runtime configurations" />
+
+    <target name="test-debug" depends="" description="Test debug build configurations for all runtime configurations">
+        <property name="current.build.config" value="debug" />
+        <call target="test-frameworks" />
+    </target>
+
+    <target name="test-release" depends="" description="Test release build configurations for all runtime configurations">
+        <property name="current.build.config" value="release" />
+        <call target="test-frameworks" />
+    </target>
+
+    <target name="test-frameworks">
+        <foreach item="String" in="${build.framework.strings}" delim="," property="current.build.framework">
+            <call target="init" />
+            <if test="${not build.skip}">
+                <exec program="nunit-console" failonerror="true" workingdir="build/${current.build.framework}/${current.build.config}">
+                    <arg value="${NUnit.Projectfile}" />
+                    <arg value="-labels" />
+                    <arg value="-xml=Nunit.TestOutput.xml" />
+                </exec>
+            </if>
+        </foreach>
+    </target>
+
+    <!-- ============================================================================================ -->
+    <!--      M I S C E L L A N E O U S    T A R G E T S                                              -->
+    <!-- ============================================================================================ -->
+
+    <target name="build" depends="default" description="Build the project." />
+
+    <target name="rebuild" depends="clean,build" description="Rebuild the project." />
+
+    <target name="clean" description="Deletes build">
+        <if test="${target::exists('clean-init')}">
+            <call target="clean-init" />
+        </if>
+        <delete dir="build" if="${directory::exists('build')}" />
+        <delete dir="obj" if="${directory::exists('obj')}" />
+        <delete dir="package" if="${directory::exists('package')}" />
+    </target>
+
+    <target name="package" description="Bundle the source and binary distributions.">
+        <mkdir dir="${package.dir}"
+                if="${not directory::exists(package.dir)}" />
+        <zip zipfile="${package.dir}/${bin.package.name}">
+            <fileset refid="bin.package.contents"/>
+        </zip>
+        <zip zipfile="${package.dir}/${src.package.name}">
+            <fileset refid="src.package.contents"/>
+        </zip>
+    </target>
+
+    <target name="doc" depends="build">
+        <mkdir dir="${doc.dir}" />
+        <ndoc failonerror="false">
+            <assemblies basedir="${build.bin.dir}">
+                <include name="${project.name}.dll" />
+            </assemblies>
+            <summaries basedir="${basedir}/src/main/ndoc">
+                <include name="NamespaceSummary.xml" />
+            </summaries>
+            <documenters>
+                <documenter name="MSDN">
+                    <property name="OutputDirectory" value="${doc.dir}" />
+                    <property name="HtmlHelpName" value="${project.name}" />
+                    <property name="HtmlHelpCompilerFilename" value="hhc.exe" />
+                    <property name="IncludeFavorites" value="False" />
+                    <property name="Title" value="${project.short_description}" />
+                    <property name="SplitTOCs" value="False" />
+                    <property name="DefaulTOC" value="" />
+                    <!--
+                    <property name="ShowVisualBasic" value="True" />
+                    <property name="ShowMissingSummaries" value="True" />
+                    <property name="ShowMissingRemarks" value="True" />
+                    <property name="ShowMissingParams" value="True" />
+                    <property name="ShowMissingReturns" value="True" />
+                    <property name="ShowMissingValues" value="True" />
+                    -->
+                    <property name="DocumentInternals" value="False" />
+                    <property name="DocumentProtected" value="True" />
+                    <property name="DocumentPrivates" value="False" />
+                    <property name="DocumentEmptyNamespaces" value="False" />
+                    <property name="IncludeAssemblyVersion" value="True" />
+                    <property name="CopyrightText" value="" />
+                    <property name="CopyrightHref" value="" />
+                </documenter>
+            </documenters>
+        </ndoc>
+    </target>
+
+    <target name="sandcastle" depends="set-release-configuration, init, conditional-compile">
+        <!-- Directories -->
+        <property name="sandcastle.style" value="vs2005" unless="${property::exists('sandcastle.style')}" />
+        <property name="documentation.dir" value="${build.bin.dir}" />
+        <property name="bin.intern.dir" value="${build.bin.dir}" />
+        <property name="bin.extern.dir" value="${basedir}\vendor\NUnit\net-2.0" />
+        <property name="sandcastle.dir" value="${environment::get-variable('DXROOT')}" />
+        <property name="sandcastle.workingdir" value="${build.dir}\doc\${sandcastle.style}" />
+        <property name="sandcastle.output.dir" value="${sandcastle.workingdir}\Output" />
+
+        <!-- Executables -->
+        <property name="sandcastle.mrefbuilder.exe" value="${sandcastle.dir}\productiontools\mrefbuilder.exe" />
+        <property name="sandcastle.buildassembler.exe" value="${sandcastle.dir}\productiontools\buildassembler.exe" />
+        <property name="sandcastle.xsltransform.exe" value="${sandcastle.dir}\productiontools\xsltransform.exe" />
+        <property name="sandcastle.productiontransforms.dir" value="${sandcastle.dir}\ProductionTransforms" />
+
+        <!-- Create or Cleanup Working Directory -->
+        <mkdir dir="${sandcastle.workingdir}"
+                if="${not directory::exists(sandcastle.workingdir)}" />
+        <delete>
+            <fileset basedir="${sandcastle.workingdir}">
+                <include name="**\*" />
+            </fileset>
+        </delete>
+
+        <!-- Copy configuration file, and hard code references -->
+        <copy file="${sandcastle.dir}/Presentation/${sandcastle.style}/Configuration/Sandcastle.config"
+                tofile="${sandcastle.workingdir}/Sandcastle.config">
+            <filterchain>
+                <replacestring from="&quot;..\..\" to="&quot;${sandcastle.dir}\" />
+                <replacestring from="&quot;..\" to="&quot;${sandcastle.dir}\Examples\" />
+                <replacestring from="&quot;.\comments.xml" to="&quot;${documentation.dir}\${project.name}.xml" />
+                <replacestring from="&quot;%DXROOT%\Presentation\${sandcastle.style}\content\feedback_content.xml&quot;" to="&quot;${basedir}/src/main/sandcastle/feedback_content.xml&quot;" />
+            </filterchain>
+        </copy>
+
+        <!-- Run MRefBuilder (introspection on assemblies) to create basic Reflection XML -->
+        <exec program="${sandcastle.mrefbuilder.exe}" workingdir="${sandcastle.workingdir}">
+            <arg value="${bin.intern.dir}/${project.name}.dll" />
+            <arg value="/out:reflection.int.xml" />
+            <arg value="/dep:${bin.extern.dir}\*.dll" />
+        </exec>
+
+        <!-- Create Reflection XML -->
+        <exec program="${sandcastle.xsltransform.exe}" workingdir="${sandcastle.workingdir}">
+            <arg value="/xsl:&quot;${sandcastle.productiontransforms.dir}\ApplyVSDocModel.xsl&quot;" if="${sandcastle.style != 'prototype'}" />
+            <arg value="/xsl:&quot;${sandcastle.productiontransforms.dir}\ApplyPrototypeDocModel.xsl&quot;" if="${sandcastle.style == 'prototype'}" />
+            <arg value="/xsl:&quot;${sandcastle.productiontransforms.dir}\AddFriendlyFilenames.xsl&quot;" /> <!-- if="${sandcastle.style != 'prototype'}" /> -->
+            <arg value="/xsl:&quot;${sandcastle.productiontransforms.dir}\AddGuidFilenames.xsl&quot;" if="${sandcastle.style == 'disabled'}" />
+            <arg value="reflection.int.xml" />
+            <arg value="/out:reflection.xml" />
+            <arg value="/arg:IncludeAllMembersTopic=true" />
+            <arg value="/arg:IncludeInheritedOverloadTopics=true" />
+        </exec>
+
+        <!-- Create Manifest (list of Topics) -->
+        <exec program="${sandcastle.xsltransform.exe}" workingdir="${sandcastle.workingdir}">
+            <arg value="/xsl:&quot;${sandcastle.productiontransforms.dir}\ReflectionToManifest.xsl&quot;" />
+            <arg value="reflection.xml" />
+            <arg value="/out:manifest.xml" />
+        </exec>
+
+        <!-- Create Output Environment -->
+        <mkdir dir="${sandcastle.output.dir}" />
+        <mkdir dir="${sandcastle.output.dir}/html" />
+        <copy todir="${sandcastle.output.dir}">
+            <fileset basedir="${sandcastle.dir}/Presentation/${sandcastle.style}">
+                <include name="icons/*" />
+                <include name="media/*" />
+                <include name="scripts/*" />
+                <include name="styles/*" />
+            </fileset>
+        </copy>
+
+        <!-- Run BuildAssembler (create html topic files) -->
+        <exec program="${sandcastle.buildassembler.exe}" workingdir="${sandcastle.workingdir}">
+            <arg value="/config:Sandcastle.config" />
+            <arg value="manifest.xml" />
+        </exec>
+    </target>
+
+    <target name="sandcastle-all" description="Generate all formats of the Sandcastle documentation files.">
+        <foreach item="String" in="vs2005,prototype,hana" delim="," property="sandcastle.style">
+            <call target="sandcastle" />
+        </foreach>
+    </target>
 </project>

Modified: activemq/activemq-dotnet/Apache.NMS.WCF/trunk/nant.build
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.WCF/trunk/nant.build?rev=955738&r1=955737&r2=955738&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.WCF/trunk/nant.build (original)
+++ activemq/activemq-dotnet/Apache.NMS.WCF/trunk/nant.build Thu Jun 17 20:49:27 2010
@@ -1,117 +1,141 @@
 <?xml version="1.0" ?>
 <!--
-	Licensed to the Apache Software Foundation (ASF) under one or more
-	contributor license agreements.  See the NOTICE file distributed with
-	this work for additional information regarding copyright ownership.
-	The ASF licenses this file to You 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.
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You 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="Apache.NMS.WCF" default="default" xmlns="http://nant.sourceforge.net/release/0.85/nant.xsd">
 
-	<!-- ============================================================================================ -->
-	<!--      I N I T I A L I Z A T I O N                                                             -->
-	<!-- ============================================================================================ -->
-	<property name="basedir" value="${project::get-base-directory()}"/>
-	<property name="project.name" value="Apache.NMS.WCF"/>
-	<property name="project.group" value="org.apache.activemq"/>
-	<property name="project.version"  value="1.4.0" unless="${property::exists('project.version')}"/>
-	<property name="project.release.type" value="SNAPSHOT" unless="${property::exists('project.release.type')}" />
-	<property name="project.short_description" value="WCF Provider for ActiveMQ Class Library"/>
-	<property name="project.description" value="WCF Provider for ActiveMQ Class Library (.Net Messaging Library Implementation): An implementation of Windows Communications Framework API for ActiveMQ"/>
-
-	<!-- Repository organized as: organization/module/version/plaform/artifact, platform might be something like 'all' or 'net-2.0/release' -->
-	<property name="nunit.dll" value="${basedir}/lib/NUnit/${current.build.framework}/nunit.framework.dll" dynamic="true"/>
-	<property name="nunit.extensions.dll" value="${basedir}/lib/NUnit/${current.build.framework}/nunit.framework.extensions.dll" dynamic="true"/>
-	<property name="Apache.NMS.dll" value="${basedir}/lib/Apache.NMS/${current.build.framework}/Apache.NMS.dll" dynamic="true"/>
-	<property name="Apache.NMS.pdb" value="${basedir}/lib/Apache.NMS/${current.build.framework}/Apache.NMS.pdb" dynamic="true"/>
-	<property name="Apache.NMS.Test.dll" value="${basedir}/lib/Apache.NMS/${current.build.framework}//Apache.NMS.Test.dll" dynamic="true"/>
-	<property name="Apache.NMS.Test.pdb" value="${basedir}/lib/Apache.NMS/${current.build.framework}/Apache.NMS.Test.pdb" dynamic="true"/>
-
-	<!-- Skip certain frameworks, since WCF Client is not supported on those platforms. -->
-	<property name="build.net-2.0.skip" value="true"/>
-	<property name="build.mono-2.0.skip" value="true"/>
-	<property name="build.netcf-2.0.skip" value="true"/>
-	<property name="build.netcf-3.5.skip" value="true"/>
-
-	<target name="vendor-init" description="Initializes Vendor library from local repository.">
-		<!-- Vendor specific info.  The prefix of 'vendor.apache.org' is taken from the property
-		     'vendor.fileset.names'.  This comma-delimited list is iterated, and properties with
-		     well-known suffixes are used to access and copy down vendor file dependencies. -->
-		<property name="vendor.fileset.names" value="vendor.apache.org,vendor.nunit.org"/>
-
-		<!-- Property grouping for 'vendor.apache.org' -->
-		<property name="vendor.apache.org.name" value="Apache.NMS"/>
-		<property name="vendor.apache.org.group" value="org.apache.activemq"/>
-		<property name="vendor.apache.org.version" value="1.4.0"/>
-		<property name="vendor.apache.org.filenames" value="Apache.NMS.dll,Apache.NMS.pdb,Apache.NMS.Test.dll,Apache.NMS.Test.pdb" />
-
-		<!-- Property grouping for 'vendor.nunit.org' -->
-		<property name="vendor.nunit.org.name" value="NUnit"/>
-		<property name="vendor.nunit.org.group" value="org.nunit"/>
-		<property name="vendor.nunit.org.version" value="2.4.8"/>
-		<property name="vendor.nunit.org.filenames"
-					value="nunit.framework.dll,nunit.framework.extensions.dll" />
-	</target>
-
-	<target name="dependency-init" description="Initializes build dependencies">
-		<assemblyfileset failonempty="true" id="dependencies">
-			<include name="${current.build.framework.assembly.dir}/mscorlib.dll"/>
-			<include name="${current.build.framework.assembly.dir}/System.dll"/>
-			<include name="${current.build.framework.assembly.dir}/System.configuration.dll"/>
-			<include name="${current.build.framework.assembly.dir}/System.Runtime.Serialization.dll" />
-			<include name="${current.build.framework.assembly.dir}/System.ServiceModel.dll" />
-			<include name="${current.build.framework.assembly.dir}/System.Web.Services.dll"/>
-			<include name="${current.build.framework.assembly.dir}/System.Xml.dll"/>
-			<include name="${Apache.NMS.dll}" asis="true"/>
-		</assemblyfileset>
-
-		<assemblyfileset failonempty="true" id="test.dependencies">
-			<include name="${current.build.framework.assembly.dir}/mscorlib.dll"/>
-			<include name="${current.build.framework.assembly.dir}/System.dll"/>
-			<include name="${current.build.framework.assembly.dir}/System.configuration.dll"/>
-			<include name="${current.build.framework.assembly.dir}/System.Runtime.Serialization.dll" />
-			<include name="${current.build.framework.assembly.dir}/System.ServiceModel.dll" />
-			<include name="${current.build.framework.assembly.dir}/System.Web.Services.dll"/>
-			<include name="${current.build.framework.assembly.dir}/System.Xml.dll"/>
-			<include name="${Apache.NMS.dll}"/>
-			<include name="${Apache.NMS.Test.dll}"/>
-			<include name="${build.bin.dir}/${project.name}.dll"/>
-			<include name="${nunit.dll}"/>
-			<include name="${nunit.extensions.dll}"/>
-		</assemblyfileset>
-
-		<fileset id="content.filenames">
-			<include name="LICENSE.txt"/>
-			<include name="NOTICE.txt"/>
-			<include name="${Apache.NMS.dll}"/>
-			<include name="${Apache.NMS.pdb}"/>
-			<include name="${Apache.NMS.Test.dll}"/>
-			<include name="${Apache.NMS.Test.pdb}"/>
-			<include name="${nunit.dll}"/>
-			<include name="${nunit.extensions.dll}"/>
-		</fileset>
-
-		<fileset id="install.filenames">
-			<include name="LICENSE.txt"/>
-			<include name="NOTICE.txt"/>
-			<include name="${build.bin.dir}/${project.name}.dll"/>
-			<include name="${build.bin.dir}/${project.name}.pdb"/>
-		</fileset>
+    <!-- ============================================================================================ -->
+    <!--      I N I T I A L I Z A T I O N                                                             -->
+    <!-- ============================================================================================ -->
+    <property name="basedir" value="${project::get-base-directory()}"/>
+    <property name="project.name" value="Apache.NMS.WCF"/>
+    <property name="project.group" value="org.apache.activemq"/>
+    <property name="project.version"  value="1.4.0" unless="${property::exists('project.version')}"/>
+    <property name="project.release.type" value="SNAPSHOT" unless="${property::exists('project.release.type')}" />
+    <property name="project.short_description" value="WCF Provider for ActiveMQ Class Library"/>
+    <property name="project.description" value="WCF Provider for ActiveMQ Class Library (.Net Messaging Library Implementation): An implementation of Windows Communications Framework API for ActiveMQ"/>
+
+    <!-- Repository organized as: organization/module/version/plaform/artifact, platform might be something like 'all' or 'net-2.0/release' -->
+    <property name="nunit.dll" value="${basedir}/lib/NUnit/${current.build.framework}/nunit.framework.dll" dynamic="true"/>
+    <property name="nunit.extensions.dll" value="${basedir}/lib/NUnit/${current.build.framework}/nunit.framework.extensions.dll" dynamic="true"/>
+    <property name="Apache.NMS.dll" value="${basedir}/lib/Apache.NMS/${current.build.framework}/Apache.NMS.dll" dynamic="true"/>
+    <property name="Apache.NMS.pdb" value="${basedir}/lib/Apache.NMS/${current.build.framework}/Apache.NMS.pdb" dynamic="true"/>
+    <property name="Apache.NMS.Test.dll" value="${basedir}/lib/Apache.NMS/${current.build.framework}//Apache.NMS.Test.dll" dynamic="true"/>
+    <property name="Apache.NMS.Test.pdb" value="${basedir}/lib/Apache.NMS/${current.build.framework}/Apache.NMS.Test.pdb" dynamic="true"/>
+
+    <!-- Skip certain frameworks, since WCF Client is not supported on those platforms. -->
+    <property name="build.net-2.0.skip" value="true"/>
+    <property name="build.mono-2.0.skip" value="true"/>
+    <property name="build.netcf-2.0.skip" value="true"/>
+    <property name="build.netcf-3.5.skip" value="true"/>
+
+    <target name="vendor-init" description="Initializes Vendor library from local repository.">
+        <!-- Vendor specific info.  The prefix of 'vendor.apache.org' is taken from the property
+             'vendor.fileset.names'.  This comma-delimited list is iterated, and properties with
+             well-known suffixes are used to access and copy down vendor file dependencies. -->
+        <property name="vendor.fileset.names" value="vendor.apache.org,vendor.nunit.org"/>
+
+        <!-- Property grouping for 'vendor.apache.org' -->
+        <property name="vendor.apache.org.name" value="Apache.NMS"/>
+        <property name="vendor.apache.org.group" value="org.apache.activemq"/>
+        <property name="vendor.apache.org.version" value="1.4.0"/>
+        <property name="vendor.apache.org.filenames" value="Apache.NMS.dll,Apache.NMS.pdb,Apache.NMS.Test.dll,Apache.NMS.Test.pdb" />
+
+        <!-- Property grouping for 'vendor.nunit.org' -->
+        <property name="vendor.nunit.org.name" value="NUnit"/>
+        <property name="vendor.nunit.org.group" value="org.nunit"/>
+        <property name="vendor.nunit.org.version" value="2.4.8"/>
+        <property name="vendor.nunit.org.filenames"
+                    value="nunit.framework.dll,nunit.framework.extensions.dll" />
+    </target>
+
+    <target name="dependency-init" description="Initializes build dependencies">
+        <assemblyfileset failonempty="true" id="dependencies">
+            <include name="${current.build.framework.assembly.dir}/mscorlib.dll"/>
+            <include name="${current.build.framework.assembly.dir}/System.dll"/>
+            <include name="${current.build.framework.assembly.dir}/System.configuration.dll"/>
+            <include name="${current.build.framework.assembly.dir}/System.Runtime.Serialization.dll" />
+            <include name="${current.build.framework.assembly.dir}/System.ServiceModel.dll" />
+            <include name="${current.build.framework.assembly.dir}/System.Web.Services.dll"/>
+            <include name="${current.build.framework.assembly.dir}/System.Xml.dll"/>
+            <include name="${Apache.NMS.dll}" asis="true"/>
+        </assemblyfileset>
+
+        <assemblyfileset failonempty="true" id="test.dependencies">
+            <include name="${current.build.framework.assembly.dir}/mscorlib.dll"/>
+            <include name="${current.build.framework.assembly.dir}/System.dll"/>
+            <include name="${current.build.framework.assembly.dir}/System.configuration.dll"/>
+            <include name="${current.build.framework.assembly.dir}/System.Runtime.Serialization.dll" />
+            <include name="${current.build.framework.assembly.dir}/System.ServiceModel.dll" />
+            <include name="${current.build.framework.assembly.dir}/System.Web.Services.dll"/>
+            <include name="${current.build.framework.assembly.dir}/System.Xml.dll"/>
+            <include name="${Apache.NMS.dll}"/>
+            <include name="${Apache.NMS.Test.dll}"/>
+            <include name="${build.bin.dir}/${project.name}.dll"/>
+            <include name="${nunit.dll}"/>
+            <include name="${nunit.extensions.dll}"/>
+        </assemblyfileset>
+
+        <fileset id="content.filenames">
+            <include name="LICENSE.txt"/>
+            <include name="NOTICE.txt"/>
+            <include name="${Apache.NMS.dll}"/>
+            <include name="${Apache.NMS.pdb}"/>
+            <include name="${Apache.NMS.Test.dll}"/>
+            <include name="${Apache.NMS.Test.pdb}"/>
+            <include name="${nunit.dll}"/>
+            <include name="${nunit.extensions.dll}"/>
+        </fileset>
+
+        <fileset id="install.filenames">
+            <include name="LICENSE.txt"/>
+            <include name="NOTICE.txt"/>
+            <include name="${build.bin.dir}/${project.name}.dll"/>
+            <include name="${build.bin.dir}/${project.name}.pdb"/>
+        </fileset>
+
+    </target>
+
+    <target name="default" depends="install-all" />
+
+    <zipfileset id="src.package.contents" basedir="${basedir}">
+        <include name="LICENSE.txt" />
+        <include name="NOTICE.txt" />
+        <include name="nant-common.xml" />
+        <include name="nant.build" />
+        <include name="nant.build" />
+        <include name="nmsprovider*.config" />
+        <include name="vs2008-*.csproj" />
+        <include name="vs2008-*.csproj" />
+        <include name="vs2008-*.sln" />
+        <include name="keyfile/*" />
+        <include name="src/**/*.cs" />
+        <exclude name="src/sandbox/**" />
+    </zipfileset>
+
+    <zipfileset id="bin.package.contents" basedir="${basedir}">
+        <include name="LICENSE.txt" />
+        <include name="NOTICE.txt" />
+        <include name="build/**/nmsprovider*" />
+        <include name="build/**/${project.name}*" />
+        <include name="lib/**/*" />
+        <exclude name="build/**/%temp%/**" />
+    </zipfileset>
 
-	</target>
-
-	<target name="default" depends="install-all" />
-
-	<!-- Load the common target definitions  -->
-	<include buildfile="${basedir}/nant-common.xml"/>
+    <!-- Load the common target definitions  -->
+    <include buildfile="${basedir}/nant-common.xml"/>
 
 </project>