https://issues.apache.org/jira/browse/AMQNET-454
https://issues.apache.org/jira/secure/attachment/12659250/Apache.NMS.AMQP-25-use-qpid-0.28.patch
diff --git a/nant-common.xml b/nant-common.xml
index be40af6..af0d997 100644
--- a/nant-common.xml
+++ b/nant-common.xml
@@ -43,13 +43,13 @@
<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.config" value="${if(project.release.type == 'SNAPSHOT', 'debug', 'release')}" 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" />
+ <property name="build.config.strings" value="debug,release" unless="${property::exists('build.config.strings')}" />
<!-- Figure out the user's HOME directory -->
<property name="user.home" value="${environment::get-variable('HOME')}"
@@ -384,6 +384,7 @@
<copy todir="${build.bin.dir}" file="${content.filename}" if="${not file::up-to-date(content.filename, '${build.bin.dir}/${content.filename}')}" />
</do>
</foreach>
+ <call target="copy-unmanaged-content" />
</target>
<!-- ============================================================================================ -->
diff --git a/nant.build b/nant.build
index cf7076f..31a3ab8 100644
--- a/nant.build
+++ b/nant.build
@@ -48,12 +48,13 @@
<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. -->
- <property name="build.netcf-2.0.skip" value="true" />
- <property name="build.netcf-3.5.skip" value="true" />
- <property name="build.mono-2.0.skip" value="true" />
- <property name="build.net-3.5.skip" value="true" />
+ <!-- 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"/>
+
+ <!-- Limit to debug until lib\Apache.Qpid\net-X.0 gets debug/release subdirectories -->
+ <property name="build.config.strings" value="debug" />
<target name="vendor-init" description="Initializes Vendor library from local repository.">
<!--
@@ -78,11 +79,12 @@
<!-- 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.27.0.16097" />
+ <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')}" />
- <property name="debugsuffix" value="${if(project.release.type == 'release', '', 'd')}" />
- <property name="boostdebug" value="${if(project.release.type == 'release', '', '-gd')}" />
- <echo message="Vendor-init current.build.framework = ${current.build.framework}, project.release.type = ${project.release.type}" />
+ <property name="debugsuffix" value="${if(current.build.config == 'release', '', 'd')}" />
+ <property name="boostdebug" value="${if(current.build.config == 'release', '', '-gd')}" />
+ <echo message="Vendor-init current.build.framework = ${current.build.framework}, current.build.config = ${current.build.config}" />
<echo message="vcver = ${vcver}, debugsuffix = ${debugsuffix}, boostdebug = ${boostdebug}" />
<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"/>
@@ -130,6 +132,19 @@
</target>
+ <target name="copy-unmanaged-content" description="Copies native DLLs from \lib to \build">
+ <foreach item="File" property="filename">
+ <in> <items>
+ <include name="${basedir}/lib/Apache.Qpid/${current.build.framework}/qpid*" />
+ <include name="${basedir}/lib/Apache.Qpid/${current.build.framework}/boost*" />
+ </items> </in>
+ <do>
+ <echo message="Copying unmanaged: ${filename}" />
+ <copy todir="${build.bin.dir}" file="${filename}" if="${not file::up-to-date(filename, '${build.bin.dir}/${filename}')}" />
+ </do>
+ </foreach>
+ </target>
+
<target name="default" depends="install-all" />
<zipfileset id="src.package.contents" basedir="${basedir}">
diff --git a/src/test/csharp/NMSConnectionFactoryTest.cs b/src/test/csharp/NMSConnectionFactoryTest.cs
index 5f58f1d..efb55a5 100644
--- a/src/test/csharp/NMSConnectionFactoryTest.cs
+++ b/src/test/csharp/NMSConnectionFactoryTest.cs
@@ -47,10 +47,9 @@
//[TestCase("amqp:tcp:host-._~%ff%23:42")]
// These test cases fail to parse the URI
- // TODO: The SEHException is fixed in upstream qpid but not yet in vendor kit.
- [TestCase("amqp:tcp:", ExpectedException = typeof(System.Runtime.InteropServices.SEHException))]
- [TestCase("amqp:", ExpectedException = typeof(System.Runtime.InteropServices.SEHException))]
- [TestCase("amqp::5672", ExpectedException = typeof(System.Runtime.InteropServices.SEHException))]
+ [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))]
diff --git a/vs2008-HelloWorld.csproj b/vs2008-HelloWorld.csproj
index 5536eaa..26bd5bf 100644
--- a/vs2008-HelloWorld.csproj
+++ b/vs2008-HelloWorld.csproj
@@ -2,7 +2,7 @@
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ProductVersion>9.0.30729</ProductVersion>
+ <ProductVersion>9.0.21022</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{DC7079D8-D4A1-41FB-9997-78914CFAACB0}</ProjectGuid>
<OutputType>Exe</OutputType>
@@ -61,6 +61,23 @@
<DebugType>full</DebugType>
<NoWarn>3016</NoWarn>
</PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
+ <DebugSymbols>true</DebugSymbols>
+ <OutputPath>build\net-2.0\debug\</OutputPath>
+ <DefineConstants>TRACE;DEBUG;NET,NET_2_0</DefineConstants>
+ <NoWarn>3016</NoWarn>
+ <DebugType>full</DebugType>
+ <PlatformTarget>x86</PlatformTarget>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
+ <DebugSymbols>true</DebugSymbols>
+ <OutputPath>bin\x86\Release\</OutputPath>
+ <DefineConstants>TRACE;NET,NET_2_0</DefineConstants>
+ <Optimize>true</Optimize>
+ <NoWarn>3016</NoWarn>
+ <DebugType>full</DebugType>
+ <PlatformTarget>x86</PlatformTarget>
+ </PropertyGroup>
<ItemGroup>
<Reference Include="Apache.NMS, Version=1.1.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
diff --git a/vs2008-amqp.csproj b/vs2008-amqp.csproj
index 85e9056..53cd911 100644
--- a/vs2008-amqp.csproj
+++ b/vs2008-amqp.csproj
@@ -2,7 +2,7 @@
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ProductVersion>9.0.30729</ProductVersion>
+ <ProductVersion>9.0.21022</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{5CDFDA77-CFC2-4A6E-B731-6C06B59BFFE3}</ProjectGuid>
<OutputType>Library</OutputType>
@@ -64,7 +64,7 @@
<SpecificVersion>False</SpecificVersion>
<HintPath>lib\Apache.NMS\net-2.0\Apache.NMS.dll</HintPath>
</Reference>
- <Reference Include="org.apache.qpid.messaging, Version=0.27.0.16097, Culture=neutral, PublicKeyToken=7e57166074abee8c, processorArchitecture=x86" />
+ <Reference Include="org.apache.qpid.messaging, Version=0.28.0.16239, Culture=neutral, PublicKeyToken=7e57166074abee8c, processorArchitecture=x86" />
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
diff --git a/vs2008-amqp.sln b/vs2008-amqp.sln
index 61287b0..b18af6c 100644
--- a/vs2008-amqp.sln
+++ b/vs2008-amqp.sln
@@ -10,21 +10,31 @@
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
+ Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
+ Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{5CDFDA77-CFC2-4A6E-B731-6C06B59BFFE3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5CDFDA77-CFC2-4A6E-B731-6C06B59BFFE3}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {5CDFDA77-CFC2-4A6E-B731-6C06B59BFFE3}.Debug|x86.ActiveCfg = Debug|Any CPU
{5CDFDA77-CFC2-4A6E-B731-6C06B59BFFE3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5CDFDA77-CFC2-4A6E-B731-6C06B59BFFE3}.Release|Any CPU.Build.0 = Release|Any CPU
+ {5CDFDA77-CFC2-4A6E-B731-6C06B59BFFE3}.Release|x86.ActiveCfg = Release|Any CPU
{2F31ED5C-44A2-464A-BD55-2B5B010654E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2F31ED5C-44A2-464A-BD55-2B5B010654E8}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2F31ED5C-44A2-464A-BD55-2B5B010654E8}.Debug|x86.ActiveCfg = Debug|Any CPU
{2F31ED5C-44A2-464A-BD55-2B5B010654E8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2F31ED5C-44A2-464A-BD55-2B5B010654E8}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2F31ED5C-44A2-464A-BD55-2B5B010654E8}.Release|x86.ActiveCfg = Release|Any CPU
{DC7079D8-D4A1-41FB-9997-78914CFAACB0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DC7079D8-D4A1-41FB-9997-78914CFAACB0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {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|Any CPU.ActiveCfg = Release|Any CPU
{DC7079D8-D4A1-41FB-9997-78914CFAACB0}.Release|Any CPU.Build.0 = Release|Any CPU
+ {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
diff --git a/vs2010-amqp-test.csproj b/vs2010-amqp-test.csproj
index 716c452..270dd2d 100644
--- a/vs2010-amqp-test.csproj
+++ b/vs2010-amqp-test.csproj
@@ -68,8 +68,8 @@
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
- <OutputPath>build\net-2.0\debug\</OutputPath>
- <DefineConstants>TRACE;DEBUG;NET,NET_2_0</DefineConstants>
+ <OutputPath>build\net-4.0\debug\</OutputPath>
+ <DefineConstants>TRACE;DEBUG;NET,NET_4_0</DefineConstants>
<AllowUnsafeBlocks>false</AllowUnsafeBlocks>
<NoWarn>3016</NoWarn>
</PropertyGroup>
@@ -100,13 +100,13 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
- <Compile Include="src\MapMessageTest.cs" />
- <Compile Include="src\MessageDeliveryTest.cs" />
- <Compile Include="src\MessageTest.cs" />
- <Compile Include="src\NMSConnectionFactoryTest.cs" />
- <Compile Include="src\NmsConsoleTracer.cs" />
+ <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\TextMessageTest.cs" />
+ <Compile Include="src\test\csharp\TextMessageTest.cs" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">