summaryrefslogtreecommitdiff
path: root/RC9/qpid/dotnet/client-010/examples/pub-sub
diff options
context:
space:
mode:
Diffstat (limited to 'RC9/qpid/dotnet/client-010/examples/pub-sub')
-rw-r--r--RC9/qpid/dotnet/client-010/examples/pub-sub/example-pub-sub-Listener/Listener.cs138
-rw-r--r--RC9/qpid/dotnet/client-010/examples/pub-sub/example-pub-sub-Listener/Properties/AssemblyInfo.cs54
-rw-r--r--RC9/qpid/dotnet/client-010/examples/pub-sub/example-pub-sub-Listener/default.build47
-rw-r--r--RC9/qpid/dotnet/client-010/examples/pub-sub/example-pub-sub-Listener/example-pub-sub-Listener.csproj59
-rw-r--r--RC9/qpid/dotnet/client-010/examples/pub-sub/example-pub-sub-Publisher/Properties/AssemblyInfo.cs54
-rw-r--r--RC9/qpid/dotnet/client-010/examples/pub-sub/example-pub-sub-Publisher/Publisher.cs93
-rw-r--r--RC9/qpid/dotnet/client-010/examples/pub-sub/example-pub-sub-Publisher/default.build47
-rw-r--r--RC9/qpid/dotnet/client-010/examples/pub-sub/example-pub-sub-Publisher/example-pub-sub-Publisher.csproj59
-rw-r--r--RC9/qpid/dotnet/client-010/examples/pub-sub/verify36
-rw-r--r--RC9/qpid/dotnet/client-010/examples/pub-sub/verify.in95
-rw-r--r--RC9/qpid/dotnet/client-010/examples/pub-sub/verify_cpp_dotnet12
-rw-r--r--RC9/qpid/dotnet/client-010/examples/pub-sub/verify_cpp_dotnet.in55
-rw-r--r--RC9/qpid/dotnet/client-010/examples/pub-sub/verify_dotnet_cpp11
-rw-r--r--RC9/qpid/dotnet/client-010/examples/pub-sub/verify_dotnet_cpp.in99
-rw-r--r--RC9/qpid/dotnet/client-010/examples/pub-sub/verify_dotnet_java15
-rw-r--r--RC9/qpid/dotnet/client-010/examples/pub-sub/verify_dotnet_java.in95
-rw-r--r--RC9/qpid/dotnet/client-010/examples/pub-sub/verify_dotnet_python11
-rw-r--r--RC9/qpid/dotnet/client-010/examples/pub-sub/verify_dotnet_python.in95
-rw-r--r--RC9/qpid/dotnet/client-010/examples/pub-sub/verify_java_dotnet15
-rw-r--r--RC9/qpid/dotnet/client-010/examples/pub-sub/verify_java_dotnet.in95
-rw-r--r--RC9/qpid/dotnet/client-010/examples/pub-sub/verify_python_dotnet11
-rw-r--r--RC9/qpid/dotnet/client-010/examples/pub-sub/verify_python_dotnet.in55
22 files changed, 1251 insertions, 0 deletions
diff --git a/RC9/qpid/dotnet/client-010/examples/pub-sub/example-pub-sub-Listener/Listener.cs b/RC9/qpid/dotnet/client-010/examples/pub-sub/example-pub-sub-Listener/Listener.cs
new file mode 100644
index 0000000000..0f09307cd4
--- /dev/null
+++ b/RC9/qpid/dotnet/client-010/examples/pub-sub/example-pub-sub-Listener/Listener.cs
@@ -0,0 +1,138 @@
+/*
+* 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 System.Text;
+using System.Threading;
+using org.apache.qpid.client;
+using org.apache.qpid.transport;
+
+namespace org.apache.qpid.example.pubsub
+{
+ /// <summary>
+ /// This program is one of two programs designed to be used
+ /// together. These programs use the topic exchange.
+ ///
+ /// Publisher:
+ ///
+ /// Publishes to a broker, specifying a routing key.
+ ///
+ /// Listener (this program):
+ ///
+ /// Reads from a queue on the broker using a message listener.
+ ///
+ /// </summary>
+ internal class Listener
+ {
+ public static int _count = 4;
+
+ private static void Main(string[] args)
+ {
+ string host = args.Length > 0 ? args[0] : "localhost";
+ int port = args.Length > 1 ? Convert.ToInt32(args[1]) : 5672;
+ Client connection = new Client();
+ try
+ {
+ connection.connect(host, port, "test", "guest", "guest");
+ ClientSession session = connection.createSession(50000);
+
+ //--------- Main body of program --------------------------------------------
+
+ lock (session)
+ {
+ Console.WriteLine("Listening for messages ...");
+ // Create a listener
+ prepareQueue("usa", "usa.#", session);
+ prepareQueue("europe", "europe.#", session);
+ prepareQueue("news", "#.news", session);
+ prepareQueue("weather", "#.weather", session);
+ while (_count > 0)
+ {
+ Monitor.Wait(session);
+ }
+ }
+
+ //---------------------------------------------------------------------------
+
+ connection.close();
+ }
+ catch (Exception e)
+ {
+ Console.WriteLine("Error: \n" + e.StackTrace);
+ }
+ }
+
+ private static void prepareQueue(string queue, string routing_key, ClientSession session)
+ {
+ // Create a unique queue name for this consumer by concatenating
+ // the queue name parameter with the Session ID.
+ Console.WriteLine("Declaring queue: " + queue);
+ session.queueDeclare(queue, Option.EXCLUSIVE, Option.AUTO_DELETE);
+
+ // Route messages to the new queue if they match the routing key.
+ // Also route any messages to with the "control" routing key to
+ // this queue so we know when it's time to stop. A publisher sends
+ // a message with the content "That's all, Folks!", using the
+ // "control" routing key, when it is finished.
+
+ session.exchangeBind(queue, "amq.topic", routing_key);
+ session.exchangeBind(queue, "amq.topic", "control");
+
+ // subscribe the listener to the queue
+ IMessageListener listener = new MessageListener(session);
+ session.attachMessageListener(listener, queue);
+ session.messageSubscribe(queue);
+ }
+ }
+
+ public class MessageListener : IMessageListener
+ {
+ private readonly ClientSession _session;
+ private readonly RangeSet _range = new RangeSet();
+
+ public MessageListener(ClientSession session)
+ {
+ _session = session;
+ }
+
+ public void messageTransfer(IMessage m)
+ {
+ BinaryReader reader = new BinaryReader(m.Body, Encoding.UTF8);
+ byte[] body = new byte[m.Body.Length - m.Body.Position];
+ reader.Read(body, 0, body.Length);
+ ASCIIEncoding enc = new ASCIIEncoding();
+ string message = enc.GetString(body);
+ Console.WriteLine("Message: " + message + " from " + m.Destination);
+ // Add this message to the list of message to be acknowledged
+ _range.add(m.Id);
+ if (message.Equals("That's all, folks!"))
+ {
+ Console.WriteLine("Shutting down listener for " + m.DeliveryProperties.getRoutingKey());
+ Listener._count--;
+ // Acknowledge all the received messages
+ _session.messageAccept(_range);
+ lock (_session)
+ {
+ Monitor.Pulse(_session);
+ }
+ }
+ }
+ }
+}
diff --git a/RC9/qpid/dotnet/client-010/examples/pub-sub/example-pub-sub-Listener/Properties/AssemblyInfo.cs b/RC9/qpid/dotnet/client-010/examples/pub-sub/example-pub-sub-Listener/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000000..6a1f505206
--- /dev/null
+++ b/RC9/qpid/dotnet/client-010/examples/pub-sub/example-pub-sub-Listener/Properties/AssemblyInfo.cs
@@ -0,0 +1,54 @@
+/*
+ *
+ * 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.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("example-pub-sub-Listener")]
+[assembly: AssemblyDescription("Built from svn revision number: ")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Apache Software Foundation")]
+[assembly: AssemblyProduct("example-pub-sub-Listener")]
+[assembly: AssemblyCopyright("Apache Software Foundation")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("74ab02ae-95d1-4bad-a7cf-9964005b9b05")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+[assembly: AssemblyVersion("0.10.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/RC9/qpid/dotnet/client-010/examples/pub-sub/example-pub-sub-Listener/default.build b/RC9/qpid/dotnet/client-010/examples/pub-sub/example-pub-sub-Listener/default.build
new file mode 100644
index 0000000000..ddd3168d08
--- /dev/null
+++ b/RC9/qpid/dotnet/client-010/examples/pub-sub/example-pub-sub-Listener/default.build
@@ -0,0 +1,47 @@
+<?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="example-pub-sub-Listener" default="build">
+ <!--
+ Properties that come from master build file
+ - build.dir: root directory for build
+ - build.debug: true if building debug release
+ - build.defines: variables to define during build
+ -->
+
+ <target name="build">
+ <csc target="exe"
+ define="${build.defines}"
+ debug="${build.debug}"
+ output="${build.dir}/${project::get-name()}.exe">
+
+ <sources>
+ <include name="**/*.cs" />
+ </sources>
+ <references>
+ <include name="${build.dir}/log4net.dll" />
+ <include name="${build.dir}/qpid.client.dll" />
+ </references>
+ </csc>
+ </target>
+</project>
+
diff --git a/RC9/qpid/dotnet/client-010/examples/pub-sub/example-pub-sub-Listener/example-pub-sub-Listener.csproj b/RC9/qpid/dotnet/client-010/examples/pub-sub/example-pub-sub-Listener/example-pub-sub-Listener.csproj
new file mode 100644
index 0000000000..0b9d259373
--- /dev/null
+++ b/RC9/qpid/dotnet/client-010/examples/pub-sub/example-pub-sub-Listener/example-pub-sub-Listener.csproj
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>8.0.50727</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{2BCDC2CC-5BDA-4CC7-944D-2899AD8A53C7}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>example_pub_sub_Listener</RootNamespace>
+ <AssemblyName>example-pub-sub-Listener</AssemblyName>
+ <FileUpgradeFlags>
+ </FileUpgradeFlags>
+ <OldToolsVersion>2.0</OldToolsVersion>
+ <UpgradeBackupLocation>
+ </UpgradeBackupLocation>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="System" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Xml" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="Listener.cs" />
+ <Compile Include="Properties\AssemblyInfo.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\..\client\Client.csproj">
+ <Project>{B911FFD7-754F-4735-A188-218D5065BE79}</Project>
+ <Name>Client</Name>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(MSBuildBinPath)\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/RC9/qpid/dotnet/client-010/examples/pub-sub/example-pub-sub-Publisher/Properties/AssemblyInfo.cs b/RC9/qpid/dotnet/client-010/examples/pub-sub/example-pub-sub-Publisher/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000000..fbbe6f04fc
--- /dev/null
+++ b/RC9/qpid/dotnet/client-010/examples/pub-sub/example-pub-sub-Publisher/Properties/AssemblyInfo.cs
@@ -0,0 +1,54 @@
+/*
+ *
+ * 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.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("example-pub-sub-Publisher")]
+[assembly: AssemblyDescription("Built from svn revision number: ")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Apache Software Foundation")]
+[assembly: AssemblyProduct("example-pub-sub-Publisher")]
+[assembly: AssemblyCopyright("Apache Software Foundation")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("f6d282a0-9dc5-46cf-a4cd-44ae402d667f")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+[assembly: AssemblyVersion("0.10.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/RC9/qpid/dotnet/client-010/examples/pub-sub/example-pub-sub-Publisher/Publisher.cs b/RC9/qpid/dotnet/client-010/examples/pub-sub/example-pub-sub-Publisher/Publisher.cs
new file mode 100644
index 0000000000..6c78eb5193
--- /dev/null
+++ b/RC9/qpid/dotnet/client-010/examples/pub-sub/example-pub-sub-Publisher/Publisher.cs
@@ -0,0 +1,93 @@
+/*
+* 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.Text;
+using org.apache.qpid.client;
+
+namespace org.apache.qpid.example.pubsub
+{
+ /// <summary>
+ /// This program is one of two programs designed to be used
+ /// together. These programs use the topic exchange.
+ ///
+ /// Publisher (this program):
+ ///
+ /// Publishes to a broker, specifying a routing key.
+ ///
+ /// Listener:
+ ///
+ /// Reads from a queue on the broker using a message listener.
+ ///
+ /// </summary>
+ internal class Publisher
+ {
+ private static void Main(string[] args)
+ {
+ string host = args.Length > 0 ? args[0] : "localhost";
+ int port = args.Length > 1 ? Convert.ToInt32(args[1]) : 5672;
+ Client connection = new Client();
+ try
+ {
+ connection.connect(host, port, "test", "guest", "guest");
+ ClientSession session = connection.createSession(50000);
+
+ //--------- Main body of program --------------------------------------------
+
+ publishMessages(session, "usa.news");
+ publishMessages(session, "usa.weather");
+ publishMessages(session, "europe.news");
+ publishMessages(session, "europe.weather");
+
+ noMoreMessages(session);
+
+ //-----------------------------------------------------------------------------
+
+ connection.close();
+ }
+ catch (Exception e)
+ {
+ Console.WriteLine("Error: \n" + e.StackTrace);
+ }
+ }
+
+ private static void publishMessages(ClientSession session, string routing_key)
+ {
+ IMessage message = new Message();
+ // Asynchronous transfer sends messages as quickly as
+ // possible without waiting for confirmation.
+ for (int i = 0; i < 10; i++)
+ {
+ message.clearData();
+ message.appendData(Encoding.UTF8.GetBytes("Message " + i));
+ session.messageTransfer("amq.topic", routing_key, message);
+ }
+ }
+
+ private static void noMoreMessages(ClientSession session)
+ {
+ IMessage message = new Message();
+ // And send a syncrhonous final message to indicate termination.
+ message.clearData();
+ message.appendData(Encoding.UTF8.GetBytes("That's all, folks!"));
+ session.messageTransfer("amq.topic", "control", message);
+ session.sync();
+ }
+ }
+}
diff --git a/RC9/qpid/dotnet/client-010/examples/pub-sub/example-pub-sub-Publisher/default.build b/RC9/qpid/dotnet/client-010/examples/pub-sub/example-pub-sub-Publisher/default.build
new file mode 100644
index 0000000000..0a9c574d6e
--- /dev/null
+++ b/RC9/qpid/dotnet/client-010/examples/pub-sub/example-pub-sub-Publisher/default.build
@@ -0,0 +1,47 @@
+<?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="example-pub-sub-Publisher" default="build">
+ <!--
+ Properties that come from master build file
+ - build.dir: root directory for build
+ - build.debug: true if building debug release
+ - build.defines: variables to define during build
+ -->
+
+ <target name="build">
+ <csc target="exe"
+ define="${build.defines}"
+ debug="${build.debug}"
+ output="${build.dir}/${project::get-name()}.exe">
+
+ <sources>
+ <include name="**/*.cs" />
+ </sources>
+ <references>
+ <include name="${build.dir}/log4net.dll" />
+ <include name="${build.dir}/qpid.client.dll" />
+ </references>
+ </csc>
+ </target>
+</project>
+
diff --git a/RC9/qpid/dotnet/client-010/examples/pub-sub/example-pub-sub-Publisher/example-pub-sub-Publisher.csproj b/RC9/qpid/dotnet/client-010/examples/pub-sub/example-pub-sub-Publisher/example-pub-sub-Publisher.csproj
new file mode 100644
index 0000000000..7c47550420
--- /dev/null
+++ b/RC9/qpid/dotnet/client-010/examples/pub-sub/example-pub-sub-Publisher/example-pub-sub-Publisher.csproj
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>8.0.50727</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{F8857634-A134-44E7-A953-F2B22688C599}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>example_pub_sub_Publisher</RootNamespace>
+ <AssemblyName>example-pub-sub-Publisher</AssemblyName>
+ <FileUpgradeFlags>
+ </FileUpgradeFlags>
+ <OldToolsVersion>2.0</OldToolsVersion>
+ <UpgradeBackupLocation>
+ </UpgradeBackupLocation>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="System" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Xml" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="Publisher.cs" />
+ <Compile Include="Properties\AssemblyInfo.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\..\client\Client.csproj">
+ <Project>{B911FFD7-754F-4735-A188-218D5065BE79}</Project>
+ <Name>Client</Name>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(MSBuildBinPath)\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/RC9/qpid/dotnet/client-010/examples/pub-sub/verify b/RC9/qpid/dotnet/client-010/examples/pub-sub/verify
new file mode 100644
index 0000000000..45d80c4866
--- /dev/null
+++ b/RC9/qpid/dotnet/client-010/examples/pub-sub/verify
@@ -0,0 +1,36 @@
+#
+#
+# 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.
+#
+#
+
+# See https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid/bin/verify
+
+pubsub_listener_dotnet()
+{
+mono $DOTNET_EXAMPLES/example-pub-sub-Listener.exe localhost 5672
+}
+
+pubsub_producer_dotnet()
+{
+mono $DOTNET_EXAMPLES/example-pub-sub-Publisher.exe localhost 5672
+}
+
+background "Listening for messages ..." pubsub_listener_dotnet
+clients pubsub_producer_dotnet
+outputs pubsub_producer_dotnet.out "pubsub_listener_dotnet.out | remove_uuid | sort"
diff --git a/RC9/qpid/dotnet/client-010/examples/pub-sub/verify.in b/RC9/qpid/dotnet/client-010/examples/pub-sub/verify.in
new file mode 100644
index 0000000000..6a5adc4d89
--- /dev/null
+++ b/RC9/qpid/dotnet/client-010/examples/pub-sub/verify.in
@@ -0,0 +1,95 @@
+==== pubsub_producer_dotnet.out
+==== pubsub_listener_dotnet.out | remove_uuid | sort
+Declaring queue: europe
+Declaring queue: news
+Declaring queue: usa
+Declaring queue: weather
+Listening for messages ...
+Message: Message 0 from europe
+Message: Message 0 from europe
+Message: Message 0 from news
+Message: Message 0 from news
+Message: Message 0 from usa
+Message: Message 0 from usa
+Message: Message 0 from weather
+Message: Message 0 from weather
+Message: Message 1 from europe
+Message: Message 1 from europe
+Message: Message 1 from news
+Message: Message 1 from news
+Message: Message 1 from usa
+Message: Message 1 from usa
+Message: Message 1 from weather
+Message: Message 1 from weather
+Message: Message 2 from europe
+Message: Message 2 from europe
+Message: Message 2 from news
+Message: Message 2 from news
+Message: Message 2 from usa
+Message: Message 2 from usa
+Message: Message 2 from weather
+Message: Message 2 from weather
+Message: Message 3 from europe
+Message: Message 3 from europe
+Message: Message 3 from news
+Message: Message 3 from news
+Message: Message 3 from usa
+Message: Message 3 from usa
+Message: Message 3 from weather
+Message: Message 3 from weather
+Message: Message 4 from europe
+Message: Message 4 from europe
+Message: Message 4 from news
+Message: Message 4 from news
+Message: Message 4 from usa
+Message: Message 4 from usa
+Message: Message 4 from weather
+Message: Message 4 from weather
+Message: Message 5 from europe
+Message: Message 5 from europe
+Message: Message 5 from news
+Message: Message 5 from news
+Message: Message 5 from usa
+Message: Message 5 from usa
+Message: Message 5 from weather
+Message: Message 5 from weather
+Message: Message 6 from europe
+Message: Message 6 from europe
+Message: Message 6 from news
+Message: Message 6 from news
+Message: Message 6 from usa
+Message: Message 6 from usa
+Message: Message 6 from weather
+Message: Message 6 from weather
+Message: Message 7 from europe
+Message: Message 7 from europe
+Message: Message 7 from news
+Message: Message 7 from news
+Message: Message 7 from usa
+Message: Message 7 from usa
+Message: Message 7 from weather
+Message: Message 7 from weather
+Message: Message 8 from europe
+Message: Message 8 from europe
+Message: Message 8 from news
+Message: Message 8 from news
+Message: Message 8 from usa
+Message: Message 8 from usa
+Message: Message 8 from weather
+Message: Message 8 from weather
+Message: Message 9 from europe
+Message: Message 9 from europe
+Message: Message 9 from news
+Message: Message 9 from news
+Message: Message 9 from usa
+Message: Message 9 from usa
+Message: Message 9 from weather
+Message: Message 9 from weather
+Message: That's all, folks! from europe
+Message: That's all, folks! from news
+Message: That's all, folks! from usa
+Message: That's all, folks! from weather
+Shutting down listener for control
+Shutting down listener for control
+Shutting down listener for control
+Shutting down listener for control
diff --git a/RC9/qpid/dotnet/client-010/examples/pub-sub/verify_cpp_dotnet b/RC9/qpid/dotnet/client-010/examples/pub-sub/verify_cpp_dotnet
new file mode 100644
index 0000000000..86d60578ad
--- /dev/null
+++ b/RC9/qpid/dotnet/client-010/examples/pub-sub/verify_cpp_dotnet
@@ -0,0 +1,12 @@
+# See https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid/bin/verify
+cpp=$CPP/pub-sub
+
+pubsub_listener_dotnet()
+{
+mono $DOTNET_EXAMPLES/example-pub-sub-Listener.exe localhost 5672
+}
+
+
+background "Listening for messages ..." pubsub_listener_dotnet
+clients $cpp/topic_publisher
+outputs $cpp/topic_publisher.out "pubsub_listener_dotnet.out | remove_uuid | sort"
diff --git a/RC9/qpid/dotnet/client-010/examples/pub-sub/verify_cpp_dotnet.in b/RC9/qpid/dotnet/client-010/examples/pub-sub/verify_cpp_dotnet.in
new file mode 100644
index 0000000000..4e058f7645
--- /dev/null
+++ b/RC9/qpid/dotnet/client-010/examples/pub-sub/verify_cpp_dotnet.in
@@ -0,0 +1,55 @@
+==== topic_publisher.out
+==== pubsub_listener_dotnet.out | remove_uuid | sort
+Declaring queue: europe
+Declaring queue: news
+Declaring queue: usa
+Declaring queue: weather
+Listening for messages ...
+Message: Message 0 from europe
+Message: Message 0 from europe
+Message: Message 0 from news
+Message: Message 0 from news
+Message: Message 0 from usa
+Message: Message 0 from usa
+Message: Message 0 from weather
+Message: Message 0 from weather
+Message: Message 1 from europe
+Message: Message 1 from europe
+Message: Message 1 from news
+Message: Message 1 from news
+Message: Message 1 from usa
+Message: Message 1 from usa
+Message: Message 1 from weather
+Message: Message 1 from weather
+Message: Message 2 from europe
+Message: Message 2 from europe
+Message: Message 2 from news
+Message: Message 2 from news
+Message: Message 2 from usa
+Message: Message 2 from usa
+Message: Message 2 from weather
+Message: Message 2 from weather
+Message: Message 3 from europe
+Message: Message 3 from europe
+Message: Message 3 from news
+Message: Message 3 from news
+Message: Message 3 from usa
+Message: Message 3 from usa
+Message: Message 3 from weather
+Message: Message 3 from weather
+Message: Message 4 from europe
+Message: Message 4 from europe
+Message: Message 4 from news
+Message: Message 4 from news
+Message: Message 4 from usa
+Message: Message 4 from usa
+Message: Message 4 from weather
+Message: Message 4 from weather
+Message: That's all, folks! from europe
+Message: That's all, folks! from news
+Message: That's all, folks! from usa
+Message: That's all, folks! from weather
+Shutting down listener for control
+Shutting down listener for control
+Shutting down listener for control
+Shutting down listener for control
diff --git a/RC9/qpid/dotnet/client-010/examples/pub-sub/verify_dotnet_cpp b/RC9/qpid/dotnet/client-010/examples/pub-sub/verify_dotnet_cpp
new file mode 100644
index 0000000000..66d0f5ba52
--- /dev/null
+++ b/RC9/qpid/dotnet/client-010/examples/pub-sub/verify_dotnet_cpp
@@ -0,0 +1,11 @@
+# See https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid/bin/verify
+cpp=$CPP/pub-sub
+
+pubsub_producer_dotnet()
+{
+mono $DOTNET_EXAMPLES/example-pub-sub-Publisher.exe localhost 5672
+}
+
+background "Listening" $cpp/topic_listener
+clients pubsub_producer_dotnet
+outputs pubsub_producer_dotnet.out "$cpp/topic_listener.out | remove_uuid | sort"
diff --git a/RC9/qpid/dotnet/client-010/examples/pub-sub/verify_dotnet_cpp.in b/RC9/qpid/dotnet/client-010/examples/pub-sub/verify_dotnet_cpp.in
new file mode 100644
index 0000000000..64ac27846d
--- /dev/null
+++ b/RC9/qpid/dotnet/client-010/examples/pub-sub/verify_dotnet_cpp.in
@@ -0,0 +1,99 @@
+==== pubsub_producer_dotnet.out
+==== topic_listener.out | remove_uuid | sort
+Declaring queue: europe
+Declaring queue: news
+Declaring queue: usa
+Declaring queue: weather
+Listening for messages ...
+Message: Message 0 from europe
+Message: Message 0 from europe
+Message: Message 0 from news
+Message: Message 0 from news
+Message: Message 0 from usa
+Message: Message 0 from usa
+Message: Message 0 from weather
+Message: Message 0 from weather
+Message: Message 1 from europe
+Message: Message 1 from europe
+Message: Message 1 from news
+Message: Message 1 from news
+Message: Message 1 from usa
+Message: Message 1 from usa
+Message: Message 1 from weather
+Message: Message 1 from weather
+Message: Message 2 from europe
+Message: Message 2 from europe
+Message: Message 2 from news
+Message: Message 2 from news
+Message: Message 2 from usa
+Message: Message 2 from usa
+Message: Message 2 from weather
+Message: Message 2 from weather
+Message: Message 3 from europe
+Message: Message 3 from europe
+Message: Message 3 from news
+Message: Message 3 from news
+Message: Message 3 from usa
+Message: Message 3 from usa
+Message: Message 3 from weather
+Message: Message 3 from weather
+Message: Message 4 from europe
+Message: Message 4 from europe
+Message: Message 4 from news
+Message: Message 4 from news
+Message: Message 4 from usa
+Message: Message 4 from usa
+Message: Message 4 from weather
+Message: Message 4 from weather
+Message: Message 5 from europe
+Message: Message 5 from europe
+Message: Message 5 from news
+Message: Message 5 from news
+Message: Message 5 from usa
+Message: Message 5 from usa
+Message: Message 5 from weather
+Message: Message 5 from weather
+Message: Message 6 from europe
+Message: Message 6 from europe
+Message: Message 6 from news
+Message: Message 6 from news
+Message: Message 6 from usa
+Message: Message 6 from usa
+Message: Message 6 from weather
+Message: Message 6 from weather
+Message: Message 7 from europe
+Message: Message 7 from europe
+Message: Message 7 from news
+Message: Message 7 from news
+Message: Message 7 from usa
+Message: Message 7 from usa
+Message: Message 7 from weather
+Message: Message 7 from weather
+Message: Message 8 from europe
+Message: Message 8 from europe
+Message: Message 8 from news
+Message: Message 8 from news
+Message: Message 8 from usa
+Message: Message 8 from usa
+Message: Message 8 from weather
+Message: Message 8 from weather
+Message: Message 9 from europe
+Message: Message 9 from europe
+Message: Message 9 from news
+Message: Message 9 from news
+Message: Message 9 from usa
+Message: Message 9 from usa
+Message: Message 9 from weather
+Message: Message 9 from weather
+Message: That's all, folks! from europe
+Message: That's all, folks! from news
+Message: That's all, folks! from usa
+Message: That's all, folks! from weather
+Shutting down listener for europe
+Shutting down listener for news
+Shutting down listener for usa
+Shutting down listener for weather
+Subscribing to queue europe
+Subscribing to queue news
+Subscribing to queue usa
+Subscribing to queue weather
diff --git a/RC9/qpid/dotnet/client-010/examples/pub-sub/verify_dotnet_java b/RC9/qpid/dotnet/client-010/examples/pub-sub/verify_dotnet_java
new file mode 100644
index 0000000000..0b90416a7e
--- /dev/null
+++ b/RC9/qpid/dotnet/client-010/examples/pub-sub/verify_dotnet_java
@@ -0,0 +1,15 @@
+# See https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid/bin/verify
+
+topic_listener_java()
+{
+java -Dlog4j.configuration=file://"$JAVA"/log4j.xml -cp "$CLASSPATH" org.apache.qpid.example.jmsexample.pubsub.Listener
+}
+
+pubsub_producer_dotnet()
+{
+mono $DOTNET_EXAMPLES/example-pub-sub-Publisher.exe localhost 5672
+}
+
+background "can receive messages" topic_listener_java
+clients pubsub_producer_dotnet
+outputs pubsub_producer_dotnet.out "topic_listener_java.out | remove_uuid | sort"
diff --git a/RC9/qpid/dotnet/client-010/examples/pub-sub/verify_dotnet_java.in b/RC9/qpid/dotnet/client-010/examples/pub-sub/verify_dotnet_java.in
new file mode 100644
index 0000000000..5db02e64b1
--- /dev/null
+++ b/RC9/qpid/dotnet/client-010/examples/pub-sub/verify_dotnet_java.in
@@ -0,0 +1,95 @@
+==== pubsub_producer_dotnet.out
+==== topic_listener_java.out | remove_uuid | sort
+Listener: Closing connection
+Listener: Closing JNDI context
+Listener: Creating a Message Subscriber for topic europe
+Listener: Creating a Message Subscriber for topic news
+Listener: Creating a Message Subscriber for topic usa
+Listener: Creating a Message Subscriber for topic weather
+Listener: Creating a non-transacted, auto-acknowledged session
+Listener: Received message for topic: europe: Message 0
+Listener: Received message for topic: europe: Message 0
+Listener: Received message for topic: europe: Message 1
+Listener: Received message for topic: europe: Message 1
+Listener: Received message for topic: europe: Message 2
+Listener: Received message for topic: europe: Message 2
+Listener: Received message for topic: europe: Message 3
+Listener: Received message for topic: europe: Message 3
+Listener: Received message for topic: europe: Message 4
+Listener: Received message for topic: europe: Message 4
+Listener: Received message for topic: europe: Message 5
+Listener: Received message for topic: europe: Message 5
+Listener: Received message for topic: europe: Message 6
+Listener: Received message for topic: europe: Message 6
+Listener: Received message for topic: europe: Message 7
+Listener: Received message for topic: europe: Message 7
+Listener: Received message for topic: europe: Message 8
+Listener: Received message for topic: europe: Message 8
+Listener: Received message for topic: europe: Message 9
+Listener: Received message for topic: europe: Message 9
+Listener: Received message for topic: news: Message 0
+Listener: Received message for topic: news: Message 0
+Listener: Received message for topic: news: Message 1
+Listener: Received message for topic: news: Message 1
+Listener: Received message for topic: news: Message 2
+Listener: Received message for topic: news: Message 2
+Listener: Received message for topic: news: Message 3
+Listener: Received message for topic: news: Message 3
+Listener: Received message for topic: news: Message 4
+Listener: Received message for topic: news: Message 4
+Listener: Received message for topic: news: Message 5
+Listener: Received message for topic: news: Message 5
+Listener: Received message for topic: news: Message 6
+Listener: Received message for topic: news: Message 6
+Listener: Received message for topic: news: Message 7
+Listener: Received message for topic: news: Message 7
+Listener: Received message for topic: news: Message 8
+Listener: Received message for topic: news: Message 8
+Listener: Received message for topic: news: Message 9
+Listener: Received message for topic: news: Message 9
+Listener: Received message for topic: usa: Message 0
+Listener: Received message for topic: usa: Message 0
+Listener: Received message for topic: usa: Message 1
+Listener: Received message for topic: usa: Message 1
+Listener: Received message for topic: usa: Message 2
+Listener: Received message for topic: usa: Message 2
+Listener: Received message for topic: usa: Message 3
+Listener: Received message for topic: usa: Message 3
+Listener: Received message for topic: usa: Message 4
+Listener: Received message for topic: usa: Message 4
+Listener: Received message for topic: usa: Message 5
+Listener: Received message for topic: usa: Message 5
+Listener: Received message for topic: usa: Message 6
+Listener: Received message for topic: usa: Message 6
+Listener: Received message for topic: usa: Message 7
+Listener: Received message for topic: usa: Message 7
+Listener: Received message for topic: usa: Message 8
+Listener: Received message for topic: usa: Message 8
+Listener: Received message for topic: usa: Message 9
+Listener: Received message for topic: usa: Message 9
+Listener: Received message for topic: weather: Message 0
+Listener: Received message for topic: weather: Message 0
+Listener: Received message for topic: weather: Message 1
+Listener: Received message for topic: weather: Message 1
+Listener: Received message for topic: weather: Message 2
+Listener: Received message for topic: weather: Message 2
+Listener: Received message for topic: weather: Message 3
+Listener: Received message for topic: weather: Message 3
+Listener: Received message for topic: weather: Message 4
+Listener: Received message for topic: weather: Message 4
+Listener: Received message for topic: weather: Message 5
+Listener: Received message for topic: weather: Message 5
+Listener: Received message for topic: weather: Message 6
+Listener: Received message for topic: weather: Message 6
+Listener: Received message for topic: weather: Message 7
+Listener: Received message for topic: weather: Message 7
+Listener: Received message for topic: weather: Message 8
+Listener: Received message for topic: weather: Message 8
+Listener: Received message for topic: weather: Message 9
+Listener: Received message for topic: weather: Message 9
+Listener: Setting an ExceptionListener on the connection as sample uses a TopicSubscriber
+Listener: Shutting down listener for europe
+Listener: Shutting down listener for news
+Listener: Shutting down listener for usa
+Listener: Shutting down listener for weather
+Listener: Starting connection so TopicSubscriber can receive messages
diff --git a/RC9/qpid/dotnet/client-010/examples/pub-sub/verify_dotnet_python b/RC9/qpid/dotnet/client-010/examples/pub-sub/verify_dotnet_python
new file mode 100644
index 0000000000..dd62dbcbeb
--- /dev/null
+++ b/RC9/qpid/dotnet/client-010/examples/pub-sub/verify_dotnet_python
@@ -0,0 +1,11 @@
+# See https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid/bin/verify
+py=$PYTHON_EXAMPLES/pubsub
+
+pubsub_producer_dotnet()
+{
+mono $DOTNET_EXAMPLES/example-pub-sub-Publisher.exe localhost 5672
+}
+
+background "Queues created" $py/topic_subscriber.py
+clients pubsub_producer_dotnet
+outputs ./pubsub_producer_dotnet.out "$py/topic_subscriber.py.out | remove_uuid | sort"
diff --git a/RC9/qpid/dotnet/client-010/examples/pub-sub/verify_dotnet_python.in b/RC9/qpid/dotnet/client-010/examples/pub-sub/verify_dotnet_python.in
new file mode 100644
index 0000000000..130efa2b0e
--- /dev/null
+++ b/RC9/qpid/dotnet/client-010/examples/pub-sub/verify_dotnet_python.in
@@ -0,0 +1,95 @@
+==== pubsub_producer_dotnet.out
+==== topic_subscriber.py.out | remove_uuid | sort
+Message 0
+Message 0
+Message 0
+Message 0
+Message 0
+Message 0
+Message 0
+Message 0
+Message 1
+Message 1
+Message 1
+Message 1
+Message 1
+Message 1
+Message 1
+Message 1
+Message 2
+Message 2
+Message 2
+Message 2
+Message 2
+Message 2
+Message 2
+Message 2
+Message 3
+Message 3
+Message 3
+Message 3
+Message 3
+Message 3
+Message 3
+Message 3
+Message 4
+Message 4
+Message 4
+Message 4
+Message 4
+Message 4
+Message 4
+Message 4
+Message 5
+Message 5
+Message 5
+Message 5
+Message 5
+Message 5
+Message 5
+Message 5
+Message 6
+Message 6
+Message 6
+Message 6
+Message 6
+Message 6
+Message 6
+Message 6
+Message 7
+Message 7
+Message 7
+Message 7
+Message 7
+Message 7
+Message 7
+Message 7
+Message 8
+Message 8
+Message 8
+Message 8
+Message 8
+Message 8
+Message 8
+Message 8
+Message 9
+Message 9
+Message 9
+Message 9
+Message 9
+Message 9
+Message 9
+Message 9
+Messages on 'europe' queue:
+Messages on 'news' queue:
+Messages on 'usa' queue:
+Messages on 'weather' queue:
+Queues created - please start the topic producer
+Subscribing local queue 'local_europe' to europe-'
+Subscribing local queue 'local_news' to news-'
+Subscribing local queue 'local_usa' to usa-'
+Subscribing local queue 'local_weather' to weather-'
+That's all, folks!
+That's all, folks!
+That's all, folks!
+That's all, folks!
diff --git a/RC9/qpid/dotnet/client-010/examples/pub-sub/verify_java_dotnet b/RC9/qpid/dotnet/client-010/examples/pub-sub/verify_java_dotnet
new file mode 100644
index 0000000000..52069957c5
--- /dev/null
+++ b/RC9/qpid/dotnet/client-010/examples/pub-sub/verify_java_dotnet
@@ -0,0 +1,15 @@
+# See https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid/bin/verify
+
+pubsub_listener_dotnet()
+{
+mono $DOTNET_EXAMPLES/example-pub-sub-Listener.exe localhost 5672
+}
+
+topic_publisher_java()
+{
+java -Dlog4j.configuration=file://"$JAVA"/log4j.xml -cp "$CLASSPATH" org.apache.qpid.example.jmsexample.pubsub.Publisher
+}
+
+background "Listening for messages ..." pubsub_listener_dotnet
+clients topic_publisher_java
+outputs topic_publisher_java.out "pubsub_listener_dotnet.out | remove_uuid | sort"
diff --git a/RC9/qpid/dotnet/client-010/examples/pub-sub/verify_java_dotnet.in b/RC9/qpid/dotnet/client-010/examples/pub-sub/verify_java_dotnet.in
new file mode 100644
index 0000000000..1b37f711c4
--- /dev/null
+++ b/RC9/qpid/dotnet/client-010/examples/pub-sub/verify_java_dotnet.in
@@ -0,0 +1,95 @@
+==== topic_publisher_java.out
+Publisher: Creating a non-transacted, auto-acknowledged session
+Publisher: Creating a TestMessage to send to the topics
+Publisher: Creating a Message Publisher for topic usa.weather
+Publisher: Sending message 1
+Publisher: Sending message 2
+Publisher: Sending message 3
+Publisher: Sending message 4
+Publisher: Sending message 5
+Publisher: Sending message 6
+Publisher: Creating a Message Publisher for topic usa.news
+Publisher: Sending message 1
+Publisher: Sending message 2
+Publisher: Sending message 3
+Publisher: Sending message 4
+Publisher: Sending message 5
+Publisher: Sending message 6
+Publisher: Creating a Message Publisher for topic europe.weather
+Publisher: Sending message 1
+Publisher: Sending message 2
+Publisher: Sending message 3
+Publisher: Sending message 4
+Publisher: Sending message 5
+Publisher: Sending message 6
+Publisher: Creating a Message Publisher for topic europe.news
+Publisher: Sending message 1
+Publisher: Sending message 2
+Publisher: Sending message 3
+Publisher: Sending message 4
+Publisher: Sending message 5
+Publisher: Sending message 6
+Publisher: Closing connection
+Publisher: Closing JNDI context
+==== pubsub_listener_dotnet.out | remove_uuid | sort
+Declaring queue: europe
+Declaring queue: news
+Declaring queue: usa
+Declaring queue: weather
+Listening for messages ...
+Message: message 1 from europe
+Message: message 1 from europe
+Message: message 1 from news
+Message: message 1 from news
+Message: message 1 from usa
+Message: message 1 from usa
+Message: message 1 from weather
+Message: message 1 from weather
+Message: message 2 from europe
+Message: message 2 from europe
+Message: message 2 from news
+Message: message 2 from news
+Message: message 2 from usa
+Message: message 2 from usa
+Message: message 2 from weather
+Message: message 2 from weather
+Message: message 3 from europe
+Message: message 3 from europe
+Message: message 3 from news
+Message: message 3 from news
+Message: message 3 from usa
+Message: message 3 from usa
+Message: message 3 from weather
+Message: message 3 from weather
+Message: message 4 from europe
+Message: message 4 from europe
+Message: message 4 from news
+Message: message 4 from news
+Message: message 4 from usa
+Message: message 4 from usa
+Message: message 4 from weather
+Message: message 4 from weather
+Message: message 5 from europe
+Message: message 5 from europe
+Message: message 5 from news
+Message: message 5 from news
+Message: message 5 from usa
+Message: message 5 from usa
+Message: message 5 from weather
+Message: message 5 from weather
+Message: message 6 from europe
+Message: message 6 from europe
+Message: message 6 from news
+Message: message 6 from news
+Message: message 6 from usa
+Message: message 6 from usa
+Message: message 6 from weather
+Message: message 6 from weather
+Message: That's all, folks! from europe
+Message: That's all, folks! from news
+Message: That's all, folks! from usa
+Message: That's all, folks! from weather
+Shutting down listener for control
+Shutting down listener for control
+Shutting down listener for control
+Shutting down listener for control
diff --git a/RC9/qpid/dotnet/client-010/examples/pub-sub/verify_python_dotnet b/RC9/qpid/dotnet/client-010/examples/pub-sub/verify_python_dotnet
new file mode 100644
index 0000000000..0366e3a9ac
--- /dev/null
+++ b/RC9/qpid/dotnet/client-010/examples/pub-sub/verify_python_dotnet
@@ -0,0 +1,11 @@
+# See https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid/bin/verify
+py=$PYTHON_EXAMPLES/pubsub
+
+pubsub_listener_dotnet()
+{
+mono $DOTNET_EXAMPLES/example-pub-sub-Listener.exe localhost 5672
+}
+
+background "Listening for messages ..." pubsub_listener_dotnet
+clients $py/topic_publisher.py
+outputs $py/topic_publisher.py.out "pubsub_listener_dotnet.out | remove_uuid | sort"
diff --git a/RC9/qpid/dotnet/client-010/examples/pub-sub/verify_python_dotnet.in b/RC9/qpid/dotnet/client-010/examples/pub-sub/verify_python_dotnet.in
new file mode 100644
index 0000000000..ac1b681b32
--- /dev/null
+++ b/RC9/qpid/dotnet/client-010/examples/pub-sub/verify_python_dotnet.in
@@ -0,0 +1,55 @@
+==== topic_publisher.py.out
+==== pubsub_listener_dotnet.out | remove_uuid | sort
+Declaring queue: europe
+Declaring queue: news
+Declaring queue: usa
+Declaring queue: weather
+Listening for messages ...
+Message: europe.news 0 from europe
+Message: europe.news 0 from news
+Message: europe.news 1 from europe
+Message: europe.news 1 from news
+Message: europe.news 2 from europe
+Message: europe.news 2 from news
+Message: europe.news 3 from europe
+Message: europe.news 3 from news
+Message: europe.news 4 from europe
+Message: europe.news 4 from news
+Message: europe.weather 0 from europe
+Message: europe.weather 0 from weather
+Message: europe.weather 1 from europe
+Message: europe.weather 1 from weather
+Message: europe.weather 2 from europe
+Message: europe.weather 2 from weather
+Message: europe.weather 3 from europe
+Message: europe.weather 3 from weather
+Message: europe.weather 4 from europe
+Message: europe.weather 4 from weather
+Message: That's all, folks! from europe
+Message: That's all, folks! from news
+Message: That's all, folks! from usa
+Message: That's all, folks! from weather
+Message: usa.news 0 from news
+Message: usa.news 0 from usa
+Message: usa.news 1 from news
+Message: usa.news 1 from usa
+Message: usa.news 2 from news
+Message: usa.news 2 from usa
+Message: usa.news 3 from news
+Message: usa.news 3 from usa
+Message: usa.news 4 from news
+Message: usa.news 4 from usa
+Message: usa.weather 0 from usa
+Message: usa.weather 0 from weather
+Message: usa.weather 1 from usa
+Message: usa.weather 1 from weather
+Message: usa.weather 2 from usa
+Message: usa.weather 2 from weather
+Message: usa.weather 3 from usa
+Message: usa.weather 3 from weather
+Message: usa.weather 4 from usa
+Message: usa.weather 4 from weather
+Shutting down listener for control
+Shutting down listener for control
+Shutting down listener for control
+Shutting down listener for control