You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by sh...@apache.org on 2009/09/03 01:38:07 UTC

svn commit: r810734 [1/5] - in /qpid/trunk/qpid/wcf: ./ samples/ samples/Channel/ samples/Channel/WCFToWCFDirect/ samples/Channel/WCFToWCFDirect/Client/ samples/Channel/WCFToWCFDirect/Client/Properties/ samples/Channel/WCFToWCFDirect/Service/ samples/C...

Author: shuston
Date: Wed Sep  2 23:38:03 2009
New Revision: 810734

URL: http://svn.apache.org/viewvc?rev=810734&view=rev
Log:
Add WCF channel code: patches from QPID-2065, QPID-2066, QPID-2067

Added:
    qpid/trunk/qpid/wcf/
    qpid/trunk/qpid/wcf/ReadMe.txt   (with props)
    qpid/trunk/qpid/wcf/samples/
    qpid/trunk/qpid/wcf/samples/Channel/
    qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFDirect/
    qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFDirect/Client/
    qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFDirect/Client/Client.cs   (with props)
    qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFDirect/Client/Client.csproj
    qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFDirect/Client/Properties/
    qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFDirect/Client/Properties/AssemblyInfo.cs   (with props)
    qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFDirect/Service/
    qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFDirect/Service/Properties/
    qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFDirect/Service/Properties/AssemblyInfo.cs   (with props)
    qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFDirect/Service/Service.cs   (with props)
    qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFDirect/Service/Service.csproj
    qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/
    qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Another_Topic_Consumer/
    qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Another_Topic_Consumer/Another_Topic_Consumer.cs   (with props)
    qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Another_Topic_Consumer/Another_Topic_Consumer.csproj
    qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Another_Topic_Consumer/Properties/
    qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Another_Topic_Consumer/Properties/AssemblyInfo.cs   (with props)
    qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Topic_Consumer/
    qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Topic_Consumer/Properties/
    qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Topic_Consumer/Properties/AssemblyInfo.cs   (with props)
    qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Topic_Consumer/Topic_Consumer.cs   (with props)
    qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Topic_Consumer/Topic_Consumer.csproj
    qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Topic_Producer/
    qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Topic_Producer/Properties/
    qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Topic_Producer/Properties/AssemblyInfo.cs   (with props)
    qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Topic_Producer/Topic_Producer.cs   (with props)
    qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Topic_Producer/Topic_Producer.csproj
    qpid/trunk/qpid/wcf/src/
    qpid/trunk/qpid/wcf/src/Apache/
    qpid/trunk/qpid/wcf/src/Apache/Qpid/
    qpid/trunk/qpid/wcf/src/Apache/Qpid/AmqpTypes/
    qpid/trunk/qpid/wcf/src/Apache/Qpid/AmqpTypes/AmqpBoolean.cs   (with props)
    qpid/trunk/qpid/wcf/src/Apache/Qpid/AmqpTypes/AmqpInt.cs   (with props)
    qpid/trunk/qpid/wcf/src/Apache/Qpid/AmqpTypes/AmqpProperties.cs   (with props)
    qpid/trunk/qpid/wcf/src/Apache/Qpid/AmqpTypes/AmqpString.cs   (with props)
    qpid/trunk/qpid/wcf/src/Apache/Qpid/AmqpTypes/AmqpType.cs   (with props)
    qpid/trunk/qpid/wcf/src/Apache/Qpid/AmqpTypes/AmqpTypes.csproj
    qpid/trunk/qpid/wcf/src/Apache/Qpid/AmqpTypes/AmqpUbyte.cs   (with props)
    qpid/trunk/qpid/wcf/src/Apache/Qpid/AmqpTypes/CreateNetModule.bat   (with props)
    qpid/trunk/qpid/wcf/src/Apache/Qpid/AmqpTypes/Properties/
    qpid/trunk/qpid/wcf/src/Apache/Qpid/AmqpTypes/Properties/AssemblyInfo.cs   (with props)
    qpid/trunk/qpid/wcf/src/Apache/Qpid/AmqpTypes/PropertyName.cs   (with props)
    qpid/trunk/qpid/wcf/src/Apache/Qpid/Channel/
    qpid/trunk/qpid/wcf/src/Apache/Qpid/Channel/AmqpBinaryBinding.cs   (with props)
    qpid/trunk/qpid/wcf/src/Apache/Qpid/Channel/AmqpBinaryBindingCollectionElement.cs   (with props)
    qpid/trunk/qpid/wcf/src/Apache/Qpid/Channel/AmqpBinaryBindingConfigurationElement.cs   (with props)
    qpid/trunk/qpid/wcf/src/Apache/Qpid/Channel/AmqpBinding.cs   (with props)
    qpid/trunk/qpid/wcf/src/Apache/Qpid/Channel/AmqpBindingCollectionElement.cs   (with props)
    qpid/trunk/qpid/wcf/src/Apache/Qpid/Channel/AmqpBindingConfigurationElement.cs   (with props)
    qpid/trunk/qpid/wcf/src/Apache/Qpid/Channel/AmqpChannelFactory.cs   (with props)
    qpid/trunk/qpid/wcf/src/Apache/Qpid/Channel/AmqpChannelHelpers.cs   (with props)
    qpid/trunk/qpid/wcf/src/Apache/Qpid/Channel/AmqpChannelListener.cs   (with props)
    qpid/trunk/qpid/wcf/src/Apache/Qpid/Channel/AmqpTransportBindingElement.cs   (with props)
    qpid/trunk/qpid/wcf/src/Apache/Qpid/Channel/AmqpTransportChannel.cs   (with props)
    qpid/trunk/qpid/wcf/src/Apache/Qpid/Channel/Channel.csproj
    qpid/trunk/qpid/wcf/src/Apache/Qpid/Channel/ConnectionManager.cs   (with props)
    qpid/trunk/qpid/wcf/src/Apache/Qpid/Channel/Properties/
    qpid/trunk/qpid/wcf/src/Apache/Qpid/Channel/Properties/AssemblyInfo.cs   (with props)
    qpid/trunk/qpid/wcf/src/Apache/Qpid/Channel/RawMessage.cs   (with props)
    qpid/trunk/qpid/wcf/src/Apache/Qpid/Channel/RawMessageEncoder.cs   (with props)
    qpid/trunk/qpid/wcf/src/Apache/Qpid/Channel/RawMessageEncoderFactory.cs   (with props)
    qpid/trunk/qpid/wcf/src/Apache/Qpid/Channel/RawMessageEncodingBindingElement.cs   (with props)
    qpid/trunk/qpid/wcf/src/Apache/Qpid/Channel/RawXmlReader.cs   (with props)
    qpid/trunk/qpid/wcf/src/Apache/Qpid/Channel/RawXmlWriter.cs   (with props)
    qpid/trunk/qpid/wcf/src/Apache/Qpid/Interop/
    qpid/trunk/qpid/wcf/src/Apache/Qpid/Interop/AmqpConnection.cpp   (with props)
    qpid/trunk/qpid/wcf/src/Apache/Qpid/Interop/AmqpConnection.h   (with props)
    qpid/trunk/qpid/wcf/src/Apache/Qpid/Interop/AmqpMessage.cpp   (with props)
    qpid/trunk/qpid/wcf/src/Apache/Qpid/Interop/AmqpMessage.h   (with props)
    qpid/trunk/qpid/wcf/src/Apache/Qpid/Interop/AmqpSession.cpp   (with props)
    qpid/trunk/qpid/wcf/src/Apache/Qpid/Interop/AmqpSession.h   (with props)
    qpid/trunk/qpid/wcf/src/Apache/Qpid/Interop/AssemblyInfo.cpp   (with props)
    qpid/trunk/qpid/wcf/src/Apache/Qpid/Interop/CompletionWaiter.cpp   (with props)
    qpid/trunk/qpid/wcf/src/Apache/Qpid/Interop/CompletionWaiter.h   (with props)
    qpid/trunk/qpid/wcf/src/Apache/Qpid/Interop/InputLink.cpp   (with props)
    qpid/trunk/qpid/wcf/src/Apache/Qpid/Interop/InputLink.h   (with props)
    qpid/trunk/qpid/wcf/src/Apache/Qpid/Interop/MessageBodyStream.cpp   (with props)
    qpid/trunk/qpid/wcf/src/Apache/Qpid/Interop/MessageBodyStream.h   (with props)
    qpid/trunk/qpid/wcf/src/Apache/Qpid/Interop/MessageWaiter.cpp   (with props)
    qpid/trunk/qpid/wcf/src/Apache/Qpid/Interop/MessageWaiter.h   (with props)
    qpid/trunk/qpid/wcf/src/Apache/Qpid/Interop/OutputLink.cpp   (with props)
    qpid/trunk/qpid/wcf/src/Apache/Qpid/Interop/OutputLink.h   (with props)
    qpid/trunk/qpid/wcf/src/Apache/Qpid/Interop/QpidException.h   (with props)
    qpid/trunk/qpid/wcf/src/Apache/Qpid/Interop/QpidMarshal.h   (with props)
    qpid/trunk/qpid/wcf/test/
    qpid/trunk/qpid/wcf/test/Apache/
    qpid/trunk/qpid/wcf/test/Apache/Qpid/
    qpid/trunk/qpid/wcf/test/Apache/Qpid/Test/
    qpid/trunk/qpid/wcf/test/Apache/Qpid/Test/Channel/
    qpid/trunk/qpid/wcf/test/Apache/Qpid/Test/Channel/Functional/
    qpid/trunk/qpid/wcf/test/Apache/Qpid/Test/Channel/Functional/AsyncTest.cs   (with props)
    qpid/trunk/qpid/wcf/test/Apache/Qpid/Test/Channel/Functional/CustomAmqpBindingTest.cs   (with props)
    qpid/trunk/qpid/wcf/test/Apache/Qpid/Test/Channel/Functional/FunctionalTests.csproj
    qpid/trunk/qpid/wcf/test/Apache/Qpid/Test/Channel/Functional/IGenericObjectService.cs   (with props)
    qpid/trunk/qpid/wcf/test/Apache/Qpid/Test/Channel/Functional/IInteropService.cs   (with props)
    qpid/trunk/qpid/wcf/test/Apache/Qpid/Test/Channel/Functional/IQueuedDatagramService1.cs   (with props)
    qpid/trunk/qpid/wcf/test/Apache/Qpid/Test/Channel/Functional/IQueuedDatagramService2.cs   (with props)
    qpid/trunk/qpid/wcf/test/Apache/Qpid/Test/Channel/Functional/IQueuedDatagramService3.cs   (with props)
    qpid/trunk/qpid/wcf/test/Apache/Qpid/Test/Channel/Functional/MessageBodyTest.cs   (with props)
    qpid/trunk/qpid/wcf/test/Apache/Qpid/Test/Channel/Functional/MessageClient.cs   (with props)
    qpid/trunk/qpid/wcf/test/Apache/Qpid/Test/Channel/Functional/MessageProperties.txt   (with props)
    qpid/trunk/qpid/wcf/test/Apache/Qpid/Test/Channel/Functional/MessagePropertiesTest.cs   (with props)
    qpid/trunk/qpid/wcf/test/Apache/Qpid/Test/Channel/Functional/MessageService.cs   (with props)
    qpid/trunk/qpid/wcf/test/Apache/Qpid/Test/Channel/Functional/MultipleEndpointsSameQueueTest.cs   (with props)
    qpid/trunk/qpid/wcf/test/Apache/Qpid/Test/Channel/Functional/Properties/
    qpid/trunk/qpid/wcf/test/Apache/Qpid/Test/Channel/Functional/Properties/AssemblyInfo.cs   (with props)
    qpid/trunk/qpid/wcf/test/Apache/Qpid/Test/Channel/Functional/RunTests.bat   (with props)
    qpid/trunk/qpid/wcf/test/Apache/Qpid/Test/Channel/Functional/Util.cs   (with props)
    qpid/trunk/qpid/wcf/tools/
    qpid/trunk/qpid/wcf/tools/QCreate/
    qpid/trunk/qpid/wcf/tools/QCreate/QCreate.cpp   (with props)
    qpid/trunk/qpid/wcf/tools/QCreate/ReadMe.txt   (with props)
    qpid/trunk/qpid/wcf/tools/QCreate/stdafx.cpp   (with props)
    qpid/trunk/qpid/wcf/tools/QCreate/stdafx.h   (with props)
    qpid/trunk/qpid/wcf/tools/QCreate/targetver.h   (with props)

Added: qpid/trunk/qpid/wcf/ReadMe.txt
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/wcf/ReadMe.txt?rev=810734&view=auto
==============================================================================
--- qpid/trunk/qpid/wcf/ReadMe.txt (added)
+++ qpid/trunk/qpid/wcf/ReadMe.txt Wed Sep  2 23:38:03 2009
@@ -0,0 +1,162 @@
+1. WCF supported features
+=========================
+
+1.  WCF service model programming using one way contracts
+2.  WCF channel model programming using IInputChannel and IOutputChannel based factories
+3.  Programmatic access to AMQP message properties on WCF messages
+4.  AMQP version 0-10 (as provided by the Qpid C++ native client library)
+5.  Shared connections for multiple channels based on binding parameters
+6.  WCF to WCF applications (using SOAP message encoders)
+7.  WCF to non-WCF applications (using raw content encoders)
+8.  Rudimentary AMQP type support for headers (Int and String)
+9.  Channel functional tests using NUnit
+10. Programming samples
+
+
+2. Planned features (not yet available)
+=======================================
+
+1.  Full AMQP type support, including maps and arrays
+2.  System.Transactions integration (local and distributed with dynamic escalation)
+3.  Prefetch window for inbound messages
+4.  Shared sessions
+5.  Connection failover with AMQP broker clusters
+6.  Temporary queues
+7.  Broker management
+8.  System logging and tracing
+9.  CMake build system support
+10. Transport and message based security
+
+
+3. Prerequisites
+================
+
+1. Qpid C++ client and common libraries for Windows including BOOST
+Ensure the location of the Boost library (e.g. %BOOST_ROOT%\lib) is
+included in your PATH environment variable.
+
+2. .NET Framework 3.5 SP1
+Install the .NET Framework from http://www.microsoft.com/net/
+
+3. Windows SDK
+Install the Windows SDK for the version of Windows that you are using
+from http://msdn.microsoft.com/en-us/windows/bb980924.aspx
+
+4. NUnit
+Install NUnit from http://www.nunit.org
+
+NOTE: In the following instructions %QPID_ROOT% refers to the root of
+qpid source code location e.g. C:\trunk\qpid
+
+5. Build Qpid cpp
+Run CMake and choose "%QPID_ROOT%\cpp\build" as the location for "Where to
+build the binaries".  Build at least the "qpidd", "qpidclient" and
+"qpidcommon" projects.
+
+
+4. Building the solution file
+=============================
+
+Option 1: Using MSBuild
+
+1. %systemroot%\Microsoft.NET\Framework\v3.5\MSBuild.exe %QPID_ROOT%\wcf\QpidWcf.sln
+2. %systemroot%\Microsoft.NET\Framework\v3.5\MSBuild.exe %QPID_ROOT%\wcf\tools\QCreate\QCreate.sln
+
+
+Option 2: Using Visual Studio 2008 (the Professional Edition, Team
+System Development Edition, or Team System Team Suite SKU)
+
+1. Open the solution file QpidWcf.sln in Visual Studio.
+2. Make sure that the reference to 'nunit.framework.dll' by the 'FunctionalTests'
+   project is appropriately resolved.
+3. Select the Debug configuration.
+3. Right-click the solution file in the Solution Explorer and select 'Build Solution'.
+4. Follow the above steps to build %QPID_ROOT%\wcf\tools\QCreate.sln as well.
+
+
+5. Executing tests
+==================
+
+1. Make sure that the batch file
+   %QPID_ROOT%\wcf\test\Apache\Qpid\Test\Channel\Functional\RunTests.bat has the correct
+   values for the nunit_exe, qpid_dll_location and configuration_name variables as per
+   your installation.
+2. Start the qpid broker from the qpid build folder e.g. %QPID_ROOT%\cpp\build\src\Debug.
+3. Execute RunTests.bat from its location e.g. %QPID_ROOT%\wcf\test\Apache\Qpid\Test\Channel\Functional.
+
+
+6. Building and executing samples
+=================================
+
+WCFToWCFDirect
+
+1. Copy the dlls Apache.Qpid.Channel.dll and Apache.Qpid.Interop.dll that you built
+   in step 2 to the %QPID_ROOT%\wcf\samples\Channel\WCFToWCFDirect folder.
+
+2. Build the solution WCFToWCFDirect.sln.
+
+3. Copy qpidclient.dll and qpidcommon.dll from the Qpid build folder
+   e.g. %QPID_ROOT%\cpp\build\src\Debug to the same location as the exe files
+   e.g. bin\Debug of each of the projects. These dlls are needed at runtime.
+
+4. Copy qpidclient.dll and qpidcommon.dll to %QPID_ROOT%\wcf\tools\QCreate\Debug folder.
+
+5. Start the qpid broker from the qpid build folder e.g. %QPID_ROOT%\cpp\build\src\Debug.
+
+6. Create queue required using the QCreate tool located at
+   %QPID_ROOT%\wcf\tools\QCreate\Debug. The syntax is QCreate %QPID_ROOT%. For
+   this sample you should do 
+
+      QCreate amq.direct routing_key message_queue
+
+7. Start Service.exe from
+      %QPID_ROOT%\wcf\samples\Channel\WCFToWCFDirect\Service\bin\Debug.
+
+8. Start Client.exe from
+      %QPID_ROOT%\wcf\samples\Channel\WCFToWCFDirect\Client\bin\Debug.
+
+
+WCFToWCFPubSub
+
+1. Copy the dlls Apache.Qpid.Channel.dll and Apache.Qpid.Interop.dll that you built
+   in step 2 to the %QPID_ROOT%\wcf\samples\Channel\WCFToWCFPubSub folder.
+
+2. Build the solution WCFToWCFPubSub.sln.
+
+3. Copy qpidclient.dll and qpidcommon.dll from the Qpid build folder
+   e.g. %QPID_ROOT%\cpp\build\src\Debug to the same location as the exe files
+   e.g. bin\Debug of each of the projects. These dlls are needed at runtime.
+
+4. Copy qpidclient.dll and qpidcommon.dll to %QPID_ROOT%\wcf\tools\QCreate\Debug folder.
+
+5. Start the qpid broker from the qpid build folder e.g. %QPID_ROOT%\cpp\build\src\Debug.
+
+6. Create queues required using the QCreate tool located at
+   \wcf\tools\QCreate\Debug. The syntax is QCreate %QPID_ROOT%. For this sample you
+   should do
+
+	QCreate amq.topic usa.# usa
+	QCreate amq.topic #.news news
+
+7. Start Topic_Consumer.exe from
+   %QPID_ROOT%\wcf\samples\Channel\WCFToWCFPubSub\Topic_Consumer\bin\Debug.
+
+8. Start Another_Topic_Consumer.exe from
+   %QPID_ROOT%\wcf\samples\Channel\WCFToWCFPubSub\Another_Topic_Consumer\bin\Debug.
+
+9. Start Topic_Producer.exe from
+   %QPID_ROOT%\wcf\samples\Channel\WCFToWCFPubSub\Topic_Producer\bin\Debug.
+
+
+7. Known Issues
+===============
+
+1. The Release configuration of the build (specified using the
+   /p:Configuration=Release switch with MSBuild) fails.
+
+2. The AmqpChannelListener is limited to single threaded use and the async methods
+   throw NotImplementedException.
+
+3. The AmqpChannelListener can hang on close for 60 seconds.
+
+

Propchange: qpid/trunk/qpid/wcf/ReadMe.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: qpid/trunk/qpid/wcf/ReadMe.txt
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFDirect/Client/Client.cs
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFDirect/Client/Client.cs?rev=810734&view=auto
==============================================================================
--- qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFDirect/Client/Client.cs (added)
+++ qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFDirect/Client/Client.cs Wed Sep  2 23:38:03 2009
@@ -0,0 +1,68 @@
+/*
+* 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.WCFToWCFDirect
+{
+    using System;
+    using System.ServiceModel;
+    using System.ServiceModel.Channels;
+    using Apache.Qpid.Channel;
+
+    class Client
+    {
+        static void Main(string[] args)
+        {
+            try
+            {
+                // Create binding for the service endpoint.
+                CustomBinding amqpBinding = new CustomBinding();
+                amqpBinding.Elements.Add(new BinaryMessageEncodingBindingElement());
+                amqpBinding.Elements.Add(new AmqpTransportBindingElement());
+
+                // Create endpoint address.
+                Uri amqpClientUri = new Uri("amqp:amq.direct?routingkey=routing_key");
+                EndpointAddress endpointAddress = new EndpointAddress(amqpClientUri);
+
+                // Create a client with given client endpoint configuration.                                
+                ChannelFactory<IHelloService> channelFactory = new ChannelFactory<IHelloService>(amqpBinding, endpointAddress);
+                IHelloService clientProxy = channelFactory.CreateChannel();
+
+                Console.WriteLine();
+
+                string name = "name";
+                for (int i = 0; i < 5; i++)
+                {
+                    Console.WriteLine("Sending message: " + name + (i + 1));
+                    clientProxy.SayHello(name + (i + 1));
+                }
+
+                Console.WriteLine();
+                Console.WriteLine("Press <ENTER> to terminate client.");
+                Console.ReadLine();
+
+                channelFactory.Close();
+            }
+            catch (Exception e)
+            {
+                Console.WriteLine("Exception: {0}", e);
+            }
+        }
+    }
+}

Propchange: qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFDirect/Client/Client.cs
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFDirect/Client/Client.cs
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFDirect/Client/Client.csproj
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFDirect/Client/Client.csproj?rev=810734&view=auto
==============================================================================
--- qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFDirect/Client/Client.csproj (added)
+++ qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFDirect/Client/Client.csproj Wed Sep  2 23:38:03 2009
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+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 ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>9.0.21022</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{0CCD5711-2072-47B8-B902-07EC12C04159}</ProjectGuid>
+    <OutputType>Exe</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>Client</RootNamespace>
+    <AssemblyName>Client</AssemblyName>
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+  </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="Apache.Qpid.Channel, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\Apache.Qpid.Channel.dll</HintPath>
+    </Reference>
+    <Reference Include="System" />
+    <Reference Include="System.Core">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.ServiceModel">
+      <RequiredTargetFramework>3.0</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Xml.Linq">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Data.DataSetExtensions">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Data" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Client.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\Service\Service.csproj">
+      <Project>{D0A46136-B4E3-4C50-AB6D-FB2BC6683D6E}</Project>
+      <Name>Service</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\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

Added: qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFDirect/Client/Properties/AssemblyInfo.cs
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFDirect/Client/Properties/AssemblyInfo.cs?rev=810734&view=auto
==============================================================================
--- qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFDirect/Client/Properties/AssemblyInfo.cs (added)
+++ qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFDirect/Client/Properties/AssemblyInfo.cs Wed Sep  2 23:38:03 2009
@@ -0,0 +1,55 @@
+/*
+* 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("Client")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("MSIT")]
+[assembly: AssemblyProduct("Client")]
+[assembly: AssemblyCopyright("Copyright © MSIT 2009")]
+[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("c3743ce0-3054-4188-8cd7-3a22734ee313")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers 
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]

Propchange: qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFDirect/Client/Properties/AssemblyInfo.cs
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFDirect/Client/Properties/AssemblyInfo.cs
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFDirect/Service/Properties/AssemblyInfo.cs
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFDirect/Service/Properties/AssemblyInfo.cs?rev=810734&view=auto
==============================================================================
--- qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFDirect/Service/Properties/AssemblyInfo.cs (added)
+++ qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFDirect/Service/Properties/AssemblyInfo.cs Wed Sep  2 23:38:03 2009
@@ -0,0 +1,55 @@
+/*
+* 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("Service")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("MSIT")]
+[assembly: AssemblyProduct("Service")]
+[assembly: AssemblyCopyright("Copyright © MSIT 2009")]
+[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("5447546e-8547-4b0c-981a-1757ab8d9ec5")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers 
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]

Propchange: qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFDirect/Service/Properties/AssemblyInfo.cs
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFDirect/Service/Properties/AssemblyInfo.cs
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFDirect/Service/Service.cs
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFDirect/Service/Service.cs?rev=810734&view=auto
==============================================================================
--- qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFDirect/Service/Service.cs (added)
+++ qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFDirect/Service/Service.cs Wed Sep  2 23:38:03 2009
@@ -0,0 +1,83 @@
+/*
+* 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.WCFToWCFDirect
+{
+    using System;
+    using System.ServiceModel;
+    using System.ServiceModel.Description;
+    using Apache.Qpid.Channel;
+
+    // Define a service contract. 
+    [ServiceContract]
+    public interface IHelloService
+    {
+        [OperationContract(IsOneWay = true, Action="*")]
+        void SayHello(string name);
+    }
+
+    // Service class which implements the service contract.
+    [ServiceBehavior(AddressFilterMode = AddressFilterMode.Any)]
+    public class HelloService : IHelloService
+    {
+        [OperationBehavior]
+        public void SayHello(string name)
+        {
+            Console.WriteLine("Hello " + name);
+        }
+    }
+
+    class Service
+    {
+        static void Main(string[] args)
+        {
+            // Create binding for the service endpoint.
+            AmqpBinding amqpBinding = new AmqpBinding();
+
+            // Create ServiceHost.
+            ServiceHost serviceHost = new ServiceHost(typeof(HelloService), new Uri[] { new Uri("http://localhost:8080/HelloService") });
+
+            // Add behavior for our MEX endpoint.
+            ServiceMetadataBehavior mexBehavior = new ServiceMetadataBehavior();
+            mexBehavior.HttpGetEnabled = true;
+            serviceHost.Description.Behaviors.Add(mexBehavior);
+
+            // Add MEX endpoint.
+            serviceHost.AddServiceEndpoint(typeof(IMetadataExchange), new BasicHttpBinding(), "MEX");
+
+            // Add AMQP endpoint.
+            Uri amqpUri = new Uri("amqp:message_queue");
+            serviceHost.AddServiceEndpoint(typeof(IHelloService), amqpBinding, amqpUri.ToString());
+
+            serviceHost.Open();
+
+            Console.WriteLine();
+            Console.WriteLine("The service is ready.");
+            Console.WriteLine("Press <ENTER> to terminate service.");
+            Console.WriteLine();
+            Console.ReadLine();
+
+            if (serviceHost.State != CommunicationState.Faulted)
+            {
+                serviceHost.Close();
+            }
+        }
+    }
+}

Propchange: qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFDirect/Service/Service.cs
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFDirect/Service/Service.cs
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFDirect/Service/Service.csproj
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFDirect/Service/Service.csproj?rev=810734&view=auto
==============================================================================
--- qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFDirect/Service/Service.csproj (added)
+++ qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFDirect/Service/Service.csproj Wed Sep  2 23:38:03 2009
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+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 ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>9.0.21022</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{D0A46136-B4E3-4C50-AB6D-FB2BC6683D6E}</ProjectGuid>
+    <OutputType>Exe</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>Service</RootNamespace>
+    <AssemblyName>Service</AssemblyName>
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+  </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="Apache.Qpid.Channel, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\Apache.Qpid.Channel.dll</HintPath>
+    </Reference>
+    <Reference Include="System" />
+    <Reference Include="System.Core">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Messaging" />
+    <Reference Include="System.ServiceModel">
+      <RequiredTargetFramework>3.0</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Xml.Linq">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Data.DataSetExtensions">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Data" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Service.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\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

Added: qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Another_Topic_Consumer/Another_Topic_Consumer.cs
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Another_Topic_Consumer/Another_Topic_Consumer.cs?rev=810734&view=auto
==============================================================================
--- qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Another_Topic_Consumer/Another_Topic_Consumer.cs (added)
+++ qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Another_Topic_Consumer/Another_Topic_Consumer.cs Wed Sep  2 23:38:03 2009
@@ -0,0 +1,67 @@
+/*
+* 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.WCFToWCFPubSub
+{
+    using System;
+    using System.ServiceModel;
+    using System.ServiceModel.Channels;
+    using System.ServiceModel.Description;
+    using Apache.Qpid.Channel;    
+
+    class Another_Topic_Consumer
+    {
+        static void Main(string[] args)
+        {
+            // Create binding for the service endpoint.
+            CustomBinding amqpBinding = new CustomBinding();
+            amqpBinding.Elements.Add(new BinaryMessageEncodingBindingElement());
+            amqpBinding.Elements.Add(new AmqpTransportBindingElement());
+
+            // Create ServiceHost.
+            ServiceHost serviceHost = new ServiceHost(typeof(HelloService), new Uri[] { new Uri("http://localhost:8080/HelloService2") });
+
+            // Add behavior for our MEX endpoint.
+            ServiceMetadataBehavior mexBehavior = new ServiceMetadataBehavior();
+            mexBehavior.HttpGetEnabled = true;
+            serviceHost.Description.Behaviors.Add(mexBehavior);
+
+            // Add MEX endpoint.
+            serviceHost.AddServiceEndpoint(typeof(IMetadataExchange), new BasicHttpBinding(), "MEX");
+
+            // Add AMQP endpoint.
+            Uri amqpUri = new Uri("amqp:news");
+            serviceHost.AddServiceEndpoint(typeof(IHelloService), amqpBinding, amqpUri.ToString());
+
+            serviceHost.Open();
+
+            Console.WriteLine();
+            Console.WriteLine("The consumer is now listening on the queue \"news\".");
+            Console.WriteLine("Press <ENTER> to terminate service.");
+            Console.WriteLine();
+            Console.ReadLine();
+
+            if (serviceHost.State != CommunicationState.Faulted)
+            {
+                serviceHost.Close();
+            }            
+        }
+    }
+}

Propchange: qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Another_Topic_Consumer/Another_Topic_Consumer.cs
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Another_Topic_Consumer/Another_Topic_Consumer.cs
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Another_Topic_Consumer/Another_Topic_Consumer.csproj
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Another_Topic_Consumer/Another_Topic_Consumer.csproj?rev=810734&view=auto
==============================================================================
--- qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Another_Topic_Consumer/Another_Topic_Consumer.csproj (added)
+++ qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Another_Topic_Consumer/Another_Topic_Consumer.csproj Wed Sep  2 23:38:03 2009
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+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 ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>9.0.21022</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{6AC32E9D-EFB2-4DEF-81D7-F70A0D7A606F}</ProjectGuid>
+    <OutputType>Exe</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>Another_Topic_Consumer</RootNamespace>
+    <AssemblyName>Another_Topic_Consumer</AssemblyName>
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+  </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="Apache.Qpid.Channel, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\Apache.Qpid.Channel.dll</HintPath>
+    </Reference>
+    <Reference Include="System" />
+    <Reference Include="System.Core">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.ServiceModel">
+      <RequiredTargetFramework>3.0</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Xml.Linq">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Data.DataSetExtensions">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Data" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Another_Topic_Consumer.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\Topic_Consumer\Topic_Consumer.csproj">
+      <Project>{248A3A0B-FDC4-4E70-8428-BE0AF5AB021B}</Project>
+      <Name>Topic_Consumer</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\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

Added: qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Another_Topic_Consumer/Properties/AssemblyInfo.cs
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Another_Topic_Consumer/Properties/AssemblyInfo.cs?rev=810734&view=auto
==============================================================================
--- qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Another_Topic_Consumer/Properties/AssemblyInfo.cs (added)
+++ qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Another_Topic_Consumer/Properties/AssemblyInfo.cs Wed Sep  2 23:38:03 2009
@@ -0,0 +1,55 @@
+/*
+* 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("Another_Topic_Consumer")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("MSIT")]
+[assembly: AssemblyProduct("Another_Topic_Consumer")]
+[assembly: AssemblyCopyright("Copyright © MSIT 2009")]
+[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("ba584c88-26a8-4910-a9a1-b4632b9adf01")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers 
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]

Propchange: qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Another_Topic_Consumer/Properties/AssemblyInfo.cs
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Another_Topic_Consumer/Properties/AssemblyInfo.cs
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Topic_Consumer/Properties/AssemblyInfo.cs
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Topic_Consumer/Properties/AssemblyInfo.cs?rev=810734&view=auto
==============================================================================
--- qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Topic_Consumer/Properties/AssemblyInfo.cs (added)
+++ qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Topic_Consumer/Properties/AssemblyInfo.cs Wed Sep  2 23:38:03 2009
@@ -0,0 +1,55 @@
+/*
+* 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("Topic_Consumer")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("MSIT")]
+[assembly: AssemblyProduct("Topic_Consumer")]
+[assembly: AssemblyCopyright("Copyright © MSIT 2009")]
+[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("3facd6d1-f604-4ac9-ace3-7b7acff471eb")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers 
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]

Propchange: qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Topic_Consumer/Properties/AssemblyInfo.cs
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Topic_Consumer/Properties/AssemblyInfo.cs
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Topic_Consumer/Topic_Consumer.cs
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Topic_Consumer/Topic_Consumer.cs?rev=810734&view=auto
==============================================================================
--- qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Topic_Consumer/Topic_Consumer.cs (added)
+++ qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Topic_Consumer/Topic_Consumer.cs Wed Sep  2 23:38:03 2009
@@ -0,0 +1,85 @@
+/*
+* 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.WCFToWCFPubSub
+{
+    using System;
+    using System.ServiceModel;
+    using System.ServiceModel.Channels;
+    using System.ServiceModel.Description;
+    using Apache.Qpid.Channel;
+
+    // Define a service contract. 
+    [ServiceContract]
+    public interface IHelloService
+    {
+        [OperationContract(IsOneWay = true)]
+        void SayHello(string name);
+    }
+
+    // Service class which implements the service contract.
+    public class HelloService : IHelloService
+    {
+        [OperationBehavior]
+        public void SayHello(string name)
+        {
+            Console.WriteLine("Hello " + name);
+        }
+    }
+
+    class Consumer
+    {
+        static void Main(string[] args)
+        {            
+            // Create binding for the service endpoint.
+            CustomBinding amqpBinding = new CustomBinding();
+            amqpBinding.Elements.Add(new BinaryMessageEncodingBindingElement());
+            amqpBinding.Elements.Add(new AmqpTransportBindingElement());
+
+            // Create ServiceHost.
+            ServiceHost serviceHost = new ServiceHost(typeof(HelloService), new Uri[] { new Uri("http://localhost:8080/HelloService1") });
+
+            // Add behavior for our MEX endpoint.
+            ServiceMetadataBehavior mexBehavior = new ServiceMetadataBehavior();
+            mexBehavior.HttpGetEnabled = true;
+            serviceHost.Description.Behaviors.Add(mexBehavior);
+
+            // Add MEX endpoint.
+            serviceHost.AddServiceEndpoint(typeof(IMetadataExchange), new BasicHttpBinding(), "MEX");
+
+            // Add AMQP endpoint.
+            Uri amqpUri = new Uri("amqp:usa");
+            serviceHost.AddServiceEndpoint(typeof(IHelloService), amqpBinding, amqpUri.ToString());
+
+            serviceHost.Open();
+
+            Console.WriteLine();
+            Console.WriteLine("The consumer is now listening on the queue \"usa\".");
+            Console.WriteLine("Press <ENTER> to terminate service.");
+            Console.WriteLine();
+            Console.ReadLine();
+
+            if (serviceHost.State != CommunicationState.Faulted)
+            {
+                serviceHost.Close();
+            }
+        }
+    }
+}

Propchange: qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Topic_Consumer/Topic_Consumer.cs
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Topic_Consumer/Topic_Consumer.cs
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Topic_Consumer/Topic_Consumer.csproj
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Topic_Consumer/Topic_Consumer.csproj?rev=810734&view=auto
==============================================================================
--- qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Topic_Consumer/Topic_Consumer.csproj (added)
+++ qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Topic_Consumer/Topic_Consumer.csproj Wed Sep  2 23:38:03 2009
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+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 ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>9.0.21022</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{248A3A0B-FDC4-4E70-8428-BE0AF5AB021B}</ProjectGuid>
+    <OutputType>Exe</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>Topic_Consumer</RootNamespace>
+    <AssemblyName>Topic_Consumer</AssemblyName>
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+  </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="Apache.Qpid.Channel, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\Apache.Qpid.Channel.dll</HintPath>
+    </Reference>
+    <Reference Include="System" />
+    <Reference Include="System.Core">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.ServiceModel">
+      <RequiredTargetFramework>3.0</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Xml.Linq">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Data.DataSetExtensions">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Data" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Topic_Consumer.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\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

Added: qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Topic_Producer/Properties/AssemblyInfo.cs
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Topic_Producer/Properties/AssemblyInfo.cs?rev=810734&view=auto
==============================================================================
--- qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Topic_Producer/Properties/AssemblyInfo.cs (added)
+++ qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Topic_Producer/Properties/AssemblyInfo.cs Wed Sep  2 23:38:03 2009
@@ -0,0 +1,55 @@
+/*
+* 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("Topic_Producer")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("MSIT")]
+[assembly: AssemblyProduct("Topic_Producer")]
+[assembly: AssemblyCopyright("Copyright © MSIT 2009")]
+[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("a70e852d-a510-4e00-af72-68bb8547696f")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers 
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]

Propchange: qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Topic_Producer/Properties/AssemblyInfo.cs
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Topic_Producer/Properties/AssemblyInfo.cs
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Topic_Producer/Topic_Producer.cs
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Topic_Producer/Topic_Producer.cs?rev=810734&view=auto
==============================================================================
--- qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Topic_Producer/Topic_Producer.cs (added)
+++ qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Topic_Producer/Topic_Producer.cs Wed Sep  2 23:38:03 2009
@@ -0,0 +1,68 @@
+/*
+* 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.WCFToWCFPubSub
+{
+    using System;
+    using System.ServiceModel;
+    using System.ServiceModel.Channels;
+    using Apache.Qpid.Channel;    
+
+    class Topic_Producer
+    {
+        static void Main(string[] args)
+        {
+            try
+            {
+                // Create binding for the service endpoint.
+                CustomBinding amqpBinding = new CustomBinding();
+                amqpBinding.Elements.Add(new BinaryMessageEncodingBindingElement());
+                amqpBinding.Elements.Add(new AmqpTransportBindingElement());
+
+                // Create endpoint address.
+                Uri amqpClientUri = new Uri("amqp:amq.topic?routingkey=usa.news");                
+                EndpointAddress endpointAddress = new EndpointAddress(amqpClientUri);
+
+                // Create a client with given client endpoint configuration.                                
+                ChannelFactory<IHelloService> channelFactory = new ChannelFactory<IHelloService>(amqpBinding, endpointAddress);
+                IHelloService clientProxy = channelFactory.CreateChannel();
+
+                Console.WriteLine();
+
+                string name = "name";
+                for (int i = 0; i < 5; i++)
+                {                    
+                    Console.WriteLine("Sending message: " + name + (i + 1));
+                    clientProxy.SayHello(name + (i+1));
+                }
+
+                Console.WriteLine();
+                Console.WriteLine("Press <ENTER> to terminate client.");
+                Console.ReadLine();
+
+                channelFactory.Close();
+            }
+            catch (Exception e)
+            {
+                Console.WriteLine("Exception: {0}", e);
+            }
+        }
+    }
+}

Propchange: qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Topic_Producer/Topic_Producer.cs
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Topic_Producer/Topic_Producer.cs
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Topic_Producer/Topic_Producer.csproj
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Topic_Producer/Topic_Producer.csproj?rev=810734&view=auto
==============================================================================
--- qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Topic_Producer/Topic_Producer.csproj (added)
+++ qpid/trunk/qpid/wcf/samples/Channel/WCFToWCFPubSub/Topic_Producer/Topic_Producer.csproj Wed Sep  2 23:38:03 2009
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+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 ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>9.0.21022</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{67B413EF-3B9C-4988-87DE-0386C209D368}</ProjectGuid>
+    <OutputType>Exe</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>Topic_Producer</RootNamespace>
+    <AssemblyName>Topic_Producer</AssemblyName>
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+  </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="Apache.Qpid.Channel, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\Apache.Qpid.Channel.dll</HintPath>
+    </Reference>
+    <Reference Include="System" />
+    <Reference Include="System.Core">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.ServiceModel">
+      <RequiredTargetFramework>3.0</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Xml.Linq">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Data.DataSetExtensions">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Data" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Topic_Producer.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\Topic_Consumer\Topic_Consumer.csproj">
+      <Project>{248A3A0B-FDC4-4E70-8428-BE0AF5AB021B}</Project>
+      <Name>Topic_Consumer</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\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

Added: qpid/trunk/qpid/wcf/src/Apache/Qpid/AmqpTypes/AmqpBoolean.cs
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/wcf/src/Apache/Qpid/AmqpTypes/AmqpBoolean.cs?rev=810734&view=auto
==============================================================================
--- qpid/trunk/qpid/wcf/src/Apache/Qpid/AmqpTypes/AmqpBoolean.cs (added)
+++ qpid/trunk/qpid/wcf/src/Apache/Qpid/AmqpTypes/AmqpBoolean.cs Wed Sep  2 23:38:03 2009
@@ -0,0 +1,57 @@
+/*
+* 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.AmqpTypes
+{
+    using System;
+    using System.IO;
+    using System.Collections.Generic;
+    using System.Text;
+
+    public class AmqpBoolean : AmqpType
+    {
+        bool value;
+
+        public AmqpBoolean(bool i)
+        {
+            this.value = i;
+        }
+
+        public override void Encode(byte[] bufer, int offset, int count)
+        {
+            throw new NotImplementedException();
+        }
+
+        public override int EncodedSize
+        {
+            get { throw new NotImplementedException(); }
+        }
+
+        public override AmqpType Clone()
+        {
+            return new AmqpBoolean(this.value);
+        }
+
+        public bool Value
+        {
+            get { return this.value; }
+            set { this.value = value; }
+        }
+    }
+}

Propchange: qpid/trunk/qpid/wcf/src/Apache/Qpid/AmqpTypes/AmqpBoolean.cs
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: qpid/trunk/qpid/wcf/src/Apache/Qpid/AmqpTypes/AmqpBoolean.cs
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: qpid/trunk/qpid/wcf/src/Apache/Qpid/AmqpTypes/AmqpInt.cs
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/wcf/src/Apache/Qpid/AmqpTypes/AmqpInt.cs?rev=810734&view=auto
==============================================================================
--- qpid/trunk/qpid/wcf/src/Apache/Qpid/AmqpTypes/AmqpInt.cs (added)
+++ qpid/trunk/qpid/wcf/src/Apache/Qpid/AmqpTypes/AmqpInt.cs Wed Sep  2 23:38:03 2009
@@ -0,0 +1,57 @@
+/*
+* 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.AmqpTypes
+{
+    using System;
+    using System.IO;
+    using System.Collections.Generic;
+    using System.Text;
+
+    public class AmqpInt : AmqpType
+    {
+        int value;
+
+        public AmqpInt(int i)
+        {
+            this.value = i;
+        }
+
+        public override void Encode(byte[] bufer, int offset, int count)
+        {
+            throw new NotImplementedException();
+        }
+
+        public override int EncodedSize
+        {
+            get { throw new NotImplementedException(); }
+        }
+
+        public override AmqpType Clone()
+        {
+            return new AmqpInt(this.value);
+        }
+
+        public int Value
+        {
+            get { return this.value; }
+            set { this.value = value; }
+        }
+    }
+}

Propchange: qpid/trunk/qpid/wcf/src/Apache/Qpid/AmqpTypes/AmqpInt.cs
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: qpid/trunk/qpid/wcf/src/Apache/Qpid/AmqpTypes/AmqpInt.cs
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: qpid/trunk/qpid/wcf/src/Apache/Qpid/AmqpTypes/AmqpProperties.cs
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/wcf/src/Apache/Qpid/AmqpTypes/AmqpProperties.cs?rev=810734&view=auto
==============================================================================
--- qpid/trunk/qpid/wcf/src/Apache/Qpid/AmqpTypes/AmqpProperties.cs (added)
+++ qpid/trunk/qpid/wcf/src/Apache/Qpid/AmqpTypes/AmqpProperties.cs Wed Sep  2 23:38:03 2009
@@ -0,0 +1,292 @@
+/*
+* 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.AmqpTypes
+{
+    using System;
+    using System.IO;
+    using System.Collections.Generic;
+    using System.Text;
+
+    public class AmqpProperties
+    {
+        // AMQP 0-10 delivery properties
+        private bool durable;
+        private Nullable<TimeSpan> timeToLive;
+        private string routingKey;
+
+        // AMQP 0-10 message properties
+        private string replyToExchange;
+        private string replyToRoutingKey;
+        private byte[] userId;
+        private byte[] correlationId;
+        private string contentType;
+
+        // for application and vendor properties
+        Dictionary<String, AmqpType> propertyMap;
+
+        public AmqpProperties()
+        {
+        }
+
+        // AMQP 0-10 "message.delivery-properties
+        internal bool HasDeliveryProperties
+        {
+            get
+            {
+                return ((this.routingKey != null) || this.durable || this.timeToLive.HasValue);
+            }
+        }
+
+        internal bool HasMappedProperties
+        {
+            get
+            {
+                if (this.propertyMap != null)
+                {
+                    if (this.propertyMap.Count > 0)
+                    {
+                        return true;
+                    }
+                }
+
+                return false;
+            }
+        }
+
+        // AMQP 0-10 "message.message-properties"
+        internal bool HasMessageProperties
+        {
+            get
+            {
+                if ((this.replyToExchange != null) ||
+                (this.replyToRoutingKey != null) ||
+                (this.userId != null) ||
+                (this.correlationId != null) ||
+                (this.contentType != null))
+                {
+                    return true;
+                }
+
+                if (this.propertyMap == null)
+                {
+                    return false;
+                }
+
+                return (this.propertyMap.Count != 0);
+            }
+        }
+
+        public Dictionary<String, AmqpType> PropertyMap
+        {
+            get
+            {
+                if (this.propertyMap == null)
+                {
+                    this.propertyMap = new Dictionary<string, AmqpType>();
+                }
+                return propertyMap;
+            }
+            set { this.propertyMap = value; }
+        }
+
+        internal bool Empty
+        {
+            get
+            {
+                if (this.HasDeliveryProperties || this.HasMessageProperties)
+                {
+                    return true;
+                }
+                return false;
+            }
+        }
+
+        public string ContentType
+        {
+            get { return contentType; }
+            // TODO: validate
+            set { contentType = value; }
+        }
+
+        public byte[] CorrelationId
+        {
+            get { return correlationId; }
+            set
+            {
+                if (value != null)
+                {
+                    if (value.Length > 65535)
+                    {
+                        throw new ArgumentException("CorrelationId too big");
+                    }
+                }
+                correlationId = value;
+            }
+        }
+
+        public byte[] UserId
+        {
+            get { return userId; }
+            set
+            {
+                if (value != null)
+                {
+                    if (value.Length > 65535)
+                    {
+                        throw new ArgumentException("UserId too big");
+                    }
+                }
+                userId = value;
+            }
+        }
+
+        public TimeSpan? TimeToLive
+        {
+            get { return this.timeToLive; }
+            set { this.timeToLive = value; }
+        }
+
+        public string RoutingKey
+        {
+            get { return this.routingKey; }
+            set { this.routingKey = value; }
+        }
+
+        public string ReplyToExchange
+        {
+            get { return this.replyToExchange; }
+        }
+
+        public string ReplyToRoutingKey
+        {
+            get { return this.replyToRoutingKey; }
+        }
+
+        // this changes from 0-10 to 1.0
+        public void SetReplyTo(string exchange, string routingKey)
+        {
+            if ((exchange == null && routingKey == null))
+            {
+                throw new ArgumentNullException("SetReplyTo");
+            }
+
+            this.replyToExchange = exchange;
+            this.replyToRoutingKey = routingKey;
+        }
+
+        public bool Durable
+        {
+            get { return durable; }
+            set { durable = value; }
+        }
+
+        public void Clear()
+        {
+            this.timeToLive = null;
+            this.routingKey = null;
+            this.replyToRoutingKey = null;
+            this.replyToExchange = null;
+            this.durable = false;
+            this.contentType = null;
+            this.userId = null;
+            this.correlationId = null;
+            this.propertyMap = null;
+        }
+
+        public AmqpProperties Clone()
+        {
+            // memberwise clone ok for string, byte[], and value types
+            AmqpProperties clonedProps = (AmqpProperties)this.MemberwiseClone();
+
+            // deeper copy for the dictionary
+            if (this.propertyMap != null)
+            {
+                if (this.propertyMap.Count > 0)
+                {
+                    Dictionary<string, AmqpType> clonedDictionary = new Dictionary<string, AmqpType>(this.propertyMap.Count);
+                    foreach (KeyValuePair<string, AmqpType> original in this.propertyMap)
+                    {
+                        clonedDictionary.Add(original.Key, original.Value.Clone());
+                    }
+
+                    clonedProps.propertyMap = clonedDictionary;
+                }
+                else
+                {
+                    clonedProps.propertyMap = null;
+                }
+            }
+            return clonedProps;
+        }
+
+        // adds/replaces from the other AmqpProperty object.
+        // just inserts references, i.e. provides shallow copy semantics (see Clone for deep copy)
+        public void MergeFrom(AmqpProperties other)
+        {
+            if (other.timeToLive.HasValue)
+            {
+                this.timeToLive = other.timeToLive;
+            }
+
+            if ((other.replyToRoutingKey != null) || (other.replyToExchange != null))
+            {
+                this.replyToExchange = other.replyToExchange;
+                this.replyToRoutingKey = other.replyToRoutingKey;
+            }
+
+            if (other.routingKey != null)
+            {
+                this.routingKey = other.routingKey;
+            }
+
+            if (other.durable)
+            {
+                this.durable = true;
+            }
+
+            if (other.contentType != null)
+            {
+                this.contentType = other.contentType;
+            }
+
+            if (other.correlationId != null)
+            {
+                this.correlationId = other.correlationId;
+            }
+
+            if (other.userId != null)
+            {
+                this.userId = other.userId;
+            }
+
+            if (other.propertyMap != null)
+            {
+                if (other.propertyMap.Count > 0)
+                {
+                    Dictionary<string, AmqpType> thisMap = this.PropertyMap;
+                    foreach (KeyValuePair<string, AmqpType> kvp in other.propertyMap)
+                    {
+                        thisMap[kvp.Key] = kvp.Value;
+                    }
+                }
+            }
+        }
+    }
+}

Propchange: qpid/trunk/qpid/wcf/src/Apache/Qpid/AmqpTypes/AmqpProperties.cs
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: qpid/trunk/qpid/wcf/src/Apache/Qpid/AmqpTypes/AmqpProperties.cs
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org