You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ta...@apache.org on 2013/11/11 23:22:20 UTC

svn commit: r1540868 - in /activemq/activemq-dotnet/Apache.NMS.MQTT/trunk: keyfile/NMSKey.snk nant.build src/main/csharp/ConnectionFactory.cs src/main/csharp/ConnectionMetaData.cs vs2008-mqtt-tests.csproj vs2008-mqtt.csproj vs2008-mqtt.sln

Author: tabish
Date: Mon Nov 11 22:22:20 2013
New Revision: 1540868

URL: http://svn.apache.org/r1540868
Log:
https://issues.apache.org/jira/browse/AMQNET-458

Add more project files.

Added:
    activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/keyfile/NMSKey.snk   (with props)
    activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/src/main/csharp/ConnectionFactory.cs   (with props)
    activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/src/main/csharp/ConnectionMetaData.cs   (with props)
    activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/vs2008-mqtt-tests.csproj   (with props)
    activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/vs2008-mqtt.csproj   (with props)
    activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/vs2008-mqtt.sln   (with props)
Modified:
    activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/nant.build

Added: activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/keyfile/NMSKey.snk
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/keyfile/NMSKey.snk?rev=1540868&view=auto
==============================================================================
Binary file - no diff available.

Propchange: activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/keyfile/NMSKey.snk
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Modified: activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/nant.build
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/nant.build?rev=1540868&r1=1540867&r2=1540868&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/nant.build (original)
+++ activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/nant.build Mon Nov 11 22:22:20 2013
@@ -29,14 +29,13 @@
 
     <!-- Lib organized as: module/plaform/artifact, platform might be something like 'all' or 'net-2.0/release' -->
     <property name="nunit.dll" value="${basedir}/lib/NUnit/${current.build.framework}/nunit.framework.dll" dynamic="true" />
-    <property name="dotnetzip.dll" value="${basedir}/lib/DotNetZip/${current.build.framework}/Ionic.Zlib.dll" dynamic="true" />
     <property name="Apache.NMS.dll" value="${basedir}/lib/Apache.NMS/${current.build.framework}/Apache.NMS.dll" dynamic="true" />
     <property name="Apache.NMS.pdb" value="${basedir}/lib/Apache.NMS/${current.build.framework}/Apache.NMS.pdb" dynamic="true" />
     <property name="Apache.NMS.Test.dll" value="${basedir}/lib/Apache.NMS/${current.build.framework}//Apache.NMS.Test.dll" dynamic="true" />
     <property name="Apache.NMS.Test.pdb" value="${basedir}/lib/Apache.NMS/${current.build.framework}/Apache.NMS.Test.pdb" dynamic="true" />
-    <property name="NUnit.Projectfile" value="Apache.NMS.ActiveMQ.Test.nunit" />
+    <property name="NUnit.Projectfile" value="Apache.NMS.MQTT.Test.nunit" />
 
-    <!-- Skip certain frameworks, since ActiveMQ OpenWire is not supported on those platforms. -->
+    <!-- Skip certain frameworks, since MQTT is not supported on those platforms. -->
     <property name="build.netcf-2.0.skip" value="true" />
     <property name="build.netcf-3.5.skip" value="true" />
 
@@ -46,7 +45,7 @@
            'vendor.fileset.names'.  This comma-delimited list is iterated, and properties with
            well-known suffixes are used to access and copy down vendor file dependencies.
         -->
-        <property name="vendor.fileset.names" value="vendor.apache.org,vendor.nunit.org,vendor.dotnetzip.org" />
+        <property name="vendor.fileset.names" value="vendor.apache.org,vendor.nunit.org" />
 
         <!-- Property grouping for 'vendor.apache.org' -->
         <property name="vendor.apache.org.name" value="Apache.NMS" />
@@ -75,7 +74,6 @@
             <include name="${current.build.framework.assembly.dir}/System.Xml.dll" />
             <include name="${current.build.framework.assembly.dir}/System.Transactions.dll" />
             <include name="${Apache.NMS.dll}" />
-            <include name="${dotnetzip.dll}" />
         </assemblyfileset>
 
         <assemblyfileset failonempty="true" id="test.dependencies">
@@ -88,7 +86,6 @@
             <include name="${Apache.NMS.Test.dll}" />
             <include name="${build.bin.dir}/${project.name}.dll" />
             <include name="${nunit.dll}" />
-            <include name="${dotnetzip.dll}" />
         </assemblyfileset>
 
         <fileset id="content.filenames">
@@ -99,7 +96,6 @@
             <include name="${Apache.NMS.pdb}" />
             <include name="${Apache.NMS.Test.dll}" />
             <include name="${Apache.NMS.Test.pdb}" />
-            <include name="${dotnetzip.dll}" />
             <include name="${nunit.dll}" />
             <include name="${NUnit.Projectfile}" />
         </fileset>

Added: activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/src/main/csharp/ConnectionFactory.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/src/main/csharp/ConnectionFactory.cs?rev=1540868&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/src/main/csharp/ConnectionFactory.cs (added)
+++ activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/src/main/csharp/ConnectionFactory.cs Mon Nov 11 22:22:20 2013
@@ -0,0 +1,344 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using System;
+using System.Collections.Specialized;
+using Apache.NMS.Util;
+using Apache.NMS.Policies;
+
+namespace Apache.NMS.MQTT
+{
+    /// <summary>
+    /// Represents a connection with a message broker
+    /// </summary>
+    public class ConnectionFactory : IConnectionFactory
+    {
+        public const string DEFAULT_BROKER_URL = "tcp://localhost:61613";
+        public const string ENV_BROKER_URL = "ACTIVEMQ_BROKER_URL";
+
+        private static event ExceptionListener onException;
+        private Uri brokerUri;
+        private string connectionUserName;
+        private string connectionPassword;
+        private string clientId;
+        private string clientIdPrefix;
+        //private IdGenerator clientIdGenerator;
+
+        private bool copyMessageOnSend = true;
+        private bool asyncSend;
+        private bool alwaysSyncSend;
+        private bool sendAcksAsync=true;
+        private bool dispatchAsync=true;
+        private TimeSpan requestTimeout = NMSConstants.defaultRequestTimeout;
+        private AcknowledgementMode acknowledgementMode = AcknowledgementMode.AutoAcknowledge;
+
+        private IRedeliveryPolicy redeliveryPolicy = new RedeliveryPolicy();
+        private PrefetchPolicy prefetchPolicy = new PrefetchPolicy();
+
+        static ConnectionFactory()
+        {
+            TransportFactory.OnException += ConnectionFactory.ExceptionHandler;
+        }
+
+        public static string GetDefaultBrokerUrl()
+        {
+            return Environment.GetEnvironmentVariable(ENV_BROKER_URL) ?? DEFAULT_BROKER_URL;
+        }
+
+        public ConnectionFactory() : this(GetDefaultBrokerUrl())
+        {
+        }
+
+        public ConnectionFactory(string brokerUri) : this(brokerUri, null)
+        {
+        }
+
+        public ConnectionFactory(string brokerUri, string clientID)
+            : this(URISupport.CreateCompatibleUri(brokerUri), clientID)
+        {
+        }
+
+        public ConnectionFactory(Uri brokerUri) : this(brokerUri, null)
+        {
+        }
+
+        public ConnectionFactory(Uri brokerUri, string clientID)
+        {
+            this.BrokerUri = brokerUri;
+            this.ClientId = clientID;
+        }
+
+        public IConnection CreateConnection()
+        {
+            return CreateConnection(connectionUserName, connectionPassword);
+        }
+
+        public IConnection CreateConnection(string userName, string password)
+        {
+            Connection connection = null;
+
+            try
+            {
+                Tracer.InfoFormat("Connecting to: {0}", brokerUri.ToString());
+
+                ITransport transport = TransportFactory.CreateTransport(brokerUri);
+
+                connection = new Connection(brokerUri, transport, this.ClientIdGenerator);
+
+                connection.UserName = userName;
+                connection.Password = password;
+
+                ConfigureConnection(connection);
+
+                if(this.clientId != null)
+                {
+                    connection.DefaultClientId = this.clientId;
+                }
+
+                connection.ITransport.Start();
+
+                return connection;
+            }
+            catch(NMSException e)
+            {
+                try
+                {
+                    connection.Close();
+                }
+                catch
+                {
+                }
+
+                throw e;
+            }
+            catch(Exception e)
+            {
+                try
+                {
+                    connection.Close();
+                }
+                catch
+                {
+                }
+
+                throw NMSExceptionSupport.Create("Could not connect to broker URL: " + this.brokerUri + ". Reason: " + e.Message, e);
+            }
+        }
+
+        #region ConnectionFactory Properties
+
+        /// <summary>
+        /// Get/or set the broker Uri.
+        /// </summary>
+        public Uri BrokerUri
+        {
+            get { return brokerUri; }
+            set
+            {
+                brokerUri = new Uri(URISupport.StripPrefix(value.OriginalString, "stomp:"));
+
+                if(!String.IsNullOrEmpty(brokerUri.Query) && !brokerUri.OriginalString.EndsWith(")"))
+                {
+                    // Since the Uri class will return the end of a Query string found in a Composite
+                    // URI we must ensure that we trim that off before we proceed.
+                    string query = brokerUri.Query.Substring(brokerUri.Query.LastIndexOf(")") + 1);
+
+                    StringDictionary properties = URISupport.ParseQuery(query);
+                
+                    StringDictionary connection = URISupport.ExtractProperties(properties, "connection.");
+                    StringDictionary nms = URISupport.ExtractProperties(properties, "nms.");
+                    
+                    if(connection != null)
+                    {
+                        URISupport.SetProperties(this, connection, "connection.");
+                    }
+                    
+                    if(nms != null)
+                    {
+                        URISupport.SetProperties(this.PrefetchPolicy, nms, "nms.PrefetchPolicy.");
+                        URISupport.SetProperties(this.RedeliveryPolicy, nms, "nms.RedeliveryPolicy.");
+                    }
+
+                    brokerUri = URISupport.CreateRemainingUri(brokerUri, properties);
+                }
+            }
+        }
+        public string UserName
+        {
+            get { return connectionUserName; }
+            set { connectionUserName = value; }
+        }
+
+        public string Password
+        {
+            get { return connectionPassword; }
+            set { connectionPassword = value; }
+        }
+
+        public string ClientId
+        {
+            get { return clientId; }
+            set { clientId = value; }
+        }
+
+        public string ClientIdPrefix
+        {
+            get { return clientIdPrefix; }
+            set { clientIdPrefix = value; }
+        }
+
+        public bool CopyMessageOnSend
+        {
+            get { return copyMessageOnSend; }
+            set { copyMessageOnSend = value; }
+        }
+
+        public bool AlwaysSyncSend
+        {
+            get { return alwaysSyncSend; }
+            set { alwaysSyncSend = value; }
+        }
+
+        public bool SendAcksAsync
+        {
+            get { return sendAcksAsync; }
+            set { sendAcksAsync = value; }
+        }
+
+        public bool AsyncSend
+        {
+            get { return asyncSend; }
+            set { asyncSend = value; }
+        }
+
+        public string AckMode
+        {
+            set { this.acknowledgementMode = NMSConvert.ToAcknowledgementMode(value); }
+        }
+
+        public bool DispatchAsync
+        {
+            get { return this.dispatchAsync; }
+            set { this.dispatchAsync = value; }
+        }
+
+        public int RequestTimeout
+        {
+            get { return (int) this.requestTimeout.TotalMilliseconds; }
+            set { this.requestTimeout = TimeSpan.FromMilliseconds(value); }
+        }
+
+        public AcknowledgementMode AcknowledgementMode
+        {
+            get { return acknowledgementMode; }
+            set { this.acknowledgementMode = value; }
+        }
+
+        public PrefetchPolicy PrefetchPolicy
+        {
+            get { return this.prefetchPolicy; }
+            set { this.prefetchPolicy = value; }
+        }
+
+        public IRedeliveryPolicy RedeliveryPolicy
+        {
+            get { return this.redeliveryPolicy; }
+            set
+            {
+                if(value != null)
+                {
+                    this.redeliveryPolicy = value;
+                }
+            }
+        }
+
+//        public IdGenerator ClientIdGenerator
+//        {
+//            set { this.clientIdGenerator = value; }
+//            get
+//            {
+//                lock(this)
+//                {
+//                    if(this.clientIdGenerator == null)
+//                    {
+//                        if(this.clientIdPrefix != null)
+//                        {
+//                            this.clientIdGenerator = new IdGenerator(this.clientIdPrefix);
+//                        }
+//                        else
+//                        {
+//                            this.clientIdGenerator = new IdGenerator();
+//                        }
+//                    }
+//
+//                    return this.clientIdGenerator;
+//                }
+//            }
+//        }
+
+        public event ExceptionListener OnException
+        {
+            add { onException += value; }
+            remove
+            {
+                if(onException != null)
+                {
+                    onException -= value;
+                }
+            }
+        }
+
+        private ConsumerTransformerDelegate consumerTransformer;
+        public ConsumerTransformerDelegate ConsumerTransformer
+        {
+            get { return this.consumerTransformer; }
+            set { this.consumerTransformer = value; }
+        }
+
+        private ProducerTransformerDelegate producerTransformer;
+        public ProducerTransformerDelegate ProducerTransformer
+        {
+            get { return this.producerTransformer; }
+            set { this.producerTransformer = value; }
+        }
+
+        #endregion
+
+        protected virtual void ConfigureConnection(Connection connection)
+        {
+            connection.AsyncSend = this.AsyncSend;
+            connection.CopyMessageOnSend = this.CopyMessageOnSend;
+            connection.AlwaysSyncSend = this.AlwaysSyncSend;
+            connection.SendAcksAsync = this.SendAcksAsync;
+            connection.DispatchAsync = this.DispatchAsync;
+            connection.AcknowledgementMode = this.acknowledgementMode;
+            connection.RequestTimeout = this.requestTimeout;
+            connection.RedeliveryPolicy = this.redeliveryPolicy.Clone() as IRedeliveryPolicy;
+            connection.PrefetchPolicy = this.prefetchPolicy.Clone() as PrefetchPolicy;
+            connection.ConsumerTransformer = this.consumerTransformer;
+            connection.ProducerTransformer = this.producerTransformer;
+        }
+
+        protected static void ExceptionHandler(Exception ex)
+        {
+            if(ConnectionFactory.onException != null)
+            {
+                ConnectionFactory.onException(ex);
+            }
+        }
+    }
+}

Propchange: activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/src/main/csharp/ConnectionFactory.cs
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/src/main/csharp/ConnectionFactory.cs
------------------------------------------------------------------------------
    svn:executable = *

Added: activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/src/main/csharp/ConnectionMetaData.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/src/main/csharp/ConnectionMetaData.cs?rev=1540868&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/src/main/csharp/ConnectionMetaData.cs (added)
+++ activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/src/main/csharp/ConnectionMetaData.cs Mon Nov 11 22:22:20 2013
@@ -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.
+ */
+
+using System;
+using System.Reflection;
+
+namespace Apache.NMS.MQTT
+{
+    /// <summary>
+    /// Implements the Connection Meta-Data feature for Apache.NMS.ActiveMQ
+    /// </summary>
+    public class ConnectionMetaData : IConnectionMetaData
+    {
+        private readonly int nmsMajorVersion;
+        private readonly int nmsMinorVersion;
+
+        private readonly string nmsProviderName;
+        private readonly string nmsVersion;
+
+        private readonly int providerMajorVersion;
+        private readonly int providerMinorVersion;
+        private readonly string providerVersion;
+
+        private readonly string[] nmsxProperties;
+
+        public ConnectionMetaData()
+        {
+            Assembly self = Assembly.GetExecutingAssembly();
+            AssemblyName asmName = self.GetName();
+
+            this.nmsProviderName = asmName.Name;
+            this.providerMajorVersion = asmName.Version.Major;
+            this.providerMinorVersion = asmName.Version.Minor;
+            this.providerVersion = asmName.Version.ToString();
+
+            this.nmsxProperties =
+                new String[]{ "NMSXGroupID", "NMSXGroupSeq", "NMSXDeliveryCount", "NMSXProducerTXID" };
+
+            foreach(AssemblyName name in self.GetReferencedAssemblies())
+            {
+                if(0 == string.Compare(name.Name, "Apache.NMS", true))
+                {
+                    this.nmsMajorVersion = name.Version.Major;
+                    this.nmsMinorVersion = name.Version.Minor;
+                    this.nmsVersion = name.Version.ToString();
+
+                    return;
+                }
+            }
+
+            throw new NMSException("Could not find a reference to the Apache.NMS Assembly.");
+        }
+
+        public int NMSMajorVersion
+        {
+            get{ return this.nmsMajorVersion; }
+        }
+
+        public int NMSMinorVersion
+        {
+            get{ return this.nmsMinorVersion; }
+        }
+
+        public string NMSProviderName
+        {
+            get{ return this.nmsProviderName; }
+        }
+
+        public string NMSVersion
+        {
+            get{ return this.nmsVersion; }
+        }
+
+        public string[] NMSXPropertyNames
+        {
+            get{ return this.nmsxProperties; }
+        }
+
+        public int ProviderMajorVersion
+        {
+            get{ return this.providerMajorVersion; }
+        }
+
+        public int ProviderMinorVersion
+        {
+            get{ return this.providerMinorVersion; }
+        }
+
+        public string ProviderVersion
+        {
+            get{ return this.providerVersion; }
+        }
+
+    }
+}

Propchange: activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/src/main/csharp/ConnectionMetaData.cs
------------------------------------------------------------------------------
    svn:eol-style = native

Added: activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/vs2008-mqtt-tests.csproj
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/vs2008-mqtt-tests.csproj?rev=1540868&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/vs2008-mqtt-tests.csproj (added)
+++ activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/vs2008-mqtt-tests.csproj Mon Nov 11 22:22:20 2013
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">x86</Platform>
+    <ProductVersion>10.0.0</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{186FAC43-F3B0-4B03-82DA-EEC0169307B7}</ProjectGuid>
+    <OutputType>Exe</OutputType>
+    <RootNamespace>vs2008mqtttests</RootNamespace>
+    <AssemblyName>vs2008-mqtt-tests</AssemblyName>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug</OutputPath>
+    <DefineConstants>DEBUG;</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <PlatformTarget>x86</PlatformTarget>
+    <Externalconsole>true</Externalconsole>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
+    <DebugType>none</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release</OutputPath>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <PlatformTarget>x86</PlatformTarget>
+    <Externalconsole>true</Externalconsole>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+  </ItemGroup>
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+</Project>
\ No newline at end of file

Propchange: activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/vs2008-mqtt-tests.csproj
------------------------------------------------------------------------------
    svn:eol-style = CRLF

Added: activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/vs2008-mqtt.csproj
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/vs2008-mqtt.csproj?rev=1540868&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/vs2008-mqtt.csproj (added)
+++ activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/vs2008-mqtt.csproj Mon Nov 11 22:22:20 2013
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>10.0.0</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{AEBC857B-D693-4833-9F1E-F6A22787D0C9}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <RootNamespace>vs2008mqtt</RootNamespace>
+    <AssemblyName>vs2008-mqtt</AssemblyName>
+    <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug</OutputPath>
+    <DefineConstants>DEBUG;</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <ConsolePause>false</ConsolePause>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>none</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release</OutputPath>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <ConsolePause>false</ConsolePause>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="Apache.NMS">
+      <HintPath>lib\Apache.NMS\mono-2.0\Apache.NMS.dll</HintPath>
+    </Reference>
+  </ItemGroup>
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+  <ItemGroup>
+    <Compile Include="src\main\csharp\ConnectionFactory.cs" />
+    <Compile Include="src\main\csharp\ConnectionMetaData.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <Folder Include="keyfile\" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="LICENSE.txt" />
+    <None Include="NOTICE.txt" />
+    <None Include="README.txt" />
+    <None Include="keyfile\NMSKey.snk" />
+  </ItemGroup>
+</Project>
\ No newline at end of file

Propchange: activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/vs2008-mqtt.csproj
------------------------------------------------------------------------------
    svn:eol-style = CRLF

Added: activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/vs2008-mqtt.sln
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/vs2008-mqtt.sln?rev=1540868&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/vs2008-mqtt.sln (added)
+++ activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/vs2008-mqtt.sln Mon Nov 11 22:22:20 2013
@@ -0,0 +1,26 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "vs2008-mqtt", "vs2008-mqtt.csproj", "{AEBC857B-D693-4833-9F1E-F6A22787D0C9}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "vs2008-mqtt-tests", "vs2008-mqtt-tests.csproj", "{186FAC43-F3B0-4B03-82DA-EEC0169307B7}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|x86 = Debug|x86
+		Release|x86 = Release|x86
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{186FAC43-F3B0-4B03-82DA-EEC0169307B7}.Debug|x86.ActiveCfg = Debug|x86
+		{186FAC43-F3B0-4B03-82DA-EEC0169307B7}.Debug|x86.Build.0 = Debug|x86
+		{186FAC43-F3B0-4B03-82DA-EEC0169307B7}.Release|x86.ActiveCfg = Release|x86
+		{186FAC43-F3B0-4B03-82DA-EEC0169307B7}.Release|x86.Build.0 = Release|x86
+		{AEBC857B-D693-4833-9F1E-F6A22787D0C9}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{AEBC857B-D693-4833-9F1E-F6A22787D0C9}.Debug|x86.Build.0 = Debug|Any CPU
+		{AEBC857B-D693-4833-9F1E-F6A22787D0C9}.Release|x86.ActiveCfg = Release|Any CPU
+		{AEBC857B-D693-4833-9F1E-F6A22787D0C9}.Release|x86.Build.0 = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(MonoDevelopProperties) = preSolution
+		StartupItem = vs2008-mqtt.csproj
+	EndGlobalSection
+EndGlobal

Propchange: activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/vs2008-mqtt.sln
------------------------------------------------------------------------------
    svn:eol-style = CRLF