AMQNET-576 Remove deprecated AMQP client impl from master

Remove the now deprecated NMS.AMQP implementation that attempted to wrap
the Qpid native libraries vs a direct .NET based client impl or a wrapper
around another AMQP .NET client such as AmqpNetLite.

Deprecated code can be found in branch: deprecated-impl
diff --git a/Apache.NMS.AMQP.Test.nunit b/Apache.NMS.AMQP.Test.nunit
deleted file mode 100644
index 1e996af..0000000
--- a/Apache.NMS.AMQP.Test.nunit
+++ /dev/null
@@ -1,7 +0,0 @@
-<NUnitProject>

-  <Settings activeconfig="Default" />

-  <Config name="Default" binpathtype="Auto">

-    <assembly path="Apache.NMS.Test.dll" />

-    <assembly path="Apache.NMS.AMQP.Test.dll" />

-  </Config>

-</NUnitProject>

diff --git a/README.txt b/README.txt
deleted file mode 100644
index 61a6a87..0000000
--- a/README.txt
+++ /dev/null
@@ -1,73 +0,0 @@
-=======================================================================
-Welcome to:
- * Apache.NMS.AMQP : Apache NMS for AMQP Client Library
-=======================================================================
-
-For more information see http://activemq.apache.org/nms
-
-=======================================================================
-Building With NAnt 0.86 see http://nant.sourceforge.net/
-=======================================================================
-
-NAnt version 0.86 or newer is required to build Apache.NMS.AMQP.  Version 0.90
-or newer is highly recommended.
-To build the code using NAnt, run:
-
-  nant
-
-To run the unit tests you need to run an Apache ActiveMQ Broker first then run:
-
-  nant test
-
-The NMS documentation can be generated into three different formats using
-Microsoft's Sandcastle open source product. The Sandcastle Styles project
-was used to enhance the output generated from the current release of Sandcastle.
-
-The Sandcastle project is located here:
-
-http://sandcastle.codeplex.com/
-
-The Sandcastle Styles project is located here:
-
-http://sandcastlestyles.codeplex.com/
-
-To generate the documentation, run:
-
-  nant sandcastle-all
-
-=======================================================================
-Building With Visual Studio 2008 (net-2.0 only)
-=======================================================================
-
-First build the project with nant, this will download and install 
-all the 3rd party dependencies for you.
-
-Open the solution File.  Build using "Build"->"Build Solution" 
-menu option.
-
-The resulting DLLs will be in build\${framework}\debug or the 
-build\${framework}\release directories depending on your settings 
-under "Build"->"Configuration Manager"
-
-If you have the Resharper plugin installed in Visual Studio, you can run 
-all the Unit Tests by using the "ReSharper"->"Unit Testing"->"Run All 
-Tests from Solution" menu option.  Please note that you must run an 
-Apache ActiveMQ Broker before kicking off the unit tests.  Otherwise,
-the standalone NUnit test runner can be used.  NUnit version 2.5.8
-is required to build and run the unit tests.
-
-=======================================================================
-Building With Visual Studio 2010 (net-4.0 only)
-=======================================================================
-
-First build the project with nant, this will download and install 
-all the 3rd party dependencies for you.
-
-Open the solution File.  Build using "Build"->"Build Solution" 
-menu option.
-
-The resulting DLLs will be in build\${framework}\debug or the 
-build\${framework}\release directories depending on your settings 
-under "Build"->"Configuration Manager"
-
-
diff --git a/RELEASE.txt b/RELEASE.txt
deleted file mode 100644
index 158b03c..0000000
--- a/RELEASE.txt
+++ /dev/null
@@ -1,136 +0,0 @@
-=======================================================================
- * Apache.NMS.AMQP : Apache NMS for AMQP Client Library
- * Initial Release Notes
-=======================================================================
-
-1.0 Welcome
-
-Welcome to Apache NMS AMQP! This NMS Provider will connect to the AMQP
-messaging protocol. Versions Amqp1.0 and Amqp0.10 are supported. NMS
-applications using this provider may communicate with Amqp Brokers 
-such as Apache ActiveMQ and Apache Qpid qpidd, and messaging 
-infrastructure such as Apache Qpid Dispatch Router.
-
-2.0 Implementation Overview
-
-The AMQP Provider leverages the interop binding "Apache Qpid 
-.NET Binding for C++ Messaging". The .NET Binding is an interop layer
-that connects .NET programs to the Qpid native C++ protocol engine 
-libraries.
-
-The general architecture is:
-
-                      +----------------------------+
-                      | NMS Application            |
-                      |                            |
-                      +--------------+-------------+
-                                     |
-                                     V
-                      +----------------------------+
-                      | NMS AMQP Provider          |
-                      | Apache.NMS.AMQP.dll        |
-                      +--------------+-------------+
-                                     |
-managed                              V
-(.NET)                +-------------------------------+
-::::::::::::::::::::::| Qpid Interop Binding          |::::::::::::
-unmanaged             | org.apache.qpid.messaging.dll |
-(Native Win32/64)     +-------------+-----------------+
-                                     |
-                                     V
-          +----------------------------------+
-          |  Qpid C++ Messaging Libraries    |
-          |  qpid*.dll                       |
-          +--------+--------------+----------+
-                   |              |
-                   V              |
-          +-----------------+     |
-          | Boost Libraries |     |
-          +--------+--------+     |
-                   |              |
-                   V              V
-          +---------------------------------+
-          | MSVC Runtime Libraries          |
-          +---------------------------------+
-
-
-3.0 Getting Started
-
-3.1 Installing Apache Qpid vendor files
-
-In order to use the AMQP Provider your application must have the
-Apache Qpid native and supporting libraries available on the path. 
-These files are installed automatically during the nant 
-installation of the Apache.Qpid vendor kit.
-
-3.2 Selecting the correct Apache Qpid vendor files
-
-The Apache Qpid vendor files are shipped in two versions:
- * .NET 2.0 Compiled with Visual Studio 2008
- * .NET 4.0 Compiled with Visual Studio 2010
- 
-Each of these kits is built for the 32-bit x86 platform in both Debug
-and Release configurations. A typical kit holds:
- * The Apache Qpid interop library
-     org.apache.qpid.messaging.dll
- * Apache Qpid/Proton library files
-     qpid-protond.dll
-     qpidclientd.dll
-     qpidcommond.dll
-     qpidmessagingd.dll
-     qpidtypesd.dll 
- * Boost library files
-     boost_chrono-vc100-mt-gd-1_47.dll
-     boost_date_time-vc100-mt-gd-1_47.dll
-     boost_program_options-vc100-mt-gd-1_47.dll
-     boost_system-vc100-mt-gd-1_47.dll
-     boost_thread-vc100-mt-gd-1_47.dll
-
-3.3 Building your Application
-
-A HelloWorld application is included in the Apache.NMS.AMQP 
-development tree to get users off to a quick start.
-
-This project selects:
-    Visual Studio  : 2010
-	Configuration  : Debug
-	.NET Framework : 4.0
-	Platform       : AnyCPU
-
-HelloWorld builds and runs on both 32-bit x86 and 64-bit x64 systems
-as long as the base project is built with the AnyCPU or the x64 
-Platform. The Apache Qpid subsystem will not load under .NET projects
-that specify the x64 Platform.
-	
-4.0 Using the Apache.NMS.AMQP Provider
-
-4.1 Creating AMQP Connections
-
-Connections to AMQP brokers and endpoints are controlled by arguments
-to the ConnectionFactory constructor. By default connections use
-protocol "amqp1.0".
-
-  Uri connecturi = new Uri("amqp:tcp:localhost:5672");
-  string clientID = "abc";
-  Hashtable options = new Hashtable();
-  options["username"] = "guest";
-  options["password"] = "secret";
-  options["protocol"] = "amqp1.0"; // or "amqp0-10"
-  
-  IConnectionFactory factory = new
-    NMSConnectionFactory(connecturi, clientID, options);
-	  
-In this release connection options are passed through an option table
-and not through the connect URI/URL. More information about connection
-options is available at:
-
-http://qpid.apache.org/components/programming/book/connection-options.html 
-  
-5.0 Future Considerations
-
- * 64-bit x64 Apache Qpid vendor kit
- * Support for more robust object message formats
- * Transactions and message durability
- * Unit test/system tests
- 
-
diff --git a/keyfile/NMSKey.snk b/keyfile/NMSKey.snk
deleted file mode 100644
index fdd5b24..0000000
--- a/keyfile/NMSKey.snk
+++ /dev/null
Binary files differ
diff --git a/nant-common.xml b/nant-common.xml
deleted file mode 100644
index 55694f9..0000000
--- a/nant-common.xml
+++ /dev/null
@@ -1,658 +0,0 @@
-<?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" />
-    <property name="package.dir"             value="${basedir}/package" />
-    <property name="src.package.name"        value="${project.name + '-' + project.version + if(project.release.type == 'SNAPSHOT', '-' + project.release.type, '') + '-src.zip'}" />
-    <property name="bin.package.name"        value="${project.name + '-' + project.version + if(project.release.type == 'SNAPSHOT', '-' + project.release.type, '') + '-bin.zip'}" />
-
-    <!-- default configuration -->
-    <property name="build.defines"           value="" />
-    <property name="build.noskip"            value="false" />
-    <property name="build.skip"              value="false" />
-    <property name="build.skip.release"      value="false" unless="${property::exists('build.skip.release')}" />
-    <property name="download.skip"           value="false" unless="${property::exists('download.skip')}"/>
-    <property name="install.skip"            value="false" unless="${property::exists('install.skip')}"/>
-    <property name="compile.skip"            value="false" unless="${property::exists('compile.skip')}" />
-    <property name="current.build.config"    value="${if(project.release.type == 'release', 'release', 'debug')}" overwrite="false" />
-    <property name="current.build.framework" value="${framework::get-target-framework()}" overwrite="false" />
-    <property name="current.build.defines"   value="${build.defines}" />
-    <property name="build.framework.strings" value="net-2.0,net-3.5,net-4.0,mono-2.0,mono-4.0,netcf-2.0,netcf-3.5" unless="${property::exists('build.framework.strings')}"/>
-    <property name="current.build.framework.assembly.dir" value="${framework::get-assembly-directory(framework::get-target-framework())}" dynamic="true" />
-
-    <property name="build.config.strings"    value="${if(property::exists('configuration'), configuration, if(build.skip.release == 'true', 'debug', 'debug,release'))}" dynamic="true" />
-
-    <!-- Figure out the user's HOME directory -->
-    <property name="user.home" value="${environment::get-variable('HOME')}"
-            if="${environment::variable-exists('HOME') and platform::is-unix()}"
-            unless="${property::exists('user.home')}" />
-    <property name="user.home" value="${environment::get-variable('USERPROFILE')}"
-            if="${environment::variable-exists('USERPROFILE') and platform::is-windows()}"
-            unless="${property::exists('user.home')}" />
-    <fail message="The HOME environment variable is not defined.  Please set it to your home directory."
-            unless="${property::exists('user.home')}" if="${platform::is-unix()}" />
-    <fail message="The USERPROFILE environment variable is not defined.  Please set it to your home directory."
-            unless="${property::exists('user.home')}" if="${platform::is-windows()}" />
-
-    <!-- Figure out the NANT repositories -->
-    <property name="nant.remote.repo" value="${environment::get-variable('NANT_REMOTE_REPO')}"
-            if="${environment::variable-exists('NANT_REMOTE_REPO')}"
-            unless="${property::exists('nant.remote.repo')}" />
-    <property name="nant.local.repo" value="${environment::get-variable('NANT_REPO')}/local"
-            if="${environment::variable-exists('NANT_REPO')}"
-            unless="${property::exists('nant.local.repo')}" />
-    <property name="nant.local.repo" value="${user.home}/.nant/repository/local"
-            unless="${property::exists('nant.local.repo')}" />
-
-    <!-- Figure out the keyfile location -->
-    <property name="snk.file" value="${environment::get-variable('ACTIVEMQ_DOTNET_SNK')}"
-            if="${environment::variable-exists('ACTIVEMQ_DOTNET_SNK')}"
-            unless="${property::exists('snk.file')}" />
-    <property name="snk.file" value="${basedir}/keyfile/NMSKey.snk"
-            if="${not property::exists('snk.file')}" />
-
-    <!-- ============================================================================================ -->
-    <!--      I N I T I A L I Z A T I O N     T A R G E T S                                           -->
-    <!-- ============================================================================================ -->
-
-    <target name="init" description="Initializes build properties">
-        <!-- enabled the release or debug configuration -->
-        <call target="set-${current.build.config}-configuration" />
-
-        <!-- Check to see if our build setup for the target framework -->
-        <if test="${not(target::exists('set-'+current.build.framework+'-framework-configuration'))}">
-            <fail message="The '${current.build.framework}' framework is not supported by this version of ActiveMQ .NET" />
-        </if>
-        <call target="set-${current.build.framework}-framework-configuration" />
-
-        <!-- Check to see current platform supports the target framework -->
-        <if test="${framework::exists(current.build.framework)}">
-            <property name="build.skip" value="false" />
-        </if>
-        <if test="${not framework::exists(current.build.framework)}">
-            <if test="${build.noskip}">
-                <fail message="${current.build.framework.name} is not available." />
-            </if>
-            <if test="${not(build.noskip)}">
-                <echo message="${current.build.framework.name} is not available. Build skipped." />
-                <property name="build.skip" value="true" />
-            </if>
-        </if>
-
-        <!-- Check to see if we should skip this build framework. -->
-        <if test="${not(build.skip)}">
-            <if test="${property::exists('build.'+current.build.framework+'.skip')}">
-                <property name="build.skip" value="true" />
-                <echo message="The '${current.build.framework}' framework is not supported by this version of ActiveMQ .NET" />
-            </if>
-        </if>
-
-        <property name="current.build.keysign" value="${current.build.framework.sign}" />
-        <property name="build.bin.dir" value="${build.dir}/${current.build.framework}/${current.build.config}" />
-        <if test="${not(build.skip)}">
-            <echo message="Doing ${if(current.build.keysign,'a signed','an unsigned')} ${current.build.config} build for the ${current.build.framework.name} framework" />
-            <mkdir dir="${build.bin.dir}" />
-        </if>
-        <call target="dependency-init" />
-    </target>
-
-    <!-- Generate four-digit build number -->
-    <target name="generate-build-number">
-        <if test="${not property::exists('project.version.numeric')}">
-            <script language="C#">
-                <imports>
-                    <import namespace="System.Globalization" />
-                    <import namespace="System.Threading" />
-                </imports>
-                <code>
-                    <!-- Format for assembly revision is the number of days from the year the project 'started', property project.startyear.  -->
-                    <![CDATA[
-                        public static void ScriptMain(Project project)
-                        {
-                            int startYear = Convert.ToInt32(project.Properties["project.startyear"]);
-                            DateTime start = new DateTime(startYear, 1, 1);
-                            TimeSpan ts = DateTime.Now - start;
-                            project.Properties["project.version.numeric"] = project.Properties["project.version"].ToString() + "." + ts.Days.ToString();
-                        }
-                    ]]>
-                </code>
-            </script>
-        </if>
-    </target>
-
-    <!-- Generate assemblyinfo.cs files -->
-    <target name="generate-assemblyinfo" depends="generate-build-number" description="Generate the assembly info for the path in assemblyinfo.filename">
-        <asminfo output="${assemblyinfo.filename}" language="CSharp">
-            <imports>
-                <import namespace="System" />
-                <import namespace="System.Reflection" />
-                <import namespace="System.Runtime.InteropServices" />
-            </imports>
-            <attributes>
-                <attribute type="ComVisibleAttribute" value="false" />
-                <attribute type="CLSCompliantAttribute" value="${project.cls.compliant}" />
-                <attribute type="AssemblyTitleAttribute" value="${project.short_description}" />
-                <attribute type="AssemblyDescriptionAttribute" value="${project.description}" />
-                <attribute type="AssemblyConfigurationAttribute" value="${project.release.type}" />
-                <attribute type="AssemblyCompanyAttribute" value="http://activemq.apache.org/nms" />
-                <attribute type="AssemblyProductAttribute" value="${project.short_description}" />
-                <attribute type="AssemblyCopyrightAttribute" value="Copyright (C) ${project.startyear}-${datetime::get-year(datetime::now())} Apache Software Foundation" />
-                <attribute type="AssemblyTrademarkAttribute" value="" />
-                <attribute type="AssemblyCultureAttribute" value="" />
-                <attribute type="AssemblyVersionAttribute" value="${project.version.numeric}" />
-                <attribute type="AssemblyInformationalVersionAttribute" value="${project.version}" />
-            </attributes>
-        </asminfo>
-    </target>
-
-    <!-- ============================================================================================ -->
-    <!--    C O N F I G U R A T I O N     T A R G E T S                                               -->
-    <!-- ============================================================================================ -->
-
-    <target name="set-noskip-configuration" description="Disable skipping builds">
-        <property name="project.noskip" value="true" />
-    </target>
-
-    <target name="set-debug-configuration" description="Enabled 'debug' builds">
-        <property name="current.build.config" value="debug" />
-        <property name="current.build.config.debug" value="true" />
-        <property name="current.build.config.release" value="false" />
-        <property name="current.build.defines" value="${build.defines}DEBUG,TRACE," dynamic="true" />
-        <property name="csc.debug" value="Full" />
-        <property name="csc.optimize" value="false" />
-    </target>
-
-    <target name="set-release-configuration" description="Enabled 'release' builds">
-        <property name="current.build.config" value="release" />
-        <property name="current.build.config.release" value="true" />
-        <property name="current.build.config.debug" value="false" />
-        <property name="csc.debug" value="Full" />
-        <property name="csc.optimize" value="true" />
-    </target>
-
-    <target name="set-net-2.0-framework-configuration">
-        <property name="current.build.framework" value="net-2.0" />
-        <property name="current.build.framework.name" value=".NET 2.0" />
-        <property name="current.build.defines" value="${build.defines}NET,NET_2_0" dynamic="true" />
-        <property name="current.build.framework.sign" value="true" />
-        <property name="link.sdkdoc.version" value="SDK_v2_0" />
-        <property name="link.sdkdoc.web" value="true" />
-        <if test="${framework::exists(current.build.framework)}">
-            <property name="nant.settings.currentframework" value="${current.build.framework}" />
-        </if>
-        <!-- Use the .NET 3.5 compiler for improved language features.  Still targets same runtime. -->
-        <if test="${framework::exists('net-3.5')}">
-            <property name="nant.settings.currentframework" value="net-3.5" />
-        </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-net-4.0-framework-configuration">
-        <property name="current.build.framework" value="net-4.0" />
-        <property name="current.build.framework.name" value=".NET 4.0" />
-        <property name="current.build.defines" value="${build.defines}NET,NET_2_0,NET_3_5,NET_4_0" dynamic="true" />
-        <property name="current.build.framework.sign" value="true" />
-        <property name="link.sdkdoc.version" value="SDK_v7_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-netcf-2.0-framework-configuration">
-        <property name="current.build.framework" value="netcf-2.0" />
-        <property name="current.build.framework.name" value=".NET Compact Framework 2.0" />
-        <property name="current.build.defines" value="${build.defines}PocketPC,NETCF,NETCF_2_0" dynamic="true" />
-        <property name="current.build.framework.sign" value="true" />
-        <property name="link.sdkdoc.version" value="SDK_v1_1" />
-        <property name="link.sdkdoc.web" value="true" />
-        <if test="${framework::exists(current.build.framework)}">
-            <property name="nant.settings.currentframework" value="${current.build.framework}" />
-        </if>
-    </target>
-
-    <target name="set-netcf-3.5-framework-configuration">
-        <property name="current.build.framework" value="netcf-3.5" />
-        <property name="current.build.framework.name" value=".NET Compact Framework 3.5" />
-        <property name="current.build.defines" value="${build.defines}PocketPC,NETCF,NETCF_3_5" dynamic="true" />
-        <property name="current.build.framework.sign" value="true" />
-        <property name="link.sdkdoc.version" value="SDK_v3_5" />
-        <property name="link.sdkdoc.web" value="true" />
-        <if test="${framework::exists(current.build.framework)}">
-            <property name="nant.settings.currentframework" value="${current.build.framework}" />
-        </if>
-    </target>
-
-    <target name="set-mono-2.0-framework-configuration">
-        <property name="current.build.framework" value="mono-2.0" />
-        <property name="current.build.framework.name" value="Mono 2.0" />
-        <property name="current.build.defines" value="${build.defines}MONO,MONO_2_0" dynamic="true" />
-        <property name="current.build.framework.sign" value="true" />
-        <property name="link.sdkdoc.version" value="SDK_v1_1" />
-        <property name="link.sdkdoc.web" value="true" />
-        <if test="${framework::exists(current.build.framework)}">
-            <property name="nant.settings.currentframework" value="${current.build.framework}" />
-        </if>
-    </target>
-
-    <target name="set-mono-4.0-framework-configuration">
-        <property name="current.build.framework" value="mono-4.0" />
-        <property name="current.build.framework.name" value="Mono 4.0" />
-        <property name="current.build.defines" value="${build.defines}MONO,MONO_4_0" dynamic="true" />
-        <property name="current.build.framework.sign" value="true" />
-        <property name="link.sdkdoc.version" value="SDK_v1_1" />
-        <property name="link.sdkdoc.web" value="true" />
-        <if test="${framework::exists(current.build.framework)}">
-            <property name="nant.settings.currentframework" value="${current.build.framework}" />
-        </if>
-    </target>
-
-    <!-- ============================================================================================ -->
-    <!--     C O M P I L E    T A R G E T S                                                           -->
-    <!-- ============================================================================================ -->
-
-    <target name="compile-all" description="Compile all build configurations for all runtime configurations">
-        <echo message="Compiling all build configurations for all runtime configurations." />
-        <foreach item="String" in="${build.framework.strings}" delim="," property="current.build.framework">
-            <foreach item="String" in="${build.config.strings}" delim="," property="current.build.config">
-                <call target="compile-target" />
-            </foreach>
-        </foreach>
-    </target>
-
-    <target name="compile-target" depends="init, download-vendor, conditional-compile" />
-
-    <target name="conditional-compile" depends="init" unless="${build.skip or compile.skip}"
-            description="Conditionaly compiles all the modules if build framework and type are supported">
-        <call target="compile" />
-    </target>
-
-    <target name="compile" description="Compile everything">
-        <call target="compile-main" cascade="false" />
-        <call target="compile-test" cascade="false" />
-    </target>
-
-    <target name="compile-main" depends="init" description="Build the main library">
-        <echo message="Building the ${project.name} library" />
-        <property name="assemblyinfo.filename" value="src/main/csharp/CommonAssemblyInfo.cs" />
-        <call target="generate-assemblyinfo" />
-
-        <csc if="${current.build.keysign}" keyfile="${snk.file}" target="library"
-                define="${current.build.defines}" warnaserror="false" debug="${csc.debug}" optimize="${csc.optimize}"
-                output="${build.bin.dir}/${project.name}.dll" doc="${build.bin.dir}/${project.name}.xml">
-            <nowarn>
-                <warning number="1591" /> <!-- do not report warnings for missing XML comments -->
-            </nowarn>
-            <sources failonempty="true">
-                <include name="src/main/csharp/**.cs" />
-            </sources>
-            <references refid="dependencies" />
-        </csc>
-        <csc if="${not current.build.keysign}" target="library"
-                define="${current.build.defines}" warnaserror="false" debug="${csc.debug}" optimize="${csc.optimize}"
-                output="${build.bin.dir}/${project.name}.dll" doc="${build.bin.dir}/${project.name}.xml">
-            <nowarn>
-                <warning number="1591" /> <!-- do not report warnings for missing XML comments -->
-            </nowarn>
-            <sources failonempty="true">
-                <include name="src/main/csharp/**.cs" />
-            </sources>
-            <references refid="dependencies" />
-        </csc>
-        <call target="copy-content" />
-    </target>
-
-    <!-- Compile the nms-test module -->
-    <target name="compile-test" depends="compile-main" description="Build the test library">
-        <echo message="Building the ${project.name}.Test library" />
-        <property name="assemblyinfo.filename" value="src/test/csharp/CommonAssemblyInfo.cs" />
-        <call target="generate-assemblyinfo" />
-
-        <csc if="${current.build.keysign}" keyfile="${snk.file}" target="library"
-                define="${current.build.defines}" warnaserror="false" debug="${csc.debug}" optimize="${csc.optimize}"
-                output="${build.bin.dir}/${project.name}.Test.dll" doc="${build.bin.dir}/${project.name}.Test.xml">
-            <nowarn>
-                <warning number="1591" /> <!-- do not report warnings for missing XML comments -->
-                <warning number="3016" /> <!-- do not report warnings for array parameters  -->
-            </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="3016" /> <!-- do not report warnings for array parameters  -->
-            </nowarn>
-            <sources failonempty="true">
-                <include name="src/test/csharp/**.cs" />
-            </sources>
-            <references refid="test.dependencies" />
-        </csc>
-        <call target="copy-content" />
-    </target>
-
-    <target name="copy-content">
-        <foreach item="File" property="content.filename">
-            <in>
-                <items refid="content.filenames" />
-            </in>
-            <do>
-                <copy todir="${build.bin.dir}" file="${content.filename}" if="${not file::up-to-date(content.filename, '${build.bin.dir}/${content.filename}')}" />
-            </do>
-        </foreach>
-    </target>
-
-    <!-- ============================================================================================ -->
-    <!--      I N S T A L L     T A R G E T S                                                         -->
-    <!-- ============================================================================================ -->
-
-    <target name="install-all" description="Install all build configurations for all runtime configurations">
-        <echo message="Installing all build configurations for all runtime configurations." />
-        <foreach item="String" in="${build.framework.strings}" delim="," property="current.build.framework">
-            <foreach item="String" in="${build.config.strings}" delim="," property="current.build.config">
-                <call target="install" />
-            </foreach>
-        </foreach>
-    </target>
-
-    <!-- Install the modules to the local repo -->
-    <target name="install" depends="init, compile-target, conditional-install"
-            description="Install the artifacts into the nant repo" />
-
-    <target name="conditional-install" unless="${build.skip or install.skip}"
-            description="Install the artifacts into the nant repo">
-        <property name="path" value="${project.group}/${project.name}/${project.version.full}/${current.build.framework}/${current.build.config}" />
-        <foreach item="File" property="install.filename">
-            <in>
-                <items refid="install.filenames" />
-            </in>
-            <do>
-                <property name="repo.task.artifact" value="${path}/${path::get-file-name(install.filename)}" />
-                <property name="repo.task.src" value="${install.filename}" />
-                <property name="repo.task.dest" value="${nant.local.repo}/${repo.task.artifact}" />
-                <mkdir dir="${directory::get-parent-directory(repo.task.dest)}" />
-                <copy file="${repo.task.src}" tofile="${repo.task.dest}" />
-            </do>
-        </foreach>
-    </target>
-
-    <!-- ============================================================================================ -->
-    <!--      R E P O    D O W N L O A D     T A R G E T S                                            -->
-    <!-- ============================================================================================ -->
-
-    <target name="download-vendor-all" description="Download vendor files for all runtime configurations">
-        <echo message="Downloading vendor files for all runtime configurations." />
-        <property name="current.build.config" value="release" />
-        <foreach item="String" in="${build.framework.strings}" delim="," property="current.build.framework">
-            <call target="download-vendor" />
-        </foreach>
-    </target>
-
-    <target name="download-vendor" depends="vendor-init, conditional-download"
-                description="Download the vendor artifacts from the nant repo" />
-
-    <target name="conditional-download" unless="${build.skip or download.skip}"
-                description="Download the artifacts from the nant repo">
-        <!-- Iterate over the defined vendor filesets. -->
-        <foreach item="String" in="${vendor.fileset.names}" delim="," property="current.vendor">
-            <property name="vendor.name" value="${property::get-value(current.vendor + '.name')}" />
-            <property name="vendor.group" value="${property::get-value(current.vendor + '.group')}" />
-            <property name="vendor.version" value="${property::get-value(current.vendor + '.version')}" />
-            <property name="vendor.filenames" value="${property::get-value(current.vendor + '.filenames')}" />
-            <property name="local.repo.vendor.path" value="${nant.local.repo}/${vendor.group}/${vendor.name}/${vendor.version}/${current.build.framework}/${current.build.config}" />
-            <property name="lib.path" value="lib/${vendor.name}/${current.build.framework}" />
-            <!--
-            Update the LIB folder with the latest version of the file.  If there is a newer version
-            installed in the local repository, then that version will be copied into the LIB folder.
-            -->
-            <foreach item="String" in="${vendor.filenames}" delim="," property="repo.task.artifact">
-                <property name="lib.task.dest" value="${lib.path}/${repo.task.artifact}" />
-                <mkdir dir="${directory::get-parent-directory(lib.task.dest)}" />
-                <property name="repo.task.src" value="${local.repo.vendor.path}/${repo.task.artifact}" />
-                <copy file="${repo.task.src}" tofile="${lib.task.dest}" if="${file::exists(repo.task.src)}" />
-                <if test="${not file::exists(lib.task.dest)}">
-                    <echo message="Required dependent assembly ${repo.task.artifact} from ${vendor.name} for ${current.build.framework} is not available. Build skipped." />
-                    <property name="build.skip" value="true" />
-                </if>
-            </foreach>
-        </foreach>
-    </target>
-
-    <!-- ============================================================================================ -->
-    <!--      T E S T     T A R G E T S                                                               -->
-    <!-- ============================================================================================ -->
-
-    <target name="test" depends="test-debug" description="Alias test target to test-debug" />
-
-    <target name="test-all" depends="test-debug, test-release" description="Test all build configurations for all runtime configurations" />
-
-    <target name="test-debug" depends="" description="Test debug build configurations for all runtime configurations">
-        <property name="current.build.config" value="debug" />
-        <call target="test-frameworks" />
-    </target>
-
-    <target name="test-release" depends="" description="Test release build configurations for all runtime configurations">
-        <property name="current.build.config" value="release" />
-        <call target="test-frameworks" />
-    </target>
-
-    <target name="test-frameworks">
-        <foreach item="String" in="${build.framework.strings}" delim="," property="current.build.framework">
-            <call target="init" />
-            <if test="${not build.skip}">
-                <exec program="nunit-console" failonerror="true" workingdir="build/${current.build.framework}/${current.build.config}">
-                    <arg value="${NUnit.Projectfile}" />
-                    <arg value="-labels" />
-                    <arg value="-exclude=Manual,LongRunning" />
-                    <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>
-        <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="clean-proj" />
-            </foreach>
-        </foreach>
-    </target>
-
-    <target name="clean-proj" depends="init" description="Deletes specific project build">
-        <property name="clean.dir" value="build/${current.build.framework}/${current.build.config}" />
-        <delete dir="${clean.dir}" if="${directory::exists(clean.dir)}" />
-        <property name="clean.dir" value="package/${current.build.config}" />
-        <delete dir="${clean.dir}" if="${directory::exists(clean.dir)}" />
-    </target>
-
-    <target name="package" description="Bundle the source and binary distributions.">
-        <mkdir dir="${package.dir}"
-                if="${not directory::exists(package.dir)}" />
-        <zip zipfile="${package.dir}/${bin.package.name}">
-            <fileset refid="bin.package.contents"/>
-        </zip>
-        <zip zipfile="${package.dir}/${src.package.name}">
-            <fileset refid="src.package.contents"/>
-        </zip>
-    </target>
-
-    <target name="doc" depends="build">
-        <mkdir dir="${doc.dir}" />
-        <ndoc failonerror="false">
-            <assemblies basedir="${build.bin.dir}">
-                <include name="${project.name}.dll" />
-            </assemblies>
-            <summaries basedir="${basedir}/src/main/ndoc">
-                <include name="NamespaceSummary.xml" />
-            </summaries>
-            <documenters>
-                <documenter name="MSDN">
-                    <property name="OutputDirectory" value="${doc.dir}" />
-                    <property name="HtmlHelpName" value="${project.name}" />
-                    <property name="HtmlHelpCompilerFilename" value="hhc.exe" />
-                    <property name="IncludeFavorites" value="False" />
-                    <property name="Title" value="${project.short_description}" />
-                    <property name="SplitTOCs" value="False" />
-                    <property name="DefaulTOC" value="" />
-                    <!--
-                    <property name="ShowVisualBasic" value="True" />
-                    <property name="ShowMissingSummaries" value="True" />
-                    <property name="ShowMissingRemarks" value="True" />
-                    <property name="ShowMissingParams" value="True" />
-                    <property name="ShowMissingReturns" value="True" />
-                    <property name="ShowMissingValues" value="True" />
-                    -->
-                    <property name="DocumentInternals" value="False" />
-                    <property name="DocumentProtected" value="True" />
-                    <property name="DocumentPrivates" value="False" />
-                    <property name="DocumentEmptyNamespaces" value="False" />
-                    <property name="IncludeAssemblyVersion" value="True" />
-                    <property name="CopyrightText" value="" />
-                    <property name="CopyrightHref" value="" />
-                </documenter>
-            </documenters>
-        </ndoc>
-    </target>
-
-    <target name="sandcastle" depends="set-release-configuration, init, conditional-compile">
-        <!-- Directories -->
-        <property name="sandcastle.style" value="vs2005" unless="${property::exists('sandcastle.style')}" />
-        <property name="documentation.dir" value="${build.bin.dir}" />
-        <property name="bin.intern.dir" value="${build.bin.dir}" />
-        <property name="bin.extern.dir" value="${basedir}\lib\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>
diff --git a/nant.build b/nant.build
deleted file mode 100644
index 5698ffb..0000000
--- a/nant.build
+++ /dev/null
@@ -1,175 +0,0 @@
-<?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 name="Apache.NMS.AMQP" default="default" xmlns="http://nant.sourceforge.net/release/0.85/nant.xsd">

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

-    <!--      I N I T I A L I Z A T I O N                                                             -->

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

-    <property name="basedir"                   value="${project::get-base-directory()}" />

-    <property name="project.name"              value="Apache.NMS.AMQP" />

-    <property name="project.group"             value="org.apache.activemq" />

-    <property name="project.version"           value="1.8.0" unless="${property::exists('project.version')}" />

-    <property name="project.release.type"      value="SNAPSHOT" unless="${property::exists('project.release.type')}" />

-    <property name="project.short_description" value="Apache NMS for AMQP Class Library" />

-    <property name="project.description"       value="Apache NMS for AMQP Class Library (.Net Messaging Library Implementation): An implementation of the NMS API for AMQP using Apache QPID and Proton" />

-	

-	<!-- Native Qpid DLLs -->

-    <property name="boost_chrono"              value="boost_chrono-${vcver}-mt-1_47.dll"          dynamic="true" />

-    <property name="boost_date_time"           value="boost_date_time-${vcver}-mt-1_47.dll"       dynamic="true" />

-    <property name="boost_program_options"     value="boost_program_options-${vcver}-mt-1_47.dll" dynamic="true" />

-    <property name="boost_system"              value="boost_system-${vcver}-mt-1_47.dll"          dynamic="true" />

-    <property name="boost_thread"              value="boost_thread-${vcver}-mt-1_47.dll"          dynamic="true" />

-    <property name="qpidclient"                value="qpidclient.dll"    dynamic="true" />

-    <property name="qpidcommon"                value="qpidcommon.dll"    dynamic="true" />

-    <property name="qpidmessaging"             value="qpidmessaging.dll" dynamic="true" />

-    <property name="qpid-proton"               value="qpid-proton.dll"   dynamic="true" />

-    <property name="qpidtypes"                 value="qpidtypes.dll"     dynamic="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="${basedir}/lib/NUnit/${current.build.framework}/nunit.framework.dll"                 dynamic="true" />

-    <property name="Apache.NMS.dll"            value="${basedir}/lib/Apache.NMS/${current.build.framework}/Apache.NMS.dll"                 dynamic="true" />

-    <property name="Apache.NMS.pdb"            value="${basedir}/lib/Apache.NMS/${current.build.framework}/Apache.NMS.pdb"                 dynamic="true" />

-    <property name="Apache.NMS.Test.dll"       value="${basedir}/lib/Apache.NMS/${current.build.framework}/Apache.NMS.Test.dll"            dynamic="true" />

-    <property name="Apache.NMS.Test.pdb"       value="${basedir}/lib/Apache.NMS/${current.build.framework}/Apache.NMS.Test.pdb"            dynamic="true" />

-    <property name="Apache.Qpid.dll"           value="${basedir}/lib/Apache.Qpid/${current.build.framework}/org.apache.qpid.messaging.dll" dynamic="true" />

-    <property name="NUnit.Projectfile"         value="Apache.NMS.AMQP.Test.nunit" />

-

-    <!-- Skip certain frameworks, since Apache Qpid is not supported on those platforms.

-         net-2.0 built by Visual Studio 2008, net4.0 built by Visual Studio 2010

-         to align .NET build with underlying unmanaged C runtime. -->

-    <property name="build.framework.strings" value="net-2.0,net-4.0"/>

-    

-    <target name="vendor-init" description="Initializes Vendor library from local repository.">

-        <!--

-           Vendor specific info.  The prefix of 'vendor.apache.org' is taken from the property

-           'vendor.fileset.names'.  This comma-delimited list is iterated, and properties with

-           well-known suffixes are used to access and copy down vendor file dependencies.

-        -->

-        <property name="vendor.fileset.names" value="vendor.apache.org,vendor.nunit.org,vendor.qpid.apache.org" />

-

-        <!-- Property grouping for 'vendor.apache.org' -->

-        <property name="vendor.apache.org.name"      value="Apache.NMS" />

-        <property name="vendor.apache.org.group"     value="org.apache.activemq" />

-        <property name="vendor.apache.org.version"   value="1.8.0" />

-        <property name="vendor.apache.org.filenames" value="Apache.NMS.dll,Apache.NMS.pdb,Apache.NMS.Test.dll,Apache.NMS.Test.pdb" />

-

-        <!-- Property grouping for 'vendor.nunit.org' -->

-        <property name="vendor.nunit.org.name"      value="NUnit" />

-        <property name="vendor.nunit.org.group"     value="org.nunit" />

-        <property name="vendor.nunit.org.version"   value="2.5.8" />

-        <property name="vendor.nunit.org.filenames" value="nunit.framework.dll" />

-

-        <!-- Property grouping for 'vendor.qpid.apache.org' -->

-        <property name="vendor.qpid.apache.org.name"      value="Apache.Qpid" />

-        <property name="vendor.qpid.apache.org.group"     value="org.apache.qpid" />

-        <property name="vendor.qpid.apache.org.version"   value="0.28.0.16239" />

-        <!-- net-4.0 built with VS2010 (vc100), net-2.0 built with VS2008 (vc90) -->

-		<property name="vcver"                            value="${if(current.build.framework == 'net-4.0', 'vc100', 'vc90')}" />

-		<echo message="Vendor-init current.build.framework = ${current.build.framework}, current.build.config = ${current.build.config}, vcver = ${vcver}" />

-		 

-        <property name="vendor.qpid.apache.org.filenames" value="org.apache.qpid.messaging.dll,${boost_chrono},${boost_date_time},${boost_program_options},${boost_system},${boost_thread},${qpidclient},${qpidcommon},${qpidmessaging},${qpid-proton},${qpidtypes}" dynamic="true"/>

-    </target>

-

-    <target name="dependency-init" description="Initializes build dependencies">

-        <assemblyfileset failonempty="true" id="dependencies">

-            <include name="${current.build.framework.assembly.dir}/mscorlib.dll" />

-            <include name="${current.build.framework.assembly.dir}/System.dll" />

-            <include name="${current.build.framework.assembly.dir}/System.Xml.dll" />

-            <include name="${Apache.NMS.dll}" />

-			<include name="${Apache.Qpid.dll}" />

-        </assemblyfileset>

-

-        <assemblyfileset failonempty="true" id="test.dependencies">

-            <include name="${current.build.framework.assembly.dir}/mscorlib.dll" />

-            <include name="${current.build.framework.assembly.dir}/System.dll" />

-            <include name="${current.build.framework.assembly.dir}/System.Xml.dll" />

-            <include name="${Apache.NMS.dll}" />

-            <include name="${Apache.NMS.Test.dll}" />

-			<include name="${Apache.Qpid.dll}" />

-            <include name="${build.bin.dir}/${project.name}.dll" />

-            <include name="${nunit.dll}" />

-        </assemblyfileset>

-

-        <fileset id="content.filenames">

-            <include name="LICENSE.txt" />

-            <include name="NOTICE.txt" />

-            <include name="nmsprovider-*.config" />

-            <include name="${Apache.NMS.dll}" />

-            <include name="${Apache.NMS.pdb}" />

-            <include name="${Apache.NMS.Test.dll}" />

-            <include name="${Apache.NMS.Test.pdb}" />

-			<include name="${Apache.Qpid.dll}" />

-            <include name="${nunit.dll}" />

-            <include name="${NUnit.Projectfile}" />

-            <!-- boost unmanaged: net-2.0 -->

-            <include name="${basedir}/lib/Apache.Qpid/${current.build.framework}/boost_chrono-vc90-mt-1_47.dll" />

-            <include name="${basedir}/lib/Apache.Qpid/${current.build.framework}/boost_date_time-vc90-mt-1_47.dll" />

-            <include name="${basedir}/lib/Apache.Qpid/${current.build.framework}/boost_program_options-vc90-mt-1_47.dll" />

-            <include name="${basedir}/lib/Apache.Qpid/${current.build.framework}/boost_system-vc90-mt-1_47.dll" />

-            <include name="${basedir}/lib/Apache.Qpid/${current.build.framework}/boost_thread-vc90-mt-1_47.dll" />

-            <!-- boost unmanaged net-4.0 -->

-            <include name="${basedir}/lib/Apache.Qpid/${current.build.framework}/boost_chrono-vc100-mt-1_47.dll" />

-            <include name="${basedir}/lib/Apache.Qpid/${current.build.framework}/boost_date_time-vc100-mt-1_47.dll" />

-            <include name="${basedir}/lib/Apache.Qpid/${current.build.framework}/boost_program_options-vc100-mt-1_47.dll" />

-            <include name="${basedir}/lib/Apache.Qpid/${current.build.framework}/boost_system-vc100-mt-1_47.dll" />

-            <include name="${basedir}/lib/Apache.Qpid/${current.build.framework}/boost_thread-vc100-mt-1_47.dll" />

-            <!-- qpid native: identical names regardless of framework -->

-            <include name="${basedir}/lib/Apache.Qpid/${current.build.framework}/qpid-proton.dll" />

-            <include name="${basedir}/lib/Apache.Qpid/${current.build.framework}/qpidclient.dll" />

-            <include name="${basedir}/lib/Apache.Qpid/${current.build.framework}/qpidcommon.dll" />

-            <include name="${basedir}/lib/Apache.Qpid/${current.build.framework}/qpidmessaging.dll" />

-            <include name="${basedir}/lib/Apache.Qpid/${current.build.framework}/qpidtypes.dll" />

-        </fileset>

-

-        <fileset id="install.filenames">

-            <include name="LICENSE.txt" />

-            <include name="NOTICE.txt" />

-            <include name="${build.bin.dir}/${project.name}.dll" />

-            <include name="${build.bin.dir}/${project.name}.pdb" />

-        </fileset>

-

-    </target>

-

-    <target name="default" depends="install-all" />

-

-    <zipfileset id="src.package.contents" basedir="${basedir}">

-        <include name="LICENSE.txt" />

-        <include name="NOTICE.txt" />

-        <include name="nant-common.xml" />

-        <include name="nant.build" />

-        <include name="nmsprovider*.config" />

-        <include name="vs2008-*.csproj" />

-        <include name="vs2010-*.csproj" />

-        <include name="vs2008-*.sln" />

-        <include name="vs2010-*.sln" />

-        <include name="keyfile/*" />

-        <include name="src/**/*.cs" />

-        <exclude name="src/sandbox/**" />

-    </zipfileset>

-

-    <zipfileset id="bin.package.contents" basedir="${basedir}">

-        <include name="LICENSE.txt" />

-        <include name="NOTICE.txt" />

-        <include name="build/**/nmsprovider*" />

-        <include name="build/**/${project.name}*" />

-        <include name="lib/**/*" />

-        <exclude name="build/**/%temp%/**" />

-    </zipfileset>

-

-    <!-- Load the common target definitions  -->

-    <include buildfile="${basedir}/nant-common.xml" />

-</project>

diff --git a/nmsprovider-amqp.config b/nmsprovider-amqp.config
deleted file mode 100644
index a5b39a5..0000000
--- a/nmsprovider-amqp.config
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<!--
-* 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.
--->
-<configuration>
-	<provider assembly="Apache.NMS.Amqp" classFactory="Apache.NMS.Amqp.ConnectionFactory"/>
-</configuration>
diff --git a/nmsprovider-test.config b/nmsprovider-test.config
deleted file mode 100644
index b4fc407..0000000
--- a/nmsprovider-test.config
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<!--
-* 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.
--->
-<configuration>
-    <defaultURI value="amqp:tcp://${qpidhost}:5672"/>
-  <InvalidCredentials-BogusUser value="qpid:tcp://${qpidhost}:5672">
-    <factoryParams>
-      <param type="string" value="InvalidCredentialsTestClient"/>
-    </factoryParams>
-    <userName value="BogusUser"/>
-    <passWord value="BogusPassword"/>
-  </InvalidCredentials-BogusUser>
-
-  <InvalidCredentials-AuthenticUser value="amqp:tcp://${qpidhost}:5672">
-    <factoryParams>
-      <param type="string" value="InvalidCredentialsTestClient"/>
-    </factoryParams>
-    <userName value="system"/>
-    <passWord value="manager"/>
-  </InvalidCredentials-AuthenticUser>
-</configuration>
diff --git a/package.ps1 b/package.ps1
deleted file mode 100644
index ee7a926..0000000
--- a/package.ps1
+++ /dev/null
@@ -1,69 +0,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.

-

-$pkgname = "Apache.NMS.AMQP"

-$pkgver = "1.6-SNAPSHOT"

-$configurations = "release", "debug"

-$frameworks = "net-2.0", "net-4.0"

-

-write-progress "Creating package directory." "Initializing..."

-if(!(test-path package))

-{

-    md package

-}

-

-if(test-path build)

-{

-    pushd build

-

-    $pkgdir = "..\package"

-

-    write-progress "Packaging Application files." "Scanning..."

-    $zipfile = "$pkgdir\$pkgname-$pkgver-bin.zip"

-    zip -9 -u -j "$zipfile" ..\LICENSE.txt

-    zip -9 -u -j "$zipfile" ..\NOTICE.txt

-    foreach($configuration in $configurations)

-    {

-        foreach($framework in $frameworks)

-        {

-            zip -9 -u "$zipfile" "$framework\$configuration\$pkgname.dll"

-            zip -9 -u "$zipfile" "$framework\$configuration\$pkgname.xml"

-            zip -9 -u "$zipfile" "$framework\$configuration\nmsprovider*.config"

-            zip -9 -u "$zipfile" "$framework\$configuration\$pkgname.Test.dll"

-            zip -9 -u "$zipfile" "$framework\$configuration\$pkgname.Test.xml"

-            if($framework -ieq "mono-2.0")

-            {

-                zip -9 -u "$zipfile" "$framework\$configuration\$pkgname.dll.mdb"

-                zip -9 -u "$zipfile" "$framework\$configuration\$pkgname.Test.dll.mdb"

-            }

-            else

-            {

-                zip -9 -u "$zipfile" "$framework\$configuration\$pkgname.pdb"

-                zip -9 -u "$zipfile" "$framework\$configuration\$pkgname.Test.pdb"

-            }

-        }

-    }

-

-    popd

-}

-

-write-progress "Packaging Source code files." "Scanning..."

-$pkgdir = "package"

-$zipfile = "$pkgdir\$pkgname-$pkgver-src.zip"

-

-zip -9 -u "$zipfile" LICENSE.txt NOTICE.txt nant-common.xml nant.build package.ps1 vs2008-amqp-test.csproj vs2008-amqp.csproj vs2008-amqp.sln vs2010-amqp-test.csproj vs2010-amqp.csproj vs2010-amqp.sln nmsprovider*.config

-zip -9 -u -r "$zipfile" keyfile src

-

-write-progress -Completed "Packaging" "Complete."

diff --git a/src/main/csharp/BaseMessage.cs b/src/main/csharp/BaseMessage.cs
deleted file mode 100644
index c2e49bc..0000000
--- a/src/main/csharp/BaseMessage.cs
+++ /dev/null
@@ -1,442 +0,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.
- */
-
-using System;
-using Apache.NMS.Util;
-
-namespace Apache.NMS.Amqp
-{
-    public delegate void AcknowledgeHandler(BaseMessage baseMessage);
-
-    public class BaseMessage : IMessage, ICloneable
-    {
-        private PrimitiveMap propertiesMap = new PrimitiveMap();
-        private IDestination destination;
-        private string correlationId;
-        private TimeSpan timeToLive;
-        private string messageId;
-        private MsgDeliveryMode deliveryMode = MsgDeliveryMode.NonPersistent;
-        private MsgPriority priority = MsgPriority.Normal;
-        private Destination replyTo;
-        private byte[] content;
-        private string type;
-        private event AcknowledgeHandler Acknowledger;
-        private DateTime timestamp = new DateTime();
-        private bool readOnlyMsgBody = false;
-
-        public BaseMessage() { }
-
-        public BaseMessage(BaseMessage copy)
-        {
-            this.propertiesMap = copy.propertiesMap;
-            this.destination = copy.destination;
-            this.correlationId = copy.correlationId;
-            this.timeToLive = copy.timeToLive;
-            this.messageId = copy.messageId;
-            this.deliveryMode = copy.deliveryMode;
-            this.priority = copy.priority;
-            this.replyTo = copy.replyTo;
-            this.content = copy.content;
-            this.type = copy.type;
-            this.Acknowledger = copy.Acknowledger;
-            this.timestamp = copy.timestamp;
-            this.readOnlyMsgBody = copy.readOnlyMsgBody;
-        }
-
-        ///
-        /// <summary>
-        ///  Clone this object and return a new instance that the caller now owns.
-        /// </summary>
-        ///
-        public virtual Object Clone()
-        {
-            return this.MemberwiseClone();
-        }
-
-
-        public override bool Equals(object obj)
-        {
-            // If parameter is null return false.
-            if (obj == null)
-            {
-                return false;
-            }
-
-            // If parameter cannot be cast to BaseMessage return false.
-            BaseMessage p = obj as BaseMessage;
-            if ((System.Object)p == null)
-            {
-                return false;
-            }
-
-            if (propertiesMap == null ^ p.propertiesMap == null)
-            {
-                return false;
-            }
-            if (propertiesMap != null)
-            {
-                if (!propertiesMap.ToString().Equals(p.propertiesMap.ToString()))
-                {
-                    return false;
-                }
-            }
-
-            if (destination == null ^ p.destination == null)
-            {
-                return false;
-            }
-            if (destination != null)
-            {
-                if (!destination.ToString().Equals(p.destination.ToString()))
-                {
-                    return false;
-                }
-            }
-
-            if (correlationId == null ^ p.correlationId == null)
-            {
-                return false;
-            }
-            if (correlationId != null)
-            {
-                if (!correlationId.Equals(p.correlationId))
-                {
-                    return false;
-                }
-            }
-
-            if (timeToLive == null ^ p.timeToLive == null)
-            {
-                return false;
-            }
-            if (timeToLive != null)
-            {
-                if (!timeToLive.ToString().Equals(p.timeToLive.ToString()))
-                {
-                    return false;
-                }
-            }
-
-            if (messageId == null ^ p.messageId == null)
-            {
-                return false;
-            }
-            if (messageId != null)
-            {
-                if (!messageId.Equals(p.messageId))
-                {
-                    return false;
-                }
-            }
-
-            if (deliveryMode != p.deliveryMode)
-            {
-                return false;
-            }
-
-            if (priority != p.priority)
-            {
-                return false;
-            }
-
-            if (replyTo == null ^ p.replyTo == null)
-            {
-                return false;
-            }
-            if (replyTo != null)
-            {
-                if (!replyTo.ToString().Equals(p.replyTo.ToString()))
-                {
-                    return false;
-                }
-            }
-
-            if (content == null ^ p.content == null)
-            {
-                return false;
-            }
-            if (content != null)
-            {
-                if (!content.ToString().Equals(p.content.ToString()))
-                {
-                    return false;
-                }
-            }
-
-            if (type == null ^ p.type == null)
-            {
-                return false;
-            }
-            if (type != null)
-            {
-                if (!type.Equals(p.type))
-                {
-                    return false;
-                }
-            }
-
-            if (timestamp == null ^ p.timestamp == null)
-            {
-                return false;
-            }
-            if (timestamp != null)
-            {
-                if (!timestamp.ToString().Equals(p.timestamp.ToString()))
-                {
-                    return false;
-                }
-            }
-
-            if (readOnlyMsgBody != p.readOnlyMsgBody)
-            {
-                return false;
-            }
-
-            return true;
-        }
-
-		public override int GetHashCode()
-		{
-			int hashCode = 0;
-
-			if(propertiesMap != null)
-			{
-				hashCode ^= propertiesMap.GetHashCode();
-			}
-
-			if(destination != null)
-			{
-				hashCode ^= destination.GetHashCode();
-			}
-
-			if(correlationId != null)
-			{
-				hashCode ^= correlationId.GetHashCode();
-			}
-
-			if(timeToLive != null)
-			{
-				hashCode ^= timeToLive.GetHashCode();
-			}
-
-			if(messageId != null)
-			{
-				hashCode ^= messageId.GetHashCode();
-			}
-
-			hashCode ^= deliveryMode.GetHashCode();
-			hashCode ^= priority.GetHashCode();
-
-			if(replyTo != null)
-			{
-				hashCode ^= replyTo.GetHashCode();
-			}
-
-			if(content != null)
-			{
-				hashCode ^= content.GetHashCode();
-			}
-
-			if(type != null)
-			{
-				hashCode ^= type.GetHashCode();
-			}
-
-			if(timestamp != null)
-			{
-				hashCode ^= timestamp.GetHashCode();
-			}
-
-			hashCode ^= readOnlyMsgBody.GetHashCode();
-			return hashCode;
-		}
-
-        public bool ReadOnlyBody
-        {
-            get { return readOnlyMsgBody; }
-            set { readOnlyMsgBody = value; }
-        }
-
-        // IMessage interface
-
-        public void Acknowledge()
-        {
-            if(null != Acknowledger)
-            {
-                Acknowledger(this);
-            }
-        }
-
-        /// <summary>
-        /// Clears out the message body. Clearing a message's body does not clear its header
-        /// values or property entries.
-        ///
-        /// If this message body was read-only, calling this method leaves the message body in
-        /// the same state as an empty body in a newly created message.
-        /// </summary>
-        public virtual void ClearBody()
-        {
-            this.Content = null;
-            this.readOnlyMsgBody = false;
-        }
-
-        /// <summary>
-        /// Clears a message's properties.
-        ///
-        /// The message's header fields and body are not cleared.
-        /// </summary>
-        public virtual void ClearProperties()
-        {
-            propertiesMap.Clear();
-        }
-
-        // Properties
-
-        public IPrimitiveMap Properties
-        {
-            get { return propertiesMap; }
-        }
-
-
-        // NMS headers
-
-        /// <summary>
-        /// The correlation ID used to correlate messages with conversations or long running business processes
-        /// </summary>
-        public string NMSCorrelationID
-        {
-            get { return correlationId; }
-            set { correlationId = value; }
-        }
-
-        /// <summary>
-        /// The destination of the message
-        /// </summary>
-        public IDestination NMSDestination
-        {
-            get { return destination; }
-            set { destination = value; }
-        }
-
-        /// <summary>
-        /// The time in milliseconds that this message should expire in
-        /// </summary>
-        public TimeSpan NMSTimeToLive
-        {
-            get { return timeToLive; }
-            set { timeToLive = value; }
-        }
-
-        /// <summary>
-        /// The message ID which is set by the provider
-        /// </summary>
-        public string NMSMessageId
-        {
-            get { return messageId; }
-            set { messageId = value; }
-        }
-
-        /// <summary>
-        /// Whether or not this message is persistent
-        /// </summary>
-        public MsgDeliveryMode NMSDeliveryMode
-        {
-            get { return deliveryMode; }
-            set { deliveryMode = value; }
-        }
-
-        /// <summary>
-        /// The Priority on this message
-        /// </summary>
-        public MsgPriority NMSPriority
-        {
-            get { return priority; }
-            set { priority = value; }
-        }
-
-        /// <summary>
-        /// Returns true if this message has been redelivered to this or another consumer before being acknowledged successfully.
-        /// </summary>
-        public bool NMSRedelivered
-        {
-            get { return false; }
-            set { }
-        }
-
-
-        /// <summary>
-        /// The destination that the consumer of this message should send replies to
-        /// </summary>
-        public IDestination NMSReplyTo
-        {
-            get { return replyTo; }
-            set { replyTo = (Destination) value; }
-        }
-
-
-        /// <summary>
-        /// The timestamp the broker added to the message
-        /// </summary>
-        public DateTime NMSTimestamp
-        {
-            get { return timestamp; }
-            set { timestamp = value; }
-        }
-
-        public byte[] Content
-        {
-            get { return content; }
-            set { this.content = value; }
-        }
-
-        /// <summary>
-        /// The type name of this message
-        /// </summary>
-        public string NMSType
-        {
-            get { return type; }
-            set { type = value; }
-        }
-
-
-        public object GetObjectProperty(string name)
-        {
-            return null;
-        }
-
-        public void SetObjectProperty(string name, object value)
-        {
-        }
-
-        protected void FailIfReadOnlyBody()
-        {
-            if(ReadOnlyBody == true)
-            {
-                throw new MessageNotWriteableException("Message is in Read-Only mode.");
-            }
-        }
-
-        protected void FailIfWriteOnlyBody()
-        {
-            if( ReadOnlyBody == false )
-            {
-                throw new MessageNotReadableException("Message is in Write-Only mode.");
-            }
-        }
-    }
-}
-
diff --git a/src/main/csharp/BytesMessage.cs b/src/main/csharp/BytesMessage.cs
deleted file mode 100644
index e5f3a4a..0000000
--- a/src/main/csharp/BytesMessage.cs
+++ /dev/null
@@ -1,511 +0,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.
- */
-
-
-using Apache.NMS.Util;
-using System.IO;
-using System;
-namespace Apache.NMS.Amqp
-{
-    /// <summary>
-    ///
-    /// A BytesMessage object is used to send a message containing a stream of uninterpreted
-    /// bytes. It inherits from the Message interface and adds a bytes message body. The
-    /// receiver of the message supplies the interpretation of the bytes.
-    ///
-    /// This message type is for client encoding of existing message formats. If possible,
-    /// one of the other self-defining message types should be used instead.
-    ///
-    /// Although the NMS API allows the use of message properties with byte messages, they
-    /// are typically not used, since the inclusion of properties may affect the format.
-    ///
-    /// When the message is first created, and when ClearBody is called, the body of the
-    /// message is in write-only mode. After the first call to Reset has been made, the
-    /// message body is in read-only mode. After a message has been sent, the client that
-    /// sent it can retain and modify it without affecting the message that has been sent.
-    /// The same message object can be sent multiple times. When a message has been received,
-    /// the provider has called Reset so that the message body is in read-only mode for the
-    /// client.
-    ///
-    /// If ClearBody is called on a message in read-only mode, the message body is cleared and
-    /// the message is in write-only mode.
-    ///
-    /// If a client attempts to read a message in write-only mode, a MessageNotReadableException
-    /// is thrown.
-    ///
-    /// If a client attempts to write a message in read-only mode, a MessageNotWriteableException
-    /// is thrown.
-    /// </summary>
-    public class BytesMessage : BaseMessage, IBytesMessage
-    {
-        private EndianBinaryReader dataIn = null;
-        private EndianBinaryWriter dataOut = null;
-        private MemoryStream outputBuffer = null;
-
-        // Need this later when we add compression to store true content length.
-        private long length = 0;
-
-        public override void ClearBody()
-        {
-            base.ClearBody();
-            this.outputBuffer = null;
-            this.dataIn = null;
-            this.dataOut = null;
-            this.length = 0;
-        }
-
-        public long BodyLength
-        {
-            get
-            {
-                InitializeReading();
-                return this.length;
-            }
-        }
-
-        public byte ReadByte()
-        {
-            InitializeReading();
-            try
-            {
-                return dataIn.ReadByte();
-            }
-            catch(EndOfStreamException e)
-            {
-                throw NMSExceptionSupport.CreateMessageEOFException(e);
-            }
-            catch(IOException e)
-            {
-                throw NMSExceptionSupport.CreateMessageFormatException(e);
-            }
-        }
-
-        public void WriteByte( byte value )
-        {
-            InitializeWriting();
-            try
-            {
-                dataOut.Write( value );
-            }
-            catch(Exception e)
-            {
-                throw NMSExceptionSupport.Create(e);
-            }
-        }
-
-        public bool ReadBoolean()
-        {
-            InitializeReading();
-            try
-            {
-                return dataIn.ReadBoolean();
-            }
-            catch(EndOfStreamException e)
-            {
-                throw NMSExceptionSupport.CreateMessageEOFException(e);
-            }
-            catch(IOException e)
-            {
-                throw NMSExceptionSupport.CreateMessageFormatException(e);
-            }
-        }
-
-        public void WriteBoolean( bool value )
-        {
-            InitializeWriting();
-            try
-            {
-                dataOut.Write( value );
-            }
-            catch(Exception e)
-            {
-                throw NMSExceptionSupport.Create(e);
-            }
-        }
-
-        public char ReadChar()
-        {
-            InitializeReading();
-            try
-            {
-                return dataIn.ReadChar();
-            }
-            catch(EndOfStreamException e)
-            {
-                throw NMSExceptionSupport.CreateMessageEOFException(e);
-            }
-            catch(IOException e)
-            {
-                throw NMSExceptionSupport.CreateMessageFormatException(e);
-            }
-        }
-
-        public void WriteChar( char value )
-        {
-            InitializeWriting();
-            try
-            {
-                dataOut.Write( value );
-            }
-            catch(Exception e)
-            {
-                throw NMSExceptionSupport.Create(e);
-            }
-        }
-
-        public short ReadInt16()
-        {
-            InitializeReading();
-            try
-            {
-                return dataIn.ReadInt16();
-            }
-            catch(EndOfStreamException e)
-            {
-                throw NMSExceptionSupport.CreateMessageEOFException(e);
-            }
-            catch(IOException e)
-            {
-                throw NMSExceptionSupport.CreateMessageFormatException(e);
-            }
-        }
-
-        public void WriteInt16( short value )
-        {
-            InitializeWriting();
-            try
-            {
-                dataOut.Write( value );
-            }
-            catch(Exception e)
-            {
-                throw NMSExceptionSupport.Create(e);
-            }
-        }
-
-        public int ReadInt32()
-        {
-            InitializeReading();
-            try
-            {
-                return dataIn.ReadInt32();
-            }
-            catch(EndOfStreamException e)
-            {
-                throw NMSExceptionSupport.CreateMessageEOFException(e);
-            }
-            catch(IOException e)
-            {
-                throw NMSExceptionSupport.CreateMessageFormatException(e);
-            }
-        }
-
-        public void WriteInt32( int value )
-        {
-            InitializeWriting();
-            try
-            {
-                dataOut.Write( value );
-            }
-            catch(Exception e)
-            {
-                throw NMSExceptionSupport.Create(e);
-            }
-        }
-
-        public long ReadInt64()
-        {
-            InitializeReading();
-            try
-            {
-                return dataIn.ReadInt64();
-            }
-            catch(EndOfStreamException e)
-            {
-                throw NMSExceptionSupport.CreateMessageEOFException(e);
-            }
-            catch(IOException e)
-            {
-                throw NMSExceptionSupport.CreateMessageFormatException(e);
-            }
-        }
-
-        public void WriteInt64( long value )
-        {
-            InitializeWriting();
-            try
-            {
-                dataOut.Write( value );
-            }
-            catch(Exception e)
-            {
-                throw NMSExceptionSupport.Create(e);
-            }
-        }
-
-        public float ReadSingle()
-        {
-            InitializeReading();
-            try
-            {
-                return dataIn.ReadSingle();
-            }
-            catch(EndOfStreamException e)
-            {
-                throw NMSExceptionSupport.CreateMessageEOFException(e);
-            }
-            catch(IOException e)
-            {
-                throw NMSExceptionSupport.CreateMessageFormatException(e);
-            }
-        }
-
-        public void WriteSingle( float value )
-        {
-            InitializeWriting();
-            try
-            {
-                dataOut.Write( value );
-            }
-            catch(Exception e)
-            {
-                throw NMSExceptionSupport.Create(e);
-            }
-        }
-
-        public double ReadDouble()
-        {
-            InitializeReading();
-            try
-            {
-                return dataIn.ReadDouble();
-            }
-            catch(EndOfStreamException e)
-            {
-                throw NMSExceptionSupport.CreateMessageEOFException(e);
-            }
-            catch(IOException e)
-            {
-                throw NMSExceptionSupport.CreateMessageFormatException(e);
-            }
-        }
-
-        public void WriteDouble( double value )
-        {
-            InitializeWriting();
-            try
-            {
-                dataOut.Write( value );
-            }
-            catch(Exception e)
-            {
-                throw NMSExceptionSupport.Create(e);
-            }
-        }
-
-        public int ReadBytes( byte[] value )
-        {
-            InitializeReading();
-            try
-            {
-                return dataIn.Read( value, 0, value.Length );
-            }
-            catch(EndOfStreamException e)
-            {
-                throw NMSExceptionSupport.CreateMessageEOFException(e);
-            }
-            catch(IOException e)
-            {
-                throw NMSExceptionSupport.CreateMessageFormatException(e);
-            }
-        }
-
-        public int ReadBytes( byte[] value, int length )
-        {
-            InitializeReading();
-            try
-            {
-                return dataIn.Read( value, 0, length );
-            }
-            catch(EndOfStreamException e)
-            {
-                throw NMSExceptionSupport.CreateMessageEOFException(e);
-            }
-            catch(IOException e)
-            {
-                throw NMSExceptionSupport.CreateMessageFormatException(e);
-            }
-        }
-
-        public void WriteBytes( byte[] value )
-        {
-            InitializeWriting();
-            try
-            {
-                dataOut.Write( value, 0, value.Length );
-            }
-            catch(Exception e)
-            {
-                throw NMSExceptionSupport.Create(e);
-            }
-        }
-
-        public void WriteBytes( byte[] value, int offset, int length )
-        {
-            InitializeWriting();
-            try
-            {
-                dataOut.Write( value, offset, length );
-            }
-            catch(Exception e)
-            {
-                throw NMSExceptionSupport.Create(e);
-            }
-        }
-
-        public string ReadString()
-        {
-            InitializeReading();
-            try
-            {
-                // JMS, CMS and NMS all encode the String using a 16 bit size header.
-                return dataIn.ReadString16();
-            }
-            catch(EndOfStreamException e)
-            {
-                throw NMSExceptionSupport.CreateMessageEOFException(e);
-            }
-            catch(IOException e)
-            {
-                throw NMSExceptionSupport.CreateMessageFormatException(e);
-            }
-        }
-
-        public void WriteString( string value )
-        {
-            InitializeWriting();
-            try
-            {
-                // JMS, CMS and NMS all encode the String using a 16 bit size header.
-                dataOut.WriteString16(value);
-            }
-            catch(Exception e)
-            {
-                throw NMSExceptionSupport.Create(e);
-            }
-        }
-
-        public void WriteObject( System.Object value )
-        {
-            InitializeWriting();
-            if( value is System.Byte )
-            {
-                this.dataOut.Write( (byte) value );
-            }
-            else if( value is Char )
-            {
-                this.dataOut.Write( (char) value );
-            }
-            else if( value is Boolean )
-            {
-                this.dataOut.Write( (bool) value );
-            }
-            else if( value is Int16 )
-            {
-                this.dataOut.Write( (short) value );
-            }
-            else if( value is Int32 )
-            {
-                this.dataOut.Write( (int) value );
-            }
-            else if( value is Int64 )
-            {
-                this.dataOut.Write( (long) value );
-            }
-            else if( value is Single )
-            {
-                this.dataOut.Write( (float) value );
-            }
-            else if( value is Double )
-            {
-                this.dataOut.Write( (double) value );
-            }
-            else if( value is byte[] )
-            {
-                this.dataOut.Write( (byte[]) value );
-            }
-            else if( value is String )
-            {
-                this.dataOut.WriteString16( (string) value );
-            }
-            else
-            {
-                throw new MessageFormatException("Cannot write non-primitive type:" + value.GetType());
-            }
-        }
-
-        public void Reset()
-        {
-            StoreContent();
-            this.dataIn = null;
-            this.dataOut = null;
-            this.outputBuffer = null;
-            this.ReadOnlyBody = true;
-        }
-
-        private void InitializeReading()
-        {
-            FailIfWriteOnlyBody();
-            if(this.dataIn == null)
-            {
-                if(this.Content != null)
-                {
-                    this.length = this.Content.Length;
-                }
-
-                // TODO - Add support for Message Compression.
-                MemoryStream bytesIn = new MemoryStream(this.Content, false);
-                dataIn = new EndianBinaryReader(bytesIn);
-            }
-        }
-
-        private void InitializeWriting()
-        {
-            FailIfReadOnlyBody();
-            if(this.dataOut == null)
-            {
-                // TODO - Add support for Message Compression.
-                this.outputBuffer = new MemoryStream();
-                this.dataOut = new EndianBinaryWriter(outputBuffer);
-            }
-        }
-
-        private void StoreContent()
-        {
-            if( dataOut != null)
-            {
-                dataOut.Close();
-                // TODO - Add support for Message Compression.
-
-                this.Content = outputBuffer.ToArray();
-                this.dataOut = null;
-                this.outputBuffer = null;
-            }
-        }
-    }
-}
-
diff --git a/src/main/csharp/Connection.cs b/src/main/csharp/Connection.cs
deleted file mode 100644
index 2f55eda..0000000
--- a/src/main/csharp/Connection.cs
+++ /dev/null
@@ -1,625 +0,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.
- */
-
-using System;
-using System.Collections;
-using System.Collections.Specialized;
-using System.Threading;
-using Apache.NMS.Util;
-using Org.Apache.Qpid.Messaging;
-
-namespace Apache.NMS.Amqp
-{
-    /// <summary>
-    /// Represents a NMS Qpid/Amqp connection.
-    /// </summary>
-    ///
-    public class Connection : IConnection
-    {
-        // Connections options indexes and constants
-        private const string PROTOCOL_OPTION = "protocol";
-        private const string PROTOCOL_1_0 = "amqp1.0";
-        private const string PROTOCOL_0_10 = "amqp0-10";
-        private const char SEP_ARGS = ',';
-        private const char SEP_NAME_VALUE = ':';
-        public const string USERNAME_OPTION = "username";
-        public const string PASSWORD_OPTION = "password";
-
-        private static readonly TimeSpan InfiniteTimeSpan = TimeSpan.FromMilliseconds(Timeout.Infinite);
-
-        private AcknowledgementMode acknowledgementMode = AcknowledgementMode.AutoAcknowledge;
-        private IMessageConverter messageConverter = new DefaultMessageConverter();
-
-        private IRedeliveryPolicy redeliveryPolicy;
-        private ConnectionMetaData metaData = null;
-
-        private readonly object connectedLock = new object();
-        private readonly Atomic<bool> connected = new Atomic<bool>(false);
-        private readonly Atomic<bool> closed = new Atomic<bool>(false);
-        private readonly Atomic<bool> closing = new Atomic<bool>(false);
-
-        private readonly Atomic<bool> started = new Atomic<bool>(false);
-        private bool disposed = false;
-
-        private Uri brokerUri;
-        private string clientId;
-        private StringDictionary connectionProperties;
-
-        private int sessionCounter = 0;
-        private readonly IList sessions = ArrayList.Synchronized(new ArrayList());
-
-        private Org.Apache.Qpid.Messaging.Connection qpidConnection = null; // Don't create until Start()
-
-        #region Constructor Methods
-
-        /// <summary>
-        /// Creates new connection
-        /// </summary>
-        public Connection()
-        {
-        }
-
-        /// <summary>
-        /// Destroys connection
-        /// </summary>
-        ~Connection()
-        {
-            Dispose(false);
-        }
-
-        #endregion
-
-        #region IStartable Members
-        /// <summary>
-        /// Starts message delivery for this connection.
-        /// </summary>
-        public void Start()
-        {
-            // Create and open qpidConnection
-            CheckConnected();
-
-            if (started.CompareAndSet(false, true))
-            {
-                lock (sessions.SyncRoot)
-                {
-                    foreach (Session session in sessions)
-                    {
-                        // Create and start qpidSessions
-                        session.Start();
-                    }
-                }
-            }
-        }
-
-        /// <summary>
-        /// This property determines if the asynchronous message delivery of incoming
-        /// messages has been started for this connection.
-        /// </summary>
-        public bool IsStarted
-        {
-            get { return started.Value; }
-        }
-        #endregion
-
-        #region IStoppable Members
-        /// <summary>
-        /// Temporarily stop asynchronous delivery of inbound messages for this connection.
-        /// The sending of outbound messages is unaffected.
-        /// </summary>
-        public void Stop()
-        {
-            // Administratively close NMS objects
-            if (started.CompareAndSet(true, false))
-            {
-                foreach (Session session in sessions)
-                {
-                    // Create and start qpidSessions
-                    session.Stop();
-                }
-            }
-
-            // Close qpidConnection
-            CheckDisconnected();
-        }
-        #endregion
-
-        #region IDisposable Methods
-        public void Dispose()
-        {
-            Dispose(true);
-        }
-        #endregion
-
-        #region AMQP IConnection Class Methods
-        /// <summary>
-        /// Creates a new session to work on this connection
-        /// </summary>
-        public ISession CreateSession()
-        {
-            return CreateSession(acknowledgementMode);
-        }
-
-        /// <summary>
-        /// Creates a new session to work on this connection
-        /// </summary>
-        public ISession CreateSession(AcknowledgementMode mode)
-        {
-            return new Session(this, GetNextSessionId(), mode);
-        }
-
-        internal void AddSession(Session session)
-        {
-            if (!this.closing.Value)
-            {
-                sessions.Add(session);
-            }
-        }
-
-        internal void RemoveSession(Session session)
-        {
-            if (!this.closing.Value)
-            {
-                sessions.Remove(session);
-            }
-        }
-
-        protected void Dispose(bool disposing)
-        {
-            if (disposed)
-            {
-                return;
-            }
-
-            if (disposing)
-            {
-                // Dispose managed code here.
-            }
-
-            try
-            {
-                Close();
-            }
-            catch
-            {
-                // Ignore network errors.
-            }
-
-            disposed = true;
-        }
-
-        /// <summary>
-        /// Get/or set the broker Uri.
-        /// </summary>
-        public Uri BrokerUri
-        {
-            get { return brokerUri; }
-            set { brokerUri = value; }
-        }
-
-        /// <summary>
-        /// The default timeout for network requests.
-        /// </summary>
-        public TimeSpan RequestTimeout
-        {
-            get { return NMSConstants.defaultRequestTimeout; }
-            set { }
-        }
-
-        public AcknowledgementMode AcknowledgementMode
-        {
-            get { return acknowledgementMode; }
-            set { acknowledgementMode = value; }
-        }
-
-        public IMessageConverter MessageConverter
-        {
-            get { return messageConverter; }
-            set { messageConverter = value; }
-        }
-
-        public string ClientId
-        {
-            get { return clientId; }
-            set
-            {
-                ThrowIfConnected("ClientId");
-                clientId = value;
-            }
-        }
-
-        /// <summary>
-        /// Get/or set the redelivery policy for this connection.
-        /// </summary>
-        public IRedeliveryPolicy RedeliveryPolicy
-        {
-            get { return this.redeliveryPolicy; }
-            set
-            {
-                ThrowIfConnected("RedeliveryPolicy");
-                this.redeliveryPolicy = value;
-            }
-        }
-
-        private ConsumerTransformerDelegate consumerTransformer;
-        public ConsumerTransformerDelegate ConsumerTransformer
-        {
-            get { return this.consumerTransformer; }
-            set
-            {
-                ThrowIfConnected("ConsumerTransformer");
-                this.consumerTransformer = value;
-            }
-        }
-
-        private ProducerTransformerDelegate producerTransformer;
-        public ProducerTransformerDelegate ProducerTransformer
-        {
-            get { return this.producerTransformer; }
-            set
-            {
-                ThrowIfConnected("ProducerTransformer");
-                this.producerTransformer = value;
-            }
-        }
-
-        /// <summary>
-        /// Gets the Meta Data for the NMS Connection instance.
-        /// </summary>
-        public IConnectionMetaData MetaData
-        {
-            get { return this.metaData ?? (this.metaData = new ConnectionMetaData()); }
-        }
-
-        /// <summary>
-        /// A delegate that can receive transport level exceptions.
-        /// </summary>
-        public event ExceptionListener ExceptionListener;
-
-        /// <summary>
-        /// An asynchronous listener that is notified when a Fault tolerant connection
-        /// has been interrupted.
-        /// </summary>
-        public event ConnectionInterruptedListener ConnectionInterruptedListener;
-
-        /// <summary>
-        /// An asynchronous listener that is notified when a Fault tolerant connection
-        /// has been resumed.
-        /// </summary>
-        public event ConnectionResumedListener ConnectionResumedListener;
-
-        /// <summary>
-        /// Check and ensure that the connection object is connected.  
-        /// New connections are established for the first time.
-        /// Subsequent calls verify that connection is connected and is not closed or closing.
-        /// This function returns only if connection is successfully opened else
-        /// a ConnectionClosedException is thrown.
-        /// </summary>
-        internal void CheckConnected()
-        {
-            if (closed.Value || closing.Value)
-            {
-                throw new ConnectionClosedException();
-            }
-            if (connected.Value)
-            {
-                return;
-            }
-            DateTime timeoutTime = DateTime.Now + this.RequestTimeout;
-            int waitCount = 1;
-
-            while (!connected.Value && !closed.Value && !closing.Value)
-            {
-                if (Monitor.TryEnter(connectedLock))
-                {
-                    try // strictly for Monitor unlock
-                    {
-                        // Create and open the Qpid connection
-                        try
-                        {
-                            // TODO: embellish the brokerUri with other connection options
-                            // Allocate a Qpid connection
-                            if (qpidConnection == null)
-                            {
-                                Tracer.DebugFormat("Amqp: create qpid connection to: {0}", this.BrokerUri.ToString());
-                                qpidConnection =
-                                    new Org.Apache.Qpid.Messaging.Connection(
-                                        brokerUri.ToString(),
-                                        ConstructConnectionOptionsString(connectionProperties));
-                            }
-
-                            // Open the connection
-                            if (!qpidConnection.IsOpen)
-                            {
-                                qpidConnection.Open();
-                            }
-
-                            connected.Value = true;
-                        }
-                        catch (Org.Apache.Qpid.Messaging.QpidException e)
-                        {
-                            Tracer.DebugFormat("Amqp: create qpid connection to: {0} failed with {1}", 
-                                this.BrokerUri.ToString(), e.Message);
-                            throw new ConnectionClosedException(e.Message);
-                        }
-                    }
-                    finally
-                    {
-                        Monitor.Exit(connectedLock);
-                    }
-                }
-
-                if (connected.Value || closed.Value || closing.Value
-                    || (DateTime.Now > timeoutTime && this.RequestTimeout != InfiniteTimeSpan))
-                {
-                    break;
-                }
-
-                // Back off from being overly aggressive.  Having too many threads
-                // aggressively trying to connect to a down broker pegs the CPU.
-                Thread.Sleep(5 * (waitCount++));
-            }
-
-            if (!connected.Value)
-            {
-                throw new ConnectionClosedException();
-            }
-        }
-
-
-        /// <summary>
-        /// Check and ensure that the connection object is disconnected
-        /// Open connections are closed and this closes related sessions, senders, and receivers.
-        /// Closed connections may be restarted with subsequent calls to Start().
-        /// </summary>
-        internal void CheckDisconnected()
-        {
-            if (closed.Value || closing.Value)
-            {
-                throw new ConnectionClosedException();
-            }
-            if (!connected.Value)
-            {
-                return;
-            }
-            while (connected.Value && !closed.Value && !closing.Value)
-            {
-                if (Monitor.TryEnter(connectedLock))
-                {
-                    try
-                    {
-                        // Close the connection
-                        if (qpidConnection.IsOpen)
-                        {
-                            qpidConnection.Close();
-                        }
-
-                        connected.Value = false;
-                        break;
-                    }
-                    catch (Org.Apache.Qpid.Messaging.QpidException e)
-                    {
-                        throw new NMSException("AMQP Connection close failed : " + e.Message);
-                    }
-                    finally
-                    {
-                        Monitor.Exit(connectedLock);
-                    }
-                }
-            }
-
-            if (connected.Value)
-            {
-                throw new NMSException("Failed to close AMQP Connection");
-            }
-        }
-
-        public void Close()
-        {
-            if (!this.closed.Value)
-            {
-                this.Stop();
-            }
-
-            lock (connectedLock)
-            {
-                if (this.closed.Value)
-                {
-                    return;
-                }
-
-                try
-                {
-                    Tracer.InfoFormat("Connection[]: Closing Connection Now.");
-                    this.closing.Value = true;
-
-                    lock (sessions.SyncRoot)
-                    {
-                        foreach (Session session in sessions)
-                        {
-                            session.Shutdown();
-                        }
-                    }
-                    sessions.Clear();
-
-                }
-                catch (Exception ex)
-                {
-                    Tracer.ErrorFormat("Connection[]: Error during connection close: {0}", ex);
-                }
-                finally
-                {
-                    this.closed.Value = true;
-                    this.connected.Value = false;
-                    this.closing.Value = false;
-                }
-            }
-        }
-
-        public void PurgeTempDestinations()
-        {
-        }
-
-        #endregion
-
-        #region ConnectionProperties Methods
-
-        /// <summary>
-        /// Connection connectionProperties acceessor
-        /// </summary>
-        /// <remarks>This factory does not check for legal property names. Users
-        /// my specify anything they want. Propery name processing happens when
-        /// connections are created and started.</remarks>
-        public StringDictionary ConnectionProperties
-        {
-            get { return connectionProperties; }
-            set
-            {
-                ThrowIfConnected("ConnectionProperties");
-                connectionProperties = value;
-            }
-        }
-
-        /// <summary>
-        /// Test existence of named property
-        /// </summary>
-        /// <param name="name">The name of the connection property to test.</param>
-        /// <returns>Boolean indicating if property exists in setting dictionary.</returns>
-        public bool ConnectionPropertyExists(string name)
-        {
-            return connectionProperties.ContainsKey(name);
-        }
-
-        /// <summary>
-        /// Get value of named property
-        /// </summary>
-        /// <param name="name">The name of the connection property to get.</param>
-        /// <returns>string value of property.</returns>
-        /// <remarks>Throws if requested property does not exist.</remarks>
-        public string GetConnectionProperty(string name)
-        {
-            if (connectionProperties.ContainsKey(name))
-            {
-                return connectionProperties[name];
-            }
-            else
-            {
-                throw new NMSException("Amqp connection property '" + name + "' does not exist");
-            }
-        }
-
-        /// <summary>
-        /// Set value of named property
-        /// </summary>
-        /// <param name="name">The name of the connection property to set.</param>
-        /// <param name="value">The value of the connection property.</param>
-        /// <returns>void</returns>
-        /// <remarks>Existing property values are overwritten. New property values
-        /// are added.</remarks>
-        public void SetConnectionProperty(string name, string value)
-        {
-            ThrowIfConnected("SetConnectionProperty:" + name);
-            if (connectionProperties.ContainsKey(name))
-            {
-                connectionProperties[name] = value;
-            }
-            else
-            {
-                connectionProperties.Add(name, value);
-            }
-        }
-        #endregion
-
-        #region AMQP Connection Utilities
-
-        private void ThrowIfConnected(string propName)
-        {
-            if (connected.Value)
-            {
-                throw new NMSException("Can not change connection property while Connection is connected: " + propName);
-            }
-        }
-
-        public void HandleException(Exception e)
-        {
-            if (ExceptionListener != null && !this.closed.Value)
-            {
-                ExceptionListener(e);
-            }
-            else
-            {
-                Tracer.Error(e);
-            }
-        }
-
-
-        public int GetNextSessionId()
-        {
-            return Interlocked.Increment(ref sessionCounter);
-        }
-
-        public Org.Apache.Qpid.Messaging.Session CreateQpidSession()
-        {
-            // TODO: Session name; transactional session
-            if (!connected.Value)
-            {
-                throw new ConnectionClosedException();
-            }
-            return qpidConnection.CreateSession();
-        }
-
-
-        /// <summary>
-        /// Convert specified connection properties string map into the
-        /// connection properties string to send to Qpid Messaging. 
-        /// </summary>
-        /// <returns>qpid connection properties string</returns>
-        /// <remarks>Mostly this is pass-through. Default to amqp1.0
-        /// in the absence of any protocol option.</remarks>
-        internal string ConstructConnectionOptionsString(StringDictionary cp)
-        {
-            string result = "";
-            // Construct qpid connection string
-            bool first = true;
-            result = "{";
-            foreach (DictionaryEntry de in cp)
-            {
-                if (!first)
-                {
-                    result += SEP_ARGS;
-                }
-                result += de.Key + SEP_NAME_VALUE.ToString() + de.Value;
-                first = false;
-            }
-
-            // protocol version munging
-            if (!cp.ContainsKey(PROTOCOL_OPTION))
-            {
-                // no protocol option - select 1.0
-                if (!first)
-                {
-                    result += SEP_ARGS;
-                }
-                result += PROTOCOL_OPTION + SEP_NAME_VALUE.ToString() + PROTOCOL_1_0;
-            }
-
-            result += "}";
-            return result;
-        }
-
-        #endregion
-    }
-}
diff --git a/src/main/csharp/ConnectionClosedException.cs b/src/main/csharp/ConnectionClosedException.cs
deleted file mode 100644
index 324975c..0000000
--- a/src/main/csharp/ConnectionClosedException.cs
+++ /dev/null
@@ -1,69 +0,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.
- */
-
-using System;
-
-namespace Apache.NMS.Amqp
-{
-    /// <summary>
-    /// Exception thrown when a connection is used that it already closed
-    /// </summary>
-    [Serializable]
-    public class ConnectionClosedException : NMSException
-    {
-        public ConnectionClosedException()
-            : base("The connection is already closed!")
-        {
-        }
-
-        public ConnectionClosedException(string message)
-            : base(message)
-        {
-        }
-
-        public ConnectionClosedException(string message, string errorCode)
-            : base(message, errorCode)
-        {
-        }
-
-        public ConnectionClosedException(string message, Exception innerException)
-            : base(message, innerException)
-        {
-        }
-
-        public ConnectionClosedException(string message, string errorCode, Exception innerException)
-            : base(message, errorCode, innerException)
-        {
-        }
-
-        #region ISerializable interface implementation
-
-        /// <summary>
-        /// Initializes a new instance of the ConnectionClosedException class with serialized data.
-        /// Throws System.ArgumentNullException if the info parameter is null.
-        /// Throws System.Runtime.Serialization.SerializationException if the class name is null or System.Exception.HResult is zero (0).
-        /// </summary>
-        /// <param name="info">The SerializationInfo that holds the serialized object data about the exception being thrown.</param>
-        /// <param name="context">The StreamingContext that contains contextual information about the source or destination.</param>
-        protected ConnectionClosedException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context)
-            : base(info, context)
-        {
-        }
-
-        #endregion
-    }
-}
diff --git a/src/main/csharp/ConnectionFactory.cs b/src/main/csharp/ConnectionFactory.cs
deleted file mode 100644
index a623697..0000000
--- a/src/main/csharp/ConnectionFactory.cs
+++ /dev/null
@@ -1,306 +0,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.
- */
-using System;
-using System.Collections;
-using System.Collections.Specialized;
-using Apache.NMS.Policies;
-using Org.Apache.Qpid.Messaging;
-
-namespace Apache.NMS.Amqp
-{
-    /// <summary>
-    /// A Factory that can establish NMS connections to AMQP using QPID.
-    /// 
-    /// @param brokerUri String or Uri specifying base connection address
-    /// @param clientID String specifying client ID
-    /// @param connectionProperties formed by one of:
-    ///     * 0..N Strings specifying Qpid connection connectionProperties in the form "name:value".
-    ///     * Hashtable containing properties as key/value pairs
-    /// 
-    /// Connection URI are defined in
-    /// http://qpid.apache.org/releases/qpid-trunk/programming/book/connections.html#connection-url
-    /// 
-    /// Example using property strings:
-    /// 
-    /// Uri connecturi = new Uri("amqp:localhost:5673")
-    /// IConnectionFactory factory = new NMSConnectionFactory();
-    /// IConnectionFactory factory = new NMSConnectionFactory(connecturi);
-    /// IConnectionFactory factory = new NMSConnectionFactory(connecturi, "UserA");
-    /// IConnectionFactory factory = new NMSConnectionFactory(connecturi, "UserA", "protocol:amqp1.0");
-    /// IConnectionFactory factory = new NMSConnectionFactory(connecturi, "UserA", "protocol:amqp1.0", "reconnect:true", "reconnect_timeout:60", "username:bob", "password:secret");
-    /// 
-    /// Example using property table:
-    /// 
-    /// Uri connecturi = new Uri("amqp:localhost:5672")
-    /// Hashtable properties = new Hashtable();
-    /// properties.Add("protocol", "amqp1.0");
-    /// properties.Add("reconnect_timeout", 60)
-    /// IConnectionFactory factory = new NMSConnectionFactory(connecturi, "UserA", properties);
-    /// 
-    /// See http://qpid.apache.org/components/programming/book/connection-options.html 
-    /// for more information on Qpid connection options.
-    /// </summary>
-    public class ConnectionFactory : IConnectionFactory
-    {
-        public const string DEFAULT_BROKER_URL = "tcp://localhost:5672";
-        public const string ENV_BROKER_URL = "AMQP_BROKER_URL";
-        private const char SEP_NAME_VALUE = ':';
-
-        private Uri brokerUri;
-        private string clientID;
-
-        private StringDictionary properties = new StringDictionary();
-        private IRedeliveryPolicy redeliveryPolicy = new RedeliveryPolicy();
-
-        #region Constructor Methods
-
-        public static string GetDefaultBrokerUrl()
-        {
-            string answer = Environment.GetEnvironmentVariable(ENV_BROKER_URL);
-            if (answer == null)
-            {
-                answer = DEFAULT_BROKER_URL;
-            }
-            return answer;
-        }
-
-        public ConnectionFactory()
-            : this(new Uri(GetDefaultBrokerUrl()), string.Empty, (Object[])null)
-        {
-        }
-
-        public ConnectionFactory(string brokerUri)
-            : this(new Uri(brokerUri), string.Empty, (Object[])null)
-        {
-        }
-
-        public ConnectionFactory(string brokerUri, string clientID)
-            : this(new Uri(brokerUri), clientID, (Object[])null)
-        {
-        }
-
-        public ConnectionFactory(Uri brokerUri)
-            : this(brokerUri, string.Empty, (Object[])null)
-        {
-        }
-
-        public ConnectionFactory(Uri brokerUri, string clientID)
-            : this(brokerUri, clientID, (Object[])null)
-        {
-        }
-
-        public ConnectionFactory(Uri brokerUri, string clientID, params Object[] propsArray)
-        {
-            Tracer.DebugFormat("Amqp: create connection factory for Uri: {0}", brokerUri.ToString()); 
-            try
-            {
-                this.brokerUri = brokerUri;
-                this.clientID = clientID;
-
-                if (propsArray != null)
-                {
-                    foreach (object prop in propsArray)
-                    {
-                        string nvp = prop.ToString();
-                        int sepPos = nvp.IndexOf(SEP_NAME_VALUE);
-                        if (sepPos > 0)
-                        {
-                            properties.Add(nvp.Substring(0, sepPos), nvp.Substring(sepPos + 1));
-                        }
-                        else
-                        {
-                            throw new NMSException("Connection property is not in the form \"name:value\" :" + nvp);
-                        }
-                    }
-                }
-            }
-            catch (Exception ex)
-            {
-                Apache.NMS.Tracer.DebugFormat("Exception instantiating AMQP.ConnectionFactory: {0}", ex.Message);
-                throw;
-            }
-        }
-
-        public ConnectionFactory(Uri brokerUri, string clientID, Hashtable propsTable)
-        {
-            Tracer.DebugFormat("Amqp: create connection factory for Uri: {0}", brokerUri.ToString());
-            try
-            {
-                this.brokerUri = brokerUri;
-                this.clientID = clientID;
-
-                if (properties != null)
-                {
-                    foreach (var key in propsTable.Keys)
-                    {
-                        properties.Add(key.ToString(), propsTable[key].ToString());
-                    }
-                }
-            }
-            catch (Exception ex)
-            {
-                Apache.NMS.Tracer.DebugFormat("Exception instantiating AMQP.ConnectionFactory: {0}", ex.Message);
-                throw;
-            }
-        }
-
-        #endregion
-
-        #region IConnectionFactory Members
-
-        /// <summary>
-        /// Creates a new connection to Qpid/Amqp.
-        /// </summary>
-        public IConnection CreateConnection()
-        {
-            return CreateConnection(string.Empty, string.Empty);
-        }
-
-        /// <summary>
-        /// Creates a new connection to Qpid/Amqp.
-        /// </summary>
-        public IConnection CreateConnection(string userName, string password)
-        {
-            Connection connection = new Connection();
-
-            connection.RedeliveryPolicy = this.redeliveryPolicy.Clone() as IRedeliveryPolicy;
-            //connection.ConsumerTransformer = this.consumerTransformer; // TODO:
-            //connection.ProducerTransformer = this.producerTransformer; // TODO:
-            connection.BrokerUri = this.BrokerUri;
-            connection.ClientId = this.clientID;
-            connection.ConnectionProperties = this.properties;
-
-            if (!String.IsNullOrEmpty(userName))
-            {
-                connection.SetConnectionProperty(Connection.USERNAME_OPTION, userName);
-            }
-            if (!String.IsNullOrEmpty(password))
-            {
-                connection.SetConnectionProperty(Connection.PASSWORD_OPTION, password);
-            }
-
-            IConnection ReturnValue = null;
-            ReturnValue = connection;
-
-            return ReturnValue;
-        }
-
-        /// <summary>
-        /// Get/or set the broker Uri.
-        /// </summary>
-        public Uri BrokerUri
-        {
-            get { return brokerUri; }
-            set { brokerUri = value; }
-        }
-
-        /// <summary>
-        /// Get/or set the redelivery policy that new IConnection objects are
-        /// assigned upon creation.
-        /// </summary>
-        public IRedeliveryPolicy RedeliveryPolicy
-        {
-            get { return this.redeliveryPolicy; }
-            set
-            {
-                if (value != null)
-                {
-                    this.redeliveryPolicy = value;
-                }
-            }
-        }
-
-        private ConsumerTransformerDelegate consumerTransformer;
-        public ConsumerTransformerDelegate ConsumerTransformer
-        {
-            get { return this.consumerTransformer; }
-            set { this.consumerTransformer = value; }
-        }
-
-        private ProducerTransformerDelegate producerTransformer;
-        public ProducerTransformerDelegate ProducerTransformer
-        {
-            get { return this.producerTransformer; }
-            set { this.producerTransformer = value; }
-        }
-
-        #endregion
-
-        #region ConnectionProperties Methods
-
-        /// <summary>
-        /// Connection connectionProperties acceessor
-        /// </summary>
-        /// <remarks>This factory does not check for legal property names. Users
-        /// my specify anything they want. Propery name processing happens when
-        /// connections are created and started.</remarks>
-        public StringDictionary ConnectionProperties
-        {
-            get { return properties; }
-            set { properties = value; }
-        }
-
-        /// <summary>
-        /// Test existence of named property
-        /// </summary>
-        /// <param name="name">The name of the connection property to test.</param>
-        /// <returns>Boolean indicating if property exists in setting dictionary.</returns>
-        public bool ConnectionPropertyExists(string name)
-        {
-            return properties.ContainsKey(name);
-        }
-
-        /// <summary>
-        /// Get value of named property
-        /// </summary>
-        /// <param name="name">The name of the connection property to get.</param>
-        /// <returns>string value of property.</returns>
-        /// <remarks>Throws if requested property does not exist.</remarks>
-        public string GetConnectionProperty(string name)
-        {
-            if (properties.ContainsKey(name))
-            {
-                return properties[name];
-            }
-            else
-            {
-                throw new NMSException("Amqp connection property '" + name + "' does not exist");
-            }
-        }
-
-        /// <summary>
-        /// Set value of named property
-        /// </summary>
-        /// <param name="name">The name of the connection property to set.</param>
-        /// <param name="value">The value of the connection property.</param>
-        /// <returns>void</returns>
-        /// <remarks>Existing property values are overwritten. New property values
-        /// are added.</remarks>
-        public void SetConnectionProperty(string name, string value)
-        {
-            if (properties.ContainsKey(name))
-            {
-                properties[name] = value;
-            }
-            else
-            {
-                properties.Add(name, value);
-            }
-        }
-        #endregion
-    }
-}
diff --git a/src/main/csharp/ConnectionMetaData.cs b/src/main/csharp/ConnectionMetaData.cs
deleted file mode 100644
index 2b41640..0000000
--- a/src/main/csharp/ConnectionMetaData.cs
+++ /dev/null
@@ -1,107 +0,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.
- */
-
-using System;
-using System.Reflection;
-
-namespace Apache.NMS.Amqp
-{
-	/// <summary>
-	/// Implements the Connection Meta-Data feature for Apache.NMS.Qpid/Amqp
-	/// </summary>
-	public class ConnectionMetaData : IConnectionMetaData
-	{
-		private int nmsMajorVersion;
-		private int nmsMinorVersion;
-
-		private string nmsProviderName;
-		private string nmsVersion;
-
-		private int providerMajorVersion;
-		private int providerMinorVersion;
-		private string providerVersion;
-
-		private string[] nmsxProperties;
-
-		public ConnectionMetaData()
-		{
-			Assembly self = Assembly.GetExecutingAssembly();
-			AssemblyName asmName = self.GetName();
-
-			this.nmsProviderName = asmName.Name;
-			this.providerMajorVersion = asmName.Version.Major;
-			this.providerMinorVersion = asmName.Version.Minor;
-			this.providerVersion = asmName.Version.ToString();
-
-			this.nmsxProperties = new String[] { };
-
-			foreach(AssemblyName name in self.GetReferencedAssemblies())
-			{
-				if(0 == string.Compare(name.Name, "Apache.NMS", true))
-				{
-					this.nmsMajorVersion = name.Version.Major;
-					this.nmsMinorVersion = name.Version.Minor;
-					this.nmsVersion = name.Version.ToString();
-
-					return;
-				}
-			}
-
-			throw new NMSException("Could not find a reference to the Apache.NMS Assembly.");
-		}
-
-		public int NMSMajorVersion
-		{
-			get { return this.nmsMajorVersion; }
-		}
-
-		public int NMSMinorVersion
-		{
-			get { return this.nmsMinorVersion; }
-		}
-
-		public string NMSProviderName
-		{
-			get { return this.nmsProviderName; }
-		}
-
-		public string NMSVersion
-		{
-			get { return this.nmsVersion; }
-		}
-
-		public string[] NMSXPropertyNames
-		{
-			get { return this.nmsxProperties; }
-		}
-
-		public int ProviderMajorVersion
-		{
-			get { return this.providerMajorVersion; }
-		}
-
-		public int ProviderMinorVersion
-		{
-			get { return this.providerMinorVersion; }
-		}
-
-		public string ProviderVersion
-		{
-			get { return this.providerVersion; }
-		}
-	}
-}
diff --git a/src/main/csharp/DefaultMessageConverter.cs b/src/main/csharp/DefaultMessageConverter.cs
deleted file mode 100644
index 0c53e76..0000000
--- a/src/main/csharp/DefaultMessageConverter.cs
+++ /dev/null
@@ -1,365 +0,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.
- */
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
-using System.IO;
-using System.Text;
-using Apache.NMS.Util;
-using Org.Apache.Qpid.Messaging;
-
-namespace Apache.NMS.Amqp
-{
-    public enum NMSMessageType
-    {
-        BaseMessage,
-        TextMessage,
-        BytesMessage,
-        ObjectMessage,
-        MapMessage,
-        StreamMessage
-    }
-
-    public class DefaultMessageConverter : IMessageConverter
-    {
-        #region IMessageConverter Members
-        // NMS Message                       AMQP Message
-        // ================================  =================
-        // string          NMSCorrelationID  string     CorrelationId
-        // MsgDeliveryMode NMSDeliveryMode   bool       Durable
-        // IDestination    NMSDestination
-        // string          MNSMessageId      string     MessageId
-        // MsgPriority     NMSPriority       byte       Priority
-        // bool            NMSRedelivered    bool       Redelivered
-        // IDestination    NMSReplyTo        Address    ReplyTo
-        // DateTime        NMSTimestamp
-        // TimeSpan        NMSTimeToLive     Duration   Ttl
-        // string          NMSType           string     ContentType
-        // IPrimitiveMap   Properties        Dictionary Properties
-        //                                   string     Subject
-        //                                   string     UserId
-        //
-        public virtual Message ToAmqpMessage(IMessage message)
-        {
-            Message amqpMessage = CreateAmqpMessage(message);
-
-            if (null != message.NMSCorrelationID)
-            {
-                amqpMessage.CorrelationId = message.NMSCorrelationID;
-            }
-            amqpMessage.Durable = (message.NMSDeliveryMode == MsgDeliveryMode.Persistent);
-            if (null != message.NMSMessageId)
-            {
-                amqpMessage.MessageId = message.NMSMessageId;
-            }
-            amqpMessage.Priority = ToAmqpMessagePriority(message.NMSPriority);
-            amqpMessage.Redelivered = message.NMSRedelivered;
-            if (null != message.NMSReplyTo)
-            {
-                amqpMessage.ReplyTo = ToAmqpAddress(message.NMSReplyTo);
-            }
-
-            if (message.NMSTimeToLive != TimeSpan.Zero)
-            {
-                amqpMessage.Ttl = ToQpidDuration(message.NMSTimeToLive);
-            }
-
-            if (null != message.NMSType)
-            {
-                amqpMessage.ContentType = message.NMSType;
-            }
-
-            amqpMessage.Properties = FromNmsPrimitiveMap(message.Properties);
-
-            // TODO: NMSDestination, Amqp.Subect, Amqp.UserId
-            return amqpMessage;
-        }
-
-        //
-        public virtual IMessage ToNmsMessage(Message message)
-        {
-            BaseMessage answer = CreateNmsMessage(message);
-
-            try
-            {
-                answer.NMSCorrelationID = message.CorrelationId;
-                answer.NMSDeliveryMode = (message.Durable ? MsgDeliveryMode.Persistent : MsgDeliveryMode.NonPersistent);
-                answer.NMSMessageId = message.MessageId;
-                answer.NMSPriority = ToNmsPriority(message.Priority);
-                answer.NMSRedelivered = message.Redelivered;
-                answer.NMSReplyTo = ToNmsDestination(message.ReplyTo);
-                answer.NMSTimeToLive = ToNMSTimespan(message.Ttl);
-                answer.NMSType = message.ContentType;
-                SetNmsPrimitiveMap(answer.Properties, message.Properties);
-
-                // TODO: NMSDestination, NMSTimestamp, Properties
-            }
-            catch (InvalidOperationException)
-            {
-            }
-
-            return answer;
-        }
-        #endregion
-
-        #region MessagePriority Methods
-        //
-        private static byte ToAmqpMessagePriority(MsgPriority msgPriority)
-        {
-            return (byte)msgPriority;
-        }
-
-        //
-        private static MsgPriority ToNmsPriority(byte qpidMsgPriority)
-        {
-            if (qpidMsgPriority > (byte)MsgPriority.Highest)
-            {
-                return MsgPriority.Highest;
-            }
-            return (MsgPriority)qpidMsgPriority;
-        }
-        #endregion
-
-        #region Duration Methods
-        //
-        public static Duration ToQpidDuration(TimeSpan timespan)
-        {
-            if (timespan.TotalMilliseconds <= 0)
-            {
-                Duration result = DurationConstants.IMMEDIATE;
-                return result;
-            }
-            else if (timespan.TotalMilliseconds > (Double)DurationConstants.FORVER.Milliseconds)
-            {
-                Duration result = DurationConstants.FORVER;
-                return result;
-            }
-            else
-            {
-                Duration result = new Duration((UInt64)timespan.TotalMilliseconds);
-                return result;
-            }
-        }
-
-        //
-        public static TimeSpan ToNMSTimespan(Duration duration)
-        {
-            if (duration.Milliseconds > Int64.MaxValue)
-            {
-                TimeSpan result = new TimeSpan(Int64.MaxValue);
-                return result;
-            }
-            else
-            {
-                TimeSpan result = new TimeSpan((Int64)duration.Milliseconds);
-                return result;
-            }
-        }
-        #endregion
-
-        #region MessageBody Conversion Methods
-        protected virtual Message CreateAmqpMessage(IMessage message)
-        {
-            if (message is TextMessage)
-            {
-                TextMessage textMessage = message as TextMessage;
-                Message result = new Message(textMessage.Text);
-                return result;
-            }
-            else if (message is BytesMessage)
-            {
-                BytesMessage bytesMessage = message as BytesMessage;
-                Message result = new Message(bytesMessage.Content, 0, bytesMessage.Content.Length);
-                return result;
-            }
-            else if (message is ObjectMessage)
-            {
-                ObjectMessage objectMessage = message as ObjectMessage;
-                Collection<object> objs = new Collection<object>();
-                objs = ConvertObjectToAmqpList(objectMessage.Body);
-
-                Message result = new Message(objs);
-                return result;
-            }
-            else if (message is MapMessage)
-            {
-                MapMessage mapMessage = message as MapMessage;
-                PrimitiveMap mapBody = mapMessage.Body as PrimitiveMap;
-                Dictionary<string, object> dict = FromNmsPrimitiveMap(mapBody);
-
-                Message result = new Message(dict);
-                return result;
-            }
-            else if (message is StreamMessage)
-            {
-                StreamMessage streamMessage = message as StreamMessage;
-                Message result = new Message(streamMessage.Content, 0, streamMessage.Content.Length);
-                return result;
-            }
-            else if (message is BaseMessage)
-            {
-                Message result = new Message();
-                return result;
-            }
-            else
-            {
-                throw new Exception("unhandled message type");
-            }
-        }
-
-        protected virtual BaseMessage CreateNmsMessage(Message message)
-        {
-            BaseMessage result = null;
-
-            if ("amqp/map" == message.ContentType)
-            {
-                Dictionary<string, object> dict = new Dictionary<string,object>();
-                message.GetContent(dict);
-                PrimitiveMap bodyMap = new PrimitiveMap();
-                SetNmsPrimitiveMap(bodyMap, dict);
-                MapMessage mapMessage = new MapMessage();
-                mapMessage.Body = bodyMap;
-                result = mapMessage;
-            }
-            else if ("amqp/list" == message.ContentType)
-            {
-                Collection<object> coll = new Collection<object>();
-                message.GetContent(coll);
-                ObjectMessage objMessage = new ObjectMessage();
-                objMessage.Body = ConvertAmqpListToObject(coll);
-                result = objMessage;
-            }
-            else
-            {
-                TextMessage textMessage = new TextMessage();
-                textMessage.Text = message.GetContent();
-                result = textMessage;
-            }
-
-            return result;
-        }
-        #endregion
-
-        #region Address/Destination Conversion Methods
-        public Address ToAmqpAddress(IDestination destination)
-        {
-            if (null == destination)
-            {
-                return null;
-            }
-
-            return new Address((destination as Destination).Path);
-        }
-
-        protected virtual IDestination ToNmsDestination(Address destinationQueue)
-        {
-            if (null == destinationQueue)
-            {
-                return null;
-            }
-
-            return new Queue(destinationQueue.ToString());
-        }
-        #endregion
-
-        #region PrimitiveMap Conversion Methods
-
-        //
-        public void SetNmsPrimitiveMap(IPrimitiveMap map, Dictionary<string, object> dict)
-        {
-            
-            // TODO: lock?
-            map.Clear();
-            foreach (System.Collections.Generic.KeyValuePair
-                    <string, object> kvp in dict)
-            {
-                map[kvp.Key] = kvp.Value;
-            }
-        }
-
-        //
-        public Dictionary<string, object> FromNmsPrimitiveMap(IPrimitiveMap pm)
-        {
-            Dictionary<string, object> dict = new Dictionary<string,object>();
-
-            // TODO: lock?
-            ICollection keys = pm.Keys;
-            foreach (object key in keys)
-            {
-                dict.Add(key.ToString(), pm[key.ToString()]);
-            }
-            return dict;
-        }
-        #endregion
-
-        #region AMQP List Conversion Methods
-
-        /// <summary>
-        /// Convert NMS Object message body into form used by amqp/list
-        /// </summary>
-        /// <param name="objectMessageBody">The generic object from NMS</param>
-        /// <returns>A collection of supported AMQP primitive types.
-        /// Throws if objectMessageBody is not an array.</returns>
-        public Collection<object> ConvertObjectToAmqpList(Object objectMessageBody)
-        {
-            Collection<object> result = null;
-
-            if (objectMessageBody.GetType().IsArray)
-            {
-                result = new Collection<object>();
-                Array valueArray = (Array)objectMessageBody;
-                foreach (object val in valueArray)
-                {
-                    result.Add(val);
-                }
-            }
-            else
-            {
-                throw new NMSException("NMS ObjectMessage body must be an array");
-            }
-            return result;
-        }
-
-
-        /// <summary>
-        /// Convert amqp/list to  NMS Object message body
-        /// </summary>
-        /// <param name="amqpList">A collection of AMQP primitive types</param>
-        /// <returns>An array object holding the AMPQ list.</returns>
-        public Object ConvertAmqpListToObject(Collection<object> amqpList)
-        {
-            object result = new object();
-
-            if (amqpList.Count > 0)
-            {
-                Type t = amqpList[0].GetType();
-
-                Array objs = Array.CreateInstance(t, amqpList.Count);
-                for (int i = 0; i < amqpList.Count; i++)
-                {
-                    objs.SetValue(amqpList[i], i);
-                }
-
-                result = objs;
-            }
-            return result;
-        }
-
-        #endregion
-    }
-}
diff --git a/src/main/csharp/Destination.cs b/src/main/csharp/Destination.cs
deleted file mode 100644
index 254ce35..0000000
--- a/src/main/csharp/Destination.cs
+++ /dev/null
@@ -1,279 +0,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.
- */
-using System;
-using System.Collections.Generic;
-using Org.Apache.Qpid.Messaging;
-
-// Typedef for options map
-using OptionsMap = System.Collections.Generic.Dictionary<System.String, System.Object>;
-
-namespace Apache.NMS.Amqp
-{
-
-    /// <summary>
-    /// Summary description for Destination.
-    /// 
-    /// A Destination in Amqp is contained in a Qpid.Messaging.Address.
-    /// Destination constructors:
-    /// * from strings in the form:
-    ///   name[/subject];[{keyword:value, ...}]
-    ///   Where:
-    ///     name - is the simple name of the queue or topic
-    ///     subject - is the associated subject
-    ///     options are supplied in a map of keyword:value pairs
-    /// * from (string, string, OptionsMap)
-    /// * from other Destinations of the same type
-    /// Properties:
-    ///   Path    - the full ToStr() value of the Messaging.Address.
-    ///   Name    - Messaging.Address name
-    ///   Subject - Messaging.Address subject
-    ///   Options - Messaging.Address OptionsMap dictionary
-    ///   Address - the whole Messaging.Address
-    /// See http://qpid.apache.org/releases/qpid-0.24/programming/book/
-    /// for more information about the Qpid Messaging API and Addresses
-    /// </summary>
-    public abstract class Destination : IDestination
-    {
-        private Address qpidAddress = null;
-
-        /**
-         * The Default Constructor
-         */
-        protected Destination()
-        {
-            qpidAddress = new Address();
-        }
-
-        /**
-         * Construct the Destination with a defined physical name;
-         *
-         * @param name
-         */
-        protected Destination(String name)
-        {
-            qpidAddress = new Address(name);
-        }
-
-        /**
-         * Construct the Destination with name, subject, and options
-         * 
-         * @param name
-         * @param subject
-         * @param options dictionary
-         */
-        protected Destination(String name, String subject, OptionsMap options)
-        {
-            qpidAddress = new Address(name, subject, options);
-        }
-
-
-        /**
-         * Construct the Destination with name, subject, options, and type
-         * 
-         * @param name
-         * @param subject
-         * @param options dictionary
-         * @param type
-         */
-        protected Destination(String name, String subject, OptionsMap options, String type)
-        {
-            qpidAddress = new Address(name, subject, options, type);
-        }
-
-
-        protected Destination(Destination other)
-        {
-            qpidAddress = new Org.Apache.Qpid.Messaging.Address(other.Address);
-        }
-
-		/**
-		 * Dispose of the destination object.
-		 */
-		public void Dispose()
-		{
-		}
-
-        /**
-         * Path property
-         * get - returns Messaging.Address full string
-         * set - creates new Messaging.Address from string
-         */
-        public String Path
-        {
-            get { return qpidAddress.ToStr(); }
-            set
-            {
-                qpidAddress = new Address(value);
-            }
-        }
-
-
-        public bool IsTopic
-        {
-            get
-            {
-                return DestinationType == DestinationType.Topic
-                    || DestinationType == DestinationType.TemporaryTopic;
-            }
-        }
-
-        public bool IsQueue
-        {
-            get
-            {
-                return !IsTopic;
-            }
-        }
-
-
-        public bool IsTemporary
-        {
-            get
-            {
-                return DestinationType == DestinationType.TemporaryQueue
-                    || DestinationType == DestinationType.TemporaryTopic;
-            }
-        }
-
-
-        /**
-         * @return string representation of this instance
-         */
-        public override String ToString()
-        {
-            return Path;
-        }
-
-        
-        /**
-         * @return hashCode for this instance
-         * TODO: figure this out
-         */
-        public override int GetHashCode()
-        {
-            int answer = 37;
-
-            if(!String.IsNullOrEmpty(qpidAddress.Name))
-            {
-                answer = qpidAddress.Name.GetHashCode();
-            }
-            if(IsTopic)
-            {
-                answer ^= 0xfabfab;
-            }
-            return answer;
-        }
-
-        
-        /**
-         * if the object passed in is equivalent, return true
-         *
-         * @param obj the object to compare
-         * @return true if this instance and obj are equivalent
-         */
-        public override bool Equals(Object obj)
-        {
-            bool result = this == obj;
-            if(!result && obj != null && obj is Destination)
-            {
-                Destination other = (Destination) obj;
-                result = this.DestinationType == other.DestinationType;
-                if (!result)
-                {
-                    String myPath = qpidAddress.ToStr();
-                    result = myPath.Equals(other.Path);
-                }
-            }
-            return result;
-        }
-
-        /**
-         * Qpid Address accessor
-         * Name property
-         */
-        public String Name
-        {
-            get { return qpidAddress.Name; }
-            set { qpidAddress.Name = value; }
-        }
-
-        /**
-         * Qpid Address accessor
-         * Subject property
-         */
-        public String Subject
-        {
-            get { return qpidAddress.Subject; }
-            set { qpidAddress.Subject = value; }
-        }
-
-        /**
-         * Qpid Address accessor
-         * Options property
-         */
-        public OptionsMap Options
-        {
-            get { return qpidAddress.Options; }
-            set { qpidAddress.Options = value; }
-        }
-
-
-        /**
-         * Qpid Address accessor
-         * Address property
-         */
-        public Org.Apache.Qpid.Messaging.Address Address
-        {
-            get { return qpidAddress; }
-            set
-            {
-                string type = qpidAddress.Type;
-                if (!type.Equals(value.Type))
-                {
-                    throw new NMSException("Cannot change Destination type through Address assignment");
-                }
-                qpidAddress = value;
-            }
-        }
-
-
-        /**
-         * Factory method to create a child destination
-         * @param name
-         * @return the created Destination
-         */
-        public abstract Destination CreateDestination(String name);
-
-
-        /**
-         * Factory method to create a child destination
-         * @param name
-         * @param subject
-         * @param options variant map
-         * @return the created Destination
-         */
-        public abstract Destination CreateDestination(String name, String subject, OptionsMap options);
-
-
-        public abstract DestinationType DestinationType
-        {
-            get;
-        }
-
-    }
-}
-
diff --git a/src/main/csharp/IMessageConverter.cs b/src/main/csharp/IMessageConverter.cs
deleted file mode 100644
index fb131e0..0000000
--- a/src/main/csharp/IMessageConverter.cs
+++ /dev/null
@@ -1,27 +0,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.
- */
-using Org.Apache.Qpid.Messaging;
-
-namespace Apache.NMS.Amqp
-{
-    public interface IMessageConverter
-    {
-
-        Message ToAmqpMessage(IMessage message);
-        IMessage ToNmsMessage(Message message);
-    }
-}
diff --git a/src/main/csharp/MapMessage.cs b/src/main/csharp/MapMessage.cs
deleted file mode 100644
index b31be50..0000000
--- a/src/main/csharp/MapMessage.cs
+++ /dev/null
@@ -1,51 +0,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.
- */
-
-using System.Collections.Generic;
-using Apache.NMS.Util;
-
-namespace Apache.NMS.Amqp
-{
-    public class MapMessage : BaseMessage, IMapMessage
-    {
-        private IPrimitiveMap body = new PrimitiveMap();
-
-        public override object Clone()
-        {
-            MapMessage mm = (MapMessage)base.Clone();
-            DefaultMessageConverter msgConverter = new DefaultMessageConverter();
-            Dictionary<string, object> properties = new Dictionary<string, object>();
-            properties = msgConverter.FromNmsPrimitiveMap((PrimitiveMap)body);
-            msgConverter.SetNmsPrimitiveMap(mm.body, properties);
-            return (MapMessage)mm;
-        }
-
-        public override void ClearBody()
-        {
-            base.ClearBody();
-
-            body.Clear();
-        }
-
-        public IPrimitiveMap Body
-        {
-            get { return body; }
-            set { body = value; }
-        }
-    }
-}
-
diff --git a/src/main/csharp/MessageConsumer.cs b/src/main/csharp/MessageConsumer.cs
deleted file mode 100644
index e45ca3b..0000000
--- a/src/main/csharp/MessageConsumer.cs
+++ /dev/null
@@ -1,316 +0,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.
- */
-
-using System;
-using System.Threading;
-using Apache.NMS.Util;
-using Org.Apache.Qpid.Messaging;
-
-namespace Apache.NMS.Amqp
-{
-    /// <summary>
-    /// An object capable of receiving messages from some destination
-    /// </summary>
-    public class MessageConsumer : IMessageConsumer
-    {
-        /// <summary>
-        /// Private object used for synchronization, instead of public "this"
-        /// </summary>
-        private readonly object myLock = new object();
-
-        protected TimeSpan zeroTimeout = new TimeSpan(0);
-
-        private readonly Session session;
-        private readonly int id;
-        private readonly Destination destination;
-        private Destination replyToDestination;
-        private readonly AcknowledgementMode acknowledgementMode;
-        private event MessageListener listener;
-        private int listenerCount = 0;
-        private Thread asyncDeliveryThread = null;
-        private AutoResetEvent pause = new AutoResetEvent(false);
-        private Atomic<bool> asyncDelivery = new Atomic<bool>(false);
-
-        private readonly Atomic<bool> started = new Atomic<bool>(false); 
-        private Org.Apache.Qpid.Messaging.Receiver qpidReceiver = null;
-
-        private ConsumerTransformerDelegate consumerTransformer;
-        public ConsumerTransformerDelegate ConsumerTransformer
-        {
-            get { return this.consumerTransformer; }
-            set { this.consumerTransformer = value; }
-        }
-
-        public MessageConsumer(Session session, int consumerId, Destination dest, AcknowledgementMode acknowledgementMode)
-        {
-            this.session = session;
-            this.id = consumerId;
-            this.destination = dest;
-            this.acknowledgementMode = acknowledgementMode;
-        }
-
-        #region IStartable Methods
-        public void Start()
-        {
-            // Don't try creating receiver if session not yet up
-            if (!session.IsStarted)
-            {
-                throw new SessionClosedException();
-            }
-
-            if (started.CompareAndSet(false, true))
-            {
-                try
-                {
-                    // Create qpid receiver
-                    Tracer.DebugFormat("Start Consumer Id = " + ConsumerId.ToString());
-                    if (qpidReceiver == null)
-                    {
-                        qpidReceiver = session.CreateQpidReceiver(destination.Address);
-                        // Recover replyTo address from qpid receiver and set as the
-                        // replyTo destination for received messages.
-                        Address replyTo = qpidReceiver.GetAddress();
-                        if (destination.IsQueue)
-                        {
-                            Queue queue = new Queue(replyTo.Name, replyTo.Subject, replyTo.Options);
-                            replyToDestination = (Destination)queue;
-                        }
-                        else if (destination.IsTopic)
-                        {
-                            Topic topic = new Topic(replyTo.Name, replyTo.Subject, replyTo.Options);
-                            replyToDestination = (Destination)topic;
-                        }
-                    }
-                }
-                catch (Org.Apache.Qpid.Messaging.QpidException e)
-                {
-                    throw new NMSException("Failed to create Qpid Receiver : " + e.Message);
-                }
-            }
-        }
-
-        public bool IsStarted
-        {
-            get { return started.Value; }
-        }
-        #endregion
-
-        #region IStoppable Methods
-        public void Stop()
-        {
-            if (started.CompareAndSet(true, false))
-            {
-                try
-                {
-                    Tracer.DebugFormat("Stop Consumer Id = " + ConsumerId);
-                    qpidReceiver.Close();
-                    qpidReceiver.Dispose();
-                    qpidReceiver = null;
-                }
-                catch (Org.Apache.Qpid.Messaging.QpidException e)
-                {
-                    throw new NMSException("Failed to close consumer with Id " + ConsumerId.ToString() + " : " + e.Message);
-                }
-            }
-        }
-        #endregion
-
-        public event MessageListener Listener
-        {
-            add
-            {
-                listener += value;
-                listenerCount++;
-                StartAsyncDelivery();
-            }
-
-            remove
-            {
-                if(listenerCount > 0)
-                {
-                    listener -= value;
-                    listenerCount--;
-                }
-
-                if(0 == listenerCount)
-                {
-                    StopAsyncDelivery();
-                }
-            }
-        }
-
-
-        /// <summary>
-        /// Fetch a message from Qpid Receiver.
-        /// Will wait FOREVER.
-        /// </summary>
-        /// <returns>NMS message or null if Fetch fails</returns>
-        public IMessage Receive()
-        {
-            return ReceiveQpid(DurationConstants.FORVER);
-        }
-
-
-        /// <summary>
-        /// Fetch a message from Qpid Receiver
-        /// Will wait for given timespan before abandoning the Fetch.
-        /// </summary>
-        /// <param name="timeout"></param>
-        /// <returns>>NMS message or null if Fetch fails or times out</returns>
-        public IMessage Receive(TimeSpan timeout)
-        {
-            return ReceiveQpid(DefaultMessageConverter.ToQpidDuration(timeout));
-        }
-
-
-        /// <summary>
-        /// Fetch a message from Qpid Receiver
-        /// Returns from the Fetch immediately.
-        /// </summary>
-        /// <returns>NMS message or null if none was pending</returns>
-        public IMessage ReceiveNoWait()
-        {
-            return ReceiveQpid(DurationConstants.IMMEDIATE);
-        }
-
-
-
-        private IMessage ReceiveQpid(Org.Apache.Qpid.Messaging.Duration timeout)
-        {
-            IMessage nmsMessage = null;
-
-            Message qpidMessage = new Message();
-            if (qpidReceiver.Fetch(ref qpidMessage, timeout))
-            {
-                nmsMessage = session.MessageConverter.ToNmsMessage(qpidMessage);
-                nmsMessage.NMSReplyTo = replyToDestination;
-                if (this.session.IsAutoAcknowledge)
-                {
-                    this.session.Acknowledge();
-                }
-            }
-            return nmsMessage;
-        }
-
-        
-        public void Dispose()
-        {
-            Close();
-        }
-
-        public void Close()
-        {
-            StopAsyncDelivery();
-            Stop();
-        }
-
-        protected virtual void StopAsyncDelivery()
-        {
-            if(asyncDelivery.CompareAndSet(true, false))
-            {
-                if(null != asyncDeliveryThread)
-                {
-                    Tracer.Info("Stopping async delivery thread.");
-                    pause.Set();
-                    if(!asyncDeliveryThread.Join(10000))
-                    {
-                        Tracer.Info("Aborting async delivery thread.");
-                        asyncDeliveryThread.Abort();
-                    }
-
-                    asyncDeliveryThread = null;
-                    Tracer.Info("Async delivery thread stopped.");
-                }
-            }
-        }
-
-        protected virtual void StartAsyncDelivery()
-        {
-            if(asyncDelivery.CompareAndSet(false, true))
-            {
-                asyncDeliveryThread = new Thread(new ThreadStart(DispatchLoop));
-                asyncDeliveryThread.Name = "Message Consumer Dispatch: " + asyncDeliveryThread.ManagedThreadId.ToString();
-                asyncDeliveryThread.IsBackground = true;
-                asyncDeliveryThread.Start();
-            }
-        }
-
-        protected virtual void DispatchLoop()
-        {
-            Tracer.Info("Starting dispatcher thread consumer: " + this);
-            while(asyncDelivery.Value)
-            {
-                try
-                {
-                    IMessage message = Receive();
-                    if(asyncDelivery.Value && message != null)
-                    {
-                        try
-                        {
-                            listener(message);
-                        }
-                        catch(Exception e)
-                        {
-                            HandleAsyncException(e);
-                        }
-                    }
-                }
-                catch(ThreadAbortException ex)
-                {
-                    Tracer.InfoFormat("Thread abort received in thread: {0} : {1}", this, ex.Message);
-                    break;
-                }
-                catch(Exception ex)
-                {
-                    Tracer.ErrorFormat("Exception while receiving message in thread: {0} : {1}", this, ex.Message);
-                }
-            }
-            Tracer.Info("Stopping dispatcher thread consumer: " + this);
-        }
-
-        protected virtual void HandleAsyncException(Exception e)
-        {
-            session.Connection.HandleException(e);
-        }
-
-        protected virtual IMessage ToNmsMessage(Message message)
-        {
-            if(message == null)
-            {
-                return null;
-            }
-
-            IMessage converted = session.MessageConverter.ToNmsMessage(message);
-
-            if(this.ConsumerTransformer != null)
-            {
-                IMessage newMessage = ConsumerTransformer(this.session, this, converted);
-                if(newMessage != null)
-                {
-                    converted = newMessage;
-                }
-            }
-
-            return converted;
-        }
-
-        public int ConsumerId
-        {
-            get { return id; }
-        }
-    }
-}
diff --git a/src/main/csharp/MessageProducer.cs b/src/main/csharp/MessageProducer.cs
deleted file mode 100644
index 7ac633a..0000000
--- a/src/main/csharp/MessageProducer.cs
+++ /dev/null
@@ -1,270 +0,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.
- */
-
-using System;
-using System.Threading;
-using Apache.NMS.Util;
-using Org.Apache.Qpid.Messaging;
-
-namespace Apache.NMS.Amqp
-{
-    /// <summary>
-    /// An object capable of sending messages to some destination
-    /// </summary>
-    public class MessageProducer : IMessageProducer
-    {
-        /// <summary>
-        /// Private object used for synchronization, instead of public "this"
-        /// </summary>
-        private readonly object myLock = new object();
-
-        private readonly Session session;
-        private readonly int id; 
-        private Destination destination;
-
-        //private long messageCounter;
-        private MsgDeliveryMode deliveryMode;
-        private TimeSpan timeToLive;
-        private MsgPriority priority;
-        private bool disableMessageID;
-        private bool disableMessageTimestamp;
-
-        //private IMessageConverter messageConverter;
-
-        private readonly Atomic<bool> started = new Atomic<bool>(false);
-        private Org.Apache.Qpid.Messaging.Sender qpidSender = null;
-
-        private ProducerTransformerDelegate producerTransformer;
-        public ProducerTransformerDelegate ProducerTransformer
-        {
-            get { return this.producerTransformer; }
-            set { this.producerTransformer = value; }
-        }
-
-        public MessageProducer(Session session, int producerId, Destination destination)
-        {
-            this.session = session;
-            this.id = producerId;
-            this.destination = destination;
-        }
-
-        #region IStartable Methods
-        public void Start()
-        {
-            // Don't try creating session if connection not yet up
-            if (!session.IsStarted)
-            {
-                throw new SessionClosedException();
-            }
-
-            if (started.CompareAndSet(false, true))
-            {
-                try
-                {
-                    // Create qpid sender
-                    Tracer.DebugFormat("Start Producer Id = " + ProducerId.ToString()); 
-                    if (qpidSender == null)
-                    {
-                        qpidSender = session.CreateQpidSender(destination.Address);
-                    }
-                }
-                catch (Org.Apache.Qpid.Messaging.QpidException e)
-                {
-                    throw new NMSException("Failed to create Qpid Sender : " + e.Message);
-                }
-            }
-        }
-
-        public bool IsStarted
-        {
-            get { return started.Value; }
-        }
-        #endregion
-
-        #region IStoppable Methods
-        public void Stop()
-        {
-            if (started.CompareAndSet(true, false))
-            {
-                try
-                {
-                    Tracer.DebugFormat("Stop  Producer Id = " + ProducerId);
-                    qpidSender.Close();
-                    qpidSender.Dispose();
-                    qpidSender = null;
-                }
-                catch (Org.Apache.Qpid.Messaging.QpidException e)
-                {
-                    throw new NMSException("Failed to close producer with Id " + ProducerId.ToString() + " : " + e.Message);
-                }
-            }
-        }
-        #endregion
-
-        public void Send(IMessage message)
-        {
-            Send(Destination, message);
-        }
-
-        public void Send(IMessage message, MsgDeliveryMode deliveryMode, MsgPriority priority, TimeSpan timeToLive)
-        {
-            Send(Destination, message, deliveryMode, priority, timeToLive);
-        }
-
-        public void Send(IDestination destination, IMessage message)
-        {
-            Send(destination, message, DeliveryMode, Priority, TimeToLive);
-        }
-
-        public void Send(IDestination destination, IMessage message, MsgDeliveryMode deliveryMode, MsgPriority priority, TimeSpan timeToLive)
-        {
-            try
-            {
-                if (this.ProducerTransformer != null)
-                {
-                    IMessage transformed = this.ProducerTransformer(this.session, this, message);
-                    if (transformed != null)
-                    {
-                        message = transformed;
-                    }
-                }
-
-                message.NMSDeliveryMode = deliveryMode;
-                message.NMSTimeToLive = timeToLive;
-                message.NMSPriority = priority;
-                if (!DisableMessageTimestamp)
-                {
-                    message.NMSTimestamp = DateTime.UtcNow;
-                }
-
-                if (!DisableMessageID)
-                {
-                    // TODO: message.NMSMessageId =
-                }
-
-                // Convert the Message into a Amqp message
-                Message msg = session.MessageConverter.ToAmqpMessage(message);
-
-                qpidSender.Send(msg);
-            }
-            catch (Exception e)
-            {
-                throw new NMSException(e.Message + ": " /* TODO: + dest */, e);
-            }
-        }
-
-        public void Close()
-        {
-            Stop();
-        }
-
-        public void Dispose()
-        {
-            Close();
-        }
-
-        public IMessage CreateMessage()
-        {
-            return session.CreateMessage();
-        }
-
-        public ITextMessage CreateTextMessage()
-        {
-            return session.CreateTextMessage();
-        }
-
-        public ITextMessage CreateTextMessage(String text)
-        {
-            return session.CreateTextMessage(text);
-        }
-
-        public IMapMessage CreateMapMessage()
-        {
-            return session.CreateMapMessage();
-        }
-
-        public IObjectMessage CreateObjectMessage(Object body)
-        {
-            return session.CreateObjectMessage(body);
-        }
-
-        public IBytesMessage CreateBytesMessage()
-        {
-            return session.CreateBytesMessage();
-        }
-
-        public IBytesMessage CreateBytesMessage(byte[] body)
-        {
-            return session.CreateBytesMessage(body);
-        }
-
-        public IStreamMessage CreateStreamMessage()
-        {
-            return session.CreateStreamMessage();
-        }
-
-        public MsgDeliveryMode DeliveryMode
-        {
-            get { return deliveryMode; }
-            set { deliveryMode = value; }
-        }
-
-        public TimeSpan TimeToLive
-        {
-            get { return timeToLive; }
-            set { timeToLive = value; }
-        }
-
-        /// <summary>
-        /// The default timeout for network requests.
-        /// </summary>
-        public TimeSpan RequestTimeout
-        {
-            get { return NMSConstants.defaultRequestTimeout; }
-            set { }
-        }
-
-        public IDestination Destination
-        {
-            get { return destination; }
-            set { destination = (Destination) value; }
-        }
-
-        public MsgPriority Priority
-        {
-            get { return priority; }
-            set { priority = value; }
-        }
-
-        public bool DisableMessageID
-        {
-            get { return disableMessageID; }
-            set { disableMessageID = value; }
-        }
-
-        public bool DisableMessageTimestamp
-        {
-            get { return disableMessageTimestamp; }
-            set { disableMessageTimestamp = value; }
-        }
-
-        public int ProducerId
-        {
-            get { return id; }
-        }
-    }
-}
diff --git a/src/main/csharp/ObjectMessage.cs b/src/main/csharp/ObjectMessage.cs
deleted file mode 100644
index 8935d41..0000000
--- a/src/main/csharp/ObjectMessage.cs
+++ /dev/null
@@ -1,90 +0,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.
- */
-
-using System.IO;
-
-#if !(PocketPC||NETCF||NETCF_2_0)
-using System.Runtime.Serialization;
-using System.Runtime.Serialization.Formatters.Binary;
-#endif
-
-// TODO: Any support
-
-namespace Apache.NMS.Amqp
-{
-    public class ObjectMessage : BaseMessage, IObjectMessage
-    {
-        private object body;
-#if !(PocketPC||NETCF||NETCF_2_0)
-        private IFormatter formatter;
-#endif
-
-        public ObjectMessage()
-        {
-        }
-
-        public ObjectMessage(object body)
-        {
-            this.body = body;
-        }
-
-        public object Body
-        {
-            get
-            {
-#if !(PocketPC||NETCF||NETCF_2_0)
-                if(body == null)
-                {
-                    body = Formatter.Deserialize(new MemoryStream(Content));
-                }
-#else
-#endif
-                return body;
-            }
-
-            set
-            {
-#if !(PocketPC||NETCF||NETCF_2_0)
-                body = value;
-#else
-                throw new NotImplementedException();
-#endif
-            }
-        }
-
-
-#if !(PocketPC||NETCF||NETCF_2_0)
-        public IFormatter Formatter
-        {
-            get
-            {
-                if(formatter == null)
-                {
-                    formatter = new BinaryFormatter();
-                }
-                return formatter;
-            }
-
-            set
-            {
-                formatter = value;
-            }
-        }
-
-#endif
-    }
-}
diff --git a/src/main/csharp/Queue.cs b/src/main/csharp/Queue.cs
deleted file mode 100644
index 463f341..0000000
--- a/src/main/csharp/Queue.cs
+++ /dev/null
@@ -1,71 +0,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.
- */
-using System;
-
-// Typedef for options map
-using OptionsMap = System.Collections.Generic.Dictionary<System.String, System.Object>;
-
-namespace Apache.NMS.Amqp
-{
-
-    /// <summary>
-    /// Summary description for Queue.
-    /// </summary>
-    public class Queue : Destination, IQueue
-    {
-
-        public Queue()
-            : base()
-        {
-        }
-
-        public Queue(String name)
-            : base(name)
-        {
-        }
-
-        public Queue(String name, string subject, OptionsMap options)
-            : base(name, subject, options, "queue")
-        {
-        }
-
-        override public DestinationType DestinationType
-        {
-            get
-            {
-                return DestinationType.Queue;
-            }
-        }
-
-        public String QueueName
-        {
-            get { return Path; }
-        }
-
-
-        public override Destination CreateDestination(String name)
-        {
-            return new Queue(name);
-        }
-
-        public override Destination CreateDestination(String name, string subject, OptionsMap options)
-        {
-            return new Queue(name, subject, options);
-        }
-    }
-}
-
diff --git a/src/main/csharp/Session.cs b/src/main/csharp/Session.cs
deleted file mode 100644
index 736b4ef..0000000
--- a/src/main/csharp/Session.cs
+++ /dev/null
@@ -1,659 +0,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.
- */
-using System;
-using System.Collections;
-using System.Threading;
-using Apache.NMS.Util;
-using Org.Apache.Qpid.Messaging;
-
-// Typedef for options map
-using OptionsMap = System.Collections.Generic.Dictionary<System.String, System.Object>;
-
-namespace Apache.NMS.Amqp
-{
-    /// <summary>
-    /// Amqp provider of ISession
-    /// </summary>
-    public class Session : ISession, IStartable, IStoppable
-    {
-        /// <summary>
-        /// Private object used for synchronization, instead of public "this"
-        /// </summary>
-        private readonly object myLock = new object();
-
-        private readonly IDictionary consumers = Hashtable.Synchronized(new Hashtable());
-        private readonly IDictionary producers = Hashtable.Synchronized(new Hashtable());
-
-        private Connection connection;
-        private AcknowledgementMode acknowledgementMode;
-        private IMessageConverter messageConverter;
-        private readonly int id;
-
-        private int consumerCounter;
-        private int producerCounter;
-        private long nextDeliveryId;
-        private long lastDeliveredSequenceId;
-        private readonly object sessionLock = new object();
-        private readonly Atomic<bool> started = new Atomic<bool>(false);
-        protected bool disposed = false;
-        protected bool closed = false;
-        protected bool closing = false;
-        private TimeSpan disposeStopTimeout = TimeSpan.FromMilliseconds(30000);
-        private TimeSpan closeStopTimeout = TimeSpan.FromMilliseconds(Timeout.Infinite);
-        private TimeSpan requestTimeout;
-
-        private Org.Apache.Qpid.Messaging.Session qpidSession = null; // Don't create until Start()
-
-        public Session(Connection connection, int sessionId, AcknowledgementMode acknowledgementMode)
-        {
-            this.connection = connection;
-            this.acknowledgementMode = acknowledgementMode;
-            MessageConverter = connection.MessageConverter;
-            id = sessionId;
-            if (this.acknowledgementMode == AcknowledgementMode.Transactional)
-            {
-                // TODO: transactions
-                throw new NotSupportedException("Transactions are not supported by Qpid/Amqp");
-            }
-            else if (acknowledgementMode == AcknowledgementMode.DupsOkAcknowledge)
-            {
-                this.acknowledgementMode = AcknowledgementMode.AutoAcknowledge;
-            }
-            if (connection.IsStarted)
-            {
-                this.Start();
-            }
-            connection.AddSession(this);
-        }
-
-        public AcknowledgementMode AcknowledgementMode
-        {
-            get { return this.acknowledgementMode; }
-        }
-
-        public bool IsClientAcknowledge
-        {
-            get { return this.acknowledgementMode == AcknowledgementMode.ClientAcknowledge; }
-        }
-
-        public bool IsAutoAcknowledge
-        {
-            get { return this.acknowledgementMode == AcknowledgementMode.AutoAcknowledge; }
-        }
-
-        public bool IsDupsOkAcknowledge
-        {
-            get { return this.acknowledgementMode == AcknowledgementMode.DupsOkAcknowledge; }
-        }
-
-        public bool IsIndividualAcknowledge
-        {
-            get { return this.acknowledgementMode == AcknowledgementMode.IndividualAcknowledge; }
-        }
-
-        public bool IsTransacted
-        {
-            get { return this.acknowledgementMode == AcknowledgementMode.Transactional; }
-        }
-
-        #region IStartable Methods
-        /// <summary>
-        /// Create new unmanaged session and start senders and receivers
-        /// Associated connection must be open.
-        /// </summary>
-        public void Start()
-        {
-            // Don't try creating session if connection not yet up
-            if (!connection.IsStarted)
-            {
-                throw new ConnectionClosedException();
-            }
-
-            if (started.CompareAndSet(false, true))
-            {
-                try
-                {
-                    // Create qpid session
-                    if (qpidSession == null)
-                    {
-                        qpidSession = connection.CreateQpidSession();
-                    }
-
-                    // Start producers and consumers
-                    lock (producers.SyncRoot)
-                    {
-                        foreach (MessageProducer producer in producers.Values)
-                        {
-                            producer.Start();
-                        }
-                    }
-                    lock (consumers.SyncRoot)
-                    {
-                        foreach (MessageConsumer consumer in consumers.Values)
-                        {
-                            consumer.Start();
-                        }
-                    }
-                }
-                catch (Org.Apache.Qpid.Messaging.QpidException e)
-                {
-                    throw new SessionClosedException( "Failed to create session : " + e.Message );
-                }
-            }
-        }
-
-        public bool IsStarted
-        {
-            get { return started.Value; }
-        }
-        #endregion
-
-        #region IStoppable Methods
-        public void Stop()
-        {
-            if (started.CompareAndSet(true, false))
-            {
-                try
-                {
-                    lock (producers.SyncRoot)
-                    {
-                        foreach (MessageProducer producer in producers.Values)
-                        {
-                            producer.Stop();
-                        }
-                    }
-                    lock (consumers.SyncRoot)
-                    {
-                        foreach (MessageConsumer consumer in consumers.Values)
-                        {
-                            consumer.Stop();
-                        }
-                    }
-
-                    qpidSession.Dispose();
-                    qpidSession = null;
-                }
-                catch (Org.Apache.Qpid.Messaging.QpidException e)
-                {
-                    throw new NMSException("Failed to close session with Id " + SessionId.ToString() + " : " + e.Message);
-                }
-            }
-        }
-        #endregion
-
-        #region IDisposable Methods
-        public void Dispose()
-        {
-            Dispose(true);
-        }
-        #endregion
-
-
-        protected void Dispose(bool disposing)
-        {
-            if (this.disposed)
-            {
-                return;
-            }
-
-            try
-            {
-                // Force a Stop when we are Disposing vs a Normal Close.
-                Close();
-            }
-            catch
-            {
-                // Ignore network errors.
-            }
-
-            this.disposed = true;
-        }
-
-        public virtual void Close()
-        {
-            if (!this.closed)
-            {
-                try
-                {
-                    Tracer.InfoFormat("Closing The Session with Id {0}", SessionId);
-                    DoClose();
-                    Tracer.InfoFormat("Closed The Session with Id {0}", SessionId);
-                }
-                catch (Exception ex)
-                {
-                    Tracer.ErrorFormat("Error closing Session with id {0} : {1}", SessionId, ex);
-                }
-            }
-        }
-
-        internal void DoClose()
-        {
-            Shutdown();
-        }
-
-        internal void Shutdown()
-        {
-            //Tracer.InfoFormat("Executing Shutdown on Session with Id {0}", this.info.SessionId);
-
-            if (this.closed)
-            {
-                return;
-            }
-
-            lock (myLock)
-            {
-                if (this.closed || this.closing)
-                {
-                    return;
-                }
-
-                try
-                {
-                    this.closing = true;
-
-                    // Stop all message deliveries from this Session
-                    lock (consumers.SyncRoot)
-                    {
-                        foreach (MessageConsumer consumer in consumers.Values)
-                        {
-                            consumer.Close();
-                        }
-                    }
-                    consumers.Clear();
-
-                    lock (producers.SyncRoot)
-                    {
-                        foreach (MessageProducer producer in producers.Values)
-                        {
-                            producer.Close();
-                        }
-                    }
-                    producers.Clear();
-
-                    Connection.RemoveSession(this);
-                }
-                catch (Exception ex)
-                {
-                    Tracer.ErrorFormat("Error closing Session with Id {0} : {1}", SessionId, ex);
-                }
-                finally
-                {
-                    this.closed = true;
-                    this.closing = false;
-                }
-            }
-        }
-
-        public IMessageProducer CreateProducer()
-        {
-            return CreateProducer(null);
-        }
-
-        public IMessageProducer CreateProducer(IDestination destination)
-        {
-            if (destination == null)
-            {
-                throw new InvalidDestinationException("Cannot create a Consumer with a Null destination");
-            }
-            MessageProducer producer = null;
-            try
-            {
-                Queue queue = new Queue(destination.ToString());
-                producer = DoCreateMessageProducer(queue);
-
-                this.AddProducer(producer);
-            }
-            catch (Exception)
-            {
-                if (producer != null)
-                {
-                    this.RemoveProducer(producer.ProducerId);
-                    producer.Close();
-                }
-
-                throw;
-            }
-
-            return producer;
-        }
-
-        internal virtual MessageProducer DoCreateMessageProducer(Destination destination)
-        {
-            return new MessageProducer(this, GetNextProducerId(), destination);
-        }
-
-        public IMessageConsumer CreateConsumer(IDestination destination)
-        {
-            return CreateConsumer(destination, null, false);
-        }
-
-        public IMessageConsumer CreateConsumer(IDestination destination, string selector)
-        {
-            return CreateConsumer(destination, selector, false);
-        }
-
-        public IMessageConsumer CreateConsumer(IDestination destination, string selector, bool noLocal)
-        {
-            if (destination == null)
-            {
-                throw new InvalidDestinationException("Cannot create a Consumer with a Null destination");
-            }
-
-            MessageConsumer consumer = null;
-
-            try
-            {
-                Queue queue = new Queue(destination.ToString());
-                consumer = DoCreateMessageConsumer(GetNextConsumerId(), queue, acknowledgementMode);
-
-                consumer.ConsumerTransformer = this.ConsumerTransformer;
-
-                this.AddConsumer(consumer);
-
-                if (this.Connection.IsStarted)
-                {
-                    consumer.Start();
-                }
-            }
-            catch (Exception)
-            {
-                if (consumer != null)
-                {
-                    this.RemoveConsumer(consumer);
-                    consumer.Close();
-                }
-
-                throw;
-            }
-
-            return consumer;
-        }
-
-
-        public IMessageConsumer CreateDurableConsumer(ITopic destination, string name, string selector, bool noLocal)
-        {
-            throw new NotSupportedException("TODO: Durable Consumer");
-        }
-
-        internal virtual MessageConsumer DoCreateMessageConsumer(int id, Destination destination, AcknowledgementMode mode)
-        {
-            return new MessageConsumer(this, id, destination, mode);
-        }
-
-        public void DeleteDurableConsumer(string name)
-        {
-            throw new NotSupportedException("TODO: Durable Consumer");
-        }
-
-        public IQueueBrowser CreateBrowser(IQueue queue)
-        {
-            throw new NotImplementedException();
-        }
-
-        public IQueueBrowser CreateBrowser(IQueue queue, string selector)
-        {
-            throw new NotImplementedException();
-        }
-
-        public IQueue GetQueue(string name)
-        {
-            return new Queue(name);
-        }
-
-        public ITopic GetTopic(string name)
-        {
-            return new Topic(name);
-        }
-
-        public IQueue GetQueue(string name, string subject, OptionsMap options)
-        {
-            return new Queue(name, subject, options);
-        }
-
-        public ITopic GetTopic(string name, string subject, OptionsMap options)
-        {
-            return new Topic(name, subject, options);
-        }
-
-        public ITemporaryQueue CreateTemporaryQueue()
-        {
-            throw new NotSupportedException("TODO: Temp queue");
-        }
-
-        public ITemporaryTopic CreateTemporaryTopic()
-        {
-            throw new NotSupportedException("TODO: Temp topic");
-        }
-
-        /// <summary>
-        /// Delete a destination (Queue, Topic, Temp Queue, Temp Topic).
-        /// </summary>
-        public void DeleteDestination(IDestination destination)
-        {
-            // TODO: Implement if possible.  If not possible, then change exception to NotSupportedException().
-            throw new NotImplementedException();
-        }
-
-        public IMessage CreateMessage()
-        {
-            BaseMessage answer = new BaseMessage();
-            return answer;
-        }
-
-
-        public ITextMessage CreateTextMessage()
-        {
-            TextMessage answer = new TextMessage();
-            return answer;
-        }
-
-        public ITextMessage CreateTextMessage(string text)
-        {
-            TextMessage answer = new TextMessage(text);
-            return answer;
-        }
-
-        public IMapMessage CreateMapMessage()
-        {
-            return new MapMessage();
-        }
-
-        public IBytesMessage CreateBytesMessage()
-        {
-            return new BytesMessage();
-        }
-
-        public IBytesMessage CreateBytesMessage(byte[] body)
-        {
-            BytesMessage answer = new BytesMessage();
-            answer.Content = body;
-            return answer;
-        }
-
-        public IStreamMessage CreateStreamMessage()
-        {
-            return new StreamMessage();
-        }
-
-        public IObjectMessage CreateObjectMessage(Object body)
-        {
-            ObjectMessage answer = new ObjectMessage();
-            answer.Body = body;
-            return answer;
-        }
-
-        public void Commit()
-        {
-            throw new NotSupportedException("Transactions not supported by Qpid/Amqp");
-        }
-
-        public void Rollback()
-        {
-            throw new NotSupportedException("Transactions not supported by Qpid/Amqp");
-        }
-
-        public void Recover()
-        {
-            throw new NotSupportedException("Transactions not supported by Qpid/Amqp");
-        }
-
-        // Properties
-        public Connection Connection
-        {
-            get { return connection; }
-        }
-
-        /// <summary>
-        /// The default timeout for network requests.
-        /// </summary>
-        public TimeSpan RequestTimeout
-        {
-            get { return NMSConstants.defaultRequestTimeout; }
-            set { }
-        }
-
-        public IMessageConverter MessageConverter
-        {
-            get { return messageConverter; }
-            set { messageConverter = value; }
-        }
-
-        public bool Transacted
-        {
-            get { return acknowledgementMode == AcknowledgementMode.Transactional; }
-        }
-
-        private ConsumerTransformerDelegate consumerTransformer;
-        public ConsumerTransformerDelegate ConsumerTransformer
-        {
-            get { return this.consumerTransformer; }
-            set { this.consumerTransformer = value; }
-        }
-
-        private ProducerTransformerDelegate producerTransformer;
-        public ProducerTransformerDelegate ProducerTransformer
-        {
-            get { return this.producerTransformer; }
-            set { this.producerTransformer = value; }
-        }
-
-        public void AddConsumer(MessageConsumer consumer)
-        {
-            if (!this.closing)
-            {
-                // Registered with Connection before we register at the broker.
-                consumers[consumer.ConsumerId] = consumer;
-            }
-        }
-
-        public void RemoveConsumer(MessageConsumer consumer)
-        {
-            if (!this.closing)
-            {
-                consumers.Remove(consumer.ConsumerId);
-            }
-        }
-
-        public void AddProducer(MessageProducer producer)
-        {
-            if (!this.closing)
-            {
-                this.producers[producer.ProducerId] = producer;
-            }
-        }
-
-        public void RemoveProducer(int objectId)
-        {
-            if (!this.closing)
-            {
-                producers.Remove(objectId);
-            }
-        }
-
-        public int GetNextConsumerId()
-        {
-            return Interlocked.Increment(ref consumerCounter);
-        }
-
-        public int GetNextProducerId()
-        {
-            return Interlocked.Increment(ref producerCounter);
-        }
-
-        public int SessionId
-        {
-            get { return id; }
-        }
-
-
-        public Org.Apache.Qpid.Messaging.Receiver CreateQpidReceiver(Address address)
-        {
-            if (!IsStarted)
-            {
-                throw new SessionClosedException();
-            }
-            return qpidSession.CreateReceiver(address);
-        }
-
-        public Org.Apache.Qpid.Messaging.Sender CreateQpidSender(Address address)
-        {
-            if (!IsStarted)
-            {
-                throw new SessionClosedException();
-            }
-            return qpidSession.CreateSender(address);
-        }
-
-        //
-        // Acknowledges all outstanding messages that have been received
-        // by the application on this session.
-        // 
-        // @param sync if true, blocks until the acknowledgement has been
-        // processed by the server
-        //
-        public void Acknowledge()
-        {
-            qpidSession.Acknowledge(false);
-        }
-
-        public void Acknowledge(bool sync)
-        {
-            qpidSession.Acknowledge(sync);
-        }
-
-        //
-        // These flavors of acknowledge are available in the qpid messaging
-        // interface but not exposed to the NMS message/session stack.
-        //
-        // Acknowledges the specified message.
-        //
-        // void acknowledge(Message&, bool sync=false);
-        //
-        // Acknowledges all message up to the specified message.
-        //
-        // void acknowledgeUpTo(Message&, bool sync=false);
-
-        #region Transaction State Events
-
-        public event SessionTxEventDelegate TransactionStartedListener;
-        public event SessionTxEventDelegate TransactionCommittedListener;
-        public event SessionTxEventDelegate TransactionRolledBackListener;
-
-        #endregion
-
-    }
-}
diff --git a/src/main/csharp/SessionClosedException.cs b/src/main/csharp/SessionClosedException.cs
deleted file mode 100644
index 6864b50..0000000
--- a/src/main/csharp/SessionClosedException.cs
+++ /dev/null
@@ -1,69 +0,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.
- */
-
-using System;
-
-namespace Apache.NMS.Amqp
-{
-    /// <summary>
-    /// Exception thrown when a session is used that it already closed
-    /// </summary>
-    [Serializable]
-    public class SessionClosedException : NMSException
-    {
-        public SessionClosedException()
-            : base("The session is already closed!")
-        {
-        }
-
-        public SessionClosedException(string message)
-            : base(message)
-        {
-        }
-
-        public SessionClosedException(string message, string errorCode)
-            : base(message, errorCode)
-        {
-        }
-
-        public SessionClosedException(string message, Exception innerException)
-            : base(message, innerException)
-        {
-        }
-
-        public SessionClosedException(string message, string errorCode, Exception innerException)
-            : base(message, errorCode, innerException)
-        {
-        }
-
-        #region ISerializable interface implementation
-
-        /// <summary>
-        /// Initializes a new instance of the SessionClosedException class with serialized data.
-        /// Throws System.ArgumentNullException if the info parameter is null.
-        /// Throws System.Runtime.Serialization.SerializationException if the class name is null or System.Exception.HResult is zero (0).
-        /// </summary>
-        /// <param name="info">The SerializationInfo that holds the serialized object data about the exception being thrown.</param>
-        /// <param name="context">The StreamingContext that contains contextual information about the source or destination.</param>
-        protected SessionClosedException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context)
-            : base(info, context)
-        {
-        }
-
-        #endregion
-    }
-}
\ No newline at end of file
diff --git a/src/main/csharp/StreamMessage.cs b/src/main/csharp/StreamMessage.cs
deleted file mode 100644
index 7e82845..0000000
--- a/src/main/csharp/StreamMessage.cs
+++ /dev/null
@@ -1,895 +0,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.
- */
-
-using System;
-using System.IO;
-using Apache.NMS.Util;
-
-// TODO: Any Amqp support?
-
-namespace Apache.NMS.Amqp
-{
-    public class StreamMessage : BaseMessage, IStreamMessage
-    {
-        private EndianBinaryReader dataIn = null;
-        private EndianBinaryWriter dataOut = null;
-        private MemoryStream byteBuffer = null;
-        private int bytesRemaining = -1;
-
-        public bool ReadBoolean()
-        {
-            InitializeReading();
-
-            try
-            {
-                long startingPos = this.byteBuffer.Position;
-                try
-                {
-                    int type = this.dataIn.ReadByte();
-
-                    if(type == PrimitiveMap.BOOLEAN_TYPE)
-                    {
-                        return this.dataIn.ReadBoolean();
-                    }
-                    else if(type == PrimitiveMap.STRING_TYPE)
-                    {
-                        return Boolean.Parse(this.dataIn.ReadString16());
-                    }
-                    else if(type == PrimitiveMap.NULL)
-                    {
-                        this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
-                        throw new NMSException("Cannot convert Null type to a bool");
-                    }
-                    else
-                    {
-                        this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
-                        throw new MessageFormatException("Value is not a Boolean type.");
-                    }
-                }
-                catch(FormatException e)
-                {
-                    this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
-                    throw NMSExceptionSupport.CreateMessageFormatException(e);
-                }
-            }
-            catch(EndOfStreamException e)
-            {
-                throw NMSExceptionSupport.CreateMessageEOFException(e);
-            }
-            catch(IOException e)
-            {
-                throw NMSExceptionSupport.CreateMessageFormatException(e);
-            }
-        }
-
-        public byte ReadByte()
-        {
-            InitializeReading();
-
-            try
-            {
-                long startingPos = this.byteBuffer.Position;
-                try
-                {
-                    int type = this.dataIn.ReadByte();
-
-                    if(type == PrimitiveMap.BYTE_TYPE)
-                    {
-                        return this.dataIn.ReadByte();
-                    }
-                    else if(type == PrimitiveMap.STRING_TYPE)
-                    {
-                        return Byte.Parse(this.dataIn.ReadString16());
-                    }
-                    else if(type == PrimitiveMap.NULL)
-                    {
-                        this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
-                        throw new NMSException("Cannot convert Null type to a byte");
-                    }
-                    else
-                    {
-                        this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
-                        throw new MessageFormatException("Value is not a Byte type.");
-                    }
-                }
-                catch(FormatException e)
-                {
-                    this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
-                    throw NMSExceptionSupport.CreateMessageFormatException(e);
-                }
-            }
-            catch(EndOfStreamException e)
-            {
-                throw NMSExceptionSupport.CreateMessageEOFException(e);
-            }
-            catch(IOException e)
-            {
-                throw NMSExceptionSupport.CreateMessageFormatException(e);
-            }
-        }
-
-        public char ReadChar()
-        {
-            InitializeReading();
-
-            try
-            {
-                long startingPos = this.byteBuffer.Position;
-                try
-                {
-                    int type = this.dataIn.ReadByte();
-
-                    if(type == PrimitiveMap.CHAR_TYPE)
-                    {
-                        return this.dataIn.ReadChar();
-                    }
-                    else if(type == PrimitiveMap.NULL)
-                    {
-                        this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
-                        throw new NMSException("Cannot convert Null type to a char");
-                    }
-                    else
-                    {
-                        this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
-                        throw new MessageFormatException("Value is not a Char type.");
-                    }
-                }
-                catch(FormatException e)
-                {
-                    this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
-                    throw NMSExceptionSupport.CreateMessageFormatException(e);
-                }
-            }
-            catch(EndOfStreamException e)
-            {
-                throw NMSExceptionSupport.CreateMessageEOFException(e);
-            }
-            catch(IOException e)
-            {
-                throw NMSExceptionSupport.CreateMessageFormatException(e);
-            }
-        }
-
-        public short ReadInt16()
-        {
-            InitializeReading();
-
-            try
-            {
-                long startingPos = this.byteBuffer.Position;
-                try
-                {
-                    int type = this.dataIn.ReadByte();
-
-                    if(type == PrimitiveMap.SHORT_TYPE)
-                    {
-                        return this.dataIn.ReadInt16();
-                    }
-                    else if(type == PrimitiveMap.BYTE_TYPE)
-                    {
-                        return this.dataIn.ReadByte();
-                    }
-                    else if(type == PrimitiveMap.STRING_TYPE)
-                    {
-                        return Int16.Parse(this.dataIn.ReadString16());
-                    }
-                    else if(type == PrimitiveMap.NULL)
-                    {
-                        this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
-                        throw new NMSException("Cannot convert Null type to a short");
-                    }
-                    else
-                    {
-                        this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
-                        throw new MessageFormatException("Value is not a Int16 type.");
-                    }
-                }
-                catch(FormatException e)
-                {
-                    this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
-                    throw NMSExceptionSupport.CreateMessageFormatException(e);
-                }
-            }
-            catch(EndOfStreamException e)
-            {
-                throw NMSExceptionSupport.CreateMessageEOFException(e);
-            }
-            catch(IOException e)
-            {
-                throw NMSExceptionSupport.CreateMessageFormatException(e);
-            }
-        }
-
-        public int ReadInt32()
-        {
-            InitializeReading();
-
-            try
-            {
-                long startingPos = this.byteBuffer.Position;
-                try
-                {
-                    int type = this.dataIn.ReadByte();
-
-                    if(type == PrimitiveMap.INTEGER_TYPE)
-                    {
-                        return this.dataIn.ReadInt32();
-                    }
-                    else if(type == PrimitiveMap.SHORT_TYPE)
-                    {
-                        return this.dataIn.ReadInt16();
-                    }
-                    else if(type == PrimitiveMap.BYTE_TYPE)
-                    {
-                        return this.dataIn.ReadByte();
-                    }
-                    else if(type == PrimitiveMap.STRING_TYPE)
-                    {
-                        return Int32.Parse(this.dataIn.ReadString16());
-                    }
-                    else if(type == PrimitiveMap.NULL)
-                    {
-                        this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
-                        throw new NMSException("Cannot convert Null type to a int");
-                    }
-                    else
-                    {
-                        this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
-                        throw new MessageFormatException("Value is not a Int32 type.");
-                    }
-                }
-                catch(FormatException e)
-                {
-                    this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
-                    throw NMSExceptionSupport.CreateMessageFormatException(e);
-                }
-            }
-            catch(EndOfStreamException e)
-            {
-                throw NMSExceptionSupport.CreateMessageEOFException(e);
-            }
-            catch(IOException e)
-            {
-                throw NMSExceptionSupport.CreateMessageFormatException(e);
-            }
-        }
-
-        public long ReadInt64()
-        {
-            InitializeReading();
-
-            try
-            {
-                long startingPos = this.byteBuffer.Position;
-                try
-                {
-                    int type = this.dataIn.ReadByte();
-
-                    if(type == PrimitiveMap.LONG_TYPE)
-                    {
-                        return this.dataIn.ReadInt64();
-                    }
-                    else if(type == PrimitiveMap.INTEGER_TYPE)
-                    {
-                        return this.dataIn.ReadInt32();
-                    }
-                    else if(type == PrimitiveMap.SHORT_TYPE)
-                    {
-                        return this.dataIn.ReadInt16();
-                    }
-                    else if(type == PrimitiveMap.BYTE_TYPE)
-                    {
-                        return this.dataIn.ReadByte();
-                    }
-                    else if(type == PrimitiveMap.STRING_TYPE)
-                    {
-                        return Int64.Parse(this.dataIn.ReadString16());
-                    }
-                    else if(type == PrimitiveMap.NULL)
-                    {
-                        this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
-                        throw new NMSException("Cannot convert Null type to a long");
-                    }
-                    else
-                    {
-                        this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
-                        throw new MessageFormatException("Value is not a Int64 type.");
-                    }
-                }
-                catch(FormatException e)
-                {
-                    this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
-                    throw NMSExceptionSupport.CreateMessageFormatException(e);
-                }
-            }
-            catch(EndOfStreamException e)
-            {
-                throw NMSExceptionSupport.CreateMessageEOFException(e);
-            }
-            catch(IOException e)
-            {
-                throw NMSExceptionSupport.CreateMessageFormatException(e);
-            }
-        }
-
-        public float ReadSingle()
-        {
-            InitializeReading();
-
-            try
-            {
-                long startingPos = this.byteBuffer.Position;
-                try
-                {
-                    int type = this.dataIn.ReadByte();
-
-                    if(type == PrimitiveMap.FLOAT_TYPE)
-                    {
-                        return this.dataIn.ReadSingle();
-                    }
-                    else if(type == PrimitiveMap.STRING_TYPE)
-                    {
-                        return Single.Parse(this.dataIn.ReadString16());
-                    }
-                    else if(type == PrimitiveMap.NULL)
-                    {
-                        this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
-                        throw new NMSException("Cannot convert Null type to a float");
-                    }
-                    else
-                    {
-                        this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
-                        throw new MessageFormatException("Value is not a Single type.");
-                    }
-                }
-                catch(FormatException e)
-                {
-                    this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
-                    throw NMSExceptionSupport.CreateMessageFormatException(e);
-                }
-            }
-            catch(EndOfStreamException e)
-            {
-                throw NMSExceptionSupport.CreateMessageEOFException(e);
-            }
-            catch(IOException e)
-            {
-                throw NMSExceptionSupport.CreateMessageFormatException(e);
-            }
-        }
-
-        public double ReadDouble()
-        {
-            InitializeReading();
-
-            try
-            {
-                long startingPos = this.byteBuffer.Position;
-                try
-                {
-                    int type = this.dataIn.ReadByte();
-
-                    if(type == PrimitiveMap.DOUBLE_TYPE)
-                    {
-                        return this.dataIn.ReadDouble();
-                    }
-                    else if(type == PrimitiveMap.FLOAT_TYPE)
-                    {
-                        return this.dataIn.ReadSingle();
-                    }
-                    else if(type == PrimitiveMap.STRING_TYPE)
-                    {
-                        return Single.Parse(this.dataIn.ReadString16());
-                    }
-                    else if(type == PrimitiveMap.NULL)
-                    {
-                        this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
-                        throw new NMSException("Cannot convert Null type to a double");
-                    }
-                    else
-                    {
-                        this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
-                        throw new MessageFormatException("Value is not a Double type.");
-                    }
-                }
-                catch(FormatException e)
-                {
-                    this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
-                    throw NMSExceptionSupport.CreateMessageFormatException(e);
-                }
-            }
-            catch(EndOfStreamException e)
-            {
-                throw NMSExceptionSupport.CreateMessageEOFException(e);
-            }
-            catch(IOException e)
-            {
-                throw NMSExceptionSupport.CreateMessageFormatException(e);
-            }
-        }
-
-        public string ReadString()
-        {
-            InitializeReading();
-
-            long startingPos = this.byteBuffer.Position;
-
-            try
-            {
-                int type = this.dataIn.ReadByte();
-
-                if(type == PrimitiveMap.BIG_STRING_TYPE)
-                {
-                    return this.dataIn.ReadString32();
-                }
-                else if(type == PrimitiveMap.STRING_TYPE)
-                {
-                    return this.dataIn.ReadString16();
-                }
-                else if(type == PrimitiveMap.LONG_TYPE)
-                {
-                    return this.dataIn.ReadInt64().ToString();
-                }
-                else if(type == PrimitiveMap.INTEGER_TYPE)
-                {
-                    return this.dataIn.ReadInt32().ToString();
-                }
-                else if(type == PrimitiveMap.SHORT_TYPE)
-                {
-                    return this.dataIn.ReadInt16().ToString();
-                }
-                else if(type == PrimitiveMap.FLOAT_TYPE)
-                {
-                    return this.dataIn.ReadSingle().ToString();
-                }
-                else if(type == PrimitiveMap.DOUBLE_TYPE)
-                {
-                    return this.dataIn.ReadDouble().ToString();
-                }
-                else if(type == PrimitiveMap.CHAR_TYPE)
-                {
-                    return this.dataIn.ReadChar().ToString();
-                }
-                else if(type == PrimitiveMap.BYTE_TYPE)
-                {
-                    return this.dataIn.ReadByte().ToString();
-                }
-                else if(type == PrimitiveMap.BOOLEAN_TYPE)
-                {
-                    return this.dataIn.ReadBoolean().ToString();
-                }
-                else if(type == PrimitiveMap.NULL)
-                {
-                    return null;
-                }
-                else
-                {
-                    this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
-                    throw new MessageFormatException("Value is not a known type.");
-                }
-            }
-            catch(FormatException e)
-            {
-                this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
-                throw NMSExceptionSupport.CreateMessageFormatException(e);
-            }
-            catch(EndOfStreamException e)
-            {
-                throw NMSExceptionSupport.CreateMessageEOFException(e);
-            }
-            catch(IOException e)
-            {
-                throw NMSExceptionSupport.CreateMessageFormatException(e);
-            }
-        }
-
-        public int ReadBytes(byte[] value)
-        {
-            InitializeReading();
-
-            if(value == null)
-            {
-                throw new NullReferenceException("Passed Byte Array is null");
-            }
-
-            try
-            {
-                if(this.bytesRemaining == -1)
-                {
-                    long startingPos = this.byteBuffer.Position;
-                    byte type = this.dataIn.ReadByte();
-
-                    if(type != PrimitiveMap.BYTE_ARRAY_TYPE)
-                    {
-                        this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
-                        throw new MessageFormatException("Not a byte array");
-                    }
-
-                    this.bytesRemaining = this.dataIn.ReadInt32();
-                }
-                else if(this.bytesRemaining == 0)
-                {
-                    this.bytesRemaining = -1;
-                    return -1;
-                }
-
-                if(value.Length <= this.bytesRemaining)
-                {
-                    // small buffer
-                    this.bytesRemaining -= value.Length;
-                    this.dataIn.Read(value, 0, value.Length);
-                    return value.Length;
-                }
-                else
-                {
-                    // big buffer
-                    int rc = this.dataIn.Read(value, 0, this.bytesRemaining);
-                    this.bytesRemaining = 0;
-                    return rc;
-                }
-            }
-            catch(EndOfStreamException ex)
-            {
-                throw NMSExceptionSupport.CreateMessageEOFException(ex);
-            }
-            catch(IOException ex)
-            {
-                throw NMSExceptionSupport.CreateMessageFormatException(ex);
-            }
-        }
-
-        public Object ReadObject()
-        {
-            InitializeReading();
-
-            long startingPos = this.byteBuffer.Position;
-
-            try
-            {
-                int type = this.dataIn.ReadByte();
-
-                if(type == PrimitiveMap.BIG_STRING_TYPE)
-                {
-                    return this.dataIn.ReadString32();
-                }
-                else if(type == PrimitiveMap.STRING_TYPE)
-                {
-                    return this.dataIn.ReadString16();
-                }
-                else if(type == PrimitiveMap.LONG_TYPE)
-                {
-                    return this.dataIn.ReadInt64();
-                }
-                else if(type == PrimitiveMap.INTEGER_TYPE)
-                {
-                    return this.dataIn.ReadInt32();
-                }
-                else if(type == PrimitiveMap.SHORT_TYPE)
-                {
-                    return this.dataIn.ReadInt16();
-                }
-                else if(type == PrimitiveMap.FLOAT_TYPE)
-                {
-                    return this.dataIn.ReadSingle();
-                }
-                else if(type == PrimitiveMap.DOUBLE_TYPE)
-                {
-                    return this.dataIn.ReadDouble();
-                }
-                else if(type == PrimitiveMap.CHAR_TYPE)
-                {
-                    return this.dataIn.ReadChar();
-                }
-                else if(type == PrimitiveMap.BYTE_TYPE)
-                {
-                    return this.dataIn.ReadByte();
-                }
-                else if(type == PrimitiveMap.BOOLEAN_TYPE)
-                {
-                    return this.dataIn.ReadBoolean();
-                }
-                else if(type == PrimitiveMap.BYTE_ARRAY_TYPE)
-                {
-                    int length = this.dataIn.ReadInt32();
-                    byte[] data = new byte[length];
-                    this.dataIn.Read(data, 0, length);
-                    return data;
-                }
-                else if(type == PrimitiveMap.NULL)
-                {
-                    return null;
-                }
-                else
-                {
-                    this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
-                    throw new MessageFormatException("Value is not a known type.");
-                }
-            }
-            catch(FormatException e)
-            {
-                this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
-                throw NMSExceptionSupport.CreateMessageFormatException(e);
-            }
-            catch(EndOfStreamException e)
-            {
-                throw NMSExceptionSupport.CreateMessageEOFException(e);
-            }
-            catch(IOException e)
-            {
-                throw NMSExceptionSupport.CreateMessageFormatException(e);
-            }
-        }
-
-        public void WriteBoolean(bool value)
-        {
-            InitializeWriting();
-            try
-            {
-                this.dataOut.Write(PrimitiveMap.BOOLEAN_TYPE);
-                this.dataOut.Write(value);
-            }
-            catch(IOException e)
-            {
-                NMSExceptionSupport.Create(e);
-            }
-        }
-
-        public void WriteByte(byte value)
-        {
-            InitializeWriting();
-            try
-            {
-                this.dataOut.Write(PrimitiveMap.BYTE_TYPE);
-                this.dataOut.Write(value);
-            }
-            catch(IOException e)
-            {
-                NMSExceptionSupport.Create(e);
-            }
-        }
-
-        public void WriteBytes(byte[] value)
-        {
-            InitializeWriting();
-            this.WriteBytes(value, 0, value.Length);
-        }
-
-        public void WriteBytes(byte[] value, int offset, int length)
-        {
-            InitializeWriting();
-            try
-            {
-                this.dataOut.Write(PrimitiveMap.BYTE_ARRAY_TYPE);
-                this.dataOut.Write((int) length);
-                this.dataOut.Write(value, offset, length);
-            }
-            catch(IOException e)
-            {
-                NMSExceptionSupport.Create(e);
-            }
-        }
-
-        public void WriteChar(char value)
-        {
-            InitializeWriting();
-            try
-            {
-                this.dataOut.Write(PrimitiveMap.CHAR_TYPE);
-                this.dataOut.Write(value);
-            }
-            catch(IOException e)
-            {
-                NMSExceptionSupport.Create(e);
-            }
-        }
-
-        public void WriteInt16(short value)
-        {
-            InitializeWriting();
-            try
-            {
-                this.dataOut.Write(PrimitiveMap.SHORT_TYPE);
-                this.dataOut.Write(value);
-            }
-            catch(IOException e)
-            {
-                NMSExceptionSupport.Create(e);
-            }
-        }
-
-        public void WriteInt32(int value)
-        {
-            InitializeWriting();
-            try
-            {
-                this.dataOut.Write(PrimitiveMap.INTEGER_TYPE);
-                this.dataOut.Write(value);
-            }
-            catch(IOException e)
-            {
-                NMSExceptionSupport.Create(e);
-            }
-        }
-
-        public void WriteInt64(long value)
-        {
-            InitializeWriting();
-            try
-            {
-                this.dataOut.Write(PrimitiveMap.LONG_TYPE);
-                this.dataOut.Write(value);
-            }
-            catch(IOException e)
-            {
-                NMSExceptionSupport.Create(e);
-            }
-        }
-
-        public void WriteSingle(float value)
-        {
-            InitializeWriting();
-            try
-            {
-                this.dataOut.Write(PrimitiveMap.FLOAT_TYPE);
-                this.dataOut.Write(value);
-            }
-            catch(IOException e)
-            {
-                NMSExceptionSupport.Create(e);
-            }
-        }
-
-        public void WriteDouble(double value)
-        {
-            InitializeWriting();
-            try
-            {
-                this.dataOut.Write(PrimitiveMap.DOUBLE_TYPE);
-                this.dataOut.Write(value);
-            }
-            catch(IOException e)
-            {
-                NMSExceptionSupport.Create(e);
-            }
-        }
-
-        public void WriteString(string value)
-        {
-            InitializeWriting();
-            try
-            {
-                if(value.Length > 8192)
-                {
-                    this.dataOut.Write(PrimitiveMap.BIG_STRING_TYPE);
-                    this.dataOut.WriteString32(value);
-                }
-                else
-                {
-                    this.dataOut.Write(PrimitiveMap.STRING_TYPE);
-                    this.dataOut.WriteString16(value);
-                }
-            }
-            catch(IOException e)
-            {
-                NMSExceptionSupport.Create(e);
-            }
-        }
-
-        public void WriteObject(Object value)
-        {
-            InitializeWriting();
-            if(value is System.Byte)
-            {
-                this.WriteByte((byte) value);
-            }
-            else if(value is Char)
-            {
-                this.WriteChar((char) value);
-            }
-            else if(value is Boolean)
-            {
-                this.WriteBoolean((bool) value);
-            }
-            else if(value is Int16)
-            {
-                this.WriteInt16((short) value);
-            }
-            else if(value is Int32)
-            {
-                this.WriteInt32((int) value);
-            }
-            else if(value is Int64)
-            {
-                this.WriteInt64((long) value);
-            }
-            else if(value is Single)
-            {
-                this.WriteSingle((float) value);
-            }
-            else if(value is Double)
-            {
-                this.WriteDouble((double) value);
-            }
-            else if(value is byte[])
-            {
-                this.WriteBytes((byte[]) value);
-            }
-            else if(value is String)
-            {
-                this.WriteString((string) value);
-            }
-            else
-            {
-                throw new MessageFormatException("Cannot write non-primitive type:" + value.GetType());
-            }
-        }
-
-        public override void ClearBody()
-        {
-            base.ClearBody();
-            this.byteBuffer = null;
-            this.dataIn = null;
-            this.dataOut = null;
-            this.bytesRemaining = -1;
-        }
-
-        public void Reset()
-        {
-            StoreContent();
-            this.dataIn = null;
-            this.dataOut = null;
-            this.byteBuffer = null;
-            this.bytesRemaining = -1;
-            this.ReadOnlyBody = true;
-        }
-
-        private void InitializeReading()
-        {
-            FailIfWriteOnlyBody();
-            if(this.dataIn == null)
-            {
-                // TODO - Add support for Message Compression.
-                this.byteBuffer = new MemoryStream(this.Content, false);
-                dataIn = new EndianBinaryReader(byteBuffer);
-            }
-        }
-
-        private void InitializeWriting()
-        {
-            FailIfReadOnlyBody();
-            if(this.dataOut == null)
-            {
-                // TODO - Add support for Message Compression.
-                this.byteBuffer = new MemoryStream();
-                this.dataOut = new EndianBinaryWriter(byteBuffer);
-            }
-        }
-
-        private void StoreContent()
-        {
-            if(dataOut != null)
-            {
-                dataOut.Close();
-                // TODO - Add support for Message Compression.
-
-                this.Content = byteBuffer.ToArray();
-                this.dataOut = null;
-                this.byteBuffer = null;
-            }
-        }
-    }
-}
diff --git a/src/main/csharp/TextMessage.cs b/src/main/csharp/TextMessage.cs
deleted file mode 100644
index 9e60dd4..0000000
--- a/src/main/csharp/TextMessage.cs
+++ /dev/null
@@ -1,67 +0,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.
- */
-using System;
-
-
-namespace Apache.NMS.Amqp
-{
-    public class TextMessage : BaseMessage, ITextMessage
-    {
-        private String text;
-
-        public TextMessage()
-        {
-        }
-
-        public TextMessage(String text)
-        {
-            this.Text = text;
-        }
-
-        public override object Clone()
-        {
-            TextMessage tm = (TextMessage) base.Clone();
-
-            tm.text = text;
-            return (TextMessage)tm;
-        }
-
-        public override void ClearBody()
-        {
-            base.ClearBody();
-
-            this.text = null;
-        }
-
-        // Properties
-
-        public string Text
-        {
-            get
-            {
-                return text;
-            }
-
-            set
-            {
-                this.text = value;
-            }
-        }
-
-    }
-}
-
diff --git a/src/main/csharp/Topic.cs b/src/main/csharp/Topic.cs
deleted file mode 100644
index 62aaf38..0000000
--- a/src/main/csharp/Topic.cs
+++ /dev/null
@@ -1,72 +0,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.
- */
-using System;
-
-// Typedef for options map
-using OptionsMap = System.Collections.Generic.Dictionary<System.String, System.Object>;
-
-namespace Apache.NMS.Amqp
-{
-
-    /// <summary>
-    /// Summary description for Topic.
-    /// </summary>
-    public class Topic : Destination, ITopic
-    {
-
-        public Topic()
-            : base()
-        {
-        }
-
-        public Topic(String name)
-            : base(name)
-        {
-        }
-
-        public Topic(String name, string subject, OptionsMap options)
-            : base(name, subject, options, "topic")
-        {
-        }
-
-        override public DestinationType DestinationType
-        {
-            get
-            {
-                return DestinationType.Topic;
-            }
-        }
-
-        public String TopicName
-        {
-            get { return Path; }
-        }
-
-
-        public override Destination CreateDestination(String name)
-        {
-            return new Topic(name);
-        }
-
-
-        public override Destination CreateDestination(String name, string subject, OptionsMap options)
-        {
-            return new Topic(name, subject, options);
-        }
-    }
-}
-
diff --git a/src/main/ndoc/NamespaceSummary.xml b/src/main/ndoc/NamespaceSummary.xml
deleted file mode 100644
index b8e19d5..0000000
--- a/src/main/ndoc/NamespaceSummary.xml
+++ /dev/null
@@ -1,21 +0,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.
--->
-<namespaces>
-    <namespace name="NMS">
-        The <b>NMS</b> namespace defines the .Net Message System API which is an interface to messaging systems rather like JMS is for Java.
-    </namespace>
-</namespaces>
diff --git a/src/main/sandcastle/feedback_content.xml b/src/main/sandcastle/feedback_content.xml
deleted file mode 100644
index e44de7a..0000000
--- a/src/main/sandcastle/feedback_content.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<content xml:space="preserve">
-
-  <item id="fb_alias">activemq.docs@apache.org</item>
-  <item id="fb_product"></item>
-  <item id="fb_deliverable"></item>
-
-  <item id="fb_subject">Customer%20Feedback</item>
-  <item id="fb_body">%0\dThank%20you%20for%20your%20feedback.%20The%20developer%20writing%20teams%20use%20your%20feedback%20to%20improve%20documentation.%20While%20we%20are%20reviewing%20your%20feedback,%20we%20may%20send%20you%20e-mail%20to%20ask%20for%20clarification%20or%20feedback%20on%20a%20solution.%20We%20do%20not%20use%20your%20e-mail%20address%20for%20any%20other%20purpose.%0\d</item>
- 
-   <item id="fb_headerFeedBack">Send Feedback</item>
-  
-
-   <!-- feedback values for sandcastle scenario -->
-
-   <item id="feedback_alias"></item>
-   <item id="feedback_product"></item>
-   <item id="feedback_deliverable"></item>
-   <item id="feedback_fileVersion"></item>
-   <item id="feedback_topicVersion"></item>
-   <item id="feedback_body"></item>
-   <item id="feedback_subject"></item>
-
-   <item id="fb_Introduction">We value your feedback. To rate this topic and send feedback about this topic to the documentation team, click a rating, and then click <b>Send Feedback</b>. For assistance with support issues, refer to the technical support information included with the product.</item>
-
-   <item id="fb_Send">Send Feedback</item>
-   <item id="fb_Poor">Poor</item>
-   <item id="fb_Excellent">Outstanding</item>
-   <item id="fb_EnterFeedbackText">To e-mail your feedback, click here:</item>
-   <item id="fb_Title">Documentation Feedback</item>
-   <item id="fb_altIcon">Display feedback instructions at the bottom of the page.</item>
-
-</content>
\ No newline at end of file
diff --git a/src/test/csharp/HelloWorld/HelloWorld.cs b/src/test/csharp/HelloWorld/HelloWorld.cs
deleted file mode 100644
index 120ec49..0000000
--- a/src/test/csharp/HelloWorld/HelloWorld.cs
+++ /dev/null
@@ -1,119 +0,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.

- */

-

-using System;

-using Apache.NMS;

-using Apache.NMS.Util;

-using Apache.NMS.Amqp;

-

-namespace Apache.NMS.Amqp.Test

-{

-    public class TestMain

-    {

-        /// <summary>

-        /// AMQP Hello World

-        /// Using the AMQP protocol, send a message to a topic and retrieve that message again.

-        /// </summary>

-        /// <param name="uri">AMQP peer network address string. This string selects

-        /// the Apache.NMS.AMQP provider and further specifies the TCP address and port of the

-        /// peer AMQP entity.</param>

-        /// <param name="protocolVersion">Selects AMQP protocol version. Use 'amqp0-10' or 'amqp1.0'.

-        /// amqp1.0 is the default version if none is specified.</param>

-        /// <param name="topicAddress">The name of the topic through which the message is passed

-        /// in the AMQP peer.</param>

-        public static void AMQP_HelloWorld(string uri, string protocolVersion, string topicAddress)

-        {

-            // AMQP Hello World

-            //

-            // Notes:

-            //  * Run qpidd broker, activemq broker, or dispatch router on given uri.

-            //  * Ensure the nmsprovider-amqp.config file exists 

-            //    in the executable folder (build\net4-0\debug).

-            //  * Ensure the unmanaged qpid*.dll and boost*.dll files from 

-            //      .nant\library\local\org.apache.qpid\Apache.Qpid\<version>\net-4.0\debug

-            //      are in project's Output Path (build\net-4.0\debug) so that they may be

-            //      loaded by org.apache.qpid.messaging.dll.

-            try

-            {

-                Uri connecturi = new Uri(uri);

-

-                Console.WriteLine("About to connect to " + connecturi);

-

-                IConnectionFactory factory = 

-                    new NMSConnectionFactory(connecturi, "Bob", "protocol:" + protocolVersion);

-

-                using (IConnection connection = factory.CreateConnection())

-                using (ISession session = connection.CreateSession())

-                {

-                    IDestination destination = SessionUtil.GetDestination(session, topicAddress);

-

-                    // Create a consumer and producer

-                    using (IMessageConsumer consumer = session.CreateConsumer(destination))

-                    using (IMessageProducer producer = session.CreateProducer(destination))

-                    {

-                        // Start the connection so that messages will be processed.

-                        connection.Start();

-

-                        // Create a text message

-                        ITextMessage request = session.CreateTextMessage("Hello World! " + DateTime.Now.ToString("HH:mm:ss tt"));

-                        request.Properties["NMSXGroupID"] = "cheese";

-                        request.Properties["myHeader"] = "Cheddar";

-

-                        // For dispatch router 0.1 messages require a routing property

-                        request.Properties["x-amqp-to"] = topicAddress;

-

-                        // Send the message

-                        producer.Send(request);

-

-                        // Consume a message

-                        ITextMessage message = consumer.Receive() as ITextMessage;

-                        if (message == null)

-                        {

-                            Console.WriteLine("No message received!");

-                        }

-                        else

-                        {

-                            Console.WriteLine("Received message text: " + message.Text);

-                            Console.WriteLine("Received message properties: " + message.Properties.ToString());

-                        }

-                        producer.Close();

-                        consumer.Close();

-                        session.Close();

-                        connection.Stop();

-                    }

-                }

-            } catch (Exception e) {

-                Console.WriteLine("Exception {0}.", e);

-            }

-        }

-

-        

-        public static void Main(string[] args)

-        {

-            string uriQpidd = "amqp:localhost:5672";

-            string uriActivemq = "amqp:localhost:5672";

-            string uriDispatch = "amqp:localhost:5672";

-

-            //AMQP_HelloWorld(uriQpidd, "amqp0-10", "amq.topic");

-            //AMQP_HelloWorld(uriQpidd, "amqp1.0", "amq.topic");

-

-            AMQP_HelloWorld(uriActivemq, "amqp1.0", "amq.topic");

-

-            //AMQP_HelloWorld(uriDispatch, "amqp1.0", "amq.topic");

-        }

-    }

-}
\ No newline at end of file
diff --git a/src/test/csharp/HelloWorld/app.config b/src/test/csharp/HelloWorld/app.config
deleted file mode 100644
index 2b34199..0000000
--- a/src/test/csharp/HelloWorld/app.config
+++ /dev/null
@@ -1,21 +0,0 @@
-<?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.

--->

-<configuration>

-<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>

diff --git a/src/test/csharp/MapMessageTest.cs b/src/test/csharp/MapMessageTest.cs
deleted file mode 100644
index da2193c..0000000
--- a/src/test/csharp/MapMessageTest.cs
+++ /dev/null
@@ -1,556 +0,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.
- */
-
-using NUnit.Framework;
-using System;
-using System.Text;
-using System.Collections;
-using System.Globalization;
-using Apache.NMS.Amqp;
-
-namespace Apache.NMS.Amqp.Test
-{
-    [TestFixture]
-    public class MapMessageTest
-    {
-
-        private string name = "testName";
-
-        [Test]
-        public void TestBytesConversion()
-        {
-            MapMessage msg = new MapMessage();
-            msg.Body.SetBool("boolean", true);
-            msg.Body.SetByte("byte", (byte)1);
-            msg.Body["bytes"] = new byte[1];
-            msg.Body.SetChar("char", 'a');
-            msg.Body.SetDouble("double", 1.5);
-            msg.Body.SetFloat("float", 1.5f);
-            msg.Body.SetInt("int", 1);
-            msg.Body.SetLong("long", 1);
-            msg.Body["object"] = "stringObj";
-            msg.Body.SetShort("short", (short)1);
-            msg.Body.SetString("string", "string");
-
-            // Test with a 1Meg String
-            StringBuilder bigSB = new StringBuilder(1024 * 1024);
-            for(int i = 0; i < 1024 * 1024; i++)
-            {
-                bigSB.Append((char)'a' + i % 26);
-            }
-            String bigString = bigSB.ToString();
-
-            msg.Body.SetString("bigString", bigString);
-
-            msg = (MapMessage)msg.Clone();
-
-            Assert.AreEqual(msg.Body.GetBool("boolean"), true);
-            Assert.AreEqual(msg.Body.GetByte("byte"), (byte)1);
-            Assert.AreEqual((msg.Body["bytes"] as byte[]).Length, 1);
-            Assert.AreEqual(msg.Body.GetChar("char"), 'a');
-            Assert.AreEqual(msg.Body.GetDouble("double"), 1.5, 0);
-            Assert.AreEqual(msg.Body.GetFloat("float"), 1.5f, 0);
-            Assert.AreEqual(msg.Body.GetInt("int"), 1);
-            Assert.AreEqual(msg.Body.GetLong("long"), 1);
-            Assert.AreEqual(msg.Body["object"], "stringObj");
-            Assert.AreEqual(msg.Body.GetShort("short"), (short)1);
-            Assert.AreEqual(msg.Body.GetString("string"), "string");
-            Assert.AreEqual(msg.Body.GetString("bigString"), bigString);
-        }
-
-        [Test]
-        public void TestGetBoolean()
-        {
-            MapMessage msg = new MapMessage();
-            msg.Body.SetBool(name, true);
-            msg.ReadOnlyBody = true;
-            Assert.IsTrue(msg.Body.GetBool(name));
-        }
-
-        [Test]
-        public void TestGetByte()
-        {
-            MapMessage msg = new MapMessage();
-            msg.Body.SetByte(this.name, (byte)1);
-            msg = (MapMessage)msg.Clone();
-            Assert.IsTrue(msg.Body.GetByte(this.name) == (byte)1);
-        }
-
-        [Test]
-        public void TestGetShort()
-        {
-            MapMessage msg = new MapMessage();
-            try
-            {
-                msg.Body.SetShort(this.name, (short)1);
-                msg = (MapMessage)msg.Clone();
-                Assert.IsTrue(msg.Body.GetShort(this.name) == (short)1);
-            }
-            catch(NMSException)
-            {
-                Assert.IsTrue(false);
-            }
-        }
-
-        [Test]
-        public void TestGetChar()
-        {
-            MapMessage msg = new MapMessage();
-            try
-            {
-                msg.Body.SetChar(this.name, 'a');
-                msg = (MapMessage)msg.Clone();
-                Assert.IsTrue(msg.Body.GetChar(this.name) == 'a');
-            }
-            catch(NMSException)
-            {
-                Assert.IsTrue(false);
-            }
-        }
-
-        [Test]
-        public void TestGetInt()
-        {
-            MapMessage msg = new MapMessage();
-            try
-            {
-                msg.Body.SetInt(this.name, 1);
-                msg = (MapMessage)msg.Clone();
-                Assert.IsTrue(msg.Body.GetInt(this.name) == 1);
-            }
-            catch(NMSException)
-            {
-                Assert.IsTrue(false);
-            }
-        }
-
-        [Test]
-        public void TestGetLong()
-        {
-            MapMessage msg = new MapMessage();
-            try
-            {
-                msg.Body.SetLong(this.name, 1);
-                msg = (MapMessage)msg.Clone();
-                Assert.IsTrue(msg.Body.GetLong(this.name) == 1);
-            }
-            catch(NMSException)
-            {
-                Assert.IsTrue(false);
-            }
-        }
-
-        [Test]
-        public void TestGetFloat()
-        {
-            MapMessage msg = new MapMessage();
-            try
-            {
-                msg.Body.SetFloat(this.name, 1.5f);
-                msg = (MapMessage)msg.Clone();
-                Assert.IsTrue(msg.Body.GetFloat(this.name) == 1.5f);
-            }
-            catch(NMSException)
-            {
-                Assert.IsTrue(false);
-            }
-        }
-
-        [Test]
-        public void TestGetDouble()
-        {
-            MapMessage msg = new MapMessage();
-            try
-            {
-                msg.Body.SetDouble(this.name, 1.5);
-                msg = (MapMessage)msg.Clone();
-                Assert.IsTrue(msg.Body.GetDouble(this.name) == 1.5);
-            }
-            catch(NMSException)
-            {
-                Assert.IsTrue(false);
-            }
-        }
-
-        [Test]
-        public void TestGetString()
-        {
-            MapMessage msg = new MapMessage();
-            try
-            {
-                String str = "test";
-                msg.Body.SetString(this.name, str);
-                msg = (MapMessage)msg.Clone();
-                Assert.AreEqual(msg.Body.GetString(this.name), str);
-            }
-            catch(NMSException)
-            {
-                Assert.IsTrue(false);
-            }
-        }
-
-        [Test]
-        public void TestGetBytes()
-        {
-            MapMessage msg = new MapMessage();
-            try
-            {
-                byte[] bytes1 = new byte[3];
-                byte[] bytes2 = new byte[2];
-                System.Array.Copy(bytes1, 0, bytes2, 0, 2);
-                msg.Body[this.name] = bytes1;
-                msg.Body[this.name + "2"] = bytes2;
-                msg = (MapMessage)msg.Clone();
-                Assert.IsTrue(System.Array.Equals(msg.Body[this.name], bytes1));
-                Assert.AreEqual(((byte[]) msg.Body[this.name + "2"]).Length, bytes2.Length);
-            }
-            catch(NMSException)
-            {
-                Assert.IsTrue(false);
-            }
-        }
-
-        [Test]
-        public void TestGetObject()
-        {
-            MapMessage msg = new MapMessage();
-            Boolean booleanValue = true;
-            Byte byteValue = Byte.Parse("1");
-            byte[] bytesValue = new byte[3];
-            Char charValue = (Char) 'a';
-            Double doubleValue = Double.Parse("1.5", CultureInfo.InvariantCulture);
-            Single floatValue = Single.Parse("1.5", CultureInfo.InvariantCulture);
-            Int32 intValue = Int32.Parse("1");
-            Int64 longValue = Int64.Parse("1");
-            Int16 shortValue = Int16.Parse("1");
-            String stringValue = "string";
-            UInt16 ushortValue = UInt16.Parse("1");
-            UInt32 uintValue = UInt32.Parse("1");
-            UInt64 ulongValue = UInt64.Parse("1");
-
-            try
-            {
-                msg.Body["boolean"] = booleanValue;
-                msg.Body["byte"] = byteValue;
-                msg.Body["bytes"] = bytesValue;
-                msg.Body["char"] = charValue;
-                msg.Body["double"] = doubleValue;
-                msg.Body["float"] = floatValue;
-                msg.Body["int"] = intValue;
-                msg.Body["long"] = longValue;
-                msg.Body["short"] = shortValue;
-                msg.Body["string"] = stringValue;
-                msg.Body["uint"] = uintValue;
-                msg.Body["ulong"] = ulongValue;
-                msg.Body["ushort"] = ushortValue;
-            }
-            catch(MessageFormatException)
-            {
-                Assert.Fail("object formats should be correct");
-            }
-
-            msg = (MapMessage)msg.Clone();
-
-            Assert.IsTrue(msg.Body["boolean"] is Boolean);
-            Assert.AreEqual(msg.Body["boolean"], booleanValue);
-            Assert.AreEqual(msg.Body.GetBool("boolean"), booleanValue);
-            Assert.IsTrue(msg.Body["byte"] is Byte);
-            Assert.AreEqual(msg.Body["byte"], byteValue);
-            Assert.AreEqual(msg.Body.GetByte("byte"), byteValue);
-            Assert.IsTrue(msg.Body["bytes"] is byte[]);
-            Assert.AreEqual(((byte[])msg.Body["bytes"]).Length, bytesValue.Length);
-            Assert.AreEqual((msg.Body["bytes"] as byte[]).Length, bytesValue.Length);
-            Assert.IsTrue(msg.Body["char"] is Char);
-            Assert.AreEqual(msg.Body["char"], charValue);
-            Assert.AreEqual(msg.Body.GetChar("char"), charValue);
-            Assert.IsTrue(msg.Body["double"] is Double);
-            Assert.AreEqual(msg.Body["double"], doubleValue);
-            Assert.AreEqual(msg.Body.GetDouble("double"), doubleValue, 0);
-            Assert.IsTrue(msg.Body["float"] is Single);
-            Assert.AreEqual(msg.Body["float"], floatValue);
-            Assert.AreEqual(msg.Body.GetFloat("float"), floatValue, 0);
-            Assert.IsTrue(msg.Body["int"] is Int32);
-            Assert.AreEqual(msg.Body["int"], intValue);
-            Assert.AreEqual(msg.Body.GetInt("int"), intValue);
-            Assert.IsTrue(msg.Body["long"] is Int64);
-            Assert.AreEqual(msg.Body["long"], longValue);
-            Assert.AreEqual(msg.Body.GetLong("long"), longValue);
-            Assert.IsTrue(msg.Body["short"] is Int16);
-            Assert.AreEqual(msg.Body["short"], shortValue);
-            Assert.AreEqual(msg.Body.GetShort("short"), shortValue);
-            Assert.IsTrue(msg.Body["string"] is String);
-            Assert.AreEqual(msg.Body["string"], stringValue);
-            Assert.AreEqual(msg.Body.GetString("string"), stringValue);
-
-            Assert.IsTrue(msg.Body["uint"] is UInt32);
-            Assert.AreEqual(msg.Body["uint"], uintValue);
-            Assert.IsTrue(msg.Body["ulong"] is UInt64);
-            Assert.AreEqual(msg.Body["ulong"], ulongValue);
-            Assert.IsTrue(msg.Body["ushort"] is UInt16);
-            Assert.AreEqual(msg.Body["ushort"], ushortValue);
-
-            msg.ClearBody();
-            try
-            {
-                msg.Body["object"] = new Object();
-                Assert.Fail("should have thrown exception");
-            }
-            catch(NMSException)
-            {
-            }
-        }
-
-        [Test]
-        public void TestGetMapNames()
-        {
-            MapMessage msg = new MapMessage();
-            msg.Body.SetBool("boolean", true);
-            msg.Body.SetByte("byte", (byte)1);
-            msg.Body["bytes1"] = new byte[1];
-            msg.Body.SetChar("char", 'a');
-            msg.Body.SetDouble("double", 1.5);
-            msg.Body.SetFloat("float", 1.5f);
-            msg.Body.SetInt("int", 1);
-            msg.Body.SetLong("long", 1);
-            msg.Body["object"] = "stringObj";
-            msg.Body.SetShort("short", (short)1);
-            msg.Body.SetString("string", "string");
-
-            msg = (MapMessage)msg.Clone();
-
-            ICollection mapNames = msg.Body.Keys;
-            System.Collections.ArrayList mapNamesList = new System.Collections.ArrayList(mapNames);
-
-            Assert.AreEqual(mapNamesList.Count, 11);
-            Assert.IsTrue(mapNamesList.Contains("boolean"));
-            Assert.IsTrue(mapNamesList.Contains("byte"));
-            Assert.IsTrue(mapNamesList.Contains("bytes1"));
-            Assert.IsTrue(mapNamesList.Contains("char"));
-            Assert.IsTrue(mapNamesList.Contains("double"));
-            Assert.IsTrue(mapNamesList.Contains("float"));
-            Assert.IsTrue(mapNamesList.Contains("int"));
-            Assert.IsTrue(mapNamesList.Contains("long"));
-            Assert.IsTrue(mapNamesList.Contains("object"));
-            Assert.IsTrue(mapNamesList.Contains("short"));
-            Assert.IsTrue(mapNamesList.Contains("string"));
-        }
-
-        [Test]
-        public void TestItemExists()
-        {
-            MapMessage mapMessage = new MapMessage();
-
-            mapMessage.Body.SetString("exists", "test");
-
-            mapMessage = (MapMessage)mapMessage.Clone();
-
-            Assert.IsTrue(mapMessage.Body.Contains("exists"));
-            Assert.IsFalse(mapMessage.Body.Contains("doesntExist"));
-        }
-
-        [Test]
-        public void TestClearBody()
-        {
-            MapMessage mapMessage = new MapMessage();
-            mapMessage.Body.SetString("String", "String");
-            mapMessage.ClearBody();
-            Assert.IsFalse(mapMessage.ReadOnlyBody);
-
-            //mapMessage.OnSend();
-            mapMessage.Content = mapMessage.Content;
-            Assert.IsNull(mapMessage.Body.GetString("String"));
-            mapMessage.ClearBody();
-            mapMessage.Body.SetString("String", "String");
-
-            mapMessage = (MapMessage)mapMessage.Clone();
-
-            mapMessage.Body.GetString("String");
-        }
-
-        [Test]
-        public void TestReadOnlyBody()
-        {
-            MapMessage msg = new MapMessage();
-            msg.Body.SetBool("boolean", true);
-            msg.Body.SetByte("byte", (byte)1);
-            msg.Body["bytes"] = new byte[1];
-            msg.Body.SetChar("char", 'a');
-            msg.Body.SetDouble("double", 1.5);
-            msg.Body.SetFloat("float", 1.5f);
-            msg.Body.SetInt("int", 1);
-            msg.Body.SetLong("long", 1);
-            msg.Body["object"] = "stringObj";
-            msg.Body.SetShort("short", (short)1);
-            msg.Body.SetString("string", "string");
-
-            msg.ReadOnlyBody = true;
-
-            try
-            {
-                msg.Body.GetBool("boolean");
-                msg.Body.GetByte("byte");
-                Assert.IsNotNull(msg.Body["bytes"]);
-                msg.Body.GetChar("char");
-                msg.Body.GetDouble("double");
-                msg.Body.GetFloat("float");
-                msg.Body.GetInt("int");
-                msg.Body.GetLong("long");
-                Assert.IsNotNull(msg.Body["object"]);
-                msg.Body.GetShort("short");
-                msg.Body.GetString("string");
-            }
-            catch(MessageNotReadableException)
-            {
-                Assert.Fail("should be readable");
-            }
-#if false
-            //TODO: add property interceptor
-            try
-            {
-                msg.Body.SetBool("boolean", true);
-                Assert.Fail("should throw exception");
-            }
-            catch(MessageNotWriteableException)
-            {
-            }
-
-            try
-            {
-                msg.Body.SetByte("byte", (byte)1);
-                Assert.Fail("should throw exception");
-            }
-            catch(MessageNotWriteableException)
-            {
-            }
-
-            try
-            {
-                msg.Body["bytes"] = new byte[1];
-                Assert.Fail("should throw exception");
-            }
-            catch(MessageNotWriteableException)
-            {
-            }
-
-            try
-            {
-                msg.Body.SetChar("char", 'a');
-                Assert.Fail("should throw exception");
-            }
-            catch(MessageNotWriteableException)
-            {
-            }
-
-            try
-            {
-                msg.Body.SetDouble("double", 1.5);
-                Assert.Fail("should throw exception");
-            }
-            catch(MessageNotWriteableException)
-            {
-            }
-
-            try {
-                msg.Body.SetFloat("float", 1.5f);
-                Assert.Fail("should throw exception");
-            }
-            catch(MessageNotWriteableException)
-            {
-            }
-
-            try
-            {
-                msg.Body.SetInt("int", 1);
-                Assert.Fail("should throw exception");
-            }
-            catch(MessageNotWriteableException)
-            {
-            }
-
-            try
-            {
-                msg.Body.SetLong("long", 1);
-                Assert.Fail("should throw exception");
-            }
-            catch(MessageNotWriteableException)
-            {
-            }
-
-            try
-            {
-                msg.Body["object"] = "stringObj";
-                Assert.Fail("should throw exception");
-            }
-            catch(MessageNotWriteableException)
-            {
-            }
-
-            try
-            {
-                msg.Body.SetShort("short", (short)1);
-                Assert.Fail("should throw exception");
-            }
-            catch(MessageNotWriteableException)
-            {
-            }
-
-            try
-            {
-                msg.Body.SetString("string", "string");
-                Assert.Fail("should throw exception");
-            }
-            catch(MessageNotWriteableException)
-            {
-            }
-#endif
-        }
-
-        [Test]
-        public void TestWriteOnlyBody()
-        {
-            MapMessage msg = new MapMessage();
-            msg.ReadOnlyBody = false;
-
-            msg.Body.SetBool("boolean", true);
-            msg.Body.SetByte("byte", (byte)1);
-            msg.Body["bytes"] = new byte[1];
-            msg.Body.SetChar("char", 'a');
-            msg.Body.SetDouble("double", 1.5);
-            msg.Body.SetFloat("float", 1.5f);
-            msg.Body.SetInt("int", 1);
-            msg.Body.SetLong("long", 1);
-            msg.Body["object"] = "stringObj";
-            msg.Body.SetShort("short", (short)1);
-            msg.Body.SetString("string", "string");
-
-            msg.ReadOnlyBody = true;
-
-            msg.Body.GetBool("boolean");
-            msg.Body.GetByte("byte");
-            Assert.IsNotNull(msg.Body["bytes"]);
-            msg.Body.GetChar("char");
-            msg.Body.GetDouble("double");
-            msg.Body.GetFloat("float");
-            msg.Body.GetInt("int");
-            msg.Body.GetLong("long");
-            Assert.IsNotNull(msg.Body["object"]);
-            msg.Body.GetShort("short");
-            msg.Body.GetString("string");
-        }
-
-    }
-}
diff --git a/src/test/csharp/MessageDeliveryTest.cs b/src/test/csharp/MessageDeliveryTest.cs
deleted file mode 100644
index 5636807..0000000
--- a/src/test/csharp/MessageDeliveryTest.cs
+++ /dev/null
@@ -1,80 +0,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.
- */
-
-using System;
-using System.Threading;
-using Apache.NMS;
-using Apache.NMS.Policies;
-using Apache.NMS.Util;
-using Apache.NMS.Amqp;
-using Apache.NMS.Test;
-using NUnit.Framework;
-
-namespace Apache.NMS.Amqp.Test
-{
-    [TestFixture]
-    public class MessageDeliveryTest : NMSTestSupport
-    {
-        private Uri uri = new Uri(NMSTestSupport.ReplaceEnvVar("amqp:localhost:5672"));
-        private IConnectionFactory factory;
-        private Connection connection;
-        private ISession session;
-        private IDestination destination;
-        private IMessageProducer producer;
-        private IMessageConsumer consumer;
-
-        [SetUp]
-        public override void SetUp()
-        {
-            factory = new NMSConnectionFactory(uri);
-            this.connection = (Connection) factory.CreateConnection();
-            session = connection.CreateSession();
-            destination = SessionUtil.GetDestination(session, "my-dest; {create:always}");
-            producer = session.CreateProducer(destination);
-            consumer = session.CreateConsumer(destination);
-        }
-
-        [TearDown]
-        public override void TearDown()
-        {
-            this.session = null;
-
-            if(this.connection != null)
-            {
-                this.connection.Close();
-                this.connection = null;
-            }
-
-            base.TearDown();
-        }
-
-
-        [Test]
-        public void TestMessageDelivery()
-        {
-            connection.Start();
-
-            IMessage message = session.CreateTextMessage("Test Message");
-            producer.Send(message);
-
-            IMessage resultMessage = consumer.Receive();
-
-            AssertEquals(message, resultMessage);
-        }
-
-    }
-}
diff --git a/src/test/csharp/MessageTest.cs b/src/test/csharp/MessageTest.cs
deleted file mode 100644
index eb51ed2..0000000
--- a/src/test/csharp/MessageTest.cs
+++ /dev/null
@@ -1,789 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor licensete 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.
- */
-
-using NUnit.Framework;
-using System;
-using System.Text;
-using System.Collections;
-using Apache.NMS.Util;
-using Apache.NMS.Amqp;
-
-namespace Apache.NMS.Amqp.Test
-{
-    [TestFixture]
-    public class MessageTest
-    {
-        private string nmsMessageID;
-        private string nmsCorrelationID;
-        private Topic nmsDestination;
-        private Topic nmsReplyTo;
-        private MsgDeliveryMode nmsDeliveryMode;
-        private bool nmsRedelivered;
-        private string nmsType;
-        private MsgPriority nmsPriority;
-        private DateTime nmsTimestamp;
-        private long[] consumerIDs;
-
-        [SetUp]
-        public virtual void SetUp()
-        {
-            this.nmsMessageID = "testid";
-            this.nmsCorrelationID = "testcorrelationid";
-            this.nmsDestination = new Topic("TEST.Message");
-			this.nmsReplyTo = new Topic("TEST.Message.replyto.topic:001");
-            this.nmsDeliveryMode = MsgDeliveryMode.NonPersistent;
-            this.nmsRedelivered = true;
-            this.nmsType = "test type";
-            this.nmsPriority = MsgPriority.High;
-            this.nmsTimestamp = DateTime.Now;
-            this.consumerIDs = new long[3];
-
-            for(int i = 0; i < this.consumerIDs.Length; i++)
-            {
-                this.consumerIDs[i] = i;
-            }
-        }
-
-        [Test]
-        public void TestSetToForeignNMSID()
-        {
-            TextMessage msg = new TextMessage();
-            msg.NMSMessageId = "SomeString";
-        }
-
-        [Test]
-        public void TestShallowCopy()
-        {
-            TextMessage msg1 = new TextMessage();
-            msg1.NMSMessageId = nmsMessageID;
-            TextMessage msg2 = (TextMessage)msg1.Clone();
-            Assert.IsTrue(msg1 != msg2);
-            Assert.IsTrue(msg1.Equals(msg2));
-            msg2.NMSPriority = MsgPriority.Highest;
-            Assert.IsFalse(msg1.Equals(msg2));
-        }
-
-        [Test]
-        public void TestCopy()
-        {
-            this.nmsMessageID = "ID:1141:45278:429";
-            this.nmsCorrelationID = "testcorrelationid";
-            this.nmsDestination = new Topic("test.topic");
-            this.nmsReplyTo = new Topic("test.replyto.topic:001");
-            this.nmsDeliveryMode = MsgDeliveryMode.NonPersistent;
-            this.nmsType = "test type";
-            this.nmsPriority = MsgPriority.High;
-            this.nmsTimestamp = DateTime.Now;
-
-            TextMessage msg1 = new TextMessage();
-            msg1.NMSMessageId = this.nmsMessageID;
-            msg1.NMSCorrelationID = this.nmsCorrelationID;
-            msg1.NMSDestination = this.nmsDestination;
-            msg1.NMSReplyTo = this.nmsReplyTo;
-            msg1.NMSDeliveryMode = this.nmsDeliveryMode;
-            msg1.NMSType = this.nmsType;
-            msg1.NMSPriority = this.nmsPriority;
-            msg1.NMSTimestamp = this.nmsTimestamp;
-
-            TextMessage msg2 = msg1;
-
-            Assert.IsTrue(msg1.NMSMessageId.Equals(msg2.NMSMessageId));
-            Assert.IsTrue(msg1.NMSCorrelationID.Equals(msg2.NMSCorrelationID));
-            Assert.IsTrue(msg1.NMSDestination.Equals(msg2.NMSDestination));
-            Assert.IsTrue(msg1.NMSReplyTo.Equals(msg2.NMSReplyTo));
-            Assert.IsTrue(msg1.NMSDeliveryMode == msg2.NMSDeliveryMode);
-            Assert.IsTrue(msg1.NMSRedelivered == msg2.NMSRedelivered);
-            Assert.IsTrue(msg1.NMSType.Equals(msg2.NMSType));
-            Assert.IsTrue(msg1.NMSPriority == msg2.NMSPriority);
-            Assert.IsTrue(msg1.NMSTimestamp == msg2.NMSTimestamp);
-        }
-
-        [Test]
-        public void TestGetAndSetNMSCorrelationID()
-        {
-            TextMessage msg = new TextMessage();
-            msg.NMSCorrelationID = this.nmsCorrelationID;
-            Assert.IsTrue(msg.NMSCorrelationID.Equals(this.nmsCorrelationID));
-        }
-
-        [Test]
-        public void TestGetAndSetNMSReplyTo()
-        {
-            TextMessage msg = new TextMessage();
-            msg.NMSReplyTo = this.nmsReplyTo;
-            Assert.AreEqual(msg.NMSReplyTo, this.nmsReplyTo);
-        }
-
-        [Test]
-        public void TestGetAndSetNMSDeliveryMode()
-        {
-            TextMessage msg = new TextMessage();
-            msg.NMSDeliveryMode = this.nmsDeliveryMode;
-            Assert.IsTrue(msg.NMSDeliveryMode == this.nmsDeliveryMode);
-        }
-
-        [Test]
-        public void TestGetAndSetNMSType()
-        {
-            TextMessage msg = new TextMessage();
-            msg.NMSType = this.nmsType;
-            Assert.AreEqual(msg.NMSType, this.nmsType);
-        }
-
-        [Test]
-        public void TestGetAndSetNMSPriority()
-        {
-            TextMessage msg = new TextMessage();
-            msg.NMSPriority = this.nmsPriority;
-            Assert.IsTrue(msg.NMSPriority == this.nmsPriority);
-        }
-
-        public void TestClearProperties()
-        {
-            TextMessage msg = new TextMessage();
-            msg.Properties.SetString("test", "test");
-            msg.Content = new byte[1];
-            msg.NMSMessageId = this.nmsMessageID;
-            msg.ClearProperties();
-            Assert.IsNull(msg.Properties.GetString("test"));
-            Assert.IsNotNull(msg.NMSMessageId);
-            Assert.IsNotNull(msg.Content);
-        }
-
-        [Test]
-        public void TestPropertyExists()
-        {
-            TextMessage msg = new TextMessage();
-            msg.Properties.SetString("test", "test");
-            Assert.IsTrue(msg.Properties.Contains("test"));
-        }
-
-        [Test]
-        public void TestGetBooleanProperty()
-        {
-            TextMessage msg = new TextMessage();
-            string name = "booleanProperty";
-            msg.Properties.SetBool(name, true);
-            Assert.IsTrue(msg.Properties.GetBool(name));
-        }
-
-        [Test]
-        public void TestGetByteProperty()
-        {
-            TextMessage msg = new TextMessage();
-            string name = "byteProperty";
-            msg.Properties.SetByte(name, (byte)1);
-            Assert.IsTrue(msg.Properties.GetByte(name) == 1);
-        }
-
-        [Test]
-        public void TestGetShortProperty()
-        {
-            TextMessage msg = new TextMessage();
-            string name = "shortProperty";
-            msg.Properties.SetShort(name, (short)1);
-            Assert.IsTrue(msg.Properties.GetShort(name) == 1);
-        }
-
-        [Test]
-        public void TestGetIntProperty()
-        {
-            TextMessage msg = new TextMessage();
-            string name = "intProperty";
-            msg.Properties.SetInt(name, 1);
-            Assert.IsTrue(msg.Properties.GetInt(name) == 1);
-        }
-
-        [Test]
-        public void TestGetLongProperty()
-        {
-            TextMessage msg = new TextMessage();
-            string name = "longProperty";
-            msg.Properties.SetLong(name, 1);
-            Assert.IsTrue(msg.Properties.GetLong(name) == 1);
-        }
-
-        [Test]
-        public void TestGetFloatProperty()
-        {
-            TextMessage msg = new TextMessage();
-            string name = "floatProperty";
-            msg.Properties.SetFloat(name, 1.3f);
-            Assert.IsTrue(msg.Properties.GetFloat(name) == 1.3f);
-        }
-
-        [Test]
-        public void TestGetDoubleProperty()
-        {
-            TextMessage msg = new TextMessage();
-            string name = "doubleProperty";
-            msg.Properties.SetDouble(name, 1.3d);
-            Assert.IsTrue(msg.Properties.GetDouble(name) == 1.3);
-        }
-
-        [Test]
-        public void TestGetStringProperty()
-        {
-            TextMessage msg = new TextMessage();
-            string name = "stringProperty";
-            msg.Properties.SetString(name, name);
-            Assert.IsTrue(msg.Properties.GetString(name).Equals(name));
-        }
-
-        [Test]
-        public void TestGetObjectProperty()
-        {
-            TextMessage msg = new TextMessage();
-            string name = "floatProperty";
-            msg.Properties.SetFloat(name, 1.3f);
-            Assert.IsTrue(msg.Properties[name] is float);
-            Assert.IsTrue((float)msg.Properties[name] == 1.3f);
-        }
-
-        [Test]
-        public void TestGetPropertyNames()
-        {
-            TextMessage msg = new TextMessage();
-            string name = "floatProperty";
-            msg.Properties.SetFloat(name, 1.3f);
-
-            foreach(string key in msg.Properties.Keys)
-            {
-                Assert.IsTrue(key.Equals(name));
-            }
-        }
-
-        [Test]
-        public void TestSetObjectProperty()
-        {
-            TextMessage msg = new TextMessage();
-            string name = "property";
-
-            try
-            {
-                msg.Properties[name] = "string";
-                msg.Properties[name] = (Char) 1;
-                msg.Properties[name] = (Int16) 1;
-                msg.Properties[name] = (Int32) 1;
-                msg.Properties[name] = (Int64) 1;
-                msg.Properties[name] = (Byte)1;
-                msg.Properties[name] = (UInt16)1;
-                msg.Properties[name] = (UInt32)1;
-                msg.Properties[name] = (UInt64)1;
-                msg.Properties[name] = (Single)1.1f;
-                msg.Properties[name] = (Double) 1.1;
-                msg.Properties[name] = (Boolean) true;
-                msg.Properties[name] = null;
-            }
-            catch(NMSException)
-            {
-                Assert.Fail("should accept object primitives and String");
-            }
-
-            try
-            {
-                msg.Properties[name] = new Object();
-                Assert.Fail("should accept only object primitives and String");
-            }
-            catch(NMSException)
-            {
-            }
-
-            try
-            {
-                msg.Properties[name] = new StringBuilder();
-                Assert.Fail("should accept only object primitives and String");
-            }
-            catch(NMSException)
-            {
-            }
-        }
-
-        [Test]
-        public void TestConvertProperties()
-        {
-            TextMessage msg = new TextMessage();
-
-            // Set/verify a property using each supported AMQP data type
-
-            msg.Properties["stringProperty"] = "string";
-            msg.Properties["booleanProperty"] = (Boolean)true;
-
-            msg.Properties["charProperty"] = (Char)'h';
-            msg.Properties["shortProperty"] = (Int16) 2;
-            msg.Properties["intProperty"] = (Int32) 3;
-            msg.Properties["longProperty"] = (Int64) 4;
-
-            msg.Properties["byteProperty"] = (Byte)5;
-            msg.Properties["ushortProperty"] = (UInt16)6;
-            msg.Properties["uintProperty"] = (UInt32)7;
-            msg.Properties["ulongProperty"] = (UInt64)8;
-
-            msg.Properties["floatProperty"] = (Single)9.9f;
-            msg.Properties["doubleProperty"] = (Double) 10.1;
-            msg.Properties["nullProperty"] = null;
-            msg.Properties["guidProperty"] = new Guid("000102030405060708090a0b0c0d0e0f");
-
-            IPrimitiveMap properties = msg.Properties;
-            Assert.AreEqual(properties["stringProperty"], "string");
-            Assert.AreEqual(properties["booleanProperty"], true);
-
-            Assert.AreEqual((Char)properties["charProperty"], (Char)'h');
-            Assert.AreEqual(properties["shortProperty"], (short) 2);
-            Assert.AreEqual(properties["intProperty"], (int) 3);
-            Assert.AreEqual(properties["longProperty"], (long) 4);
-
-            Assert.AreEqual(properties["byteProperty"], (byte)5);
-            Assert.AreEqual(properties["ushortProperty"], (UInt16)6);
-            Assert.AreEqual(properties["uintProperty"], (int)7);
-            Assert.AreEqual(properties["ulongProperty"], (long)8);
-            
-            Assert.AreEqual(properties["floatProperty"], 9.9f);
-            Assert.AreEqual(properties["doubleProperty"], 10.1);
-            Assert.IsNull(properties["nullProperty"]);
-            Guid rxGuid = (Guid)properties["guidProperty"];
-            Assert.AreEqual(rxGuid.ToString(), "00010203-0405-0607-0809-0a0b0c0d0e0f");
-        }
-
-        [Test]
-        public void TestSetNullProperty()
-        {
-            TextMessage msg = new TextMessage();
-            string name = "cheese";
-            msg.Properties.SetString(name, "Cheddar");
-            Assert.AreEqual("Cheddar", msg.Properties.GetString(name));
-
-            msg.Properties.SetString(name, null);
-            Assert.AreEqual(null, msg.Properties.GetString(name));
-        }
-
-        [Test]
-        public void TestSetNullPropertyName()
-        {
-            TextMessage msg = new TextMessage();
-
-            try
-            {
-                msg.Properties.SetString(null, "Cheese");
-                Assert.Fail("Should have thrown exception");
-            }
-            catch(Exception)
-            {
-            }
-        }
-
-        [Test]
-        public void TestSetEmptyPropertyName()
-        {
-            TextMessage msg = new TextMessage();
-
-            try
-            {
-                msg.Properties.SetString("", "Cheese");
-                Assert.Fail("Should have thrown exception");
-            }
-            catch(Exception)
-            {
-            }
-        }
-
-        [Test]
-        public void TestGetAndSetNMSXDeliveryCount()
-        {
-            TextMessage msg = new TextMessage();
-            msg.Properties.SetInt("NMSXDeliveryCount", 1);
-            int count = msg.Properties.GetInt("NMSXDeliveryCount");
-            Assert.IsTrue(count == 1, "expected delivery count = 1 - got: " + count);
-        }
-
-        [Test]
-        public void TestClearBody()
-        {
-            BytesMessage message = new BytesMessage();
-            message.ClearBody();
-            Assert.IsFalse(message.ReadOnlyBody);
-        }
-
-        //
-        // Helper functions for TestPropertyConversionXxx tests.
-        // Demonstrate properties are inaccessible using various methods.
-        //   Get the named property from the map.
-        //   Assert that the Get function throws; display message on failure.
-        //
-        public void TestGetBoolThrows(IPrimitiveMap map, string name, string message)
-        {
-            try
-            {
-                map.GetBool(name);
-                Assert.Fail(message);
-            }
-            catch (NMSException)
-            {
-            }
-        }
-
-        public void TestGetByteThrows(IPrimitiveMap map, string name, string message)
-        {
-            try
-            {
-                map.GetByte(name);
-                Assert.Fail(message);
-            }
-            catch (NMSException)
-            {
-            }
-        }
-
-        public void TestGetBytesThrows(IPrimitiveMap map, string name, string message)
-        {
-            try
-            {
-                map.GetBytes(name);
-                Assert.Fail(message);
-            }
-            catch (NMSException)
-            {
-            }
-        }
-
-        public void TestGetCharThrows(IPrimitiveMap map, string name, string message)
-        {
-            try
-            {
-                map.GetChar(name);
-                Assert.Fail(message);
-            }
-            catch (NMSException)
-            {
-            }
-        }
-
-        public void TestGetDictionaryThrows(IPrimitiveMap map, string name, string message)
-        {
-            try
-            {
-                map.GetDictionary(name);
-                Assert.Fail(message);
-            }
-            catch (NMSException)
-            {
-            }
-        }
-
-        public void TestGetDoubleThrows(IPrimitiveMap map, string name, string message)
-        {
-            try
-            {
-                map.GetDouble(name);
-                Assert.Fail(message);
-            }
-            catch (NMSException)
-            {
-            }
-        }
-
-        public void TestGetFloatThrows(IPrimitiveMap map, string name, string message)
-        {
-            try
-            {
-                map.GetFloat(name);
-                Assert.Fail(message);
-            }
-            catch (NMSException)
-            {
-            }
-        }
-
-        public void TestGetIntThrows(IPrimitiveMap map, string name, string message)
-        {
-            try
-            {
-                map.GetInt(name);
-                Assert.Fail(message);
-            }
-            catch (NMSException)
-            {
-            }
-        }
-
-        public void TestGetListThrows(IPrimitiveMap map, string name, string message)
-        {
-            try
-            {
-                map.GetList(name);
-                Assert.Fail(message);
-            }
-            catch (NMSException)
-            {
-            }
-        }
-
-        public void TestGetLongThrows(IPrimitiveMap map, string name, string message)
-        {
-            try
-            {
-                map.GetLong(name);
-                Assert.Fail(message);
-            }
-            catch (NMSException)
-            {
-            }
-        }
-
-        public void TestGetShortThrows(IPrimitiveMap map, string name, string message)
-        {
-            try
-            {
-                map.GetShort(name);
-                Assert.Fail(message);
-            }
-            catch (NMSException)
-            {
-            }
-        }
-
-        public void TestGetStringThrows(IPrimitiveMap map, string name, string message)
-        {
-            try
-            {
-                map.GetString(name);
-                Assert.Fail(message);
-            }
-            catch (NMSException)
-            {
-            }
-        }
-
-        [Test]
-        public void TestPropertyConversionBoolean()
-        {
-            TextMessage msg = new TextMessage();
-            String propertyName = "property";
-            msg.Properties.SetBool(propertyName, true);
-
-            Assert.AreEqual(msg.Properties[propertyName], true);
-            Assert.IsTrue(msg.Properties.GetBool(propertyName));
-            Assert.AreEqual(msg.Properties[propertyName].ToString(), "True");
-
-            //TestGetBoolThrows(msg.Properties, propertyName, "GetBool should have thrown");
-            TestGetByteThrows(msg.Properties, propertyName, "GetByte should have thrown");
-            TestGetBytesThrows(msg.Properties, propertyName, "GetBytes should have thrown");
-            TestGetCharThrows(msg.Properties, propertyName, "GetChar should have thrown");
-            TestGetDictionaryThrows(msg.Properties, propertyName, "GetDictionary should have thrown");
-            TestGetDoubleThrows(msg.Properties, propertyName, "GetDouble should have thrown");
-            TestGetFloatThrows(msg.Properties, propertyName, "GetFloat should have thrown");
-            TestGetIntThrows(msg.Properties, propertyName, "GetInt should have thrown");
-            TestGetListThrows(msg.Properties, propertyName, "GetList should have thrown");
-            TestGetLongThrows(msg.Properties, propertyName, "GetLong should have thrown");
-            TestGetShortThrows(msg.Properties, propertyName, "GetShort should have thrown");
-            TestGetStringThrows(msg.Properties, propertyName, "GetString should have thrown");
-        }
-
-
-        [Test]
-        public void TestPropertyConversionByte()
-        {
-            TextMessage msg = new TextMessage();
-            String propertyName = "property";
-            msg.Properties.SetByte(propertyName, (byte)1);
-
-            Assert.AreEqual(msg.Properties[propertyName], 1);
-            Assert.AreEqual(msg.Properties.GetByte(propertyName), 1);
-            Assert.AreEqual(msg.Properties[propertyName].ToString(), "1");
-
-            TestGetBoolThrows(msg.Properties, propertyName, "GetBool should have thrown");
-            //TestGetByteThrows(msg.Properties, propertyName, "GetByte should have thrown");
-            TestGetBytesThrows(msg.Properties, propertyName, "GetBytes should have thrown");
-            TestGetCharThrows(msg.Properties, propertyName, "GetChar should have thrown");
-            TestGetDictionaryThrows(msg.Properties, propertyName, "GetDictionary should have thrown");
-            TestGetDoubleThrows(msg.Properties, propertyName, "GetDouble should have thrown");
-            TestGetFloatThrows(msg.Properties, propertyName, "GetFloat should have thrown");
-            TestGetIntThrows(msg.Properties, propertyName, "GetInt should have thrown");
-            TestGetListThrows(msg.Properties, propertyName, "GetList should have thrown");
-            TestGetLongThrows(msg.Properties, propertyName, "GetLong should have thrown");
-            TestGetShortThrows(msg.Properties, propertyName, "GetShort should have thrown");
-            TestGetStringThrows(msg.Properties, propertyName, "GetString should have thrown");
-        }
-
-        [Test]
-        public void TestPropertyConversionShort()
-        {
-            TextMessage msg = new TextMessage();
-            String propertyName = "property";
-            msg.Properties.SetShort(propertyName, (short)1);
-
-            Assert.AreEqual((short)msg.Properties[propertyName], 1);
-            Assert.AreEqual(msg.Properties.GetShort(propertyName), 1);
-            Assert.AreEqual(msg.Properties[propertyName].ToString(), "1");
-
-            TestGetBoolThrows(msg.Properties, propertyName, "GetBool should have thrown");
-            TestGetByteThrows(msg.Properties, propertyName, "GetByte should have thrown");
-            TestGetBytesThrows(msg.Properties, propertyName, "GetBytes should have thrown");
-            TestGetCharThrows(msg.Properties, propertyName, "GetChar should have thrown");
-            TestGetDictionaryThrows(msg.Properties, propertyName, "GetDictionary should have thrown");
-            TestGetDoubleThrows(msg.Properties, propertyName, "GetDouble should have thrown");
-            TestGetFloatThrows(msg.Properties, propertyName, "GetFloat should have thrown");
-            TestGetIntThrows(msg.Properties, propertyName, "GetInt should have thrown");
-            TestGetListThrows(msg.Properties, propertyName, "GetList should have thrown");
-            TestGetLongThrows(msg.Properties, propertyName, "GetLong should have thrown");
-            //TestGetShortThrows(msg.Properties, propertyName, "GetShort should have thrown");
-            TestGetStringThrows(msg.Properties, propertyName, "GetString should have thrown");
-        }
-
-        [Test]
-        public void TestPropertyConversionInt()
-        {
-            TextMessage msg = new TextMessage();
-            String propertyName = "property";
-            msg.Properties.SetInt(propertyName, (int)1);
-
-            Assert.AreEqual((int)msg.Properties[propertyName], 1);
-            Assert.AreEqual(msg.Properties.GetInt(propertyName), 1);
-            Assert.AreEqual(msg.Properties[propertyName].ToString(), "1");
-
-            TestGetBoolThrows(msg.Properties, propertyName, "GetBool should have thrown");
-            TestGetByteThrows(msg.Properties, propertyName, "GetByte should have thrown");
-            TestGetBytesThrows(msg.Properties, propertyName, "GetBytes should have thrown");
-            TestGetCharThrows(msg.Properties, propertyName, "GetChar should have thrown");
-            TestGetDictionaryThrows(msg.Properties, propertyName, "GetDictionary should have thrown");
-            TestGetDoubleThrows(msg.Properties, propertyName, "GetDouble should have thrown");
-            TestGetFloatThrows(msg.Properties, propertyName, "GetFloat should have thrown");
-            //TestGetIntThrows(msg.Properties, propertyName, "GetInt should have thrown");
-            TestGetListThrows(msg.Properties, propertyName, "GetList should have thrown");
-            TestGetLongThrows(msg.Properties, propertyName, "GetLong should have thrown");
-            TestGetShortThrows(msg.Properties, propertyName, "GetShort should have thrown");
-            TestGetStringThrows(msg.Properties, propertyName, "GetString should have thrown");
-        }
-
-        [Test]
-        public void TestPropertyConversionLong()
-        {
-            TextMessage msg = new TextMessage();
-            String propertyName = "property";
-            msg.Properties.SetLong(propertyName, 1);
-
-            Assert.AreEqual((long)msg.Properties[propertyName], 1);
-            Assert.AreEqual(msg.Properties.GetLong(propertyName), 1);
-            Assert.AreEqual(msg.Properties[propertyName].ToString(), "1");
-
-            TestGetBoolThrows(msg.Properties, propertyName, "GetBool should have thrown");
-            TestGetByteThrows(msg.Properties, propertyName, "GetByte should have thrown");
-            TestGetBytesThrows(msg.Properties, propertyName, "GetBytes should have thrown");
-            TestGetCharThrows(msg.Properties, propertyName, "GetChar should have thrown");
-            TestGetDictionaryThrows(msg.Properties, propertyName, "GetDictionary should have thrown");
-            TestGetDoubleThrows(msg.Properties, propertyName, "GetDouble should have thrown");
-            TestGetFloatThrows(msg.Properties, propertyName, "GetFloat should have thrown");
-            TestGetIntThrows(msg.Properties, propertyName, "GetInt should have thrown");
-            TestGetListThrows(msg.Properties, propertyName, "GetList should have thrown");
-            //TestGetLongThrows(msg.Properties, propertyName, "GetLong should have thrown");
-            TestGetShortThrows(msg.Properties, propertyName, "GetShort should have thrown");
-            TestGetStringThrows(msg.Properties, propertyName, "GetString should have thrown");
-        }
-
-        [Test]
-        public void TestPropertyConversionFloat()
-        {
-            TextMessage msg = new TextMessage();
-            String propertyName = "property";
-            float floatValue = (float)1.5;
-            msg.Properties.SetFloat(propertyName, floatValue);
-            Assert.AreEqual((float)msg.Properties[propertyName], floatValue, 0);
-            Assert.AreEqual(msg.Properties.GetFloat(propertyName), floatValue, 0);
-            Assert.AreEqual(msg.Properties[propertyName].ToString(), floatValue.ToString());
-
-            TestGetBoolThrows(msg.Properties, propertyName, "GetBool should have thrown");
-            TestGetByteThrows(msg.Properties, propertyName, "GetByte should have thrown");
-            TestGetBytesThrows(msg.Properties, propertyName, "GetBytes should have thrown");
-            TestGetCharThrows(msg.Properties, propertyName, "GetChar should have thrown");
-            TestGetDictionaryThrows(msg.Properties, propertyName, "GetDictionary should have thrown");
-            TestGetDoubleThrows(msg.Properties, propertyName, "GetDouble should have thrown");
-            //TestGetFloatThrows(msg.Properties, propertyName, "GetFloat should have thrown");
-            TestGetIntThrows(msg.Properties, propertyName, "GetInt should have thrown");
-            TestGetListThrows(msg.Properties, propertyName, "GetList should have thrown");
-            TestGetLongThrows(msg.Properties, propertyName, "GetLong should have thrown");
-            TestGetShortThrows(msg.Properties, propertyName, "GetShort should have thrown");
-            TestGetStringThrows(msg.Properties, propertyName, "GetString should have thrown");
-        }
-
-        [Test]
-        public void TestPropertyConversionDouble()
-        {
-            TextMessage msg = new TextMessage();
-            String propertyName = "property";
-            Double doubleValue = 1.5;
-            msg.Properties.SetDouble(propertyName, doubleValue);
-            Assert.AreEqual((double)msg.Properties[propertyName], doubleValue, 0);
-            Assert.AreEqual(msg.Properties.GetDouble(propertyName), doubleValue, 0);
-            Assert.AreEqual(msg.Properties[propertyName].ToString(), doubleValue.ToString());
-
-            TestGetBoolThrows(msg.Properties, propertyName, "GetBool should have thrown");
-            TestGetByteThrows(msg.Properties, propertyName, "GetByte should have thrown");
-            TestGetBytesThrows(msg.Properties, propertyName, "GetBytes should have thrown");
-            TestGetCharThrows(msg.Properties, propertyName, "GetChar should have thrown");
-            TestGetDictionaryThrows(msg.Properties, propertyName, "GetDictionary should have thrown");
-            //TestGetDoubleThrows(msg.Properties, propertyName, "GetDouble should have thrown");
-            TestGetFloatThrows(msg.Properties, propertyName, "GetFloat should have thrown");
-            TestGetIntThrows(msg.Properties, propertyName, "GetInt should have thrown");
-            TestGetListThrows(msg.Properties, propertyName, "GetList should have thrown");
-            TestGetLongThrows(msg.Properties, propertyName, "GetLong should have thrown");
-            TestGetShortThrows(msg.Properties, propertyName, "GetShort should have thrown");
-            TestGetStringThrows(msg.Properties, propertyName, "GetString should have thrown");
-        }
-
-        [Test]
-        public void TestPropertyConversionString()
-        {
-            TextMessage msg = new TextMessage();
-            String propertyName = "property";
-            String stringValue = "True";
-            msg.Properties.SetString(propertyName, stringValue);
-            Assert.AreEqual(msg.Properties.GetString(propertyName), stringValue);
-            Assert.AreEqual((string)msg.Properties[propertyName], stringValue);
-
-            stringValue = "1";
-            msg.Properties.SetString(propertyName, stringValue);
-            // TODO:
-            //Assert.AreEqual(msg.Properties.GetByte(propertyName), 1);
-            //Assert.AreEqual(msg.Properties.GetShort(propertyName), 1);
-            //Assert.AreEqual(msg.Properties.GetInt(propertyName), 1);
-            //Assert.AreEqual(msg.Properties.GetLong(propertyName), 1);
-
-            Double doubleValue = 1.5;
-            stringValue = doubleValue.ToString();
-            msg.Properties.SetString(propertyName, stringValue);
-            // TODO:
-            //Assert.AreEqual(msg.Properties.GetFloat(propertyName), 1.5, 0);
-            //Assert.AreEqual(msg.Properties.GetDouble(propertyName), 1.5, 0);
-
-            stringValue = "bad";
-            msg.Properties.SetString(propertyName, stringValue);
-
-            TestGetBoolThrows(msg.Properties, propertyName, "GetBool should have thrown");
-            TestGetByteThrows(msg.Properties, propertyName, "GetByte should have thrown");
-            TestGetBytesThrows(msg.Properties, propertyName, "GetBytes should have thrown");
-            TestGetCharThrows(msg.Properties, propertyName, "GetChar should have thrown");
-            TestGetDictionaryThrows(msg.Properties, propertyName, "GetDictionary should have thrown");
-            TestGetDoubleThrows(msg.Properties, propertyName, "GetDouble should have thrown");
-            TestGetFloatThrows(msg.Properties, propertyName, "GetFloat should have thrown");
-            TestGetIntThrows(msg.Properties, propertyName, "GetInt should have thrown");
-            TestGetListThrows(msg.Properties, propertyName, "GetList should have thrown");
-            TestGetLongThrows(msg.Properties, propertyName, "GetLong should have thrown");
-            TestGetShortThrows(msg.Properties, propertyName, "GetShort should have thrown");
-            //TestGetStringThrows(msg.Properties, propertyName, "GetString should have thrown");
-        }
-    }
-}
diff --git a/src/test/csharp/NMSConnectionFactoryTest.cs b/src/test/csharp/NMSConnectionFactoryTest.cs
deleted file mode 100644
index efb55a5..0000000
--- a/src/test/csharp/NMSConnectionFactoryTest.cs
+++ /dev/null
@@ -1,87 +0,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.
- */
-
-using System;
-using System.Net.Sockets;
-using Apache.NMS.Test;
-using NUnit.Framework;
-
-namespace Apache.NMS.Amqp.Test
-{
-    [TestFixture]
-    public class NMSConnectionFactoryTest
-    {
-        // These tests assume that a broker is running on amqp port 5672.
-        [Test]
-        // These cases should be accepted
-        [TestCase("amqp:localhost")]
-        [TestCase("amqp:tcp:localhost")]
-        [TestCase("amqp:user/pass@localhost")]
-        [TestCase("amqp:user/pass@tcp:localhost")]
-        [TestCase("amqp:user/pass@localhost:5672")]
-        [TestCase("amqp:user/pass@tcp:localhost:5672")]
-        [TestCase("amqp:[::1]")]
-        [TestCase("amqp:tcp:[::1]")]
-        [TestCase("amqp:user/pass@[::1]")]
-        [TestCase("amqp:user/pass@tcp:[::1]")]
-        [TestCase("amqp:user/pass@tcp:[::1]:5672")]
-
-        // This case fails to connect to two hosts but then connects to the third
-        [TestCase("amqp:bogushost1,bogushost2:9988,localhost:5672")]
-
-        // This test case causes NUnit to assert but is OK for a host name
-        //[TestCase("amqp:tcp:host-._~%ff%23:42")]
-
-        // These test cases fail to parse the URI
-        [TestCase("amqp:tcp:", ExpectedException = typeof(ConnectionClosedException))]
-        [TestCase("amqp:", ExpectedException = typeof(ConnectionClosedException))]
-        [TestCase("amqp::5672", ExpectedException = typeof(ConnectionClosedException))]
-
-        // These test cases pass parsing the URI but fail to connect
-        [TestCase("amqp:tcp:localhost:42",               ExpectedException = typeof(ConnectionClosedException))]
-        [TestCase("amqp:hostlocal:42",                   ExpectedException = typeof(ConnectionClosedException))]
-        [TestCase("amqp:tcp",                            ExpectedException = typeof(ConnectionClosedException))]
-        [TestCase("amqp:876",                            ExpectedException = typeof(ConnectionClosedException))]
-        [TestCase("amqp:tcp:567",                        ExpectedException = typeof(ConnectionClosedException))]
-        [TestCase("amqp:[::]",                           ExpectedException = typeof(ConnectionClosedException))]
-        [TestCase("amqp:[::127.0.0.1]",                  ExpectedException = typeof(ConnectionClosedException))]
-        [TestCase("amqp:[2002::222:68ff:fe0b:e61a]",     ExpectedException = typeof(ConnectionClosedException))]
-        [TestCase("amqp:[2002::222:68ff:fe0b:e61a]:123", ExpectedException = typeof(ConnectionClosedException))]
-        [TestCase("amqp:user@tcp:badhost:123",           ExpectedException = typeof(ConnectionClosedException))]
-        [TestCase("amqp:user/pass@badhost",              ExpectedException = typeof(ConnectionClosedException))]
-        [TestCase("amqp:user@badhost",                   ExpectedException = typeof(ConnectionClosedException))]
-
-        public void TestURI(string connectionURI)
-        {
-            //Apache.NMS.Tracer.Trace = new Apache.NMS.Amqp.Test.NmsConsoleTracer();
-            Tracer.Debug("Connecting to URI: " + connectionURI);
-            NMSConnectionFactory factory = new NMSConnectionFactory(connectionURI);
-            Assert.IsNotNull(factory);
-            Assert.IsNotNull(factory.ConnectionFactory);
-            using (IConnection connection = factory.CreateConnection("", ""))
-            {
-                Assert.IsNotNull(connection);
-
-                // The connection URI values are not used when a factory is created
-                // nor when a connection is created. 
-                // They are used when the connection is started.
-                connection.Start();
-            }
-        }
-
-    }
-}
diff --git a/src/test/csharp/NmsConsoleTracer.cs b/src/test/csharp/NmsConsoleTracer.cs
deleted file mode 100644
index edce59b..0000000
--- a/src/test/csharp/NmsConsoleTracer.cs
+++ /dev/null
@@ -1,75 +0,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.
- */
-
-namespace Apache.NMS.Amqp.Test
-{
-	public class NmsConsoleTracer : Apache.NMS.ITrace
-	{
-		#region ITrace Members
-		public void Debug(string message)
-		{
-			System.Console.WriteLine(string.Format("DEBUG: {0}", message));
-		}
-
-		public void Error(string message)
-		{
-			System.Console.WriteLine(string.Format("ERROR: {0}", message));
-		}
-
-		public void Fatal(string message)
-		{
-			System.Console.WriteLine(string.Format("FATAL: {0}", message));
-		}
-
-		public void Info(string message)
-		{
-			System.Console.WriteLine(string.Format("INFO: {0}", message));
-		}
-
-		public void Warn(string message)
-		{
-			System.Console.WriteLine(string.Format("WARN: {0}", message));
-		}
-
-		public bool IsDebugEnabled
-		{
-			get { return true; }
-		}
-
-		public bool IsErrorEnabled
-		{
-			get { return true; }
-		}
-
-		public bool IsFatalEnabled
-		{
-			get { return true; }
-		}
-
-		public bool IsInfoEnabled
-		{
-			get { return true; }
-		}
-
-		public bool IsWarnEnabled
-		{
-			get { return true; }
-		}
-
-		#endregion
-	}
-}
diff --git a/src/test/csharp/TextMessageTest.cs b/src/test/csharp/TextMessageTest.cs
deleted file mode 100644
index 7b96192..0000000
--- a/src/test/csharp/TextMessageTest.cs
+++ /dev/null
@@ -1,160 +0,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.
- */
-
-using Apache.NMS;
-using Apache.NMS.Util;
-using NUnit.Framework;
-using System;
-using System.Text;
-using System.IO;
-using Apache.NMS.Amqp;
-
-namespace Apache.NMS.Amqp.Test
-{
-    [TestFixture]
-    public class TextMessageTest
-    {
-        [Test]
-        public void TestCommand()
-        {
-            TextMessage message = new TextMessage();
-
-            Assert.IsNull(message.Text);
-
-            // Test with ASCII Data.
-            message.Text = "Hello World";
-            Assert.IsNotNull(message.Text);
-            Assert.AreEqual("Hello World", message.Text);
-
-            String unicodeString =
-                "This unicode string contains two characters " +
-                "with codes outside an 8-bit code range, " +
-                "Pi (\u03a0) and Sigma (\u03a3).";
-
-            message.Text = unicodeString;
-            Assert.IsNotNull(message.Text);
-            Assert.AreEqual(unicodeString, message.Text);
-        }
-
-        [Test]
-        public void TestShallowCopy()
-        {
-            TextMessage msg = new TextMessage();
-            string testString = "str";
-            msg.Text = testString;
-            TextMessage copy = msg.Clone() as TextMessage;
-            Assert.IsTrue(msg.Text == ((TextMessage) copy).Text);
-        }
-
-        [Test]
-        public void TestSetText()
-        {
-            TextMessage msg = new TextMessage();
-            string str = "testText";
-            msg.Text = str;
-            Assert.AreEqual(msg.Text, str);
-        }
-
-        [Test]
-        public void TestClearBody()
-        {
-            TextMessage textMessage = new TextMessage();
-            textMessage.Text = "string";
-            textMessage.ClearBody();
-            Assert.IsFalse(textMessage.ReadOnlyBody);
-            Assert.IsNull(textMessage.Text);
-            try
-            {
-                textMessage.Text = "String";
-                Assert.IsTrue(textMessage.Text.Length > 0);
-            }
-            catch(MessageNotWriteableException)
-            {
-                Assert.Fail("should be writeable");
-            }
-            catch(MessageNotReadableException)
-            {
-                Assert.Fail("should be readable");
-            }
-        }
-
-        // TODO: Support read-only/write-only
-#if false
-        [Test]
-        public void TestReadOnlyBody()
-        {
-            TextMessage textMessage = new TextMessage();
-            textMessage.Text = "test";
-            textMessage.ReadOnlyBody = true;
-            try
-            {
-                Assert.IsTrue(textMessage.Text.Length > 0);
-            }
-            catch(MessageNotReadableException)
-            {
-                Assert.Fail("should be readable");
-            }
-            try
-            {
-                textMessage.Text = "test";
-                Assert.Fail("should throw exception");
-            }
-            catch(MessageNotWriteableException)
-            {
-            }
-        }
-
-        [Test]
-        public void TtestWriteOnlyBody()
-        {
-            // should always be readable
-            TextMessage textMessage = new TextMessage();
-            textMessage.ReadOnlyBody = false;
-            try
-            {
-                textMessage.Text = "test";
-                Assert.IsTrue(textMessage.Text.Length > 0);
-            }
-            catch(MessageNotReadableException)
-            {
-                Assert.Fail("should be readable");
-            }
-            textMessage.ReadOnlyBody = true;
-            try
-            {
-                Assert.IsTrue(textMessage.Text.Length > 0);
-                textMessage.Text = "test";
-                Assert.Fail("should throw exception");
-            }
-            catch(MessageNotReadableException)
-            {
-                Assert.Fail("should be readable");
-            }
-            catch(MessageNotWriteableException)
-            {
-            }
-        }
-#endif
-
-        [Test]
-        public void TestNullText()
-        {
-            TextMessage nullMessage = new TextMessage();
-            Assert.IsNull(nullMessage.Text);
-        }
-    }
-}
diff --git a/vs2008-HelloWorld.csproj b/vs2008-HelloWorld.csproj
deleted file mode 100644
index bcdcb7c..0000000
--- a/vs2008-HelloWorld.csproj
+++ /dev/null
@@ -1,115 +0,0 @@
-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">

-  <PropertyGroup>

-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>

-    <Platform Condition=" '$(Platform)' == '' ">x86</Platform>

-    <ProductVersion>9.0.21022</ProductVersion>

-    <SchemaVersion>2.0</SchemaVersion>

-    <ProjectGuid>{DC7079D8-D4A1-41FB-9997-78914CFAACB0}</ProjectGuid>

-    <OutputType>Exe</OutputType>

-    <RootNamespace>Apache.NMS.AMQP.Test</RootNamespace>

-    <AssemblyName>vs2008-HelloWorld</AssemblyName>

-    <WarningLevel>4</WarningLevel>

-    <StartupObject>

-    </StartupObject>

-    <FileUpgradeFlags>

-    </FileUpgradeFlags>

-    <OldToolsVersion>2.0</OldToolsVersion>

-    <UpgradeBackupLocation>

-    </UpgradeBackupLocation>

-    <IsWebBootstrapper>false</IsWebBootstrapper>

-    <SignAssembly>true</SignAssembly>

-    <AssemblyOriginatorKeyFile>keyfile\NMSKey.snk</AssemblyOriginatorKeyFile>

-    <SccProjectName>

-    </SccProjectName>

-    <SccLocalPath>

-    </SccLocalPath>

-    <SccAuxPath>

-    </SccAuxPath>

-    <SccProvider>

-    </SccProvider>

-    <RunPostBuildEvent>OnOutputUpdated</RunPostBuildEvent>

-    <PublishUrl>publish\</PublishUrl>

-    <Install>true</Install>

-    <InstallFrom>Disk</InstallFrom>

-    <UpdateEnabled>false</UpdateEnabled>

-    <UpdateMode>Foreground</UpdateMode>

-    <UpdateInterval>7</UpdateInterval>

-    <UpdateIntervalUnits>Days</UpdateIntervalUnits>

-    <UpdatePeriodically>false</UpdatePeriodically>

-    <UpdateRequired>false</UpdateRequired>

-    <MapFileExtensions>true</MapFileExtensions>

-    <ApplicationRevision>0</ApplicationRevision>

-    <ApplicationVersion>1.0.0.%2a</ApplicationVersion>

-    <UseApplicationTrust>false</UseApplicationTrust>

-    <BootstrapperEnabled>true</BootstrapperEnabled>

-  </PropertyGroup>

-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">

-    <DebugSymbols>true</DebugSymbols>

-    <DebugType>full</DebugType>

-    <Optimize>false</Optimize>

-    <OutputPath>build\net-2.0\debug\</OutputPath>

-    <DefineConstants>TRACE;DEBUG;NET,NET_2_0</DefineConstants>

-    <AllowUnsafeBlocks>false</AllowUnsafeBlocks>

-    <NoWarn>3016</NoWarn>

-    <PlatformTarget>x86</PlatformTarget>

-  </PropertyGroup>

-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">

-    <DebugSymbols>true</DebugSymbols>

-    <Optimize>true</Optimize>

-    <OutputPath>build\net-2.0\release\</OutputPath>

-    <DefineConstants>TRACE;NET,NET_2_0</DefineConstants>

-    <AllowUnsafeBlocks>false</AllowUnsafeBlocks>

-    <DebugType>full</DebugType>

-    <NoWarn>3016</NoWarn>

-    <PlatformTarget>x86</PlatformTarget>

-  </PropertyGroup>

-  <ItemGroup>

-    <Reference Include="Apache.NMS, Version=1.1.0.0, Culture=neutral, processorArchitecture=MSIL">

-      <SpecificVersion>False</SpecificVersion>

-      <HintPath>lib\Apache.NMS\net-2.0\Apache.NMS.dll</HintPath>

-    </Reference>

-    <Reference Include="System" />

-    <Reference Include="System.Messaging" />

-    <Reference Include="System.Xml" />

-  </ItemGroup>

-  <ItemGroup>

-    <Compile Include="src\test\csharp\CommonAssemblyInfo.cs" />

-    <Compile Include="src\test\csharp\HelloWorld\HelloWorld.cs" />

-  </ItemGroup>

-  <ItemGroup>

-    <BootstrapperPackage Include="Microsoft.Net.Framework.2.0">

-      <Visible>False</Visible>

-      <ProductName>.NET Framework 2.0 %28x86%29</ProductName>

-      <Install>true</Install>

-    </BootstrapperPackage>

-    <BootstrapperPackage Include="Microsoft.Net.Framework.3.0">

-      <Visible>False</Visible>

-      <ProductName>.NET Framework 3.0 %28x86%29</ProductName>

-      <Install>false</Install>

-    </BootstrapperPackage>

-    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5">

-      <Visible>False</Visible>

-      <ProductName>.NET Framework 3.5</ProductName>

-      <Install>false</Install>

-    </BootstrapperPackage>

-  </ItemGroup>

-  <ItemGroup>

-    <Content Include="nmsprovider-test.config">

-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>

-    </Content>

-  </ItemGroup>

-  <ItemGroup>

-    <None Include="keyfile\NMSKey.snk" />

-  </ItemGroup>

-  <ItemGroup>

-    <ProjectReference Include="vs2008-amqp.csproj">

-      <Project>{5CDFDA77-CFC2-4A6E-B731-6C06B59BFFE3}</Project>

-      <Name>vs2008-amqp</Name>

-    </ProjectReference>

-  </ItemGroup>

-  <Import Project="$(MSBuildBinPath)\Microsoft.CSHARP.Targets" />

-  <PropertyGroup>

-    <PostBuildEvent>cd $(ProjectDir)

-nant -nologo -q install-all -D:compile.skip=true</PostBuildEvent>

-  </PropertyGroup>

-</Project>
\ No newline at end of file
diff --git a/vs2008-amqp-test.csproj b/vs2008-amqp-test.csproj
deleted file mode 100644
index 11f123e..0000000
--- a/vs2008-amqp-test.csproj
+++ /dev/null
@@ -1,127 +0,0 @@
-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">

-  <PropertyGroup>

-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>

-    <Platform Condition=" '$(Platform)' == '' ">x86</Platform>

-    <ProductVersion>9.0.30729</ProductVersion>

-    <SchemaVersion>2.0</SchemaVersion>

-    <ProjectGuid>{2F31ED5C-44A2-464A-BD55-2B5B010654E8}</ProjectGuid>

-    <OutputType>Library</OutputType>

-    <RootNamespace>Apache.NMS.AMQP.Test</RootNamespace>

-    <AssemblyName>Apache.NMS.AMQP.Test</AssemblyName>

-    <WarningLevel>4</WarningLevel>

-    <StartupObject>

-    </StartupObject>

-    <FileUpgradeFlags>

-    </FileUpgradeFlags>

-    <OldToolsVersion>2.0</OldToolsVersion>

-    <UpgradeBackupLocation>

-    </UpgradeBackupLocation>

-    <PublishUrl>publish\</PublishUrl>

-    <Install>true</Install>

-    <InstallFrom>Disk</InstallFrom>

-    <UpdateEnabled>false</UpdateEnabled>

-    <UpdateMode>Foreground</UpdateMode>

-    <UpdateInterval>7</UpdateInterval>

-    <UpdateIntervalUnits>Days</UpdateIntervalUnits>

-    <UpdatePeriodically>false</UpdatePeriodically>

-    <UpdateRequired>false</UpdateRequired>

-    <MapFileExtensions>true</MapFileExtensions>

-    <ApplicationRevision>0</ApplicationRevision>

-    <ApplicationVersion>1.0.0.%2a</ApplicationVersion>

-    <IsWebBootstrapper>false</IsWebBootstrapper>

-    <UseApplicationTrust>false</UseApplicationTrust>

-    <BootstrapperEnabled>true</BootstrapperEnabled>

-    <SignAssembly>true</SignAssembly>

-    <AssemblyOriginatorKeyFile>keyfile\NMSKey.snk</AssemblyOriginatorKeyFile>

-    <SccProjectName>

-    </SccProjectName>

-    <SccLocalPath>

-    </SccLocalPath>

-    <SccAuxPath>

-    </SccAuxPath>

-    <SccProvider>

-    </SccProvider>

-    <RunPostBuildEvent>OnOutputUpdated</RunPostBuildEvent>

-  </PropertyGroup>

-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">

-    <DebugSymbols>true</DebugSymbols>

-    <DebugType>full</DebugType>

-    <Optimize>false</Optimize>

-    <OutputPath>build\net-2.0\debug\</OutputPath>

-    <DefineConstants>TRACE;DEBUG;NET,NET_2_0</DefineConstants>

-    <AllowUnsafeBlocks>false</AllowUnsafeBlocks>

-    <NoWarn>3016</NoWarn>

-    <PlatformTarget>x86</PlatformTarget>

-  </PropertyGroup>

-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">

-    <DebugSymbols>true</DebugSymbols>

-    <Optimize>true</Optimize>

-    <OutputPath>build\net-2.0\release\</OutputPath>

-    <DefineConstants>TRACE;NET,NET_2_0</DefineConstants>

-    <AllowUnsafeBlocks>false</AllowUnsafeBlocks>

-    <DebugType>full</DebugType>

-    <NoWarn>3016</NoWarn>

-    <PlatformTarget>x86</PlatformTarget>

-  </PropertyGroup>

-  <ItemGroup>

-    <Reference Include="Apache.NMS, Version=1.1.0.0, Culture=neutral, processorArchitecture=MSIL">

-      <SpecificVersion>False</SpecificVersion>

-      <HintPath>lib\Apache.NMS\net-2.0\Apache.NMS.dll</HintPath>

-    </Reference>

-    <Reference Include="Apache.NMS.Test, Version=1.1.0.0, Culture=neutral, processorArchitecture=MSIL">

-      <SpecificVersion>False</SpecificVersion>

-      <HintPath>lib\Apache.NMS\net-2.0\Apache.NMS.Test.dll</HintPath>

-    </Reference>

-    <Reference Include="nunit.framework, Version=2.4.8.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">

-      <SpecificVersion>False</SpecificVersion>

-      <HintPath>lib\NUnit\net-2.0\nunit.framework.dll</HintPath>

-    </Reference>

-    <Reference Include="System" />

-    <Reference Include="System.Xml" />

-  </ItemGroup>

-  <ItemGroup>

-    <Compile Include="src\test\csharp\MessageTest.cs" />

-    <Compile Include="src\test\csharp\MapMessageTest.cs" />

-    <Compile Include="src\test\csharp\TextMessageTest.cs" />

-    <Compile Include="src\test\csharp\NMSConnectionFactoryTest.cs" />

-    <Compile Include="src\test\csharp\MessageDeliveryTest.cs" />

-    <Compile Include="src\test\csharp\CommonAssemblyInfo.cs" />

-    <Compile Include="src\test\csharp\NmsConsoleTracer.cs" />

-  </ItemGroup>

-  <ItemGroup>

-    <BootstrapperPackage Include="Microsoft.Net.Framework.2.0">

-      <Visible>False</Visible>

-      <ProductName>.NET Framework 2.0 %28x86%29</ProductName>

-      <Install>true</Install>

-    </BootstrapperPackage>

-    <BootstrapperPackage Include="Microsoft.Net.Framework.3.0">

-      <Visible>False</Visible>

-      <ProductName>.NET Framework 3.0 %28x86%29</ProductName>

-      <Install>false</Install>

-    </BootstrapperPackage>

-    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5">

-      <Visible>False</Visible>

-      <ProductName>.NET Framework 3.5</ProductName>

-      <Install>false</Install>

-    </BootstrapperPackage>

-  </ItemGroup>

-  <ItemGroup>

-    <Content Include="nmsprovider-test.config">

-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>

-    </Content>

-  </ItemGroup>

-  <ItemGroup>

-    <None Include="keyfile\NMSKey.snk" />

-  </ItemGroup>

-  <ItemGroup>

-    <ProjectReference Include="vs2008-amqp.csproj">

-      <Project>{5CDFDA77-CFC2-4A6E-B731-6C06B59BFFE3}</Project>

-      <Name>vs2008-amqp</Name>

-    </ProjectReference>

-  </ItemGroup>

-  <Import Project="$(MSBuildBinPath)\Microsoft.CSHARP.Targets" />

-  <PropertyGroup>

-    <PostBuildEvent>cd $(ProjectDir)

-nant -nologo -q install-all -D:compile.skip=true</PostBuildEvent>

-  </PropertyGroup>

-</Project>
\ No newline at end of file
diff --git a/vs2008-amqp.csproj b/vs2008-amqp.csproj
deleted file mode 100644
index 91a7265..0000000
--- a/vs2008-amqp.csproj
+++ /dev/null
@@ -1,126 +0,0 @@
-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">

-  <PropertyGroup>

-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>

-    <Platform Condition=" '$(Platform)' == '' ">x86</Platform>

-    <ProductVersion>9.0.21022</ProductVersion>

-    <SchemaVersion>2.0</SchemaVersion>

-    <ProjectGuid>{5CDFDA77-CFC2-4A6E-B731-6C06B59BFFE3}</ProjectGuid>

-    <OutputType>Library</OutputType>

-    <RootNamespace>Apache.NMS.AMQP</RootNamespace>

-    <AssemblyName>Apache.NMS.AMQP</AssemblyName>

-    <WarningLevel>4</WarningLevel>

-    <StartupObject>

-    </StartupObject>

-    <SignAssembly>true</SignAssembly>

-    <AssemblyOriginatorKeyFile>keyfile\NMSKey.snk</AssemblyOriginatorKeyFile>

-    <FileUpgradeFlags>

-    </FileUpgradeFlags>

-    <OldToolsVersion>2.0</OldToolsVersion>

-    <UpgradeBackupLocation>

-    </UpgradeBackupLocation>

-    <PublishUrl>publish\</PublishUrl>

-    <Install>true</Install>

-    <InstallFrom>Disk</InstallFrom>

-    <UpdateEnabled>false</UpdateEnabled>

-    <UpdateMode>Foreground</UpdateMode>

-    <UpdateInterval>7</UpdateInterval>

-    <UpdateIntervalUnits>Days</UpdateIntervalUnits>

-    <UpdatePeriodically>false</UpdatePeriodically>

-    <UpdateRequired>false</UpdateRequired>

-    <MapFileExtensions>true</MapFileExtensions>

-    <ApplicationRevision>0</ApplicationRevision>

-    <ApplicationVersion>1.0.0.%2a</ApplicationVersion>

-    <IsWebBootstrapper>false</IsWebBootstrapper>

-    <UseApplicationTrust>false</UseApplicationTrust>

-    <BootstrapperEnabled>true</BootstrapperEnabled>

-    <SccProjectName>

-    </SccProjectName>

-    <SccLocalPath>

-    </SccLocalPath>

-    <SccAuxPath>

-    </SccAuxPath>

-    <SccProvider>

-    </SccProvider>

-    <RunPostBuildEvent>OnOutputUpdated</RunPostBuildEvent>

-  </PropertyGroup>

-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">

-    <DebugSymbols>true</DebugSymbols>

-    <DebugType>full</DebugType>

-    <Optimize>false</Optimize>

-    <OutputPath>build\net-2.0\debug\</OutputPath>

-    <DefineConstants>TRACE;DEBUG;NET,NET_2_0</DefineConstants>

-    <AllowUnsafeBlocks>false</AllowUnsafeBlocks>

-    <PlatformTarget>x86</PlatformTarget>

-  </PropertyGroup>

-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">

-    <DebugSymbols>true</DebugSymbols>

-    <Optimize>true</Optimize>

-    <OutputPath>build\net-2.0\release\</OutputPath>

-    <DefineConstants>TRACE;NET,NET_2_0</DefineConstants>

-    <AllowUnsafeBlocks>false</AllowUnsafeBlocks>

-    <DebugType>full</DebugType>

-    <PlatformTarget>x86</PlatformTarget>

-  </PropertyGroup>

-  <ItemGroup>

-    <Reference Include="Apache.NMS, Version=1.1.0.0, Culture=neutral, processorArchitecture=MSIL">

-      <SpecificVersion>False</SpecificVersion>

-      <HintPath>lib\Apache.NMS\net-2.0\Apache.NMS.dll</HintPath>

-    </Reference>

-    <Reference Include="org.apache.qpid.messaging, Version=0.28.0.16239, Culture=neutral, processorArchitecture=x86">

-      <SpecificVersion>False</SpecificVersion>

-      <HintPath>lib\Apache.Qpid\net-2.0\org.apache.qpid.messaging.dll</HintPath>

-    </Reference>

-    <Reference Include="System" />

-    <Reference Include="System.Data" />

-    <Reference Include="System.Xml" />

-  </ItemGroup>

-  <ItemGroup>

-    <Compile Include="src\main\csharp\ConnectionClosedException.cs" />

-    <Compile Include="src\main\csharp\DefaultMessageConverter.cs" />

-    <Compile Include="src\main\csharp\IMessageConverter.cs" />

-    <Compile Include="src\main\csharp\BaseMessage.cs" />

-    <Compile Include="src\main\csharp\BytesMessage.cs" />

-    <Compile Include="src\main\csharp\CommonAssemblyInfo.cs" />

-    <Compile Include="src\main\csharp\Connection.cs" />

-    <Compile Include="src\main\csharp\ConnectionFactory.cs" />

-    <Compile Include="src\main\csharp\ConnectionMetaData.cs" />

-    <Compile Include="src\main\csharp\Destination.cs" />

-    <Compile Include="src\main\csharp\MapMessage.cs" />

-    <Compile Include="src\main\csharp\MessageConsumer.cs" />

-    <Compile Include="src\main\csharp\MessageProducer.cs" />

-    <Compile Include="src\main\csharp\ObjectMessage.cs" />

-    <Compile Include="src\main\csharp\Queue.cs" />

-    <Compile Include="src\main\csharp\Session.cs" />

-    <Compile Include="src\main\csharp\SessionClosedException.cs" />

-    <Compile Include="src\main\csharp\StreamMessage.cs" />

-    <Compile Include="src\main\csharp\TextMessage.cs" />

-    <Compile Include="src\main\csharp\Topic.cs" />

-  </ItemGroup>

-  <ItemGroup>

-    <None Include="keyfile\NMSKey.snk" />

-  </ItemGroup>

-  <ItemGroup>

-    <BootstrapperPackage Include="Microsoft.Net.Framework.2.0">

-      <Visible>False</Visible>

-      <ProductName>.NET Framework 2.0 %28x86%29</ProductName>

-      <Install>true</Install>

-    </BootstrapperPackage>

-    <BootstrapperPackage Include="Microsoft.Net.Framework.3.0">

-      <Visible>False</Visible>

-      <ProductName>.NET Framework 3.0 %28x86%29</ProductName>

-      <Install>false</Install>

-    </BootstrapperPackage>

-    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5">

-      <Visible>False</Visible>

-      <ProductName>.NET Framework 3.5</ProductName>

-      <Install>false</Install>

-    </BootstrapperPackage>

-  </ItemGroup>

-  <Import Project="$(MSBuildBinPath)\Microsoft.CSHARP.Targets" />

-  <PropertyGroup>

-    <PreBuildEvent>cd $(ProjectDir)

-nant -nologo download-vendor -D:current.build.config=$(ConfigurationName) -D:current.build.framework=net-2.0</PreBuildEvent>

-    <PostBuildEvent>cd $(ProjectDir)

-nant -nologo -q install-all -D:compile.skip=true</PostBuildEvent>

-  </PropertyGroup>

-</Project>
\ No newline at end of file
diff --git a/vs2008-amqp.sln b/vs2008-amqp.sln
deleted file mode 100644
index bd94b8d..0000000
--- a/vs2008-amqp.sln
+++ /dev/null
@@ -1,32 +0,0 @@
-

-Microsoft Visual Studio Solution File, Format Version 10.00

-# Visual Studio 2008

-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "vs2008-amqp", "vs2008-amqp.csproj", "{5CDFDA77-CFC2-4A6E-B731-6C06B59BFFE3}"

-EndProject

-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "vs2008-amqp-test", "vs2008-amqp-test.csproj", "{2F31ED5C-44A2-464A-BD55-2B5B010654E8}"

-EndProject

-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "vs2008-HelloWorld", "vs2008-HelloWorld.csproj", "{DC7079D8-D4A1-41FB-9997-78914CFAACB0}"

-EndProject

-Global

-	GlobalSection(SolutionConfigurationPlatforms) = preSolution

-		Debug|x86 = Debug|x86

-		Release|x86 = Release|x86

-	EndGlobalSection

-	GlobalSection(ProjectConfigurationPlatforms) = postSolution

-		{5CDFDA77-CFC2-4A6E-B731-6C06B59BFFE3}.Debug|x86.ActiveCfg = Debug|x86

-		{5CDFDA77-CFC2-4A6E-B731-6C06B59BFFE3}.Debug|x86.Build.0 = Debug|x86

-		{5CDFDA77-CFC2-4A6E-B731-6C06B59BFFE3}.Release|x86.ActiveCfg = Release|x86

-		{5CDFDA77-CFC2-4A6E-B731-6C06B59BFFE3}.Release|x86.Build.0 = Release|x86

-		{2F31ED5C-44A2-464A-BD55-2B5B010654E8}.Debug|x86.ActiveCfg = Debug|x86

-		{2F31ED5C-44A2-464A-BD55-2B5B010654E8}.Debug|x86.Build.0 = Debug|x86

-		{2F31ED5C-44A2-464A-BD55-2B5B010654E8}.Release|x86.ActiveCfg = Release|x86

-		{2F31ED5C-44A2-464A-BD55-2B5B010654E8}.Release|x86.Build.0 = Release|x86

-		{DC7079D8-D4A1-41FB-9997-78914CFAACB0}.Debug|x86.ActiveCfg = Debug|x86

-		{DC7079D8-D4A1-41FB-9997-78914CFAACB0}.Debug|x86.Build.0 = Debug|x86

-		{DC7079D8-D4A1-41FB-9997-78914CFAACB0}.Release|x86.ActiveCfg = Release|x86

-		{DC7079D8-D4A1-41FB-9997-78914CFAACB0}.Release|x86.Build.0 = Release|x86

-	EndGlobalSection

-	GlobalSection(SolutionProperties) = preSolution

-		HideSolutionNode = FALSE

-	EndGlobalSection

-EndGlobal

diff --git a/vs2010-HelloWorld.csproj b/vs2010-HelloWorld.csproj
deleted file mode 100644
index 9cd2616..0000000
--- a/vs2010-HelloWorld.csproj
+++ /dev/null
@@ -1,88 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>

-<!--

-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 ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

-  <PropertyGroup>

-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>

-    <Platform Condition=" '$(Platform)' == '' ">x86</Platform>

-    <ProductVersion>8.0.30703</ProductVersion>

-    <SchemaVersion>2.0</SchemaVersion>

-    <ProjectGuid>{AC7C231F-0539-4612-A521-27CD9E00352B}</ProjectGuid>

-    <OutputType>Exe</OutputType>

-    <AppDesignerFolder>Properties</AppDesignerFolder>

-    <RootNamespace>vs2010_HelloWorld</RootNamespace>

-    <AssemblyName>vs2010-HelloWorld</AssemblyName>

-    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>

-    <TargetFrameworkProfile>

-    </TargetFrameworkProfile>

-    <FileAlignment>512</FileAlignment>

-  </PropertyGroup>

-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">

-    <PlatformTarget>x86</PlatformTarget>

-    <DebugSymbols>true</DebugSymbols>

-    <DebugType>full</DebugType>

-    <Optimize>false</Optimize>

-    <OutputPath>build\net-4.0\debug\</OutputPath>

-    <DefineConstants>DEBUG;TRACE</DefineConstants>

-    <ErrorReport>prompt</ErrorReport>

-    <WarningLevel>4</WarningLevel>

-  </PropertyGroup>

-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">

-    <PlatformTarget>x86</PlatformTarget>

-    <DebugType>pdbonly</DebugType>

-    <Optimize>true</Optimize>

-    <OutputPath>build\net-4.0\Release\</OutputPath>

-    <DefineConstants>TRACE</DefineConstants>

-    <ErrorReport>prompt</ErrorReport>

-    <WarningLevel>4</WarningLevel>

-  </PropertyGroup>

-  <ItemGroup>

-    <Reference Include="Apache.NMS">

-      <HintPath>lib\Apache.NMS\net-4.0\Apache.NMS.dll</HintPath>

-    </Reference>

-    <Reference Include="System" />

-    <Reference Include="System.Core" />

-    <Reference Include="System.Xml.Linq" />

-    <Reference Include="System.Data.DataSetExtensions" />

-    <Reference Include="Microsoft.CSharp" />

-    <Reference Include="System.Data" />

-    <Reference Include="System.Xml" />

-  </ItemGroup>

-  <ItemGroup>

-    <Compile Include="src\test\csharp\CommonAssemblyInfo.cs" />

-    <Compile Include="src\test\csharp\HelloWorld\HelloWorld.cs" />

-  </ItemGroup>

-  <ItemGroup>

-    <None Include="src\test\csharp\HelloWorld\app.config" />

-  </ItemGroup>

-  <ItemGroup>

-    <ProjectReference Include="vs2010-amqp.csproj">

-      <Project>{5E1E5956-2AC0-4134-BA91-CE3A13268432}</Project>

-      <Name>vs2010-amqp</Name>

-    </ProjectReference>

-  </ItemGroup>

-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

-  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 

-       Other similar extension points exist, see Microsoft.Common.targets.

-  <Target Name="BeforeBuild">

-  </Target>

-  <Target Name="AfterBuild">

-  </Target>

-  -->

-</Project>
\ No newline at end of file
diff --git a/vs2010-amqp-test.csproj b/vs2010-amqp-test.csproj
deleted file mode 100644
index 7b6d55c..0000000
--- a/vs2010-amqp-test.csproj
+++ /dev/null
@@ -1,149 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>

-<!--

-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 DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">

-  <PropertyGroup>

-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>

-    <Platform Condition=" '$(Platform)' == '' ">x86</Platform>

-    <ProductVersion>9.0.21022</ProductVersion>

-    <SchemaVersion>2.0</SchemaVersion>

-    <ProjectGuid>{E7A4FA3E-6106-470C-99A6-B59C8340F7DB}</ProjectGuid>

-    <OutputType>Library</OutputType>

-    <RootNamespace>Apache.NMS.AMQP.Test</RootNamespace>

-    <AssemblyName>Apache.NMS.AMQP.Test</AssemblyName>

-    <WarningLevel>4</WarningLevel>

-    <StartupObject>

-    </StartupObject>

-    <FileUpgradeFlags>

-    </FileUpgradeFlags>

-    <OldToolsVersion>3.5</OldToolsVersion>

-    <UpgradeBackupLocation>

-    </UpgradeBackupLocation>

-    <PublishUrl>publish\</PublishUrl>

-    <Install>true</Install>

-    <InstallFrom>Disk</InstallFrom>

-    <UpdateEnabled>false</UpdateEnabled>

-    <UpdateMode>Foreground</UpdateMode>

-    <UpdateInterval>7</UpdateInterval>

-    <UpdateIntervalUnits>Days</UpdateIntervalUnits>

-    <UpdatePeriodically>false</UpdatePeriodically>

-    <UpdateRequired>false</UpdateRequired>

-    <MapFileExtensions>true</MapFileExtensions>

-    <ApplicationRevision>0</ApplicationRevision>

-    <ApplicationVersion>1.0.0.%2a</ApplicationVersion>

-    <IsWebBootstrapper>false</IsWebBootstrapper>

-    <UseApplicationTrust>false</UseApplicationTrust>

-    <BootstrapperEnabled>true</BootstrapperEnabled>

-    <SignAssembly>true</SignAssembly>

-    <AssemblyOriginatorKeyFile>keyfile\NMSKey.snk</AssemblyOriginatorKeyFile>

-    <SccProjectName>

-    </SccProjectName>

-    <SccLocalPath>

-    </SccLocalPath>

-    <SccAuxPath>

-    </SccAuxPath>

-    <SccProvider>

-    </SccProvider>

-    <RunPostBuildEvent>OnOutputUpdated</RunPostBuildEvent>

-    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>

-    <TargetFrameworkProfile />

-  </PropertyGroup>

-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">

-    <DebugSymbols>true</DebugSymbols>

-    <DebugType>full</DebugType>

-    <Optimize>false</Optimize>

-    <OutputPath>build\net-4.0\debug\</OutputPath>

-    <DefineConstants>TRACE;DEBUG;NET,NET_4_0</DefineConstants>

-    <AllowUnsafeBlocks>false</AllowUnsafeBlocks>

-    <NoWarn>3016</NoWarn>

-    <PlatformTarget>x86</PlatformTarget>

-  </PropertyGroup>

-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">

-    <DebugSymbols>true</DebugSymbols>

-    <Optimize>true</Optimize>

-    <OutputPath>build\net-2.0\release\</OutputPath>

-    <DefineConstants>TRACE;NET,NET_2_0</DefineConstants>

-    <AllowUnsafeBlocks>false</AllowUnsafeBlocks>

-    <DebugType>full</DebugType>

-    <NoWarn>3016</NoWarn>

-    <PlatformTarget>x86</PlatformTarget>

-  </PropertyGroup>

-  <ItemGroup>

-    <Reference Include="Apache.NMS, Version=1.1.0.0, Culture=neutral, processorArchitecture=MSIL">

-      <SpecificVersion>False</SpecificVersion>

-      <HintPath>lib\Apache.NMS\net-2.0\Apache.NMS.dll</HintPath>

-    </Reference>

-    <Reference Include="Apache.NMS.Test, Version=1.1.0.0, Culture=neutral, processorArchitecture=MSIL">

-      <SpecificVersion>False</SpecificVersion>

-      <HintPath>lib\Apache.NMS\net-2.0\Apache.NMS.Test.dll</HintPath>

-    </Reference>

-    <Reference Include="nunit.framework, Version=2.4.8.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">

-      <SpecificVersion>False</SpecificVersion>

-      <HintPath>lib\NUnit\net-2.0\nunit.framework.dll</HintPath>

-    </Reference>

-    <Reference Include="System" />

-    <Reference Include="System.Messaging" />

-    <Reference Include="System.Xml" />

-  </ItemGroup>

-  <ItemGroup>

-    <Compile Include="src\test\csharp\MapMessageTest.cs" />

-    <Compile Include="src\test\csharp\MessageDeliveryTest.cs" />

-    <Compile Include="src\test\csharp\MessageTest.cs" />

-    <Compile Include="src\test\csharp\NMSConnectionFactoryTest.cs" />

-    <Compile Include="src\test\csharp\NmsConsoleTracer.cs" />

-    <Compile Include="src\test\csharp\CommonAssemblyInfo.cs" />

-    <Compile Include="src\test\csharp\TextMessageTest.cs" />

-  </ItemGroup>

-  <ItemGroup>

-    <BootstrapperPackage Include="Microsoft.Net.Framework.2.0">

-      <Visible>False</Visible>

-      <ProductName>.NET Framework 2.0 %28x86%29</ProductName>

-      <Install>true</Install>

-    </BootstrapperPackage>

-    <BootstrapperPackage Include="Microsoft.Net.Framework.3.0">

-      <Visible>False</Visible>

-      <ProductName>.NET Framework 3.0 %28x86%29</ProductName>

-      <Install>false</Install>

-    </BootstrapperPackage>

-    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5">

-      <Visible>False</Visible>

-      <ProductName>.NET Framework 3.5</ProductName>

-      <Install>false</Install>

-    </BootstrapperPackage>

-  </ItemGroup>

-  <ItemGroup>

-    <Content Include="nmsprovider-test.config">

-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>

-    </Content>

-  </ItemGroup>

-  <ItemGroup>

-    <None Include="keyfile\NMSKey.snk" />

-  </ItemGroup>

-  <ItemGroup>

-    <ProjectReference Include="vs2010-amqp.csproj">

-      <Project>{5E1E5956-2AC0-4134-BA91-CE3A13268432}</Project>

-      <Name>vs2010-amqp</Name>

-    </ProjectReference>

-  </ItemGroup>

-  <Import Project="$(MSBuildBinPath)\Microsoft.CSHARP.Targets" />

-  <PropertyGroup>

-    <PostBuildEvent>cd $(ProjectDir)

-nant -nologo -q install-all -D:compile.skip=true</PostBuildEvent>

-  </PropertyGroup>

-</Project>
\ No newline at end of file
diff --git a/vs2010-amqp.csproj b/vs2010-amqp.csproj
deleted file mode 100644
index de54f90..0000000
--- a/vs2010-amqp.csproj
+++ /dev/null
@@ -1,156 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>

-<!--

-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 DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">

-  <PropertyGroup>

-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>

-    <Platform Condition=" '$(Platform)' == '' ">x86</Platform>

-    <ProductVersion>9.0.21022</ProductVersion>

-    <SchemaVersion>2.0</SchemaVersion>

-    <ProjectGuid>{5E1E5956-2AC0-4134-BA91-CE3A13268432}</ProjectGuid>

-    <OutputType>Library</OutputType>

-    <RootNamespace>Apache.NMS.AMQP</RootNamespace>

-    <AssemblyName>Apache.NMS.AMQP</AssemblyName>

-    <WarningLevel>4</WarningLevel>

-    <StartupObject>

-    </StartupObject>

-    <SignAssembly>true</SignAssembly>

-    <AssemblyOriginatorKeyFile>keyfile\NMSKey.snk</AssemblyOriginatorKeyFile>

-    <FileUpgradeFlags>

-    </FileUpgradeFlags>

-    <OldToolsVersion>3.5</OldToolsVersion>

-    <UpgradeBackupLocation>

-    </UpgradeBackupLocation>

-    <IsWebBootstrapper>false</IsWebBootstrapper>

-    <SccProjectName>

-    </SccProjectName>

-    <SccLocalPath>

-    </SccLocalPath>

-    <SccAuxPath>

-    </SccAuxPath>

-    <SccProvider>

-    </SccProvider>

-    <RunPostBuildEvent>OnOutputUpdated</RunPostBuildEvent>

-    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>

-    <TargetFrameworkProfile />

-    <PublishUrl>publish\</PublishUrl>

-    <Install>true</Install>

-    <InstallFrom>Disk</InstallFrom>

-    <UpdateEnabled>false</UpdateEnabled>

-    <UpdateMode>Foreground</UpdateMode>

-    <UpdateInterval>7</UpdateInterval>

-    <UpdateIntervalUnits>Days</UpdateIntervalUnits>

-    <UpdatePeriodically>false</UpdatePeriodically>

-    <UpdateRequired>false</UpdateRequired>

-    <MapFileExtensions>true</MapFileExtensions>

-    <ApplicationRevision>0</ApplicationRevision>

-    <ApplicationVersion>1.0.0.%2a</ApplicationVersion>

-    <UseApplicationTrust>false</UseApplicationTrust>

-    <BootstrapperEnabled>true</BootstrapperEnabled>

-  </PropertyGroup>

-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">

-    <DebugSymbols>true</DebugSymbols>

-    <DebugType>full</DebugType>

-    <Optimize>false</Optimize>

-    <OutputPath>build\net-4.0\debug\</OutputPath>

-    <DefineConstants>TRACE;DEBUG;NET,NET_4_0</DefineConstants>

-    <AllowUnsafeBlocks>false</AllowUnsafeBlocks>

-    <PlatformTarget>x86</PlatformTarget>

-  </PropertyGroup>

-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">

-    <DebugSymbols>true</DebugSymbols>

-    <Optimize>true</Optimize>

-    <OutputPath>build\net-4.0\release\</OutputPath>

-    <DefineConstants>TRACE;NET,NET_4_0</DefineConstants>

-    <AllowUnsafeBlocks>false</AllowUnsafeBlocks>

-    <DebugType>full</DebugType>

-    <PlatformTarget>x86</PlatformTarget>

-  </PropertyGroup>

-  <ItemGroup>

-    <Reference Include="Apache.NMS">

-      <HintPath>lib\Apache.NMS\net-4.0\Apache.NMS.dll</HintPath>

-    </Reference>

-    <Reference Include="org.apache.qpid.messaging, Version=0.28.0.16239, Culture=neutral, processorArchitecture=x86">

-      <SpecificVersion>False</SpecificVersion>

-      <HintPath>lib\Apache.Qpid\net-4.0\org.apache.qpid.messaging.dll</HintPath>

-    </Reference>

-    <Reference Include="System" />

-    <Reference Include="System.Data" />

-    <Reference Include="System.Xml" />

-  </ItemGroup>

-  <ItemGroup>

-    <Compile Include="src\main\csharp\ConnectionClosedException.cs" />

-    <Compile Include="src\main\csharp\DefaultMessageConverter.cs" />

-    <Compile Include="src\main\csharp\IMessageConverter.cs" />

-    <Compile Include="src\main\csharp\BaseMessage.cs" />

-    <Compile Include="src\main\csharp\BytesMessage.cs" />

-    <Compile Include="src\main\csharp\CommonAssemblyInfo.cs" />

-    <Compile Include="src\main\csharp\Connection.cs" />

-    <Compile Include="src\main\csharp\ConnectionFactory.cs" />

-    <Compile Include="src\main\csharp\ConnectionMetaData.cs" />

-    <Compile Include="src\main\csharp\Destination.cs" />

-    <Compile Include="src\main\csharp\MapMessage.cs" />

-    <Compile Include="src\main\csharp\MessageConsumer.cs" />

-    <Compile Include="src\main\csharp\MessageProducer.cs" />

-    <Compile Include="src\main\csharp\ObjectMessage.cs" />

-    <Compile Include="src\main\csharp\Queue.cs" />

-    <Compile Include="src\main\csharp\Session.cs" />

-    <Compile Include="src\main\csharp\SessionClosedException.cs" />

-    <Compile Include="src\main\csharp\StreamMessage.cs" />

-    <Compile Include="src\main\csharp\TextMessage.cs" />

-    <Compile Include="src\main\csharp\Topic.cs" />

-  </ItemGroup>

-  <ItemGroup>

-    <None Include="keyfile\NMSKey.snk" />

-  </ItemGroup>

-  <ItemGroup>

-    <BootstrapperPackage Include="Microsoft.Net.Client.3.5">

-      <Visible>False</Visible>

-      <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>

-      <Install>false</Install>

-    </BootstrapperPackage>

-    <BootstrapperPackage Include="Microsoft.Net.Framework.2.0">

-      <Visible>False</Visible>

-      <ProductName>.NET Framework 2.0 %28x86%29</ProductName>

-      <Install>false</Install>

-    </BootstrapperPackage>

-    <BootstrapperPackage Include="Microsoft.Net.Framework.3.0">

-      <Visible>False</Visible>

-      <ProductName>.NET Framework 3.0 %28x86%29</ProductName>

-      <Install>false</Install>

-    </BootstrapperPackage>

-    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5">

-      <Visible>False</Visible>

-      <ProductName>.NET Framework 3.5</ProductName>

-      <Install>false</Install>

-    </BootstrapperPackage>

-    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">

-      <Visible>False</Visible>

-      <ProductName>.NET Framework 3.5 SP1</ProductName>

-      <Install>false</Install>

-    </BootstrapperPackage>

-  </ItemGroup>

-  <Import Project="$(MSBuildBinPath)\Microsoft.CSHARP.Targets" />

-  <PropertyGroup>

-    <PreBuildEvent>cd $(ProjectDir)

-nant -nologo download-vendor -D:current.build.config=$(ConfigurationName) -D:current.build.framework=net-4.0</PreBuildEvent>

-    <PostBuildEvent>cd $(ProjectDir)

-nant -nologo -q install-all -D:compile.skip=true</PostBuildEvent>

-  </PropertyGroup>

-</Project>
\ No newline at end of file
diff --git a/vs2010-amqp.sln b/vs2010-amqp.sln
deleted file mode 100644
index f29c5d9..0000000
--- a/vs2010-amqp.sln
+++ /dev/null
@@ -1,32 +0,0 @@
-

-Microsoft Visual Studio Solution File, Format Version 11.00

-# Visual Studio 2010

-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "vs2010-amqp", "vs2010-amqp.csproj", "{5E1E5956-2AC0-4134-BA91-CE3A13268432}"

-EndProject

-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "vs2010-amqp-test", "vs2010-amqp-test.csproj", "{E7A4FA3E-6106-470C-99A6-B59C8340F7DB}"

-EndProject

-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "vs2010-HelloWorld", "vs2010-HelloWorld.csproj", "{AC7C231F-0539-4612-A521-27CD9E00352B}"

-EndProject

-Global

-	GlobalSection(SolutionConfigurationPlatforms) = preSolution

-		Debug|x86 = Debug|x86

-		Release|x86 = Release|x86

-	EndGlobalSection

-	GlobalSection(ProjectConfigurationPlatforms) = postSolution

-		{5E1E5956-2AC0-4134-BA91-CE3A13268432}.Debug|x86.ActiveCfg = Debug|x86

-		{5E1E5956-2AC0-4134-BA91-CE3A13268432}.Debug|x86.Build.0 = Debug|x86

-		{5E1E5956-2AC0-4134-BA91-CE3A13268432}.Release|x86.ActiveCfg = Release|x86

-		{5E1E5956-2AC0-4134-BA91-CE3A13268432}.Release|x86.Build.0 = Release|x86

-		{E7A4FA3E-6106-470C-99A6-B59C8340F7DB}.Debug|x86.ActiveCfg = Debug|x86

-		{E7A4FA3E-6106-470C-99A6-B59C8340F7DB}.Debug|x86.Build.0 = Debug|x86

-		{E7A4FA3E-6106-470C-99A6-B59C8340F7DB}.Release|x86.ActiveCfg = Release|x86

-		{E7A4FA3E-6106-470C-99A6-B59C8340F7DB}.Release|x86.Build.0 = Release|x86

-		{AC7C231F-0539-4612-A521-27CD9E00352B}.Debug|x86.ActiveCfg = Debug|x86

-		{AC7C231F-0539-4612-A521-27CD9E00352B}.Debug|x86.Build.0 = Debug|x86

-		{AC7C231F-0539-4612-A521-27CD9E00352B}.Release|x86.ActiveCfg = Release|x86

-		{AC7C231F-0539-4612-A521-27CD9E00352B}.Release|x86.Build.0 = Release|x86

-	EndGlobalSection

-	GlobalSection(SolutionProperties) = preSolution

-		HideSolutionNode = FALSE

-	EndGlobalSection

-EndGlobal