summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteven Shaw <steshaw@apache.org>2006-11-26 19:29:24 +0000
committerSteven Shaw <steshaw@apache.org>2006-11-26 19:29:24 +0000
commit4b1471a8b70bc2da921275b199753beab1023a3b (patch)
tree4d9ca2255022c57c45de07911babf806bb0a1017
parent073c11477829c96d657f35a85cbf078a94a03d39 (diff)
downloadqpid-python-4b1471a8b70bc2da921275b199753beab1023a3b.tar.gz
A build script for Mono and a couple of small changes to enable compiling and running on
Linux. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@479408 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--dotnet/Qpid.Client/Client/AMQConnection.cs6
-rw-r--r--dotnet/Qpid.Client/Client/BasicMessageConsumer.cs4
-rwxr-xr-xdotnet/build-mono2084
-rw-r--r--dotnet/release-dotnet85
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