You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ch...@apache.org on 2008/02/12 23:52:31 UTC

svn commit: r627163 [1/2] - in /activemq/activemq-dotnet/Apache.NMS/trunk: ./ src/main/csharp/ src/test/csharp/

Author: chirino
Date: Tue Feb 12 14:52:29 2008
New Revision: 627163

URL: http://svn.apache.org/viewvc?rev=627163&view=rev
Log:
Applying patches submitted by Jim Gomes. 

See: https://issues.apache.org/activemq/secure/IssueNavigator.jspa?reset=true&&pid=11010&reporterSelect=specificuser&reporter=semog&status=1&sorter/field=issuekey&sorter/order=DESC&sorter/field=reporter&sorter/order=ASC


Modified:
    activemq/activemq-dotnet/Apache.NMS/trunk/nant-common.xml
    activemq/activemq-dotnet/Apache.NMS/trunk/nant.build
    activemq/activemq-dotnet/Apache.NMS/trunk/src/main/csharp/CommonAssemblyInfo.cs
    activemq/activemq-dotnet/Apache.NMS/trunk/src/main/csharp/IConnection.cs
    activemq/activemq-dotnet/Apache.NMS/trunk/src/main/csharp/NMSConnectionException.cs
    activemq/activemq-dotnet/Apache.NMS/trunk/src/main/csharp/NMSConnectionFactory.cs
    activemq/activemq-dotnet/Apache.NMS/trunk/src/test/csharp/CommonAssemblyInfo.cs
    activemq/activemq-dotnet/Apache.NMS/trunk/src/test/csharp/ConsumerTest.cs
    activemq/activemq-dotnet/Apache.NMS/trunk/src/test/csharp/DurableTest.cs
    activemq/activemq-dotnet/Apache.NMS/trunk/src/test/csharp/NMSTestSupport.cs
    activemq/activemq-dotnet/Apache.NMS/trunk/vs2005-nms.csproj

Modified: activemq/activemq-dotnet/Apache.NMS/trunk/nant-common.xml
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS/trunk/nant-common.xml?rev=627163&r1=627162&r2=627163&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS/trunk/nant-common.xml (original)
+++ activemq/activemq-dotnet/Apache.NMS/trunk/nant-common.xml Tue Feb 12 14:52:29 2008
@@ -1,588 +1,586 @@
-<?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">
-  
-  <!-- ============================================================================================ -->
-  <!--    I N I T I A L I Z A T I O N    T A R G E T 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 == 'release', '', '-' + project.release.type)}" dynamic="true" />
-  <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="current.build.config"    value="${if(project.release.type == 'release', 'release', 'debug')}"/>
-  <property name="current.build.framework" value="${framework::get-target-framework()}"/>
-  <property name="current.build.defines"   value="${build.defines}" />
-
-  <!-- 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-win32()}"
-            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-win32()}"/>
-            
-  <!-- Figure out the NANT repositories--> 
-  <property name="nant.repo" value="${environment::get-variable('NANT_REPO')}"
-            if="${environment::variable-exists('NANT_REPO')}"
-            unless="${property::exists('nant.repo')}"/>
-  <property name="nant.local.repo" value="${user.home}/.nant/repository"
-            unless="${property::exists('nant.local.repo')}"/>
-
-  <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.remote.repo" value="http://people.apache.org/~chirino/nant-repo"
-          unless="${property::exists('nant.remote.repo')}"/>
-          
-  <!-- Nant Repo Tasks -->
-  <target name="repo-download" description="Download a dependency from the remote repo to the local repo">
-    <fail message="The repo.task.artifact variable has not been set.  Please set it before you call this task." unless="${property::exists('repo.task.artifact')}"/>
-
-    <property name="repo.task.src" value="${nant.remote.repo}/${repo.task.artifact}"/>   
-    <property name="repo.task.dest" value="${nant.local.repo}/${repo.task.artifact}"/>   
-
-    <property name="repo.task.download" value="false"/>   
-    <if test="${not file::exists(repo.task.dest)}">
-      <property name="repo.task.download" value="true"/>   
-    </if>
-    
-    <if test="${file::exists(repo.task.dest)}">
-      <!-- TODO: we could also download if the file is a SNAPSHOT and is stale -->
-      <property name="repo.task.download" value="false"/>   
-      <echo message="Artifact: ${nant.remote.repo}/${repo.task.artifact} is up to date."/>
-    </if>
-    
-    <if test="${repo.task.download}">
-      <echo message="Downloading artifact: ${repo.task.src}"/>
-      <mkdir dir="${directory::get-parent-directory(repo.task.dest)}" />
-      <get src="${repo.task.src}" dest="${repo.task.dest}"/>
-    </if>   
-  </target>
-  
-  <target name="repo-install" description="Install a dependency to the local repo">
-    <fail message="The repo.task.artifact variable has not been set.  Please set it before you call this task." unless="${property::exists('repo.task.artifact')}"/>
-    <fail message="The repo.task.src variable has not been set.  Please set it before you call this task." unless="${property::exists('repo.task.src')}"/>
-        
-    <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}"/>    
-  </target>
-
-  <target name="repo-deploy" description="Deploy a dependency to the deployment repo">     
-    <fail message="Then nant.deploy.repo variable has not been set.  Please set it before you call this task." unless="${property::exists('nant.deploy.repo')}"/>
-    <fail message="The repo.task.artifact variable has not been set.  Please set it before you call this task." unless="${property::exists('repo.task.artifact')}"/>
-    <fail message="The repo.task.src variable has not been set.  Please set it before you call this task." unless="${property::exists('repo.task.src')}"/>
-        
-    <property name="repo.task.dest" value="${nant.deploy.repo}/${repo.task.artifact}"/>   
-    <mkdir dir="${directory::get-parent-directory(repo.task.dest)}" />
-    <copy file="${repo.task.src}" tofile="${repo.task.dest}"/>    
-  </target>
-    
-<!-- Helper targets used to enable build configurations -->
-  <target name="set-noskip-configuration" description="Disable skiping 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="csc.debug"                    value="true" />
-  </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="true" />
-  </target>
-  
-  <target name="set-net-1.0-framework-configuration">
-    <property name="current.build.framework" value="net-1.0" />
-    <property name="current.build.framework.name" value=".NET 1.0"/>
-    <property name="current.build.defines" value="${build.defines}NET,NET_1_0" dynamic="true" />
-    <property name="current.build.framework.sign" value="true" />
-    <property name="link.sdkdoc.version" value="SDK_v1_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-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_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-1.0-framework-configuration">
-    <property name="current.build.framework" value="netcf-1.0" />
-    <property name="current.build.framework.name" value=".NET Compact Framework 1.0"/>
-    <property name="current.build.defines" value="${build.defines}PocketPC,NETCF,NETCF_1_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-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-1.0-framework-configuration">
-    <property name="current.build.framework" value="mono-1.0" />
-    <property name="current.build.framework.name" value="Mono 1.0"/>
-    <property name="current.build.defines" value="${build.defines}MONO,MONO_1_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-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>
-  
-  <target name="set-sscli-1.0-framework-configuration">
-    <property name="current.build.framework" value="sscli-1.0" />
-    <property name="current.build.framework.name" value="sscli 1.0"/>
-    <property name="current.build.defines" value="${build.defines}SSCLI,SSCLI_1_0" dynamic="true" />
-    <property name="current.build.framework.sign" value="false" />
-    <property name="link.sdkdoc.version" value="SDK_v1_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="release-init" description="Initializes release build properties">
-    <property name="snk.file"  value="${basedir}/activemq-dotnet.snk" />
-    <if test="${not file::exists(snk.file)}">
-      <if test="${build.noskip}">
-    <fail message="Release key file not found. You can generate a key file by running 'sn -k ${snk.file}'." />
-      </if>
-      <if test="${not(build.noskip)}">
-        <echo message="Release key file not found. You can generate a key file by running 'sn -k ${snk.file}'." />
-        <echo message="The Release build will be skipped." />
-        <property name="build.skip.release" value="true"/>
-      </if>
-    </if>
-    <if test="${file::exists(snk.file)}">
-      <property name="build.skip.release" value="false" />
-    </if>
-  </target>
-
-  <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)}">
-       <!-- Make sure that the activemq-dotnet.snk exists for release builds -->
-       <if test="${current.build.config.release}">
-     <call target="release-init"/>
-     <property name="build.skip" value="${build.skip.release}" />
-       </if>
-       <if test="${not current.build.config.release}">
-         <property name="build.skip" value="false" />
-       </if>
-    </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>
-
-    <if test="${not(build.skip)}">
-       <property name="current.build.keysign" value="${current.build.config=='release' and current.build.framework.sign}"/>
-       <echo message="Doing ${if(current.build.keysign,'a signed','an unsigned')} ${current.build.config} build for the ${current.build.framework.name} framework" />
-       <property name="build.bin.dir" value="${basedir}/build/${nant.settings.currentframework}/${current.build.config}" />
-       <mkdir dir="${build.bin.dir}"/>
-       <call target="dependency-init"/>
-    </if>
-  </target>
-  
-  <!-- ============================================================================================ -->
-  <!--     C O M P I L E    T A R G E T S                                                           -->
-  <!-- ============================================================================================ -->
-  <target name="compile-all" depends="release-init" description="Compile all build configurations for all runtime configurations">
-    <echo message="Compiling all build configurations for all runtime configurations." />
-    <call target="set-debug-configuration" />
-    <call target="set-net-1.0-framework-configuration"  /><call target="conditional-compile" />
-    <call target="set-net-2.0-framework-configuration"  /><call target="conditional-compile" />
-    <call target="set-mono-1.0-framework-configuration" /><call target="conditional-compile" />
-    <call target="set-mono-2.0-framework-configuration" /><call target="conditional-compile" />
-    <call target="set-netcf-1.0-framework-configuration"/><call target="conditional-compile" />
-    <call target="set-netcf-2.0-framework-configuration"/><call target="conditional-compile" />
-
-    <!-- we can only do a release skip if the Key file is available -->
-    <if test="${not build.skip.release}">
-      <call target="set-release-configuration" />
-      <call target="set-net-1.0-framework-configuration"  /><call target="conditional-compile" />
-      <call target="set-net-2.0-framework-configuration"  /><call target="conditional-compile" />
-      <call target="set-mono-1.0-framework-configuration" /><call target="conditional-compile" />
-      <call target="set-mono-2.0-framework-configuration" /><call target="conditional-compile" />
-      <call target="set-netcf-1.0-framework-configuration"/><call target="conditional-compile" />
-      <call target="set-netcf-2.0-framework-configuration"/><call target="conditional-compile" />
-    </if>
-  </target>
-  
-  <target name="conditional-compile" depends="init" unless="${build.skip}"
-      description="Conditionaly compiles all the modules if build framework and type are supported">
-    <call target="compile" />
-  </target>  
-
-  <target name="compile" depends="compile-main,compile-test" description="Compile everything"/>
-
-  <target name="compile-main" depends="init" description="Build the main library">
-    <echo message="Building the ${project.name} library"/>
-    
-    <asminfo output="src/main/csharp/CommonAssemblyInfo.cs" 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) 2005-${datetime::get-year(datetime::now())} Apache Software Foundation" />
-        <attribute type="AssemblyTrademarkAttribute"     value="" />
-        <attribute type="AssemblyCultureAttribute"       value="" />
-        <attribute type="AssemblyVersionAttribute"       value="${project.version}" />
-        <attribute type="AssemblyInformationalVersionAttribute" value="${project.version}" />
-      </attributes>
-    </asminfo>
-
-    <csc if="${current.build.keysign}" keyfile="default.snk" target="library"
-      define="${current.build.defines}" warnaserror="false" debug="${csc.debug}"
-      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 -->
-        <warning number="0618" /> <!-- do not report deprecation warnings -->
-      </nowarn>
-      <sources failonempty="true">
-        <include name="src/main/csharp/**.cs" />
-      </sources>
-      <resources failonempty="true">
-        <include name="NOTICE.txt" />
-        <include name="LICENSE.txt" />
-      </resources>
-      <references refid="dependencies"/>
-    </csc>
-    <csc if="${not current.build.keysign}" target="library"
-      define="${current.build.defines}" warnaserror="false" debug="${csc.debug}"
-      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 -->
-    <warning number="0618" /> <!-- do not report deprecation warnings -->
-      </nowarn>
-      <sources failonempty="true">
-        <include name="src/main/csharp/**.cs" />
-      </sources>
-      <resources failonempty="true">
-        <include name="NOTICE.txt" />
-        <include name="LICENSE.txt" />
-      </resources>
-      <references refid="dependencies"/>
-    </csc>
-  </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" />
-
-    <asminfo output="src/test/csharp/CommonAssemblyInfo.cs" 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) 2005-${datetime::get-year(datetime::now())} Apache Software Foundation" />
-        <attribute type="AssemblyTrademarkAttribute"     value="" />
-        <attribute type="AssemblyCultureAttribute"       value="" />
-        <attribute type="AssemblyVersionAttribute"       value="${project.version}" />
-        <attribute type="AssemblyInformationalVersionAttribute" value="${project.version}" />
-      </attributes>
-    </asminfo>
-
-    <csc if="${current.build.keysign}" keyfile="default.snk" target="library"
-      define="${current.build.defines}" warnaserror="false" debug="${csc.debug}"
-      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 -->
-        <warning number="0618" /> <!-- do not report deprecation warnings -->
-      </nowarn>
-      <sources failonempty="true">
-          <include name="src/test/csharp/**.cs" />
-      </sources>
-      <resources failonempty="true">
-        <include name="NOTICE.txt" />
-        <include name="LICENSE.txt" />
-      </resources>
-      <references refid="test.dependencies"/>
-    </csc>
-    <csc if="${not current.build.keysign}" target="library"
-      define="${current.build.defines}" warnaserror="false" debug="${csc.debug}"
-      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 -->
-        <warning number="0618" /> <!-- do not report deprecation warnings -->
-      </nowarn>
-      <sources failonempty="true">
-        <include name="src/test/csharp/**.cs" />
-      </sources>
-      <resources failonempty="true">
-        <include name="NOTICE.txt" />
-        <include name="LICENSE.txt" />
-      </resources>
-      <references refid="test.dependencies"/>
-    </csc>
-  </target>
-  
-  
-  <!-- ============================================================================================ -->
-  <!--      I N S T A L L     T A R G E T S                                                         -->
-  <!-- ============================================================================================ -->
-
-  <target name="install-all" depends="release-init" description="Install all build configurations for all runtime configurations">
-    <echo message="Installing all build configurations for all runtime configurations." />
-    <call target="set-debug-configuration" />
-    <call target="set-net-1.0-framework-configuration"  /><call target="conditional-install" />
-    <call target="set-net-2.0-framework-configuration"  /><call target="conditional-install" />
-    <call target="set-mono-1.0-framework-configuration" /><call target="conditional-install" />
-    <call target="set-mono-2.0-framework-configuration" /><call target="conditional-install" />
-    <call target="set-netcf-1.0-framework-configuration"/><call target="conditional-install" />
-    <call target="set-netcf-2.0-framework-configuration"/><call target="conditional-install" />
-
-    <!-- we can only do a release skip if the Key file is available -->
-    <if test="${not build.skip.release}">
-      <call target="set-release-configuration" />
-      <call target="set-net-1.0-framework-configuration"  /><call target="conditional-install" />
-      <call target="set-net-2.0-framework-configuration"  /><call target="conditional-install" />
-      <call target="set-mono-1.0-framework-configuration" /><call target="conditional-install" />
-      <call target="set-mono-2.0-framework-configuration" /><call target="conditional-install" />
-      <call target="set-netcf-1.0-framework-configuration"/><call target="conditional-install" />
-      <call target="set-netcf-2.0-framework-configuration"/><call target="conditional-install" />
-    </if>
-  </target>
-  
-  <target name="conditional-install" depends="init" unless="${build.skip}"
-      description="Conditionaly install all the modules if build framework and type are supported">
-    <call target="install" />
-  </target>
-  
-  <!-- Install the modules to the local repo -->
-  <target name="install" depends="compile" 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}"/>    
-
-    <property name="repo.task.artifact" value="${path}/${project.name}.dll"/>    
-    <property name="repo.task.src" value="${build.bin.dir}/${project.name}.dll"/>    
-    <call target="repo-install"/>
-    <property name="repo.task.artifact" value="${path}/${project.name}.xml"/>    
-    <property name="repo.task.src" value="${build.bin.dir}/${project.name}.xml"/>    
-    <call target="repo-install"/>
-    <property name="repo.task.artifact" value="${path}/${project.name}.Test.dll"/>    
-    <property name="repo.task.src" value="${build.bin.dir}/${project.name}.Test.dll"/>    
-    <call target="repo-install"/>
-    <property name="repo.task.artifact" value="${path}/${project.name}.Test.xml"/>    
-    <property name="repo.task.src" value="${build.bin.dir}/${project.name}.Test.xml"/>    
-    <call target="repo-install"/>
-    
-  </target>
-
-  <!-- ============================================================================================ -->
-  <!--      D E P L O Y     T A R G E T S                                                           -->
-  <!-- ============================================================================================ -->
-
-  <target name="deploy-all" depends="release-init" description="Deploy all build configurations for all runtime configurations">
-    
-    <echo message="Deploying all build configurations for all runtime configurations." />
-
-    <call target="set-debug-configuration" />
-    <call target="set-net-1.0-framework-configuration"  /><call target="conditional-deploy" />
-    <call target="set-net-2.0-framework-configuration"  /><call target="conditional-deploy" />
-    <call target="set-mono-1.0-framework-configuration" /><call target="conditional-deploy" />
-    <call target="set-mono-2.0-framework-configuration" /><call target="conditional-deploy" />
-    <call target="set-netcf-1.0-framework-configuration"/><call target="conditional-deploy" />
-    <call target="set-netcf-2.0-framework-configuration"/><call target="conditional-deploy" />
-
-    <!-- we can only do a release skip if the Key file is available -->
-    <if test="${not build.skip.release}">
-      <call target="set-release-configuration" />
-      <call target="set-net-1.0-framework-configuration"  /><call target="conditional-deploy" />
-      <call target="set-net-2.0-framework-configuration"  /><call target="conditional-deploy" />
-      <call target="set-mono-1.0-framework-configuration" /><call target="conditional-deploy" />
-      <call target="set-mono-2.0-framework-configuration" /><call target="conditional-deploy" />
-      <call target="set-netcf-1.0-framework-configuration"/><call target="conditional-deploy" />
-      <call target="set-netcf-2.0-framework-configuration"/><call target="conditional-deploy" />
-    </if>
-  </target>
-  
-  <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>
-  
-  <target name="init-deploy">
-     <fail message="Then nant.deploy.repo variable has not been set.  Please set it before you call this task." unless="${property::exists('nant.deploy.repo')}"/>
-  </target>
-  
-  <!-- Install the modules to the local repo -->
-  <target name="deploy" depends="init-deploy, install" description="Deploy the artifacts into the nant repo">
-    <property name="path" value="${project.group}/${project.name}/${project.version.full}/${current.build.framework}/${current.build.config}"/>    
-
-    <property name="repo.task.artifact" value="${path}/${project.name}.dll"/>    
-    <property name="repo.task.src" value="${build.bin.dir}/${project.name}.dll"/>    
-    <call target="repo-deploy"/>
-    <property name="repo.task.artifact" value="${path}/${project.name}.xml"/>    
-    <property name="repo.task.src" value="${build.bin.dir}/${project.name}.xml"/>    
-    <call target="repo-deploy"/>
-    <property name="repo.task.artifact" value="${path}/${project.name}.Test.dll"/>    
-    <property name="repo.task.src" value="${build.bin.dir}/${project.name}.Test.dll"/>    
-    <call target="repo-deploy"/>
-    <property name="repo.task.artifact" value="${path}/${project.name}.Test.xml"/>    
-    <property name="repo.task.src" value="${build.bin.dir}/${project.name}.Test.xml"/>    
-    <call target="repo-deploy"/>
-    
-  </target>
-    
-  <!-- ============================================================================================ -->
-  <!--      M I S C E L L A N E O U S    T A R G E T S                                              -->
-  <!-- ============================================================================================ -->
-
-  <target name="clean" description="Deletes build">
-    <delete dir="build" if="${directory::exists('build')}" />
-  </target>
-  
-  <target name="doc" depends="compile">
-    <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="False" />
-          <property name="CopyrightText" value="" />
-          <property name="CopyrightHref" value="" />
-        </documenter>
-      </documenters>
-    </ndoc>
-  </target>
-  
+<?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">
+
+  <!-- ============================================================================================ -->
+  <!--    I N I T I A L I Z A T I O N    T A R G E T 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 == 'release', '', '-' + project.release.type)}" dynamic="true" />
+  <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="current.build.config"    value="${if(project.release.type == 'release', 'release', 'debug')}"/>
+  <property name="current.build.framework" value="${framework::get-target-framework()}"/>
+  <property name="current.build.defines"   value="${build.defines}" />
+
+  <!-- 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-win32()}"
+            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-win32()}"/>
+
+  <!-- Figure out the NANT repositories-->
+  <property name="nant.repo" value="${environment::get-variable('NANT_REPO')}"
+            if="${environment::variable-exists('NANT_REPO')}"
+            unless="${property::exists('nant.repo')}"/>
+  <property name="nant.local.repo" value="${user.home}/.nant/repository"
+            unless="${property::exists('nant.local.repo')}"/>
+
+  <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.remote.repo" value="http://people.apache.org/~chirino/nant-repo"
+          unless="${property::exists('nant.remote.repo')}"/>
+
+  <!-- Nant Repo Tasks -->
+  <target name="repo-download" description="Download a dependency from the remote repo to the local repo">
+    <fail message="The repo.task.artifact variable has not been set.  Please set it before you call this task." unless="${property::exists('repo.task.artifact')}"/>
+
+    <property name="repo.task.src" value="${nant.remote.repo}/${repo.task.artifact}"/>
+    <property name="repo.task.dest" value="${nant.local.repo}/${repo.task.artifact}"/>
+
+    <property name="repo.task.download" value="false"/>
+    <if test="${not file::exists(repo.task.dest)}">
+      <property name="repo.task.download" value="true"/>
+    </if>
+
+    <if test="${file::exists(repo.task.dest)}">
+      <!-- TODO: we could also download if the file is a SNAPSHOT and is stale -->
+      <property name="repo.task.download" value="false"/>
+      <echo message="Artifact: ${nant.remote.repo}/${repo.task.artifact} is up to date."/>
+    </if>
+
+    <if test="${repo.task.download}">
+      <echo message="Downloading artifact: ${repo.task.src}"/>
+      <mkdir dir="${directory::get-parent-directory(repo.task.dest)}" />
+      <get src="${repo.task.src}" dest="${repo.task.dest}"/>
+    </if>
+  </target>
+
+  <target name="repo-install" description="Install a dependency to the local repo">
+    <fail message="The repo.task.artifact variable has not been set.  Please set it before you call this task." unless="${property::exists('repo.task.artifact')}"/>
+    <fail message="The repo.task.src variable has not been set.  Please set it before you call this task." unless="${property::exists('repo.task.src')}"/>
+
+    <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}"/>
+  </target>
+
+  <target name="repo-deploy" description="Deploy a dependency to the deployment repo">
+    <fail message="Then nant.deploy.repo variable has not been set.  Please set it before you call this task." unless="${property::exists('nant.deploy.repo')}"/>
+    <fail message="The repo.task.artifact variable has not been set.  Please set it before you call this task." unless="${property::exists('repo.task.artifact')}"/>
+    <fail message="The repo.task.src variable has not been set.  Please set it before you call this task." unless="${property::exists('repo.task.src')}"/>
+
+    <property name="repo.task.dest" value="${nant.deploy.repo}/${repo.task.artifact}"/>
+    <mkdir dir="${directory::get-parent-directory(repo.task.dest)}" />
+    <copy file="${repo.task.src}" tofile="${repo.task.dest}"/>
+  </target>
+
+<!-- Helper targets used to enable build configurations -->
+  <target name="set-noskip-configuration" description="Disable skiping 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="csc.debug"                    value="true" />
+    <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="true" />
+    <property name="csc.optimize"                 value="true" />
+  </target>
+
+  <target name="set-net-1.0-framework-configuration">
+    <property name="current.build.framework" value="net-1.0" />
+    <property name="current.build.framework.name" value=".NET 1.0"/>
+    <property name="current.build.defines" value="${build.defines}NET,NET_1_0" dynamic="true" />
+    <property name="current.build.framework.sign" value="true" />
+    <property name="link.sdkdoc.version" value="SDK_v1_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-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_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-1.0-framework-configuration">
+    <property name="current.build.framework" value="netcf-1.0" />
+    <property name="current.build.framework.name" value=".NET Compact Framework 1.0"/>
+    <property name="current.build.defines" value="${build.defines}PocketPC,NETCF,NETCF_1_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-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-1.0-framework-configuration">
+    <property name="current.build.framework" value="mono-1.0" />
+    <property name="current.build.framework.name" value="Mono 1.0"/>
+    <property name="current.build.defines" value="${build.defines}MONO,MONO_1_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-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>
+
+  <target name="set-sscli-1.0-framework-configuration">
+    <property name="current.build.framework" value="sscli-1.0" />
+    <property name="current.build.framework.name" value="sscli 1.0"/>
+    <property name="current.build.defines" value="${build.defines}SSCLI,SSCLI_1_0" dynamic="true" />
+    <property name="current.build.framework.sign" value="false" />
+    <property name="link.sdkdoc.version" value="SDK_v1_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="release-init" description="Initializes release build properties">
+    <property name="snk.file"  value="${basedir}/activemq-dotnet.snk" />
+    <if test="${not file::exists(snk.file)}">
+      <if test="${build.noskip}">
+    <fail message="Release key file not found. You can generate a key file by running 'sn -k ${snk.file}'." />
+      </if>
+      <if test="${not(build.noskip)}">
+        <echo message="Release key file not found. You can generate a key file by running 'sn -k ${snk.file}'." />
+        <echo message="The Release build will be skipped." />
+        <property name="build.skip.release" value="true"/>
+      </if>
+    </if>
+    <if test="${file::exists(snk.file)}">
+      <property name="build.skip.release" value="false" />
+    </if>
+  </target>
+
+  <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)}">
+       <!-- Make sure that the activemq-dotnet.snk exists for release builds -->
+       <if test="${current.build.config.release}">
+     <call target="release-init"/>
+     <property name="build.skip" value="${build.skip.release}" />
+       </if>
+       <if test="${not current.build.config.release}">
+         <property name="build.skip" value="false" />
+       </if>
+    </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>
+
+    <if test="${not(build.skip)}">
+       <property name="current.build.keysign" value="${current.build.config=='release' and current.build.framework.sign}"/>
+       <echo message="Doing ${if(current.build.keysign,'a signed','an unsigned')} ${current.build.config} build for the ${current.build.framework.name} framework" />
+       <property name="build.bin.dir" value="${basedir}/build/${nant.settings.currentframework}/${current.build.config}" />
+       <mkdir dir="${build.bin.dir}"/>
+       <call target="dependency-init"/>
+    </if>
+  </target>
+
+  <!-- ============================================================================================ -->
+  <!--     C O M P I L E    T A R G E T S                                                           -->
+  <!-- ============================================================================================ -->
+  <target name="compile-all" depends="release-init" description="Compile all build configurations for all runtime configurations">
+    <echo message="Compiling all build configurations for all runtime configurations." />
+    <call target="set-debug-configuration" />
+    <call target="set-net-1.0-framework-configuration"  /><call target="conditional-compile" />
+    <call target="set-net-2.0-framework-configuration"  /><call target="conditional-compile" />
+    <call target="set-mono-1.0-framework-configuration" /><call target="conditional-compile" />
+    <call target="set-mono-2.0-framework-configuration" /><call target="conditional-compile" />
+    <call target="set-netcf-1.0-framework-configuration"/><call target="conditional-compile" />
+    <call target="set-netcf-2.0-framework-configuration"/><call target="conditional-compile" />
+
+    <!-- we can only do a release skip if the Key file is available -->
+    <if test="${not build.skip.release}">
+      <call target="set-release-configuration" />
+      <call target="set-net-1.0-framework-configuration"  /><call target="conditional-compile" />
+      <call target="set-net-2.0-framework-configuration"  /><call target="conditional-compile" />
+      <call target="set-mono-1.0-framework-configuration" /><call target="conditional-compile" />
+      <call target="set-mono-2.0-framework-configuration" /><call target="conditional-compile" />
+      <call target="set-netcf-1.0-framework-configuration"/><call target="conditional-compile" />
+      <call target="set-netcf-2.0-framework-configuration"/><call target="conditional-compile" />
+    </if>
+  </target>
+
+  <target name="conditional-compile" depends="init" unless="${build.skip}"
+      description="Conditionaly compiles all the modules if build framework and type are supported">
+    <call target="compile" />
+  </target>
+
+  <target name="compile" depends="compile-main,compile-test" description="Compile everything"/>
+
+  <target name="compile-main" depends="init" description="Build the main library">
+    <echo message="Building the ${project.name} library"/>
+
+    <asminfo output="src/main/csharp/CommonAssemblyInfo.cs" 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) 2005-${datetime::get-year(datetime::now())} Apache Software Foundation" />
+        <attribute type="AssemblyTrademarkAttribute"     value="" />
+        <attribute type="AssemblyCultureAttribute"       value="" />
+        <attribute type="AssemblyVersionAttribute"       value="${project.version}" />
+        <attribute type="AssemblyInformationalVersionAttribute" value="${project.version}" />
+      </attributes>
+    </asminfo>
+
+    <csc if="${current.build.keysign}" keyfile="${basedir}/activemq-dotnet.snk" 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 -->
+        <warning number="0618" /> <!-- do not report deprecation warnings -->
+      </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 -->
+    <warning number="0618" /> <!-- do not report deprecation warnings -->
+      </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" />
+
+    <asminfo output="src/test/csharp/CommonAssemblyInfo.cs" 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) 2005-${datetime::get-year(datetime::now())} Apache Software Foundation" />
+        <attribute type="AssemblyTrademarkAttribute"     value="" />
+        <attribute type="AssemblyCultureAttribute"       value="" />
+        <attribute type="AssemblyVersionAttribute"       value="${project.version}" />
+        <attribute type="AssemblyInformationalVersionAttribute" value="${project.version}" />
+      </attributes>
+    </asminfo>
+
+    <csc if="${current.build.keysign}" keyfile="${basedir}/activemq-dotnet.snk" 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 -->
+        <warning number="0618" /> <!-- do not report deprecation warnings -->
+      </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 -->
+        <warning number="0618" /> <!-- do not report deprecation warnings -->
+      </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" depends="release-init" description="Install all build configurations for all runtime configurations">
+    <echo message="Installing all build configurations for all runtime configurations." />
+    <call target="set-debug-configuration" />
+    <call target="set-net-1.0-framework-configuration"  /><call target="conditional-install" />
+    <call target="set-net-2.0-framework-configuration"  /><call target="conditional-install" />
+    <call target="set-mono-1.0-framework-configuration" /><call target="conditional-install" />
+    <call target="set-mono-2.0-framework-configuration" /><call target="conditional-install" />
+    <call target="set-netcf-1.0-framework-configuration"/><call target="conditional-install" />
+    <call target="set-netcf-2.0-framework-configuration"/><call target="conditional-install" />
+
+    <!-- we can only do a release skip if the Key file is available -->
+    <if test="${not build.skip.release}">
+      <call target="set-release-configuration" />
+      <call target="set-net-1.0-framework-configuration"  /><call target="conditional-install" />
+      <call target="set-net-2.0-framework-configuration"  /><call target="conditional-install" />
+      <call target="set-mono-1.0-framework-configuration" /><call target="conditional-install" />
+      <call target="set-mono-2.0-framework-configuration" /><call target="conditional-install" />
+      <call target="set-netcf-1.0-framework-configuration"/><call target="conditional-install" />
+      <call target="set-netcf-2.0-framework-configuration"/><call target="conditional-install" />
+    </if>
+  </target>
+
+  <target name="conditional-install" depends="init" unless="${build.skip}"
+      description="Conditionaly install all the modules if build framework and type are supported">
+    <call target="install" />
+  </target>
+
+  <!-- Install the modules to the local repo -->
+  <target name="install" depends="compile" 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}/${install.filename}"/>
+        <property name="repo.task.src" value="${build.bin.dir}/${install.filename}"/>
+        <call target="repo-install"/>
+      </do>
+    </foreach>
+
+  </target>
+
+  <!-- ============================================================================================ -->
+  <!--      D E P L O Y     T A R G E T S                                                           -->
+  <!-- ============================================================================================ -->
+
+  <target name="deploy-all" depends="release-init" description="Deploy all build configurations for all runtime configurations">
+
+    <echo message="Deploying all build configurations for all runtime configurations." />
+
+    <call target="set-debug-configuration" />
+    <call target="set-net-1.0-framework-configuration"  /><call target="conditional-deploy" />
+    <call target="set-net-2.0-framework-configuration"  /><call target="conditional-deploy" />
+    <call target="set-mono-1.0-framework-configuration" /><call target="conditional-deploy" />
+    <call target="set-mono-2.0-framework-configuration" /><call target="conditional-deploy" />
+    <call target="set-netcf-1.0-framework-configuration"/><call target="conditional-deploy" />
+    <call target="set-netcf-2.0-framework-configuration"/><call target="conditional-deploy" />
+
+    <!-- we can only do a release skip if the Key file is available -->
+    <if test="${not build.skip.release}">
+      <call target="set-release-configuration" />
+      <call target="set-net-1.0-framework-configuration"  /><call target="conditional-deploy" />
+      <call target="set-net-2.0-framework-configuration"  /><call target="conditional-deploy" />
+      <call target="set-mono-1.0-framework-configuration" /><call target="conditional-deploy" />
+      <call target="set-mono-2.0-framework-configuration" /><call target="conditional-deploy" />
+      <call target="set-netcf-1.0-framework-configuration"/><call target="conditional-deploy" />
+      <call target="set-netcf-2.0-framework-configuration"/><call target="conditional-deploy" />
+    </if>
+  </target>
+
+  <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>
+
+  <target name="init-deploy">
+     <fail message="Then nant.deploy.repo variable has not been set.  Please set it before you call this task." unless="${property::exists('nant.deploy.repo')}"/>
+  </target>
+
+  <!-- Deploy the modules to the local repo -->
+  <target name="deploy" depends="init-deploy, install" description="Deploy 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="deploy.filename">
+      <in>
+        <items refid="deploy.filenames" />
+      </in>
+      <do>
+        <property name="repo.task.artifact" value="${path}/${deploy.filename}"/>
+        <property name="repo.task.src" value="${build.bin.dir}/${deploy.filename}"/>
+        <call target="repo-deploy"/>
+      </do>
+    </foreach>
+
+  </target>
+
+  <!-- ============================================================================================ -->
+  <!--      M I S C E L L A N E O U S    T A R G E T S                                              -->
+  <!-- ============================================================================================ -->
+
+  <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')}" />
+  </target>
+
+  <target name="doc" depends="compile">
+    <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="False" />
+          <property name="CopyrightText" value="" />
+          <property name="CopyrightHref" value="" />
+        </documenter>
+      </documenters>
+    </ndoc>
+  </target>
+
 </project>

Modified: activemq/activemq-dotnet/Apache.NMS/trunk/nant.build
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS/trunk/nant.build?rev=627163&r1=627162&r2=627163&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS/trunk/nant.build (original)
+++ activemq/activemq-dotnet/Apache.NMS/trunk/nant.build Tue Feb 12 14:52:29 2008
@@ -6,23 +6,23 @@
     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" default="install-all" xmlns="http://nant.sourceforge.net/release/0.85/nant.xsd">
+<project name="Apache.NMS" default="compile-all" 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"                 
+  <!-- ============================================================================================ -->
+  <property name="basedir"
            value="${project::get-base-directory()}"/>
- <property name="project.name"
+  <property name="project.name"
            value="Apache.NMS"/>
   <property name="project.group"
            value="org.apache.activemq"/>
@@ -32,31 +32,39 @@
            value="Apache NMS Class Library"/>
   <property name="project.description"
            value="Apache NMS (.Net Messaging Library): An abstract interface to Message Oriented Middleware (MOM) providers"/>
-  
+  <property name="project.cls.compliant" value="true"/>
+
   <!-- Repository organized as: organization/module/version/plaform/artifact, platform might be something like 'all' or 'net-2.0/release' -->
-  <property name="nunit.dll" value="org.nunit/nunit/2.2.8/all/nunit.framework.dll"/>    
+  <property name="nunit.dll" value="org.nunit/nunit/2.2.8/all/nunit.framework.dll"/>
 
-  <target name="dependency-init" description="Initializes build dependencies">
-  
+  <target name="vendor-init" description="Initializes the vendor libraries.">
     <!-- The following does a poor man's maven style dependency install to the local repo -->
-    <property name="repo.task.artifact" value="${nunit.dll}"/>    
+    <property name="repo.task.artifact" value="${nunit.dll}"/>
     <call target="repo-download"/>
-  
-  	<assemblyfileset failonempty="true" id="dependencies">
+  </target>
+
+  <target name="dependency-init" description="Initializes build dependencies">
+
+    <assemblyfileset failonempty="true" id="dependencies">
       <include name="mscorlib.dll" asis="true"/>
       <include name="System.dll" asis="true"/>
-  	</assemblyfileset>
-  	
-  	<assemblyfileset failonempty="true" id="test.dependencies">
+      <include name="System.Xml.dll" asis="true"/>
+    </assemblyfileset>
+
+    <assemblyfileset failonempty="true" id="test.dependencies">
       <include name="mscorlib.dll" asis="true"/>
       <include name="System.dll" asis="true"/>
       <include name="${build.bin.dir}/${project.name}.dll"/>
       <include name="${nant.local.repo}/${nunit.dll}"/>
-  	</assemblyfileset>  
-  	
+    </assemblyfileset>
+
+    <fileset id="content.filenames">
+      <include name="LICENSE.txt"/>
+      <include name="NOTICE.txt"/>
+    </fileset>
   </target>
-  
+
   <!-- Load the common target definitions  -->
-	<include buildfile="${basedir}/nant-common.xml"/>
-  
+  <include buildfile="${basedir}/nant-common.xml"/>
+
 </project>

Modified: activemq/activemq-dotnet/Apache.NMS/trunk/src/main/csharp/CommonAssemblyInfo.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS/trunk/src/main/csharp/CommonAssemblyInfo.cs?rev=627163&r1=627162&r2=627163&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS/trunk/src/main/csharp/CommonAssemblyInfo.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS/trunk/src/main/csharp/CommonAssemblyInfo.cs Tue Feb 12 14:52:29 2008
@@ -20,7 +20,7 @@
 [assembly: AssemblyConfigurationAttribute("SNAPSHOT")]
 [assembly: AssemblyCompanyAttribute("http://activemq.apache.org/nms")]
 [assembly: AssemblyProductAttribute("Apache NMS Class Library")]
-[assembly: AssemblyCopyrightAttribute("Copyright (C) 2005-2007 Apache Software Foundation")]
+[assembly: AssemblyCopyrightAttribute("Copyright (C) 2005-2008 Apache Software Foundation")]
 [assembly: AssemblyTrademarkAttribute("")]
 [assembly: AssemblyCultureAttribute("")]
 [assembly: AssemblyVersionAttribute("1.0")]

Modified: activemq/activemq-dotnet/Apache.NMS/trunk/src/main/csharp/IConnection.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS/trunk/src/main/csharp/IConnection.cs?rev=627163&r1=627162&r2=627163&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS/trunk/src/main/csharp/IConnection.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS/trunk/src/main/csharp/IConnection.cs Tue Feb 12 14:52:29 2008
@@ -48,18 +48,6 @@
                 ClientAcknowledge,
 
 				/**
-				 * With this acknowledgment mode, the session automatically
-				 * acknowledges a client's receipt of a message either when
-				 * the session has successfully returned from a call to receive
-				 * or when the message listener the session has called to
-				 * process the message successfully returns.  The broker is
-				 * set to ClientAcknowledge mode, but no manual acknowledgements
-				 * are necessary from the client code.  This mode is useful for
-				 * controlling the flow of messages to the client.
-				 */
-				AutoClientAcknowledge,
-				
-				/**
 				 * Messages will be consumed when the transaction commits.
 				 */
                 Transactional

Modified: activemq/activemq-dotnet/Apache.NMS/trunk/src/main/csharp/NMSConnectionException.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS/trunk/src/main/csharp/NMSConnectionException.cs?rev=627163&r1=627162&r2=627163&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS/trunk/src/main/csharp/NMSConnectionException.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS/trunk/src/main/csharp/NMSConnectionException.cs Tue Feb 12 14:52:29 2008
@@ -14,6 +14,8 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+using System;
+
 namespace Apache.NMS
 {
 	/// <summary>
@@ -22,6 +24,11 @@
 	public class NMSConnectionException : NMSException
 	{
 		public NMSConnectionException(string message) : base(message)
+		{
+		}
+
+		public NMSConnectionException(string message, Exception innerException)
+			: base(message, innerException)
 		{
 		}
 	}