summaryrefslogtreecommitdiff
path: root/RC9/qpid/dotnet/client-010/examples/request-response
diff options
context:
space:
mode:
Diffstat (limited to 'RC9/qpid/dotnet/client-010/examples/request-response')
-rw-r--r--RC9/qpid/dotnet/client-010/examples/request-response/example-request-response-Client/Client.cs137
-rw-r--r--RC9/qpid/dotnet/client-010/examples/request-response/example-request-response-Client/Properties/AssemblyInfo.cs54
-rw-r--r--RC9/qpid/dotnet/client-010/examples/request-response/example-request-response-Client/default.build47
-rw-r--r--RC9/qpid/dotnet/client-010/examples/request-response/example-request-response-Client/example-request-response-Client.csproj59
-rw-r--r--RC9/qpid/dotnet/client-010/examples/request-response/example-request-response-Server/Properties/AssemblyInfo.cs54
-rw-r--r--RC9/qpid/dotnet/client-010/examples/request-response/example-request-response-Server/Server.cs136
-rw-r--r--RC9/qpid/dotnet/client-010/examples/request-response/example-request-response-Server/default.build47
-rw-r--r--RC9/qpid/dotnet/client-010/examples/request-response/example-request-response-Server/example-request-response-Server.csproj59
-rw-r--r--RC9/qpid/dotnet/client-010/examples/request-response/verify36
-rw-r--r--RC9/qpid/dotnet/client-010/examples/request-response/verify.in16
-rw-r--r--RC9/qpid/dotnet/client-010/examples/request-response/verify_cpp_dotnet12
-rw-r--r--RC9/qpid/dotnet/client-010/examples/request-response/verify_cpp_dotnet.in17
-rw-r--r--RC9/qpid/dotnet/client-010/examples/request-response/verify_dotnet_cpp12
-rw-r--r--RC9/qpid/dotnet/client-010/examples/request-response/verify_dotnet_cpp.in18
-rw-r--r--RC9/qpid/dotnet/client-010/examples/request-response/verify_dotnet_java16
-rw-r--r--RC9/qpid/dotnet/client-010/examples/request-response/verify_dotnet_java.in21
-rw-r--r--RC9/qpid/dotnet/client-010/examples/request-response/verify_dotnet_python12
-rw-r--r--RC9/qpid/dotnet/client-010/examples/request-response/verify_dotnet_python.in17
-rw-r--r--RC9/qpid/dotnet/client-010/examples/request-response/verify_java_dotnet15
-rw-r--r--RC9/qpid/dotnet/client-010/examples/request-response/verify_java_dotnet.in36
-rw-r--r--RC9/qpid/dotnet/client-010/examples/request-response/verify_python_dotnet12
-rw-r--r--RC9/qpid/dotnet/client-010/examples/request-response/verify_python_dotnet.in12
22 files changed, 845 insertions, 0 deletions
diff --git a/RC9/qpid/dotnet/client-010/examples/request-response/example-request-response-Client/Client.cs b/RC9/qpid/dotnet/client-010/examples/request-response/example-request-response-Client/Client.cs
new file mode 100644
index 0000000000..1d361199f1
--- /dev/null
+++ b/RC9/qpid/dotnet/client-010/examples/request-response/example-request-response-Client/Client.cs
@@ -0,0 +1,137 @@
+/*
+* 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.requestresponse
+{
+ /// <summary>
+ /// This program is one of two programs that illustrate the
+ /// request/response pattern.
+ ///
+ /// Client (this program):
+ /// Make requests of a service, print the response.
+ ///
+ /// Server:
+ /// Accept requests, set the letters to uppercase in each message, and
+ /// return it as a response.
+ ///
+ /// </summary>
+ internal class Client
+ {
+ 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.Client connection = new client.Client();
+ try
+ {
+ connection.connect(host, port, "test", "guest", "guest");
+ ClientSession session = connection.createSession(50000);
+ IMessage request = new Message();
+
+ //--------- Main body of program --------------------------------------------
+ // Create a response queue so the server can send us responses
+ // to our requests. Use the client's session ID as the name
+ // of the response queue.
+ string response_queue = "client" + session.getName();
+ // Use the name of the response queue as the routing key
+ session.queueDeclare(response_queue);
+ session.exchangeBind(response_queue, "amq.direct", response_queue);
+
+ // Each client sends the name of their own response queue so
+ // the service knows where to route messages.
+ request.DeliveryProperties.setRoutingKey("request");
+ request.MessageProperties.setReplyTo(new ReplyTo("amq.direct", response_queue));
+
+ lock (session)
+ {
+ // Create a listener for the response queue and listen for response messages.
+ Console.WriteLine("Activating response queue listener for: " + response_queue);
+ IMessageListener listener = new ClientMessageListener(session);
+ session.attachMessageListener(listener, response_queue);
+ session.messageSubscribe(response_queue);
+
+ // Now send some requests ...
+ string[] strs = {
+ "Twas brillig, and the slithy toves",
+ "Did gire and gymble in the wabe.",
+ "All mimsy were the borogroves,",
+ "And the mome raths outgrabe.",
+ "That's all, folks!"
+ };
+ foreach (string s in strs)
+ {
+ request.clearData();
+ request.appendData(Encoding.UTF8.GetBytes(s));
+ session.messageTransfer("amq.direct", request);
+ }
+ Console.WriteLine("Waiting for all responses to arrive ...");
+ Monitor.Wait(session);
+ }
+ //---------------------------------------------------------------------------
+
+ connection.close();
+ }
+ catch (Exception e)
+ {
+ Console.WriteLine("Error: \n" + e.StackTrace);
+ }
+ }
+ }
+
+ public class ClientMessageListener : IMessageListener
+ {
+ private readonly ClientSession _session;
+ private readonly RangeSet _range = new RangeSet();
+ private int _counter;
+ public ClientMessageListener(ClientSession session)
+ {
+ _session = session;
+ }
+
+ public void messageTransfer(IMessage m)
+ {
+ _counter++;
+ 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("Response: " + message);
+ // Add this message to the list of message to be acknowledged
+ _range.add(m.Id);
+ if (_counter == 4)
+ {
+ Console.WriteLine("Shutting down listener for " + m.DeliveryProperties.getRoutingKey());
+ // Acknowledge all the received messages
+ _session.messageAccept(_range);
+ lock (_session)
+ {
+ Monitor.Pulse(_session);
+ }
+ }
+ }
+ }
+}
diff --git a/RC9/qpid/dotnet/client-010/examples/request-response/example-request-response-Client/Properties/AssemblyInfo.cs b/RC9/qpid/dotnet/client-010/examples/request-response/example-request-response-Client/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000000..59c9f10f62
--- /dev/null
+++ b/RC9/qpid/dotnet/client-010/examples/request-response/example-request-response-Client/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-request-response-Client")]
+[assembly: AssemblyDescription("Built from svn revision number: ")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Apache Software Foundation")]
+[assembly: AssemblyProduct("example-request-response-Client")]
+[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("08bf6aed-bf79-4d16-9a28-6363d5322cdd")]
+
+// 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/request-response/example-request-response-Client/default.build b/RC9/qpid/dotnet/client-010/examples/request-response/example-request-response-Client/default.build
new file mode 100644
index 0000000000..60713af386
--- /dev/null
+++ b/RC9/qpid/dotnet/client-010/examples/request-response/example-request-response-Client/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-request-response-Client" 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/request-response/example-request-response-Client/example-request-response-Client.csproj b/RC9/qpid/dotnet/client-010/examples/request-response/example-request-response-Client/example-request-response-Client.csproj
new file mode 100644
index 0000000000..c92a920953
--- /dev/null
+++ b/RC9/qpid/dotnet/client-010/examples/request-response/example-request-response-Client/example-request-response-Client.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>{1BC63815-4029-4039-9207-35E7E06ECC99}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>example_request_response_Client</RootNamespace>
+ <AssemblyName>example-request-response-Client</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="Client.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/request-response/example-request-response-Server/Properties/AssemblyInfo.cs b/RC9/qpid/dotnet/client-010/examples/request-response/example-request-response-Server/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000000..468cdf557a
--- /dev/null
+++ b/RC9/qpid/dotnet/client-010/examples/request-response/example-request-response-Server/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-request-response-Server")]
+[assembly: AssemblyDescription("Built from svn revision number: ")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Apache Software Foundation")]
+[assembly: AssemblyProduct("example-request-response-Server")]
+[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("ef3456e2-7c19-47aa-8dd6-aeaa88c5c4ad")]
+
+// 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/request-response/example-request-response-Server/Server.cs b/RC9/qpid/dotnet/client-010/examples/request-response/example-request-response-Server/Server.cs
new file mode 100644
index 0000000000..2ce493626f
--- /dev/null
+++ b/RC9/qpid/dotnet/client-010/examples/request-response/example-request-response-Server/Server.cs
@@ -0,0 +1,136 @@
+/*
+* 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.requestresponse
+{
+ /// <summary>
+ /// This program is one of two programs that illustrate the
+ /// request/response pattern.
+ ///
+ /// Client:
+ /// Make requests of a service, print the response.
+ ///
+ /// Server (this program):
+ /// Accept requests, set the letters to uppercase in each message, and
+ /// return it as a response.
+ ///
+ /// </summary>
+ class Server
+ {
+ static void Main(string[] args)
+ {
+ string host = args.Length > 0 ? args[0] : "localhost";
+ int port = args.Length > 1 ? Convert.ToInt32(args[1]) : 5672;
+ client.Client connection = new client.Client();
+ try
+ {
+ connection.connect(host, port, "test", "guest", "guest");
+ ClientSession session = connection.createSession(50000);
+
+ //--------- Main body of program --------------------------------------------
+ // Create a request queue for clients to use when making
+ // requests.
+ const string request_queue = "request";
+ // Use the name of the request queue as the routing key
+ session.queueDeclare(request_queue);
+ session.exchangeBind(request_queue, "amq.direct", request_queue);
+
+ lock (session)
+ {
+ // Create a listener and subscribe it to the request_queue
+ IMessageListener listener = new MessageListener(session);
+ session.attachMessageListener(listener, request_queue);
+ session.messageSubscribe(request_queue);
+ // Receive messages until all messages are received
+ Console.WriteLine("Waiting for requests");
+ Monitor.Wait(session);
+ }
+
+ //---------------------------------------------------------------------------
+
+ connection.close();
+ }
+ catch (Exception e)
+ {
+ Console.WriteLine("Error: \n" + e.StackTrace);
+ }
+ }
+ }
+
+ public class MessageListener : IMessageListener
+ {
+ private readonly ClientSession _session;
+ private readonly RangeSet _range = new RangeSet();
+ public MessageListener(ClientSession session)
+ {
+ _session = session;
+ }
+
+ public void messageTransfer(IMessage request)
+ {
+ IMessage response = new Message();
+
+ // Get routing key for response from the request's replyTo property
+ string routingKey;
+ if( request.MessageProperties.hasReplyTo() )
+ {
+ routingKey = request.MessageProperties.getReplyTo().getRoutingKey();
+ }
+ else
+ {
+ Console.WriteLine("Error: \n No routing key for request " + request);
+ return;
+ }
+
+ BinaryReader reader = new BinaryReader(request.Body, Encoding.UTF8);
+ byte[] body = new byte[request.Body.Length - request.Body.Position];
+ reader.Read(body, 0, body.Length);
+ ASCIIEncoding enc = new ASCIIEncoding();
+ string message = enc.GetString(body);
+ Console.WriteLine("Request: " + message);
+
+ // Transform message content to upper case
+ string responseBody = message.ToUpper();
+
+ // Send it back to the user
+ response.clearData();
+ response.appendData(Encoding.UTF8.GetBytes(responseBody));
+ _session.messageTransfer("amq.direct", routingKey, response);
+
+ // Add this message to the list of message to be acknowledged
+ _range.add(request.Id);
+ if (message.Equals("That's all, folks!"))
+ {
+ // Acknowledge all the received messages
+ _session.messageAccept(_range);
+ lock (_session)
+ {
+ Monitor.Pulse(_session);
+ }
+ }
+ }
+ }
+}
diff --git a/RC9/qpid/dotnet/client-010/examples/request-response/example-request-response-Server/default.build b/RC9/qpid/dotnet/client-010/examples/request-response/example-request-response-Server/default.build
new file mode 100644
index 0000000000..1a1bea225d
--- /dev/null
+++ b/RC9/qpid/dotnet/client-010/examples/request-response/example-request-response-Server/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-request-response-Server" 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/request-response/example-request-response-Server/example-request-response-Server.csproj b/RC9/qpid/dotnet/client-010/examples/request-response/example-request-response-Server/example-request-response-Server.csproj
new file mode 100644
index 0000000000..be61ddaf01
--- /dev/null
+++ b/RC9/qpid/dotnet/client-010/examples/request-response/example-request-response-Server/example-request-response-Server.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>{922FBA9C-E483-4AEF-ABE8-AC87421E829B}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>example_request_response_Server</RootNamespace>
+ <AssemblyName>example-request-response-Server</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="Server.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/request-response/verify b/RC9/qpid/dotnet/client-010/examples/request-response/verify
new file mode 100644
index 0000000000..fa69461f68
--- /dev/null
+++ b/RC9/qpid/dotnet/client-010/examples/request-response/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
+
+server_dotnet()
+{
+mono $DOTNET_EXAMPLES/example-request-response-Server.exe localhost 5672
+}
+
+client_dotnet()
+{
+mono $DOTNET_EXAMPLES/example-request-response-Client.exe localhost 5672
+}
+
+background "Waiting for requests" server_dotnet
+clients client_dotnet
+outputs ./server_dotnet.out ./client_dotnet.out
diff --git a/RC9/qpid/dotnet/client-010/examples/request-response/verify.in b/RC9/qpid/dotnet/client-010/examples/request-response/verify.in
new file mode 100644
index 0000000000..5357591289
--- /dev/null
+++ b/RC9/qpid/dotnet/client-010/examples/request-response/verify.in
@@ -0,0 +1,16 @@
+==== server_dotnet.out
+Waiting for requests
+Request: Twas brillig, and the slithy toves
+Request: Did gire and gymble in the wabe.
+Request: All mimsy were the borogroves,
+Request: And the mome raths outgrabe.
+Request: That's all, folks!
+==== client_dotnet.out
+Activating response queue listener for: clientSystem.Byte[]
+Waiting for all responses to arrive ...
+Response: TWAS BRILLIG, AND THE SLITHY TOVES
+Response: DID GIRE AND GYMBLE IN THE WABE.
+Response: ALL MIMSY WERE THE BOROGROVES,
+Response: AND THE MOME RATHS OUTGRABE.
+Shutting down listener for clientSystem.Byte[]
+Response: THAT'S ALL, FOLKS!
diff --git a/RC9/qpid/dotnet/client-010/examples/request-response/verify_cpp_dotnet b/RC9/qpid/dotnet/client-010/examples/request-response/verify_cpp_dotnet
new file mode 100644
index 0000000000..3cc0370ada
--- /dev/null
+++ b/RC9/qpid/dotnet/client-010/examples/request-response/verify_cpp_dotnet
@@ -0,0 +1,12 @@
+# See https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid/bin/verify
+cpp=$CPP/request-response
+
+client_dotnet()
+{
+mono $DOTNET_EXAMPLES/example-request-response-Client.exe localhost 5672
+}
+
+background "Waiting" $cpp/server
+clients client_dotnet
+kill %%
+outputs ./client_dotnet.out "$cpp/server.out | remove_uuid"
diff --git a/RC9/qpid/dotnet/client-010/examples/request-response/verify_cpp_dotnet.in b/RC9/qpid/dotnet/client-010/examples/request-response/verify_cpp_dotnet.in
new file mode 100644
index 0000000000..0f4b5341b2
--- /dev/null
+++ b/RC9/qpid/dotnet/client-010/examples/request-response/verify_cpp_dotnet.in
@@ -0,0 +1,17 @@
+==== client_dotnet.out
+Activating response queue listener for: clientSystem.Byte[]
+Waiting for all responses to arrive ...
+Response: TWAS BRILLIG, AND THE SLITHY TOVES
+Response: DID GIRE AND GYMBLE IN THE WABE.
+Response: ALL MIMSY WERE THE BOROGROVES,
+Response: AND THE MOME RATHS OUTGRABE.
+Shutting down listener for clientSystem.Byte[]
+Response: THAT'S ALL, FOLKS!
+==== server.out | remove_uuid
+Activating request queue listener for: request
+Waiting for requests
+Request: Twas brillig, and the slithy toves (clientSystem.Byte[])
+Request: Did gire and gymble in the wabe. (clientSystem.Byte[])
+Request: All mimsy were the borogroves, (clientSystem.Byte[])
+Request: And the mome raths outgrabe. (clientSystem.Byte[])
+Request: That's all, folks! (clientSystem.Byte[])
diff --git a/RC9/qpid/dotnet/client-010/examples/request-response/verify_dotnet_cpp b/RC9/qpid/dotnet/client-010/examples/request-response/verify_dotnet_cpp
new file mode 100644
index 0000000000..81b86a0b41
--- /dev/null
+++ b/RC9/qpid/dotnet/client-010/examples/request-response/verify_dotnet_cpp
@@ -0,0 +1,12 @@
+# See https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid/bin/verify
+cpp=$CPP/request-response
+
+server_dotnet()
+{
+mono $DOTNET_EXAMPLES/example-request-response-Server.exe localhost 5672
+}
+
+background "Waiting for requests" server_dotnet
+clients $cpp/client
+kill %%
+outputs "$cpp/client.out | remove_uuid" ./server_dotnet.out
diff --git a/RC9/qpid/dotnet/client-010/examples/request-response/verify_dotnet_cpp.in b/RC9/qpid/dotnet/client-010/examples/request-response/verify_dotnet_cpp.in
new file mode 100644
index 0000000000..849fad39c6
--- /dev/null
+++ b/RC9/qpid/dotnet/client-010/examples/request-response/verify_dotnet_cpp.in
@@ -0,0 +1,18 @@
+==== client.out | remove_uuid
+Activating response queue listener for: client
+Request: Twas brillig, and the slithy toves
+Request: Did gire and gymble in the wabe.
+Request: All mimsy were the borogroves,
+Request: And the mome raths outgrabe.
+Waiting for all responses to arrive ...
+Response: TWAS BRILLIG, AND THE SLITHY TOVES
+Response: DID GIRE AND GYMBLE IN THE WABE.
+Response: ALL MIMSY WERE THE BOROGROVES,
+Response: AND THE MOME RATHS OUTGRABE.
+Shutting down listener for client
+==== server_dotnet.out
+Waiting for requests
+Request: Twas brillig, and the slithy toves
+Request: Did gire and gymble in the wabe.
+Request: All mimsy were the borogroves,
+Request: And the mome raths outgrabe.
diff --git a/RC9/qpid/dotnet/client-010/examples/request-response/verify_dotnet_java b/RC9/qpid/dotnet/client-010/examples/request-response/verify_dotnet_java
new file mode 100644
index 0000000000..56477c623a
--- /dev/null
+++ b/RC9/qpid/dotnet/client-010/examples/request-response/verify_dotnet_java
@@ -0,0 +1,16 @@
+# See https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid/bin/verify
+
+server_dotnet()
+{
+mono $DOTNET_EXAMPLES/example-request-response-Server.exe localhost 5672
+}
+
+client_java()
+{
+java -Dlog4j.configuration=file://"$JAVA"/log4j.xml -cp "$CLASSPATH" org.apache.qpid.example.jmsexample.requestResponse.Client
+}
+
+background "Waiting for requests" server_dotnet
+clients client_java
+kill %%
+outputs ./server_dotnet.out "client_java.out | remove_uuid"
diff --git a/RC9/qpid/dotnet/client-010/examples/request-response/verify_dotnet_java.in b/RC9/qpid/dotnet/client-010/examples/request-response/verify_dotnet_java.in
new file mode 100644
index 0000000000..96e8b8a255
--- /dev/null
+++ b/RC9/qpid/dotnet/client-010/examples/request-response/verify_dotnet_java.in
@@ -0,0 +1,21 @@
+==== server_dotnet.out
+Waiting for requests
+Request: Twas brillig, and the slithy toves
+Request: Did gire and gymble in the wabe.
+Request: All mimsy were the borogroves,
+Request: And the mome raths outgrabe.
+==== client_java.out | remove_uuid
+Client: Setting an ExceptionListener on the connection as sample uses a MessageConsumer
+Client: Creating a non-transacted, auto-acknowledged session
+Client: Creating a QueueRequestor
+Client: Starting connection
+Client: Request Content= Twas brillig, and the slithy toves
+Client: Response Content= TWAS BRILLIG, AND THE SLITHY TOVES
+Client: Request Content= Did gire and gymble in the wabe.
+Client: Response Content= DID GIRE AND GYMBLE IN THE WABE.
+Client: Request Content= All mimsy were the borogroves,
+Client: Response Content= ALL MIMSY WERE THE BOROGROVES,
+Client: Request Content= And the mome raths outgrabe.
+Client: Response Content= AND THE MOME RATHS OUTGRABE.
+Client: Closing connection
+Client: Closing JNDI context
diff --git a/RC9/qpid/dotnet/client-010/examples/request-response/verify_dotnet_python b/RC9/qpid/dotnet/client-010/examples/request-response/verify_dotnet_python
new file mode 100644
index 0000000000..8ae2f41361
--- /dev/null
+++ b/RC9/qpid/dotnet/client-010/examples/request-response/verify_dotnet_python
@@ -0,0 +1,12 @@
+# See https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid/bin/verify
+py=$PYTHON_EXAMPLES/request-response
+
+server_dotnet()
+{
+mono $DOTNET_EXAMPLES/example-request-response-Server.exe localhost 5672
+}
+
+background "Waiting for requests" server_dotnet
+clients $py/client.py
+kill %%
+outputs "$py/client.py.out | remove_uuid" "server_dotnet.out | remove_uuid"
diff --git a/RC9/qpid/dotnet/client-010/examples/request-response/verify_dotnet_python.in b/RC9/qpid/dotnet/client-010/examples/request-response/verify_dotnet_python.in
new file mode 100644
index 0000000000..4455f4e133
--- /dev/null
+++ b/RC9/qpid/dotnet/client-010/examples/request-response/verify_dotnet_python.in
@@ -0,0 +1,17 @@
+==== client.py.out | remove_uuid
+Request: Twas brillig, and the slithy toves
+Request: Did gyre and gimble in the wabe.
+Request: All mimsy were the borogroves,
+Request: And the mome raths outgrabe.
+Messages on queue: reply_to:
+Response: TWAS BRILLIG, AND THE SLITHY TOVES
+Response: DID GYRE AND GIMBLE IN THE WABE.
+Response: ALL MIMSY WERE THE BOROGROVES,
+Response: AND THE MOME RATHS OUTGRABE.
+No more messages!
+==== server_dotnet.out | remove_uuid
+Waiting for requests
+Request: Twas brillig, and the slithy toves
+Request: Did gyre and gimble in the wabe.
+Request: All mimsy were the borogroves,
+Request: And the mome raths outgrabe.
diff --git a/RC9/qpid/dotnet/client-010/examples/request-response/verify_java_dotnet b/RC9/qpid/dotnet/client-010/examples/request-response/verify_java_dotnet
new file mode 100644
index 0000000000..6950a6a4ec
--- /dev/null
+++ b/RC9/qpid/dotnet/client-010/examples/request-response/verify_java_dotnet
@@ -0,0 +1,15 @@
+# See https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid/bin/verify
+
+server_java()
+{
+java -Dlog4j.configuration=file://"$JAVA"/log4j.xml -cp "$CLASSPATH" org.apache.qpid.example.jmsexample.requestResponse.Server
+}
+
+client_dotnet()
+{
+mono $DOTNET_EXAMPLES/example-request-response-Client.exe localhost 5672
+}
+background "can receive messages" server_java
+clients client_dotnet
+kill %%
+outputs "server_java.out | remove_uuid" ./client_dotnet.out
diff --git a/RC9/qpid/dotnet/client-010/examples/request-response/verify_java_dotnet.in b/RC9/qpid/dotnet/client-010/examples/request-response/verify_java_dotnet.in
new file mode 100644
index 0000000000..16b1853f37
--- /dev/null
+++ b/RC9/qpid/dotnet/client-010/examples/request-response/verify_java_dotnet.in
@@ -0,0 +1,36 @@
+==== server_java.out | remove_uuid
+Server: Setting an ExceptionListener on the connection as sample uses a MessageConsumer
+Server: Creating a non-transacted, auto-acknowledged session
+Server: Creating a MessageConsumer
+Server: Creating a MessageProducer
+Server: Starting connection so MessageConsumer can receive messages
+Server: Receiving the message
+Server: Activating response queue listener
+Server: Response = TWAS BRILLIG, AND THE SLITHY TOVES
+
+Server: Receiving the message
+Server: Activating response queue listener
+Server: Response = DID GIRE AND GYMBLE IN THE WABE.
+
+Server: Receiving the message
+Server: Activating response queue listener
+Server: Response = ALL MIMSY WERE THE BOROGROVES,
+
+Server: Receiving the message
+Server: Activating response queue listener
+Server: Response = AND THE MOME RATHS OUTGRABE.
+
+Server: Receiving the message
+Server: Activating response queue listener
+Server: Response = THAT'S ALL, FOLKS!
+
+Server: Receiving the message
+==== client_dotnet.out
+Activating response queue listener for: clientSystem.Byte[]
+Waiting for all responses to arrive ...
+Response: TWAS BRILLIG, AND THE SLITHY TOVES
+Response: DID GIRE AND GYMBLE IN THE WABE.
+Response: ALL MIMSY WERE THE BOROGROVES,
+Response: AND THE MOME RATHS OUTGRABE.
+Shutting down listener for clientSystem.Byte[]
+Response: THAT'S ALL, FOLKS!
diff --git a/RC9/qpid/dotnet/client-010/examples/request-response/verify_python_dotnet b/RC9/qpid/dotnet/client-010/examples/request-response/verify_python_dotnet
new file mode 100644
index 0000000000..f1b5d662bd
--- /dev/null
+++ b/RC9/qpid/dotnet/client-010/examples/request-response/verify_python_dotnet
@@ -0,0 +1,12 @@
+# See https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid/bin/verify
+py=$PYTHON_EXAMPLES/request-response
+
+client_dotnet()
+{
+mono $DOTNET_EXAMPLES/example-request-response-Client.exe localhost 5672
+}
+
+background "Request server running" $py/server.py
+clients client_dotnet
+kill %%
+outputs "client_dotnet.out | remove_uuid" "$py/server.py.out | remove_uuid"
diff --git a/RC9/qpid/dotnet/client-010/examples/request-response/verify_python_dotnet.in b/RC9/qpid/dotnet/client-010/examples/request-response/verify_python_dotnet.in
new file mode 100644
index 0000000000..d982a61a04
--- /dev/null
+++ b/RC9/qpid/dotnet/client-010/examples/request-response/verify_python_dotnet.in
@@ -0,0 +1,12 @@
+==== client_dotnet.out | remove_uuid
+Activating response queue listener for: clientSystem.Byte[]
+Waiting for all responses to arrive ...
+Response: TWAS BRILLIG, AND THE SLITHY TOVES
+Response: DID GIRE AND GYMBLE IN THE WABE.
+Response: ALL MIMSY WERE THE BOROGROVES,
+Response: AND THE MOME RATHS OUTGRABE.
+Shutting down listener for clientSystem.Byte[]
+Response: THAT'S ALL, FOLKS!
+==== server.py.out | remove_uuid
+Request server running - run your client now.
+(Times out after 100 seconds ...)