Reformat to use tabs instead of spaces for easier editing.  Standardize nant-common.xml across all projects.
diff --git a/nant-common.xml b/nant-common.xml
index fff7120..1e497cc 100644
--- a/nant-common.xml
+++ b/nant-common.xml
@@ -1,658 +1,648 @@
-<?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.
--->
-<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-1.1,net-2.0,net-3.5,mono-2.0,netcf-2.0"/>
-  <property name="current.build.framework.assembly.dir" value="${framework::get-assembly-directory(framework::get-target-framework())}" dynamic="true"/>
-
-  <if test="${build.skip.release}">
-    <property name="build.config.strings"  value="debug"/>
-  </if>
-  <if test="${not(build.skip.release)}">
-    <property name="build.config.strings"  value="debug,release"/>
-  </if>
-
-  <!-- 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>
-
-  <target name="generate-build-number">
-    <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>
-  </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-1.1-framework-configuration">
-    <property name="current.build.framework"        value="net-1.1" />
-    <property name="current.build.framework.name"   value=".NET 1.1"/>
-    <property name="current.build.defines"          value="${build.defines}NET,NET_1_1" 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-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="false" />
-    <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-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, 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, conditional-compile, 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="vendor.build.config" value="release" />
-    <foreach item="String" in="${build.framework.strings}" delim="," property="vendor.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}/${vendor.build.framework}/${vendor.build.config}"/>
-      <property name="vendor.path" value="vendor/${vendor.name}/${vendor.build.framework}" />
-      <property name="lib.path" value="lib/${vendor.name}/${vendor.build.framework}" />
-
-      <!--
-           Update the LIB folder with the latest version of the file.  By default, the file from the
-           VENDOR folder will be used.  However, 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="vendor.task.src" value="${vendor.path}/${repo.task.artifact}"/>
-        <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(repo.task.src)}">
-          <copy file="${vendor.task.src}" tofile="${lib.task.dest}" if="${file::exists(vendor.task.src)}"/>
-        </if>
-      </foreach>
-    </foreach>
-  </target>
-
-  <!-- ============================================================================================ -->
-  <!--      D E P L O Y     T A R G E T S                                                           -->
-  <!-- ============================================================================================ -->
-
-  <target name="deploy-all" depends="generate-build-number" description="Deploy all build configurations for all runtime configurations">
-    <echo message="Deploying release configurations for all runtime configurations." />
-
-    <call target="set-release-configuration" />
-    <foreach item="String" in="${build.framework.strings}" delim="," property="current.build.framework">
-      <call target="deploy-target" />
-    </foreach>
-
-	<!-- Commit the deployed files to repository.  This completes the deployment. -->
-	<exec program="svn" failonerror="false">
-		<arg value="commit"/>
-		<arg value="deploy"/>
-		<arg value="-m"/>
-		<arg value="Deploy ${project.name} ${project.version.numeric}"/>
-	</exec>
-  </target>
-
-  <target name="deploy-target" depends="init, conditional-deploy"/>
-
-  <target name="conditional-deploy" depends="init" unless="${build.skip}"
-      description="Conditionaly deploy all the modules if build framework and type are supported">
-    <call target="deploy" />
-  </target>
-
-  <!-- Deploy the modules to the global repo -->
-  <target name="deploy" description="Deploy the artifacts into the subversion repo">
-    <property name="repo.dir" value="deploy/${current.build.framework}"/>
-
-    <foreach item="File" property="deploy.filename">
-      <in>
-        <items refid="deploy.filenames" />
-      </in>
-      <do>
-		<property name="repo.task.dest" value="${path::get-file-name(deploy.filename)}"/>
-		<copy file="${deploy.filename}" todir="${repo.dir}" unless="${file::up-to-date(deploy.filename, '${repo.dir}/${repo.task.dest}')}" />
-      </do>
-    </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="lib" if="${directory::exists('lib')}" />
-    <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>
-</project>
+<?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.

+-->

+<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-1.1,net-2.0,net-3.5,mono-2.0,netcf-2.0" />

+	<property name="current.build.framework.assembly.dir" value="${framework::get-assembly-directory(framework::get-target-framework())}" dynamic="true" />

+

+	<if test="${build.skip.release}">

+		<property name="build.config.strings" value="debug" />

+	</if>

+	<if test="${not(build.skip.release)}">

+		<property name="build.config.strings" value="debug,release" />

+	</if>

+

+	<!-- 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>

+

+	<target name="generate-build-number">

+		<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>

+	</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-1.1-framework-configuration">

+		<property name="current.build.framework" value="net-1.1" />

+		<property name="current.build.framework.name" value=".NET 1.1" />

+		<property name="current.build.defines" value="${build.defines}NET,NET_1_1" 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-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="false" />

+		<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-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, 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, conditional-compile, 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="vendor.build.config" value="release" />

+		<foreach item="String" in="${build.framework.strings}" delim="," property="vendor.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}/${vendor.build.framework}/${vendor.build.config}" />

+			<property name="vendor.path" value="vendor/${vendor.name}/${vendor.build.framework}" />

+			<property name="lib.path" value="lib/${vendor.name}/${vendor.build.framework}" />

+			<!--

+			Update the LIB folder with the latest version of the file.  By default, the file from the

+			VENDOR folder will be used.  However, 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="vendor.task.src" value="${vendor.path}/${repo.task.artifact}" />

+				<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(repo.task.src)}">

+					<copy file="${vendor.task.src}" tofile="${lib.task.dest}" if="${file::exists(vendor.task.src)}" />

+				</if>

+			</foreach>

+		</foreach>

+	</target>

+

+	<!-- ============================================================================================ -->

+	<!--      D E P L O Y     T A R G E T S                                                           -->

+	<!-- ============================================================================================ -->

+

+	<target name="deploy-all" depends="generate-build-number" description="Deploy all build configurations for all runtime configurations">

+		<echo message="Deploying release configurations for all runtime configurations." />

+		<call target="set-release-configuration" />

+		<foreach item="String" in="${build.framework.strings}" delim="," property="current.build.framework">

+			<call target="deploy-target" />

+		</foreach>

+

+		<!-- Commit the deployed files to repository.  This completes the deployment. -->

+		<exec program="svn" failonerror="false">

+			<arg value="commit" />

+			<arg value="deploy" />

+			<arg value="-m" />

+			<arg value="Deploy ${project.name} ${project.version.numeric}" />

+		</exec>

+	</target>

+

+	<target name="deploy-target" depends="init, conditional-deploy" />

+

+	<target name="conditional-deploy" depends="init" unless="${build.skip}"

+				description="Conditionaly deploy all the modules if build framework and type are supported">

+		<call target="deploy" />

+	</target>

+

+	<!-- Deploy the modules to the global repo -->

+	<target name="deploy" description="Deploy the artifacts into the subversion repo">

+		<property name="repo.dir" value="deploy/${current.build.framework}" />

+		<foreach item="File" property="deploy.filename">

+			<in>

+				<items refid="deploy.filenames" />

+			</in>

+			<do>

+				<property name="repo.task.dest" value="${path::get-file-name(deploy.filename)}" />

+				<copy file="${deploy.filename}" todir="${repo.dir}" unless="${file::up-to-date(deploy.filename, '${repo.dir}/${repo.task.dest}')}" />

+			</do>

+		</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="lib" if="${directory::exists('lib')}" />

+		<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>

+</project>