diff options
-rw-r--r-- | dotnet/Qpid.Client/Client/AMQConnection.cs | 6 | ||||
-rw-r--r-- | dotnet/Qpid.Client/Client/BasicMessageConsumer.cs | 4 | ||||
-rwxr-xr-x | dotnet/build-mono20 | 84 | ||||
-rw-r--r-- | dotnet/release-dotnet | 85 |
4 files changed, 136 insertions, 43 deletions
diff --git a/dotnet/Qpid.Client/Client/AMQConnection.cs b/dotnet/Qpid.Client/Client/AMQConnection.cs index 12eb9f6a21..021d34f1bb 100644 --- a/dotnet/Qpid.Client/Client/AMQConnection.cs +++ b/dotnet/Qpid.Client/Client/AMQConnection.cs @@ -90,7 +90,7 @@ namespace Qpid.Client /// <summary> /// Maps from session id (Integer) to AmqChannel instance /// </summary> - private readonly LinkedHashtable _sessions = new LinkedHashtable(); + private readonly IDictionary _sessions = new LinkedHashtable(); private ExceptionListenerDelegate _exceptionListener; @@ -551,7 +551,11 @@ namespace Qpid.Client { Interlocked.Exchange(ref _closed, CLOSED); } +#if __MonoCS__ + _exceptionListener(xe); +#else _exceptionListener.Invoke(xe); +#endif } else { diff --git a/dotnet/Qpid.Client/Client/BasicMessageConsumer.cs b/dotnet/Qpid.Client/Client/BasicMessageConsumer.cs index 6d2f1c67b6..6ffa8d1d6a 100644 --- a/dotnet/Qpid.Client/Client/BasicMessageConsumer.cs +++ b/dotnet/Qpid.Client/Client/BasicMessageConsumer.cs @@ -316,7 +316,11 @@ namespace Qpid.Client { if (_messageListener != null) { +#if __MonoCS__ + _messageListener(jmsMessage); +#else _messageListener.Invoke(jmsMessage); +#endif } else { diff --git a/dotnet/build-mono20 b/dotnet/build-mono20 new file mode 100755 index 0000000000..52558c8426 --- /dev/null +++ b/dotnet/build-mono20 @@ -0,0 +1,84 @@ +#!/bin/bash +# +# Low brow build script for Mono 2.0. +# Uses metadata available in VS2005 project files. +# +# Replace with Mono's new XBuild when details are fully released. +# Note: XBuild is a clone of MSBuild. +# + +MCS_FLAGS="-debug+" + +FindExternalReferences() +{ + assembly=$1 + grep HintPath $assembly.csproj | sed -e 's-.*<HintPath>\(.*\)</HintPath>-\1-' -e 's-\\-/-g' | + while read ref; do + echo $PWD/$ref + done +} + +Build() +{ + assembly=$1; shift + + echo "====================================================" + echo Building $assembly + references=$(grep '<ProjectReference' $assembly/$assembly.csproj | sed -e 's-.*"\(.*\)".*-\1-' -e 's-\\-/-g' | + while read file; do + echo $(basename $file .csproj); + done) + references=$(echo $references) + echo "Projects referenced = [$references]" + ( + regularRefs="" + for ref in $references; do + regularRefs="$regularRefs $outDir/$ref.dll" + done + cd $assembly + find . -name \*.cs >tmp.build.sources + externalReferences=$(FindExternalReferences $assembly) + # Strip Control-M characters from external references... + externalReferences=$(echo $externalReferences | sed 's/\r//g') + echo "externalReferences = [$externalReferences]" + echo "regularRefs = [$regularRefs]" + echo PWD=$PWD + + # construct "-r" argument. + fullrefs="" + for ref in $regularRefs $externalReferences; do + if [[ -z $fullrefs ]]; then + fullrefs="-r:$ref" + else + fullrefs="$fullrefs,$ref" + fi + done + echo "fullrefs = [$fullrefs]" + + # Copy external references to output directory. + for ref in $externalReferences; do + cp $ref $outDir + done + + # Strip Control-M character here too. Not sure how they get there... + echo $fullrefs >tmp.references + mcs $MCS_FLAGS -out:$outDir/$assembly.dll -target:library @tmp.references @tmp.build.sources + ) +} + +outDir=$PWD/build/mono20 +mkdir -p $outDir + +# Tried to magically get projects from Qpid.NET.sln but wrong order for building.. +#for project in $(grep ^Project Qpid.NET.sln | sed 's/.*\\\(.*\).csproj.*/\1/'); do +# Build $project +#done + +Build Qpid.Messaging && + Build Qpid.Buffer && + Build Qpid.Codec && + Build Qpid.Common && + Build Qpid.Common.Tests && + Build Qpid.Client && + Build Qpid.Client.Transport.Socket.Blocking && + Build Qpid.Client.Tests diff --git a/dotnet/release-dotnet b/dotnet/release-dotnet index 2d875ca1cd..d4ecd84ede 100644 --- a/dotnet/release-dotnet +++ b/dotnet/release-dotnet @@ -1,42 +1,43 @@ -#!/bin/bash
-
-Usage()
-{
- echo "usage: $0 1.1|2.0 release-number (e.g. 2.0.1)"
- exit 2
-}
-
-if [[ $# -ne 2 ]]; then
- Usage
-fi
-
-dotNetVersion=$1
-releaseName=Qpid.NET-$2-FX$dotNetVersion
-
-if [[ $dotNetVersion == "1.1" ]]; then
- binDir=Qpid.Client.Tests/bin/FX1_1/Release
-elif [[ $dotNetVersion == "2.0" ]]; then
- binDir=Qpid.Client.Tests/bin/Release
-else
- Usage
-fi
-
-filesToRelease="
- Qpid.Buffer.dll
- Qpid.Client.Transport.Socket.Blocking.dll
- Qpid.Client.dll
- Qpid.Codec.dll
- Qpid.Common.dll
- Qpid.Messaging.dll
- log4net.dll
- log4net.xml"
-
-releaseDir=build/$releaseName
-mkdir -p $releaseDir
-
-for file in $filesToRelease; do
- cp $binDir/$file $releaseDir
-done
-
-cd build
-jar -cvMf $releaseName.zip $releaseName
+#!/bin/bash + +Usage() +{ + echo "usage: $0 dotnet11|dotnet20|mono20 release-number (e.g. 2.0.1)" + exit 2 +} + +if [[ $# -ne 2 ]]; then + Usage +fi + +dotNetVersion=$1 +releaseName=Qpid.NET-$2-$dotNetVersion + +if [[ $dotNetVersion == "dotnet11" ]]; then + binDir=Qpid.Client.Tests/bin/FX1_1/Release +elif [[ $dotNetVersion == "dotnet20" ]]; then + binDir=qpid.client.tests/bin/release +elif [[ $dotNetVersion == "mono20" ]]; then + binDir=build/mono20 +else + Usage +fi + +filesToRelease=" + Qpid.Buffer.dll + Qpid.Client.Transport.Socket.Blocking.dll + Qpid.Client.dll + Qpid.Codec.dll + Qpid.Common.dll + Qpid.Messaging.dll + log4net.dll" + +releaseDir=build/release/$releaseName +mkdir -p $releaseDir + +for file in $filesToRelease; do + cp $binDir/$file $releaseDir +done + +cd build/release +jar -cvMf $releaseName.zip $releaseName |