Author: steshaw
Date: Sun Nov 26 11:29:24 2006
New Revision: 479408

URL: http://svn.apache.org/viewvc?view=rev&rev=479408
Log:
A build script for Mono and a couple of small changes to enable compiling and 
running on 
Linux.

Added:
    incubator/qpid/trunk/qpid/dotnet/build-mono20   (with props)
Modified:
    incubator/qpid/trunk/qpid/dotnet/Qpid.Client/Client/AMQConnection.cs
    incubator/qpid/trunk/qpid/dotnet/Qpid.Client/Client/BasicMessageConsumer.cs
    incubator/qpid/trunk/qpid/dotnet/release-dotnet

Modified: incubator/qpid/trunk/qpid/dotnet/Qpid.Client/Client/AMQConnection.cs
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/dotnet/Qpid.Client/Client/AMQConnection.cs?view=diff&rev=479408&r1=479407&r2=479408
==============================================================================
--- incubator/qpid/trunk/qpid/dotnet/Qpid.Client/Client/AMQConnection.cs 
(original)
+++ incubator/qpid/trunk/qpid/dotnet/Qpid.Client/Client/AMQConnection.cs Sun 
Nov 26 11:29:24 2006
@@ -90,7 +90,7 @@
         /// <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 @@
                 {
                     Interlocked.Exchange(ref _closed, CLOSED);
                 }
+#if __MonoCS__
+                _exceptionListener(xe);
+#else
                 _exceptionListener.Invoke(xe);
+#endif
             }
             else
             {

Modified: 
incubator/qpid/trunk/qpid/dotnet/Qpid.Client/Client/BasicMessageConsumer.cs
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/dotnet/Qpid.Client/Client/BasicMessageConsumer.cs?view=diff&rev=479408&r1=479407&r2=479408
==============================================================================
--- incubator/qpid/trunk/qpid/dotnet/Qpid.Client/Client/BasicMessageConsumer.cs 
(original)
+++ incubator/qpid/trunk/qpid/dotnet/Qpid.Client/Client/BasicMessageConsumer.cs 
Sun Nov 26 11:29:24 2006
@@ -316,7 +316,11 @@
                 {
                     if (_messageListener != null)
                     {
+#if __MonoCS__
+                        _messageListener(jmsMessage);
+#else
                         _messageListener.Invoke(jmsMessage);
+#endif
                     }
                     else
                     {

Added: incubator/qpid/trunk/qpid/dotnet/build-mono20
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/dotnet/build-mono20?view=auto&rev=479408
==============================================================================
--- incubator/qpid/trunk/qpid/dotnet/build-mono20 (added)
+++ incubator/qpid/trunk/qpid/dotnet/build-mono20 Sun Nov 26 11:29:24 2006
@@ -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

Propchange: incubator/qpid/trunk/qpid/dotnet/build-mono20
------------------------------------------------------------------------------
    svn:executable = *

Modified: incubator/qpid/trunk/qpid/dotnet/release-dotnet
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/dotnet/release-dotnet?view=diff&rev=479408&r1=479407&r2=479408
==============================================================================
--- incubator/qpid/trunk/qpid/dotnet/release-dotnet (original)
+++ incubator/qpid/trunk/qpid/dotnet/release-dotnet Sun Nov 26 11:29:24 2006
@@ -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


Reply via email to