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=""..\..\" to=""${sandcastle.dir}\" />
- <replacestring from=""..\" to=""${sandcastle.dir}\Examples\" />
- <replacestring from="".\comments.xml" to=""${documentation.dir}\${project.name}.xml" />
- <replacestring from=""%DXROOT%\Presentation\${sandcastle.style}\content\feedback_content.xml"" to=""${basedir}/src/main/sandcastle/feedback_content.xml"" />
- </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:"${sandcastle.productiontransforms.dir}\ApplyVSDocModel.xsl"" if="${sandcastle.style != 'prototype'}" />
- <arg value="/xsl:"${sandcastle.productiontransforms.dir}\ApplyPrototypeDocModel.xsl"" if="${sandcastle.style == 'prototype'}" />
- <arg value="/xsl:"${sandcastle.productiontransforms.dir}\AddFriendlyFilenames.xsl"" /> <!-- if="${sandcastle.style != 'prototype'}" /> -->
- <arg value="/xsl:"${sandcastle.productiontransforms.dir}\AddGuidFilenames.xsl"" 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:"${sandcastle.productiontransforms.dir}\ReflectionToManifest.xsl"" />
- <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