diff options
Diffstat (limited to 'RC9/qpid/dotnet/client-010/examples')
88 files changed, 3599 insertions, 0 deletions
diff --git a/RC9/qpid/dotnet/client-010/examples/direct/example-direct-Listener/Listener.cs b/RC9/qpid/dotnet/client-010/examples/direct/example-direct-Listener/Listener.cs new file mode 100644 index 0000000000..dd044e8aed --- /dev/null +++ b/RC9/qpid/dotnet/client-010/examples/direct/example-direct-Listener/Listener.cs @@ -0,0 +1,112 @@ +/*
+* 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.direct
+{
+ /// <summary>
+ /// This program is one of three programs designed to be used
+ /// together. These programs use the "amq.direct" exchange.
+ ///
+ /// Producer:
+ ///
+ /// Publishes to a broker, specifying a routing key.
+ ///
+ /// Listener (this program):
+ ///
+ /// Reads from a queue on the broker using a message listener.
+ ///
+ /// </summary>
+ public class Listener
+ {
+ 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 --------------------------------------------
+ // Create a queue named "message_queue", and route all messages whose
+ // routing key is "routing_key" to this newly created queue.
+
+ session.queueDeclare("message_queue");
+ session.exchangeBind("message_queue", "amq.direct", "routing_key");
+
+ lock (session)
+ {
+ // Create a listener and subscribe it to the queue named "message_queue"
+ IMessageListener listener = new MessageListener(session);
+ session.attachMessageListener(listener, "message_queue");
+ session.messageSubscribe("message_queue");
+ // Receive messages until all messages are received
+ 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 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);
+ // Add this message to the list of message to be acknowledged
+ _range.add(m.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/direct/example-direct-Listener/Properties/AssemblyInfo.cs b/RC9/qpid/dotnet/client-010/examples/direct/example-direct-Listener/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..cfcafd19a2 --- /dev/null +++ b/RC9/qpid/dotnet/client-010/examples/direct/example-direct-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-direct-Listener")] +[assembly: AssemblyDescription("Built from svn revision number: ")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Apache Software Foundation")] +[assembly: AssemblyProduct("example-direct-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("6a24bfe4-4714-4d2a-acf4-96cf9a678a06")] + +// 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/direct/example-direct-Listener/default.build b/RC9/qpid/dotnet/client-010/examples/direct/example-direct-Listener/default.build new file mode 100644 index 0000000000..f611fee6f6 --- /dev/null +++ b/RC9/qpid/dotnet/client-010/examples/direct/example-direct-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-direct-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/direct/example-direct-Listener/example-direct-Listener.csproj b/RC9/qpid/dotnet/client-010/examples/direct/example-direct-Listener/example-direct-Listener.csproj new file mode 100644 index 0000000000..3c9ae20af8 --- /dev/null +++ b/RC9/qpid/dotnet/client-010/examples/direct/example-direct-Listener/example-direct-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>{AE65B1B9-8779-4CB1-91AF-E7F6C7A736D7}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>example_direct_Listener</RootNamespace>
+ <AssemblyName>example-direct-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/direct/example-direct-producer/Producer.cs b/RC9/qpid/dotnet/client-010/examples/direct/example-direct-producer/Producer.cs new file mode 100644 index 0000000000..c9f1a475a4 --- /dev/null +++ b/RC9/qpid/dotnet/client-010/examples/direct/example-direct-producer/Producer.cs @@ -0,0 +1,87 @@ +/*
+* 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.direct
+{
+ /// <summary>
+ /// This program is one of three programs designed to be used
+ /// together. These programs use the "amq.direct" exchange.
+ ///
+ /// Producer (this program):
+ ///
+ /// Publishes to a broker, specifying a routing key.
+ ///
+ /// Listener:
+ ///
+ /// Reads from a queue on the broker using a message listener.
+ ///
+ /// </summary>
+ class Producer
+ {
+ 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 --------------------------------------------
+
+ IMessage message = new Message();
+
+ // The routing key is a message property. We will use the same
+ // routing key for each message, so we'll set this property
+ // just once. (In most simple cases, there is no need to set
+ // other message properties.)
+
+ message.DeliveryProperties.setRoutingKey("routing_key");
+
+ // 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.direct", message);
+ }
+
+ // And send a syncrhonous final message to indicate termination.
+ message.clearData();
+ message.appendData(Encoding.UTF8.GetBytes("That's all, folks!"));
+ session.messageTransfer("amq.direct", "routing_key", message);
+ session.sync();
+
+ //-----------------------------------------------------------------------------
+
+ connection.close();
+ }
+ catch (Exception e)
+ {
+ Console.WriteLine("Error: \n" + e.StackTrace);
+ }
+ }
+ }
+}
diff --git a/RC9/qpid/dotnet/client-010/examples/direct/example-direct-producer/Properties/AssemblyInfo.cs b/RC9/qpid/dotnet/client-010/examples/direct/example-direct-producer/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..3ca7a80095 --- /dev/null +++ b/RC9/qpid/dotnet/client-010/examples/direct/example-direct-producer/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-direct-producer")] +[assembly: AssemblyDescription("Built from svn revision number: ")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Apache Software Foundation")] +[assembly: AssemblyProduct("example-direct-producer")] +[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("006144c2-5e45-4543-8e16-c09cd4309ed7")] + +// 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/direct/example-direct-producer/default.build b/RC9/qpid/dotnet/client-010/examples/direct/example-direct-producer/default.build new file mode 100644 index 0000000000..3382349ae6 --- /dev/null +++ b/RC9/qpid/dotnet/client-010/examples/direct/example-direct-producer/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-direct-Producer" 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/direct/example-direct-producer/example-direct-producer.csproj b/RC9/qpid/dotnet/client-010/examples/direct/example-direct-producer/example-direct-producer.csproj new file mode 100644 index 0000000000..18dcc3a0d6 --- /dev/null +++ b/RC9/qpid/dotnet/client-010/examples/direct/example-direct-producer/example-direct-producer.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>{96FCB250-8142-40EE-9BDD-CA839EE21021}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>example_direct_producer</RootNamespace>
+ <AssemblyName>example-direct-producer</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="Producer.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/direct/verify b/RC9/qpid/dotnet/client-010/examples/direct/verify new file mode 100644 index 0000000000..7da08480a2 --- /dev/null +++ b/RC9/qpid/dotnet/client-010/examples/direct/verify @@ -0,0 +1,37 @@ +# +## +## 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 +cpp=$CPP/direct + +direct_listener_dotnet() +{ +mono $DOTNET_EXAMPLES/example-direct-Listener.exe localhost 5672 +} + +direct_producer_dotnet() +{ +mono $DOTNET_EXAMPLES/example-direct-Producer.exe localhost 5672 +} + +clients $cpp/declare_queues direct_producer_dotnet direct_listener_dotnet +outputs $cpp/declare_queues.out ./direct_producer_dotnet.out ./direct_listener_dotnet.out diff --git a/RC9/qpid/dotnet/client-010/examples/direct/verify.in b/RC9/qpid/dotnet/client-010/examples/direct/verify.in new file mode 100644 index 0000000000..f57d931663 --- /dev/null +++ b/RC9/qpid/dotnet/client-010/examples/direct/verify.in @@ -0,0 +1,14 @@ +==== declare_queues.out +==== direct_producer_dotnet.out +==== direct_listener_dotnet.out +Message: Message 0 +Message: Message 1 +Message: Message 2 +Message: Message 3 +Message: Message 4 +Message: Message 5 +Message: Message 6 +Message: Message 7 +Message: Message 8 +Message: Message 9 +Message: That's all, folks! diff --git a/RC9/qpid/dotnet/client-010/examples/direct/verify_cpp_dotnet b/RC9/qpid/dotnet/client-010/examples/direct/verify_cpp_dotnet new file mode 100644 index 0000000000..86fb7dddd4 --- /dev/null +++ b/RC9/qpid/dotnet/client-010/examples/direct/verify_cpp_dotnet @@ -0,0 +1,10 @@ +# See https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid/bin/verify +cpp=$CPP/direct + +direct_listener_dotnet() +{ +mono $DOTNET_EXAMPLES/example-direct-Listener.exe localhost 5672 +} + +clients $cpp/declare_queues $cpp/direct_producer direct_listener_dotnet +outputs $cpp/declare_queues.out $cpp/direct_producer.out ./direct_listener_dotnet.out
\ No newline at end of file diff --git a/RC9/qpid/dotnet/client-010/examples/direct/verify_cpp_dotnet.in b/RC9/qpid/dotnet/client-010/examples/direct/verify_cpp_dotnet.in new file mode 100644 index 0000000000..b3543cefe5 --- /dev/null +++ b/RC9/qpid/dotnet/client-010/examples/direct/verify_cpp_dotnet.in @@ -0,0 +1,14 @@ +==== declare_queues.out +==== direct_producer.out +==== direct_listener_dotnet.out +Message: Message 0 +Message: Message 1 +Message: Message 2 +Message: Message 3 +Message: Message 4 +Message: Message 5 +Message: Message 6 +Message: Message 7 +Message: Message 8 +Message: Message 9 +Message: That's all, folks! diff --git a/RC9/qpid/dotnet/client-010/examples/direct/verify_dotnet_cpp b/RC9/qpid/dotnet/client-010/examples/direct/verify_dotnet_cpp new file mode 100644 index 0000000000..fe86159fcc --- /dev/null +++ b/RC9/qpid/dotnet/client-010/examples/direct/verify_dotnet_cpp @@ -0,0 +1,10 @@ +# See https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid/bin/verify +cpp=$CPP/direct + +direct_producer_dotnet() +{ +mono $DOTNET_EXAMPLES/example-direct-Producer.exe localhost 5672 +} + +clients $cpp/declare_queues direct_producer_dotnet $cpp/listener +outputs $cpp/declare_queues.out ./direct_producer_dotnet.out $cpp/listener.out
\ No newline at end of file diff --git a/RC9/qpid/dotnet/client-010/examples/direct/verify_dotnet_cpp.in b/RC9/qpid/dotnet/client-010/examples/direct/verify_dotnet_cpp.in new file mode 100644 index 0000000000..fcb6cd66de --- /dev/null +++ b/RC9/qpid/dotnet/client-010/examples/direct/verify_dotnet_cpp.in @@ -0,0 +1,15 @@ +==== declare_queues.out +==== direct_producer_dotnet.out +==== listener.out +Message: Message 0 +Message: Message 1 +Message: Message 2 +Message: Message 3 +Message: Message 4 +Message: Message 5 +Message: Message 6 +Message: Message 7 +Message: Message 8 +Message: Message 9 +Message: That's all, folks! +Shutting down listener for message_queue diff --git a/RC9/qpid/dotnet/client-010/examples/direct/verify_dotnet_java b/RC9/qpid/dotnet/client-010/examples/direct/verify_dotnet_java new file mode 100644 index 0000000000..528f3eb664 --- /dev/null +++ b/RC9/qpid/dotnet/client-010/examples/direct/verify_dotnet_java @@ -0,0 +1,15 @@ +# See https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid/bin/verify +cpp=$CPP/direct + +direct_consumer_java() +{ +java -Dlog4j.configuration=file://"$JAVA"/log4j.xml -cp "$CLASSPATH" org.apache.qpid.example.jmsexample.direct.Consumer +} + +direct_producer_dotnet() +{ +mono $DOTNET_EXAMPLES/example-direct-Producer.exe localhost 5672 +} + +clients $cpp/declare_queues direct_producer_dotnet direct_consumer_java +outputs $cpp/declare_queues.out ./direct_producer_dotnet.out ./direct_consumer_java.out diff --git a/RC9/qpid/dotnet/client-010/examples/direct/verify_dotnet_java.in b/RC9/qpid/dotnet/client-010/examples/direct/verify_dotnet_java.in new file mode 100644 index 0000000000..cd87551305 --- /dev/null +++ b/RC9/qpid/dotnet/client-010/examples/direct/verify_dotnet_java.in @@ -0,0 +1,20 @@ +==== declare_queues.out +==== direct_producer_dotnet.out +==== direct_consumer_java.out +Consumer: Setting an ExceptionListener on the connection as sample uses a MessageConsumer +Consumer: Creating a non-transacted, auto-acknowledged session +Consumer: Creating a MessageConsumer +Consumer: Starting connection so MessageConsumer can receive messages +Consumer: Received message: Message 0 +Consumer: Received message: Message 1 +Consumer: Received message: Message 2 +Consumer: Received message: Message 3 +Consumer: Received message: Message 4 +Consumer: Received message: Message 5 +Consumer: Received message: Message 6 +Consumer: Received message: Message 7 +Consumer: Received message: Message 8 +Consumer: Received message: Message 9 +Consumer: Received final message That's all, folks! +Consumer: Closing connection +Consumer: Closing JNDI context diff --git a/RC9/qpid/dotnet/client-010/examples/direct/verify_dotnet_python b/RC9/qpid/dotnet/client-010/examples/direct/verify_dotnet_python new file mode 100644 index 0000000000..0c70465bc5 --- /dev/null +++ b/RC9/qpid/dotnet/client-010/examples/direct/verify_dotnet_python @@ -0,0 +1,10 @@ +# See https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid/bin/verify +py=$PYTHON_EXAMPLES/direct + +direct_producer_dotnet() +{ +mono $DOTNET_EXAMPLES/example-direct-Producer.exe localhost 5672 +} + +clients $py/declare_queues.py direct_producer_dotnet $py/direct_consumer.py +outputs $py/declare_queues.py.out ./direct_producer_dotnet.out $py/direct_consumer.py.out diff --git a/RC9/qpid/dotnet/client-010/examples/direct/verify_dotnet_python.in b/RC9/qpid/dotnet/client-010/examples/direct/verify_dotnet_python.in new file mode 100644 index 0000000000..7059b3079c --- /dev/null +++ b/RC9/qpid/dotnet/client-010/examples/direct/verify_dotnet_python.in @@ -0,0 +1,14 @@ +==== declare_queues.py.out +==== direct_producer_dotnet.out +==== direct_consumer.py.out +Message 0 +Message 1 +Message 2 +Message 3 +Message 4 +Message 5 +Message 6 +Message 7 +Message 8 +Message 9 +That's all, folks! diff --git a/RC9/qpid/dotnet/client-010/examples/direct/verify_java_dotnet b/RC9/qpid/dotnet/client-010/examples/direct/verify_java_dotnet new file mode 100644 index 0000000000..50eb73f9f5 --- /dev/null +++ b/RC9/qpid/dotnet/client-010/examples/direct/verify_java_dotnet @@ -0,0 +1,15 @@ +# See https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid/bin/verify +cpp=$CPP/direct + +direct_listener_dotnet() +{ +mono $DOTNET_EXAMPLES/example-direct-Listener.exe localhost 5672 +} + +direct_producer_java() +{ +java -Dlog4j.configuration=file://"$JAVA"/log4j.xml -cp "$CLASSPATH" org.apache.qpid.example.jmsexample.direct.Producer +} + +clients $cpp/declare_queues direct_producer_java direct_listener_dotnet +outputs $cpp/declare_queues.out ./direct_producer_java.out ./direct_listener_dotnet.out diff --git a/RC9/qpid/dotnet/client-010/examples/direct/verify_java_dotnet.in b/RC9/qpid/dotnet/client-010/examples/direct/verify_java_dotnet.in new file mode 100644 index 0000000000..23628b89de --- /dev/null +++ b/RC9/qpid/dotnet/client-010/examples/direct/verify_java_dotnet.in @@ -0,0 +1,29 @@ +==== declare_queues.out +==== direct_producer_java.out +Producer: Creating a non-transacted, auto-acknowledged session +Producer: Creating a Message Producer +Producer: Creating a TestMessage to send to the destination +Producer: Sending message: 1 +Producer: Sending message: 2 +Producer: Sending message: 3 +Producer: Sending message: 4 +Producer: Sending message: 5 +Producer: Sending message: 6 +Producer: Sending message: 7 +Producer: Sending message: 8 +Producer: Sending message: 9 +Producer: Sending message: 10 +Producer: Closing connection +Producer: Closing JNDI context +==== direct_listener_dotnet.out +Message: Message 1 +Message: Message 2 +Message: Message 3 +Message: Message 4 +Message: Message 5 +Message: Message 6 +Message: Message 7 +Message: Message 8 +Message: Message 9 +Message: Message 10 +Message: That's all, folks! diff --git a/RC9/qpid/dotnet/client-010/examples/direct/verify_python_dotnet b/RC9/qpid/dotnet/client-010/examples/direct/verify_python_dotnet new file mode 100644 index 0000000000..086b31caf4 --- /dev/null +++ b/RC9/qpid/dotnet/client-010/examples/direct/verify_python_dotnet @@ -0,0 +1,10 @@ +# See https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid/bin/verify +py=$PYTHON_EXAMPLES/direct + +direct_listener_dotnet() +{ +mono $DOTNET_EXAMPLES/example-direct-Listener.exe localhost 5672 +} + +clients $py/declare_queues.py $py/direct_producer.py direct_listener_dotnet +outputs $py/declare_queues.py.out $py/direct_producer.py.out ./direct_listener_dotnet.out diff --git a/RC9/qpid/dotnet/client-010/examples/direct/verify_python_dotnet.in b/RC9/qpid/dotnet/client-010/examples/direct/verify_python_dotnet.in new file mode 100644 index 0000000000..a556e7ad86 --- /dev/null +++ b/RC9/qpid/dotnet/client-010/examples/direct/verify_python_dotnet.in @@ -0,0 +1,14 @@ +==== declare_queues.py.out +==== direct_producer.py.out +==== direct_listener_dotnet.out +Message: message 0 +Message: message 1 +Message: message 2 +Message: message 3 +Message: message 4 +Message: message 5 +Message: message 6 +Message: message 7 +Message: message 8 +Message: message 9 +Message: That's all, folks! diff --git a/RC9/qpid/dotnet/client-010/examples/fanout/example-fanout-Listener/Listener.cs b/RC9/qpid/dotnet/client-010/examples/fanout/example-fanout-Listener/Listener.cs new file mode 100644 index 0000000000..4d3da690a9 --- /dev/null +++ b/RC9/qpid/dotnet/client-010/examples/fanout/example-fanout-Listener/Listener.cs @@ -0,0 +1,121 @@ +/*
+* 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.fanout
+{
+ /// <summary>
+ /// This program is one of two programs designed to be used
+ /// together.
+ ///
+ /// Producer (this program):
+ ///
+ /// Publishes to a broker, specifying a routing key.
+ ///
+ /// Listener:
+ ///
+ /// Reads from a queue on the broker using a message listener.
+ ///
+ /// </summary>
+ public class Listener
+ {
+ 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 --------------------------------------------
+ // Each client creates its own private queue, using the
+ // session id to guarantee a unique name. It then routes
+ // all messages from the fanout exchange to its own queue
+ // by binding to the queue.
+ //
+ // The binding specifies a binding key, but for a fanout
+ // exchange, the binding key is optional and is not used
+ // for routing decisions. It can be useful for tracking
+ // messages and routing in logs.
+
+ string myQueue = session.Name;
+ session.queueDeclare(myQueue, Option.EXCLUSIVE, Option.AUTO_DELETE);
+ session.exchangeBind(myQueue, "amq.fanout", "my-key");
+
+ lock (session)
+ {
+ Console.WriteLine("Listening");
+ // Create a listener and subscribe it to my queue.
+ IMessageListener listener = new MessageListener(session);
+ session.attachMessageListener(listener, myQueue);
+ session.messageSubscribe(myQueue);
+ // Receive messages until all messages are received
+ 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 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);
+ // Add this message to the list of message to be acknowledged
+ _range.add(m.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/fanout/example-fanout-Listener/Properties/AssemblyInfo.cs b/RC9/qpid/dotnet/client-010/examples/fanout/example-fanout-Listener/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..6454ae44db --- /dev/null +++ b/RC9/qpid/dotnet/client-010/examples/fanout/example-fanout-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-fanout-Listener")] +[assembly: AssemblyDescription("Built from svn revision number: ")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Apache Software Foundation")] +[assembly: AssemblyProduct("example-fanout-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("68686ef9-aa0a-4334-9c52-d7e6fc507bec")] + +// 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/fanout/example-fanout-Listener/default.build b/RC9/qpid/dotnet/client-010/examples/fanout/example-fanout-Listener/default.build new file mode 100644 index 0000000000..bdf5cc80c5 --- /dev/null +++ b/RC9/qpid/dotnet/client-010/examples/fanout/example-fanout-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-fanout-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/fanout/example-fanout-Listener/example-fanout-Listener.csproj b/RC9/qpid/dotnet/client-010/examples/fanout/example-fanout-Listener/example-fanout-Listener.csproj new file mode 100644 index 0000000000..c2c8833e34 --- /dev/null +++ b/RC9/qpid/dotnet/client-010/examples/fanout/example-fanout-Listener/example-fanout-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>{18A0792B-DC3A-4EC5-93D6-DB8A111D8F15}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>example_fanout_Listener</RootNamespace>
+ <AssemblyName>example-fanout-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/fanout/example-fanout-Producer/Producer.cs b/RC9/qpid/dotnet/client-010/examples/fanout/example-fanout-Producer/Producer.cs new file mode 100644 index 0000000000..f2818a4099 --- /dev/null +++ b/RC9/qpid/dotnet/client-010/examples/fanout/example-fanout-Producer/Producer.cs @@ -0,0 +1,84 @@ +/*
+* 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.fanout
+{
+ /// <summary>
+ /// This program is one of two programs designed to be used
+ /// together. These programs do not specify the exchange type - the
+ /// default exchange type is the direct exchange.
+ ///
+ ///
+ /// Producer (this program):
+ ///
+ /// Publishes to a broker, specifying a routing key.
+ ///
+ /// Listener:
+ ///
+ /// Reads from a queue on the broker using a message listener.
+ ///
+ /// </summary>
+ class Producer
+ {
+ 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 --------------------------------------------
+
+ // Unlike topic exchanges and direct exchanges, a fanout
+ // exchange need not set a 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.fanout", message);
+ }
+
+ // And send a syncrhonous final message to indicate termination.
+ message.clearData();
+ message.appendData(Encoding.UTF8.GetBytes("That's all, folks!"));
+ session.messageTransfer("amq.fanout", message);
+ session.sync();
+
+ //-----------------------------------------------------------------------------
+
+ connection.close();
+ }
+ catch (Exception e)
+ {
+ Console.WriteLine("Error: \n" + e.StackTrace);
+ }
+ }
+ }
+}
diff --git a/RC9/qpid/dotnet/client-010/examples/fanout/example-fanout-Producer/Properties/AssemblyInfo.cs b/RC9/qpid/dotnet/client-010/examples/fanout/example-fanout-Producer/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..3054ba09db --- /dev/null +++ b/RC9/qpid/dotnet/client-010/examples/fanout/example-fanout-Producer/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-fanout-Producer")] +[assembly: AssemblyDescription("Built from svn revision number: ")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Apache Software Foundation")] +[assembly: AssemblyProduct("example-fanout-Producer")] +[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("01c0ba10-2f23-409b-9adc-bc514a13131a")] + +// 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/fanout/example-fanout-Producer/default.build b/RC9/qpid/dotnet/client-010/examples/fanout/example-fanout-Producer/default.build new file mode 100644 index 0000000000..874854a51b --- /dev/null +++ b/RC9/qpid/dotnet/client-010/examples/fanout/example-fanout-Producer/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-fanout-Producer" 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/fanout/example-fanout-Producer/example-fanout-Producer.csproj b/RC9/qpid/dotnet/client-010/examples/fanout/example-fanout-Producer/example-fanout-Producer.csproj new file mode 100644 index 0000000000..83959fe3af --- /dev/null +++ b/RC9/qpid/dotnet/client-010/examples/fanout/example-fanout-Producer/example-fanout-Producer.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>{4513BF94-D54A-42FE-8506-FE2CD57B2C51}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>example_fanout_Producer</RootNamespace>
+ <AssemblyName>example-fanout-Producer</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="Producer.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/fanout/verify b/RC9/qpid/dotnet/client-010/examples/fanout/verify new file mode 100644 index 0000000000..51b7327243 --- /dev/null +++ b/RC9/qpid/dotnet/client-010/examples/fanout/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 + +fanout_listener_dotnet() +{ +mono $DOTNET_EXAMPLES/example-fanout-Listener.exe localhost 5672 +} + +fanout_producer_dotnet() +{ +mono $DOTNET_EXAMPLES/example-fanout-Producer.exe localhost 5672 +} + +background "Listening" fanout_listener_dotnet +clients fanout_producer_dotnet +outputs ./fanout_listener_dotnet.out ./fanout_producer_dotnet.out diff --git a/RC9/qpid/dotnet/client-010/examples/fanout/verify.in b/RC9/qpid/dotnet/client-010/examples/fanout/verify.in new file mode 100644 index 0000000000..37a4a4aaa8 --- /dev/null +++ b/RC9/qpid/dotnet/client-010/examples/fanout/verify.in @@ -0,0 +1,14 @@ +==== fanout_listener_dotnet.out +Listening +Message: Message 0 +Message: Message 1 +Message: Message 2 +Message: Message 3 +Message: Message 4 +Message: Message 5 +Message: Message 6 +Message: Message 7 +Message: Message 8 +Message: Message 9 +Message: That's all, folks! +==== fanout_producer_dotnet.out diff --git a/RC9/qpid/dotnet/client-010/examples/fanout/verify_cpp_dotnet b/RC9/qpid/dotnet/client-010/examples/fanout/verify_cpp_dotnet new file mode 100644 index 0000000000..b9b0d94857 --- /dev/null +++ b/RC9/qpid/dotnet/client-010/examples/fanout/verify_cpp_dotnet @@ -0,0 +1,11 @@ +# See https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid/bin/verify +cpp=$CPP/fanout + +fanout_listener_dotnet() +{ +mono $DOTNET_EXAMPLES/example-fanout-Listener.exe localhost 5672 +} + +background "Listening" fanout_listener_dotnet +clients $cpp/fanout_producer +outputs $cpp/fanout_producer.out "./fanout_listener_dotnet.out | remove_uuid" diff --git a/RC9/qpid/dotnet/client-010/examples/fanout/verify_cpp_dotnet.in b/RC9/qpid/dotnet/client-010/examples/fanout/verify_cpp_dotnet.in new file mode 100644 index 0000000000..0a72d8fd3c --- /dev/null +++ b/RC9/qpid/dotnet/client-010/examples/fanout/verify_cpp_dotnet.in @@ -0,0 +1,14 @@ +==== fanout_producer.out +==== fanout_listener_dotnet.out | remove_uuid +Listening +Message: Message 0 +Message: Message 1 +Message: Message 2 +Message: Message 3 +Message: Message 4 +Message: Message 5 +Message: Message 6 +Message: Message 7 +Message: Message 8 +Message: Message 9 +Message: That's all, folks! diff --git a/RC9/qpid/dotnet/client-010/examples/fanout/verify_dotnet_cpp b/RC9/qpid/dotnet/client-010/examples/fanout/verify_dotnet_cpp new file mode 100644 index 0000000000..1b27ea8653 --- /dev/null +++ b/RC9/qpid/dotnet/client-010/examples/fanout/verify_dotnet_cpp @@ -0,0 +1,12 @@ +# See https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid/bin/verify +cpp=$CPP/fanout + +fanout_producer_dotnet() +{ +mono $DOTNET_EXAMPLES/example-fanout-Producer.exe localhost 5672 +} + + +background "Listening" $cpp/listener +clients fanout_producer_dotnet +outputs ./fanout_producer_dotnet.out "$cpp/listener.out | remove_uuid" diff --git a/RC9/qpid/dotnet/client-010/examples/fanout/verify_dotnet_cpp.in b/RC9/qpid/dotnet/client-010/examples/fanout/verify_dotnet_cpp.in new file mode 100644 index 0000000000..588559938f --- /dev/null +++ b/RC9/qpid/dotnet/client-010/examples/fanout/verify_dotnet_cpp.in @@ -0,0 +1,15 @@ +==== fanout_producer_dotnet.out +==== listener.out | remove_uuid +Listening +Message: Message 0 +Message: Message 1 +Message: Message 2 +Message: Message 3 +Message: Message 4 +Message: Message 5 +Message: Message 6 +Message: Message 7 +Message: Message 8 +Message: Message 9 +Message: That's all, folks! +Shutting down listener for diff --git a/RC9/qpid/dotnet/client-010/examples/fanout/verify_dotnet_java b/RC9/qpid/dotnet/client-010/examples/fanout/verify_dotnet_java new file mode 100644 index 0000000000..88576814d7 --- /dev/null +++ b/RC9/qpid/dotnet/client-010/examples/fanout/verify_dotnet_java @@ -0,0 +1,16 @@ +# See https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid/bin/verify + +fanout_producer_dotnet() +{ +mono $DOTNET_EXAMPLES/example-fanout-Producer.exe localhost 5672 +} + + +fanout_listener_java() +{ +java -Dlog4j.configuration=file://"$JAVA"/log4j.xml -cp "$CLASSPATH" org.apache.qpid.example.jmsexample.fanout.Listener $1 +} + +background "can receive messages" fanout_listener_java fanoutQueue1 +clients fanout_producer_dotnet +outputs ./fanout_producer_dotnet.out "./fanout_listener_java.out | remove_uuid" diff --git a/RC9/qpid/dotnet/client-010/examples/fanout/verify_dotnet_java.in b/RC9/qpid/dotnet/client-010/examples/fanout/verify_dotnet_java.in new file mode 100644 index 0000000000..06d3a6e66b --- /dev/null +++ b/RC9/qpid/dotnet/client-010/examples/fanout/verify_dotnet_java.in @@ -0,0 +1,19 @@ +==== fanout_producer_dotnet.out +==== fanout_listener_java.out | remove_uuid +Listener: Setting an ExceptionListener on the connection as sample uses a MessageConsumer +Listener: Creating a non-transacted, auto-acknowledged session +Listener: Creating a MessageConsumer +Listener: Starting connection so MessageConsumer can receive messages +Listener: Received message: Message 0 +Listener: Received message: Message 1 +Listener: Received message: Message 2 +Listener: Received message: Message 3 +Listener: Received message: Message 4 +Listener: Received message: Message 5 +Listener: Received message: Message 6 +Listener: Received message: Message 7 +Listener: Received message: Message 8 +Listener: Received message: Message 9 +Listener: Received final message That's all, folks! +Listener: Closing connection +Listener: Closing JNDI context diff --git a/RC9/qpid/dotnet/client-010/examples/fanout/verify_dotnet_python b/RC9/qpid/dotnet/client-010/examples/fanout/verify_dotnet_python new file mode 100644 index 0000000000..a09b26ca6a --- /dev/null +++ b/RC9/qpid/dotnet/client-010/examples/fanout/verify_dotnet_python @@ -0,0 +1,11 @@ +# See https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid/bin/verify +py=$PYTHON_EXAMPLES/fanout + +fanout_producer_dotnet() +{ +mono $DOTNET_EXAMPLES/example-fanout-Producer.exe localhost 5672 +} + +background "Subscribed" $py/fanout_consumer.py +clients fanout_producer_dotnet +outputs ./fanout_producer_dotnet.out "$py/fanout_consumer.py.out | remove_uuid" diff --git a/RC9/qpid/dotnet/client-010/examples/fanout/verify_dotnet_python.in b/RC9/qpid/dotnet/client-010/examples/fanout/verify_dotnet_python.in new file mode 100644 index 0000000000..e9959c2e25 --- /dev/null +++ b/RC9/qpid/dotnet/client-010/examples/fanout/verify_dotnet_python.in @@ -0,0 +1,14 @@ +==== fanout_producer_dotnet.out +==== fanout_consumer.py.out | remove_uuid +Subscribed to queue +Message 0 +Message 1 +Message 2 +Message 3 +Message 4 +Message 5 +Message 6 +Message 7 +Message 8 +Message 9 +That's all, folks! diff --git a/RC9/qpid/dotnet/client-010/examples/fanout/verify_java_dotnet b/RC9/qpid/dotnet/client-010/examples/fanout/verify_java_dotnet new file mode 100644 index 0000000000..d72954de0e --- /dev/null +++ b/RC9/qpid/dotnet/client-010/examples/fanout/verify_java_dotnet @@ -0,0 +1,16 @@ +# See https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid/bin/verify + +fanout_listener_dotnet() +{ +mono $DOTNET_EXAMPLES/example-fanout-Listener.exe localhost 5672 +} + + +fanout_producer_java() +{ +java -Dlog4j.configuration=file://"$JAVA"/log4j.xml -cp "$CLASSPATH" org.apache.qpid.example.jmsexample.fanout.Producer +} + +background "Listening" fanout_listener_dotnet +clients fanout_producer_java +outputs fanout_producer_java.out "./fanout_listener_dotnet.out | remove_uuid" diff --git a/RC9/qpid/dotnet/client-010/examples/fanout/verify_java_dotnet.in b/RC9/qpid/dotnet/client-010/examples/fanout/verify_java_dotnet.in new file mode 100644 index 0000000000..acf1b61221 --- /dev/null +++ b/RC9/qpid/dotnet/client-010/examples/fanout/verify_java_dotnet.in @@ -0,0 +1,29 @@ +==== fanout_producer_java.out +Producer: Creating a non-transacted, auto-acknowledged session +Producer: Creating a Message Producer +Producer: Creating a TestMessage to send to the destination +Producer: Sending message: 1 +Producer: Sending message: 2 +Producer: Sending message: 3 +Producer: Sending message: 4 +Producer: Sending message: 5 +Producer: Sending message: 6 +Producer: Sending message: 7 +Producer: Sending message: 8 +Producer: Sending message: 9 +Producer: Sending message: 10 +Producer: Closing connection +Producer: Closing JNDI context +==== fanout_listener_dotnet.out | remove_uuid +Listening +Message: Message 1 +Message: Message 2 +Message: Message 3 +Message: Message 4 +Message: Message 5 +Message: Message 6 +Message: Message 7 +Message: Message 8 +Message: Message 9 +Message: Message 10 +Message: That's all, folks! diff --git a/RC9/qpid/dotnet/client-010/examples/fanout/verify_python_dotnet b/RC9/qpid/dotnet/client-010/examples/fanout/verify_python_dotnet new file mode 100644 index 0000000000..ac472c0f72 --- /dev/null +++ b/RC9/qpid/dotnet/client-010/examples/fanout/verify_python_dotnet @@ -0,0 +1,11 @@ +# See https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid/bin/verify +py=$PYTHON_EXAMPLES/fanout + +fanout_listener_dotnet() +{ +mono $DOTNET_EXAMPLES/example-fanout-Listener.exe localhost 5672 +} + +background "Listening" fanout_listener_dotnet +clients $py/fanout_producer.py +outputs $py/fanout_producer.py.out "./fanout_listener_dotnet.out | remove_uuid" diff --git a/RC9/qpid/dotnet/client-010/examples/fanout/verify_python_dotnet.in b/RC9/qpid/dotnet/client-010/examples/fanout/verify_python_dotnet.in new file mode 100644 index 0000000000..b489c63a2c --- /dev/null +++ b/RC9/qpid/dotnet/client-010/examples/fanout/verify_python_dotnet.in @@ -0,0 +1,14 @@ +==== fanout_producer.py.out +==== fanout_listener_dotnet.out | remove_uuid +Listening +Message: message 0 +Message: message 1 +Message: message 2 +Message: message 3 +Message: message 4 +Message: message 5 +Message: message 6 +Message: message 7 +Message: message 8 +Message: message 9 +Message: That's all, folks! 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 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 ...) |
