From 075ec9b5c2d262a3cc9eddcde04ff335d48a2e7c Mon Sep 17 00:00:00 2001 From: "Stephen D. Huston" Date: Tue, 27 Apr 2010 22:02:16 +0000 Subject: Applied patch from QPID-2516. New sample for WCF Channel configuration. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@938694 13f79535-47bb-0310-9956-ffa450edef68 --- qpid/wcf/samples/Channel/AppConfig/ConfigDemo.cs | 109 ++++++++++++++++ .../samples/Channel/AppConfig/ConfigDemo.csproj | 143 +++++++++++++++++++++ 2 files changed, 252 insertions(+) create mode 100644 qpid/wcf/samples/Channel/AppConfig/ConfigDemo.cs create mode 100644 qpid/wcf/samples/Channel/AppConfig/ConfigDemo.csproj diff --git a/qpid/wcf/samples/Channel/AppConfig/ConfigDemo.cs b/qpid/wcf/samples/Channel/AppConfig/ConfigDemo.cs new file mode 100644 index 0000000000..3a7eaef57f --- /dev/null +++ b/qpid/wcf/samples/Channel/AppConfig/ConfigDemo.cs @@ -0,0 +1,109 @@ +/* +* 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. +*/ + + +namespace Apache.Qpid.Samples.Channel.Config +{ + using System; + using System.Collections; + using System.Collections.Generic; + using System.Configuration; + using System.Diagnostics; + using System.IO; + using System.ServiceModel; + using System.ServiceModel.Channels; + using System.ServiceModel.Description; + using System.Threading; + using System.Text; + using System.Xml; + using Apache.Qpid.Channel; + + [ServiceContract] + public interface IMessageProcessor + { + [OperationContract(IsOneWay = true, Action = "Process")] + void Process(string s); + } + + public class DemoService : IMessageProcessor + { + private static ManualResetEvent messageArrived; + + public DemoService() + { + } + + public static ManualResetEvent MessageArrived + { + get + { + if (messageArrived == null) + { + messageArrived = new ManualResetEvent(false); + } + + return messageArrived; + } + } + + public void Process(string s) + { + Console.WriteLine("DemoService got message: {0}", s); + MessageArrived.Set(); + } + } + + + public class ConfigDemo + { + static string demoQueueName = "wcf_config_demo"; + + static void BindingDemo(string bindingName, string queueName) + { + AmqpBinding binding = new AmqpBinding(bindingName); + + Uri inUri = new Uri("amqp:" + queueName); + EndpointAddress outEndpoint = new EndpointAddress("amqp:amq.direct?routingkey=" + queueName); + + ServiceHost serviceHost = new ServiceHost(typeof(DemoService)); + serviceHost.AddServiceEndpoint(typeof(IMessageProcessor), binding, inUri); + serviceHost.Open(); + + ChannelFactory cf = new ChannelFactory(binding, outEndpoint); + cf.Open(); + IMessageProcessor proxy = cf.CreateChannel(); + + // client and service are ready, so send a message + DemoService.MessageArrived.Reset(); + Console.WriteLine("sending a message via " + bindingName); + proxy.Process("a sample message via " + bindingName); + + // wait until it is safe to close down the service + DemoService.MessageArrived.WaitOne(); + cf.Close(); + serviceHost.Close(); + } + + + static void Main(string[] mainArgs) + { + BindingDemo("amqpSampleBinding", demoQueueName); + } + } +} diff --git a/qpid/wcf/samples/Channel/AppConfig/ConfigDemo.csproj b/qpid/wcf/samples/Channel/AppConfig/ConfigDemo.csproj new file mode 100644 index 0000000000..41ee6c4f0d --- /dev/null +++ b/qpid/wcf/samples/Channel/AppConfig/ConfigDemo.csproj @@ -0,0 +1,143 @@ + + + + + Debug + AnyCPU + 9.0.21022 + 2.0 + {46C5594A-3E8C-44AF-8F53-2A3004ED0311} + Exe + ConfigDemo + ConfigDemo + v3.5 + 512 + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + Apache.Qpid.Samples.Channel.Config.ConfigDemo + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + AnyCPU + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + true + bin\x86\Debug\ + DEBUG;TRACE + full + x86 + true + GlobalSuppressions.cs + prompt + + + bin\x86\Release\ + TRACE + true + pdbonly + x86 + true + GlobalSuppressions.cs + prompt + + + + False + ..\..\..\src\Apache\Qpid\Channel\bin\Release\Apache.Qpid.Channel.dll + + + + + + 3.0 + + + 3.0 + + + 3.5 + + + + + + + False + .NET Framework 2.0 %28x86%29 + false + + + False + .NET Framework 3.0 %28x86%29 + false + + + False + .NET Framework 3.5 + true + + + False + Windows Installer 3.1 + true + + + + + + + + + + + -- cgit v1.2.1