You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by jg...@apache.org on 2009/10/07 19:43:52 UTC

svn commit: r822812 - in /activemq/activemq-dotnet: Apache.NMS.ActiveMQ/trunk/ Apache.NMS.ActiveMQ/trunk/deploy/mono-2.0/ Apache.NMS.ActiveMQ/trunk/deploy/net-2.0/ Apache.NMS.ActiveMQ/trunk/deploy/net-3.5/ Apache.NMS.ActiveMQ/trunk/deploy/netcf-2.0/ Ap...

Author: jgomes
Date: Wed Oct  7 17:43:51 2009
New Revision: 822812

URL: http://svn.apache.org/viewvc?rev=822812&view=rev
Log:
Directly support the main official provider implementations connection factories.
Remove the config files for the connection factory that are now obsolete.
Fixes [AMQNET-186]. (See https://issues.apache.org/activemq/browse/AMQNET-186)

Removed:
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/deploy/mono-2.0/nmsprovider-activemq.config
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/deploy/mono-2.0/nmsprovider-tcp.config
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/deploy/net-2.0/nmsprovider-activemq.config
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/deploy/net-2.0/nmsprovider-tcp.config
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/deploy/net-3.5/nmsprovider-activemq.config
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/deploy/net-3.5/nmsprovider-tcp.config
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/deploy/netcf-2.0/nmsprovider-activemq.config
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/deploy/netcf-2.0/nmsprovider-tcp.config
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/nmsprovider-activemq.config
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/nmsprovider-tcp.config
    activemq/activemq-dotnet/Apache.NMS.EMS/trunk/deploy/net-2.0/nmsprovider-ems.config
    activemq/activemq-dotnet/Apache.NMS.EMS/trunk/deploy/net-3.5/nmsprovider-ems.config
    activemq/activemq-dotnet/Apache.NMS.EMS/trunk/nmsprovider-ems.config
    activemq/activemq-dotnet/Apache.NMS.MSMQ/trunk/deploy/net-2.0/nmsprovider-msmq.config
    activemq/activemq-dotnet/Apache.NMS.MSMQ/trunk/deploy/net-3.5/nmsprovider-msmq.config
    activemq/activemq-dotnet/Apache.NMS.MSMQ/trunk/nmsprovider-msmq.config
    activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/nmsprovider-stomp.config
    activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/nmsprovider-tcp.config
Modified:
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/nant.build
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/vs2008-activemq.csproj
    activemq/activemq-dotnet/Apache.NMS.EMS/trunk/nant.build
    activemq/activemq-dotnet/Apache.NMS.EMS/trunk/vs2008-ems.csproj
    activemq/activemq-dotnet/Apache.NMS.MSMQ/trunk/nant.build
    activemq/activemq-dotnet/Apache.NMS.MSMQ/trunk/vs2008-msmq.csproj
    activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/nant.build
    activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/package.ps1
    activemq/activemq-dotnet/Apache.NMS/trunk/src/main/csharp/NMSConnectionFactory.cs

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/nant.build
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/nant.build?rev=822812&r1=822811&r2=822812&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/nant.build (original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/nant.build Wed Oct  7 17:43:51 2009
@@ -100,9 +100,6 @@
 			<include name="${build.bin.dir}/${project.name}.dll" />
 			<include name="${build.bin.dir}/${project.name}.pdb" />
 			<include name="${build.bin.dir}/${project.name}.dll.mdb" />
-			<include name="nmsprovider-activemq.config" />
-			<include name="nmsprovider-tcp.config" />
-			<include name="nmsprovider-stomp.config" />
 		</fileset>
 
 		<fileset id="deploy.filenames">

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/vs2008-activemq.csproj
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/vs2008-activemq.csproj?rev=822812&r1=822811&r2=822812&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/vs2008-activemq.csproj (original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/vs2008-activemq.csproj Wed Oct  7 17:43:51 2009
@@ -2,7 +2,7 @@
   <PropertyGroup>
     <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
     <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProductVersion>9.0.21022</ProductVersion>
+    <ProductVersion>9.0.30729</ProductVersion>
     <SchemaVersion>2.0</SchemaVersion>
     <ProjectGuid>{08321F42-4B3D-4815-B592-95962BAC3B9F}</ProjectGuid>
     <OutputType>Library</OutputType>
@@ -64,14 +64,6 @@
     <Reference Include="System.Xml" />
   </ItemGroup>
   <ItemGroup>
-    <Content Include="nmsprovider-activemq.config">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Include="nmsprovider-tcp.config">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-  </ItemGroup>
-  <ItemGroup>
     <Compile Include="src\main\csharp\BrokerException.cs">
       <SubType>Code</SubType>
     </Compile>

Modified: activemq/activemq-dotnet/Apache.NMS.EMS/trunk/nant.build
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.EMS/trunk/nant.build?rev=822812&r1=822811&r2=822812&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.EMS/trunk/nant.build (original)
+++ activemq/activemq-dotnet/Apache.NMS.EMS/trunk/nant.build Wed Oct  7 17:43:51 2009
@@ -116,7 +116,6 @@
 			<include name="NOTICE.txt" />
 			<include name="${build.bin.dir}/${project.name}.dll" />
 			<include name="${build.bin.dir}/${project.name}.pdb" />
-			<include name="nmsprovider-ems.config" />
 		</fileset>
 
 		<fileset id="deploy.filenames">

Modified: activemq/activemq-dotnet/Apache.NMS.EMS/trunk/vs2008-ems.csproj
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.EMS/trunk/vs2008-ems.csproj?rev=822812&r1=822811&r2=822812&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.EMS/trunk/vs2008-ems.csproj (original)
+++ activemq/activemq-dotnet/Apache.NMS.EMS/trunk/vs2008-ems.csproj Wed Oct  7 17:43:51 2009
@@ -93,9 +93,6 @@
   </ItemGroup>
   <ItemGroup>
     <None Include="keyfile\NMSKey.snk" />
-    <None Include="nmsprovider-ems.config">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </None>
   </ItemGroup>
   <ItemGroup>
     <BootstrapperPackage Include="Microsoft.Net.Framework.2.0">

Modified: activemq/activemq-dotnet/Apache.NMS.MSMQ/trunk/nant.build
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.MSMQ/trunk/nant.build?rev=822812&r1=822811&r2=822812&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.MSMQ/trunk/nant.build (original)
+++ activemq/activemq-dotnet/Apache.NMS.MSMQ/trunk/nant.build Wed Oct  7 17:43:51 2009
@@ -105,7 +105,6 @@
 			<include name="NOTICE.txt" />
 			<include name="${build.bin.dir}/${project.name}.dll" />
 			<include name="${build.bin.dir}/${project.name}.pdb" />
-			<include name="nmsprovider-msmq.config" />
 		</fileset>
 
 		<fileset id="deploy.filenames">

Modified: activemq/activemq-dotnet/Apache.NMS.MSMQ/trunk/vs2008-msmq.csproj
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.MSMQ/trunk/vs2008-msmq.csproj?rev=822812&r1=822811&r2=822812&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.MSMQ/trunk/vs2008-msmq.csproj (original)
+++ activemq/activemq-dotnet/Apache.NMS.MSMQ/trunk/vs2008-msmq.csproj Wed Oct  7 17:43:51 2009
@@ -84,9 +84,6 @@
   </ItemGroup>
   <ItemGroup>
     <None Include="keyfile\NMSKey.snk" />
-    <None Include="nmsprovider-msmq.config">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </None>
   </ItemGroup>
   <ItemGroup>
     <BootstrapperPackage Include="Microsoft.Net.Framework.2.0">

Modified: activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/nant.build
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/nant.build?rev=822812&r1=822811&r2=822812&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/nant.build (original)
+++ activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/nant.build Wed Oct  7 17:43:51 2009
@@ -1,126 +1,124 @@
 <?xml version="1.0"?>
 <!--
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
+	Licensed to the Apache Software Foundation (ASF) under one or more
+	contributor license agreements.  See the NOTICE file distributed with
+	this work for additional information regarding copyright ownership.
+	The ASF licenses this file to You under the Apache License, Version 2.0
+	(the "License"); you may not use this file except in compliance with
+	the License.  You may obtain a copy of the License at
+
+	http://www.apache.org/licenses/LICENSE-2.0
+
+	Unless required by applicable law or agreed to in writing, software
+	distributed under the License is distributed on an "AS IS" BASIS,
+	WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+	See the License for the specific language governing permissions and
+	limitations under the License.
 -->
 <project name="Apache.NMS.Stomp" default="default" xmlns="http://nant.sourceforge.net/release/0.85/nant.xsd">
-    <!-- ============================================================================================ -->
-    <!--      I N I T I A L I Z A T I O N                                                             -->
-    <!-- ============================================================================================ -->
-    <property name="basedir" value="${project::get-base-directory()}" />
-    <property name="project.name" value="Apache.NMS.Stomp" />
-    <property name="project.group" value="org.apache.activemq" />
-    <property name="project.version" value="1.2.0" unless="${property::exists('project.version')}" />
-    <property name="project.release.type" value="SNAPSHOT" unless="${property::exists('project.release.type')}" />
-    <property name="project.short_description" value="Apache NMS for Stomp Class Library" />
-    <property name="project.description" value="Apache NMS for Stomp Class Library (.Net Messaging Library Implementation): An implementation of the NMS API for Stomp" />
-
-    <!-- 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="nunit.extensions.dll" value="${basedir}/lib/NUnit/${current.build.framework}/nunit.framework.extensions.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.Stomp.Test.nunit" />
-
-    <target name="vendor-init" description="Initializes Vendor library from local repository.">
-        <!--
-           Vendor specific info.  The prefix of 'vendor.apache.org' is taken from the property
-           '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" />
-
-        <!-- Property grouping for 'vendor.apache.org' -->
-        <property name="vendor.apache.org.name" value="Apache.NMS" />
-        <property name="vendor.apache.org.group" value="org.apache.activemq" />
-        <property name="vendor.apache.org.version" value="1.2.0" />
-        <property name="vendor.apache.org.filenames" value="Apache.NMS.dll,Apache.NMS.pdb,Apache.NMS.dll.mdb,Apache.NMS.Test.dll,Apache.NMS.Test.pdb,Apache.NMS.Test.dll.mdb" />
-
-        <!-- Property grouping for 'vendor.nunit.org' -->
-        <property name="vendor.nunit.org.name" value="NUnit" />
-        <property name="vendor.nunit.org.group" value="org.nunit" />
-        <property name="vendor.nunit.org.version" value="2.4.8" />
-        <property name="vendor.nunit.org.filenames" value="nunit.framework.dll,nunit.framework.extensions.dll" />
-    </target>
-
-    <target name="dependency-init" description="Initializes build dependencies">
-        <if test="${not file::exists(Apache.NMS.dll)}">
-            <echo message="Apache.NMS assembly for ${current.build.framework.name} is not available. Build skipped." />
-            <property name="build.skip" value="true" />
-        </if>
-
-        <assemblyfileset failonempty="true" id="dependencies">
-            <include name="${current.build.framework.assembly.dir}/mscorlib.dll" />
-            <include name="${current.build.framework.assembly.dir}/System.dll" />
-            <include name="${current.build.framework.assembly.dir}/System.Xml.dll" />
-            <include name="${Apache.NMS.dll}" />
-        </assemblyfileset>
-
-        <assemblyfileset failonempty="true" id="test.dependencies">
-            <include name="${current.build.framework.assembly.dir}/mscorlib.dll" />
-            <include name="${current.build.framework.assembly.dir}/System.dll" />
-            <include name="${current.build.framework.assembly.dir}/System.Xml.dll" />
-            <include name="${Apache.NMS.dll}" />
-            <include name="${Apache.NMS.Test.dll}" />
-            <include name="${build.bin.dir}/${project.name}.dll" />
-            <include name="${nunit.dll}" />
-            <include name="${nunit.extensions.dll}" />
-        </assemblyfileset>
-
-        <fileset id="content.filenames">
-            <include name="LICENSE.txt" />
-            <include name="NOTICE.txt" />
-            <include name="nmsprovider-*.config" />
-            <include name="${Apache.NMS.dll}" />
-            <include name="${Apache.NMS.pdb}" />
-            <include name="${Apache.NMS.Test.dll}" />
-            <include name="${Apache.NMS.Test.pdb}" />
-            <include name="${nunit.dll}" />
-            <include name="${nunit.extensions.dll}" />
-            <include name="${NUnit.Projectfile}" />
-        </fileset>
-
-        <fileset id="install.filenames">
-            <include name="LICENSE.txt" />
-            <include name="NOTICE.txt" />
-            <include name="${build.bin.dir}/${project.name}.dll" />
-            <include name="${build.bin.dir}/${project.name}.pdb" />
-            <include name="${build.bin.dir}/${project.name}.dll.mdb" />
-            <include name="nmsprovider-tcp.config" />
-            <include name="nmsprovider-stomp.config" />
-        </fileset>
-
-        <fileset id="deploy.filenames">
-            <include name="LICENSE.txt" />
-            <include name="NOTICE.txt" />
-            <include name="${build.bin.dir}/${project.name}.dll" />
-            <include name="${build.bin.dir}/${project.name}.pdb" />
-            <include name="${build.bin.dir}/${project.name}.dll.mdb" />
-            <include name="${build.bin.dir}/${project.name}.xml" />
-            <include name="${build.bin.dir}/${project.name}.Test.dll" />
-            <include name="${build.bin.dir}/${project.name}.Test.pdb" />
-            <include name="${build.bin.dir}/${project.name}.Test.dll.mdb" />
-            <include name="${build.bin.dir}/${project.name}.Test.xml" />
-            <include name="${build.bin.dir}/nmsprovider-*.config" />
-        </fileset>
-    </target>
+	<!-- ============================================================================================ -->
+	<!--      I N I T I A L I Z A T I O N                                                             -->
+	<!-- ============================================================================================ -->
+	<property name="basedir" value="${project::get-base-directory()}" />
+	<property name="project.name" value="Apache.NMS.Stomp" />
+	<property name="project.group" value="org.apache.activemq" />
+	<property name="project.version" value="1.2.0" unless="${property::exists('project.version')}" />
+	<property name="project.release.type" value="SNAPSHOT" unless="${property::exists('project.release.type')}" />
+	<property name="project.short_description" value="Apache NMS for Stomp Class Library" />
+	<property name="project.description" value="Apache NMS for Stomp Class Library (.Net Messaging Library Implementation): An implementation of the NMS API for Stomp" />
+
+	<!-- 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="nunit.extensions.dll" value="${basedir}/lib/NUnit/${current.build.framework}/nunit.framework.extensions.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.Stomp.Test.nunit" />
+
+	<target name="vendor-init" description="Initializes Vendor library from local repository.">
+		<!--
+		   Vendor specific info.  The prefix of 'vendor.apache.org' is taken from the property
+		   '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" />
+
+		<!-- Property grouping for 'vendor.apache.org' -->
+		<property name="vendor.apache.org.name" value="Apache.NMS" />
+		<property name="vendor.apache.org.group" value="org.apache.activemq" />
+		<property name="vendor.apache.org.version" value="1.2.0" />
+		<property name="vendor.apache.org.filenames" value="Apache.NMS.dll,Apache.NMS.pdb,Apache.NMS.dll.mdb,Apache.NMS.Test.dll,Apache.NMS.Test.pdb,Apache.NMS.Test.dll.mdb" />
+
+		<!-- Property grouping for 'vendor.nunit.org' -->
+		<property name="vendor.nunit.org.name" value="NUnit" />
+		<property name="vendor.nunit.org.group" value="org.nunit" />
+		<property name="vendor.nunit.org.version" value="2.4.8" />
+		<property name="vendor.nunit.org.filenames" value="nunit.framework.dll,nunit.framework.extensions.dll" />
+	</target>
+
+	<target name="dependency-init" description="Initializes build dependencies">
+		<if test="${not file::exists(Apache.NMS.dll)}">
+			<echo message="Apache.NMS assembly for ${current.build.framework.name} is not available. Build skipped." />
+			<property name="build.skip" value="true" />
+		</if>
+
+		<assemblyfileset failonempty="true" id="dependencies">
+			<include name="${current.build.framework.assembly.dir}/mscorlib.dll" />
+			<include name="${current.build.framework.assembly.dir}/System.dll" />
+			<include name="${current.build.framework.assembly.dir}/System.Xml.dll" />
+			<include name="${Apache.NMS.dll}" />
+		</assemblyfileset>
+
+		<assemblyfileset failonempty="true" id="test.dependencies">
+			<include name="${current.build.framework.assembly.dir}/mscorlib.dll" />
+			<include name="${current.build.framework.assembly.dir}/System.dll" />
+			<include name="${current.build.framework.assembly.dir}/System.Xml.dll" />
+			<include name="${Apache.NMS.dll}" />
+			<include name="${Apache.NMS.Test.dll}" />
+			<include name="${build.bin.dir}/${project.name}.dll" />
+			<include name="${nunit.dll}" />
+			<include name="${nunit.extensions.dll}" />
+		</assemblyfileset>
+
+		<fileset id="content.filenames">
+			<include name="LICENSE.txt" />
+			<include name="NOTICE.txt" />
+			<include name="nmsprovider-*.config" />
+			<include name="${Apache.NMS.dll}" />
+			<include name="${Apache.NMS.pdb}" />
+			<include name="${Apache.NMS.Test.dll}" />
+			<include name="${Apache.NMS.Test.pdb}" />
+			<include name="${nunit.dll}" />
+			<include name="${nunit.extensions.dll}" />
+			<include name="${NUnit.Projectfile}" />
+		</fileset>
+
+		<fileset id="install.filenames">
+			<include name="LICENSE.txt" />
+			<include name="NOTICE.txt" />
+			<include name="${build.bin.dir}/${project.name}.dll" />
+			<include name="${build.bin.dir}/${project.name}.pdb" />
+			<include name="${build.bin.dir}/${project.name}.dll.mdb" />
+		</fileset>
+
+		<fileset id="deploy.filenames">
+			<include name="LICENSE.txt" />
+			<include name="NOTICE.txt" />
+			<include name="${build.bin.dir}/${project.name}.dll" />
+			<include name="${build.bin.dir}/${project.name}.pdb" />
+			<include name="${build.bin.dir}/${project.name}.dll.mdb" />
+			<include name="${build.bin.dir}/${project.name}.xml" />
+			<include name="${build.bin.dir}/${project.name}.Test.dll" />
+			<include name="${build.bin.dir}/${project.name}.Test.pdb" />
+			<include name="${build.bin.dir}/${project.name}.Test.dll.mdb" />
+			<include name="${build.bin.dir}/${project.name}.Test.xml" />
+			<include name="${build.bin.dir}/nmsprovider-*.config" />
+		</fileset>
+	</target>
 
-    <target name="default" depends="download-vendor-all, install-all" />
+	<target name="default" depends="download-vendor-all, install-all" />
 
-    <!-- Load the common target definitions  -->
-    <include buildfile="${basedir}/nant-common.xml" />
+	<!-- Load the common target definitions  -->
+	<include buildfile="${basedir}/nant-common.xml" />
 </project>

Modified: activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/package.ps1
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/package.ps1?rev=822812&r1=822811&r2=822812&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/package.ps1 (original)
+++ activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/package.ps1 Wed Oct  7 17:43:51 2009
@@ -13,7 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-$pkgname = "Apache.NMS.ActiveMQ"
+$pkgname = "Apache.NMS.Stomp"
 $pkgver = "1.2.0"
 $configurations = "release", "debug"
 $frameworks = "mono-2.0", "net-2.0", "net-3.5", "netcf-2.0"
@@ -61,7 +61,7 @@
 $pkgdir = "package"
 $zipfile = "$pkgdir\$pkgname-$pkgver-src.zip"
 
-zip -9 -u "$zipfile" LICENSE.txt NOTICE.txt nant-common.xml nant.build package.ps1 vs2008-activemq-test.csproj vs2008-activemq.csproj vs2008-activemq.sln nmsprovider*.config
+zip -9 -u "$zipfile" LICENSE.txt NOTICE.txt nant-common.xml nant.build package.ps1 vs2008-stomp-test.csproj vs2008-stomp.csproj vs2008-stomp.sln nmsprovider*.config
 zip -9 -u -r "$zipfile" keyfile src
 
 write-progress -Completed "Packaging" "Complete."

Modified: activemq/activemq-dotnet/Apache.NMS/trunk/src/main/csharp/NMSConnectionFactory.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS/trunk/src/main/csharp/NMSConnectionFactory.cs?rev=822812&r1=822811&r2=822812&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS/trunk/src/main/csharp/NMSConnectionFactory.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS/trunk/src/main/csharp/NMSConnectionFactory.cs Wed Oct  7 17:43:51 2009
@@ -13,287 +13,336 @@
  * 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;
-using System.IO;
-using System.Reflection;
-using System.Xml;
-
-namespace Apache.NMS
-{
-	/// <summary>
-	/// Implementation of a factory for <see cref="IConnection" /> instances.
-	/// </summary>
-	public class NMSConnectionFactory : IConnectionFactory
-	{
-		protected readonly IConnectionFactory factory;
-
-		/// <summary>
-		/// The ConnectionFactory object must define a constructor that takes as a minimum a Uri object.
-		/// Any additional parameters are optional, but will typically include a Client ID string.
-		/// </summary>
-		/// <param name="providerURI">The URI for the ActiveMQ provider.</param>
-		/// <param name="constructorParams">Optional parameters to use when creating the ConnectionFactory.</param>
-		public NMSConnectionFactory(string providerURI, params object[] constructorParams)
-			: this(new Uri(providerURI), constructorParams)
-		{
-		}
-
-		/// <summary>
-		/// The ConnectionFactory object must define a constructor that takes as a minimum a Uri object.
-		/// Any additional parameters are optional, but will typically include a Client ID string.
-		/// </summary>
-		/// <param name="uriProvider">The URI for the ActiveMQ provider.</param>
-		/// <param name="constructorParams">Optional parameters to use when creating the ConnectionFactory.</param>
-		public NMSConnectionFactory(Uri uriProvider, params object[] constructorParams)
-		{
+ */
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.IO;
+using System.Reflection;
+using System.Xml;
+
+namespace Apache.NMS
+{
+	/// <summary>
+	/// Provider implementation mapping class.
+	/// </summary>
+	public class ProviderFactoryInfo
+	{
+		public string assemblyFileName;
+		public string factoryClassName;
+
+		public ProviderFactoryInfo(string aFileName, string fClassName)
+		{
+			assemblyFileName = aFileName;
+			factoryClassName = fClassName;
+		}
+	}
+
+	/// <summary>
+	/// Implementation of a factory for <see cref="IConnection" /> instances.
+	/// </summary>
+	public class NMSConnectionFactory : IConnectionFactory
+	{
+		protected readonly IConnectionFactory factory;
+		protected static readonly Dictionary<string, ProviderFactoryInfo> schemaProviderFactoryMap;
+
+		/// <summary>
+		/// Static class constructor
+		/// </summary>
+		static NMSConnectionFactory()
+		{
+			schemaProviderFactoryMap = new Dictionary<string, ProviderFactoryInfo>();
+			schemaProviderFactoryMap["activemq"] = new ProviderFactoryInfo("Apache.NMS.ActiveMQ.dll", "Apache.NMS.ActiveMQ.ConnectionFactory");
+			schemaProviderFactoryMap["tcp"] = new ProviderFactoryInfo("Apache.NMS.ActiveMQ.dll", "Apache.NMS.ActiveMQ.ConnectionFactory");
+			schemaProviderFactoryMap["ems"] = new ProviderFactoryInfo("Apache.NMS.EMS.dll", "Apache.NMS.EMS.ConnectionFactory");
+			schemaProviderFactoryMap["msmq"] = new ProviderFactoryInfo("Apache.NMS.MSMQ.dll", "Apache.NMS.MSMQ.ConnectionFactory");
+			schemaProviderFactoryMap["stomp"] = new ProviderFactoryInfo("Apache.NMS.Stomp.dll", "Apache.NMS.Stomp.ConnectionFactory");
+			schemaProviderFactoryMap["xms"] = new ProviderFactoryInfo("Apache.NMS.XMS.dll", "Apache.NMS.XMS.ConnectionFactory");
+		}
+
+		/// <summary>
+		/// The ConnectionFactory object must define a constructor that takes as a minimum a Uri object.
+		/// Any additional parameters are optional, but will typically include a Client ID string.
+		/// </summary>
+		/// <param name="providerURI">The URI for the ActiveMQ provider.</param>
+		/// <param name="constructorParams">Optional parameters to use when creating the ConnectionFactory.</param>
+		public NMSConnectionFactory(string providerURI, params object[] constructorParams)
+			: this(new Uri(providerURI), constructorParams)
+		{
+		}
+
+		/// <summary>
+		/// The ConnectionFactory object must define a constructor that takes as a minimum a Uri object.
+		/// Any additional parameters are optional, but will typically include a Client ID string.
+		/// </summary>
+		/// <param name="uriProvider">The URI for the ActiveMQ provider.</param>
+		/// <param name="constructorParams">Optional parameters to use when creating the ConnectionFactory.</param>
+		public NMSConnectionFactory(Uri uriProvider, params object[] constructorParams)
+		{
 			this.factory = CreateConnectionFactory(uriProvider, constructorParams);
-		}
-
-		/// <summary>
-		/// Create a connection factory that can create connections for the given scheme in the URI.
-		/// </summary>
-		/// <param name="uriProvider">The URI for the ActiveMQ provider.</param>
-		/// <param name="constructorParams">Optional parameters to use when creating the ConnectionFactory.</param>
-		/// <returns>A <see cref="IConnectionFactory" /> implementation that will be used.</returns>
-		public static IConnectionFactory CreateConnectionFactory(Uri uriProvider, params object[] constructorParams)
-		{
-			IConnectionFactory connectionFactory = null;
-
-			try
-			{
-				Type factoryType = GetTypeForScheme(uriProvider.Scheme);
-
-				// If an implementation was found, try to instantiate it.
-				if(factoryType != null)
-				{
+		}
+
+		/// <summary>
+		/// Create a connection factory that can create connections for the given scheme in the URI.
+		/// </summary>
+		/// <param name="uriProvider">The URI for the ActiveMQ provider.</param>
+		/// <param name="constructorParams">Optional parameters to use when creating the ConnectionFactory.</param>
+		/// <returns>A <see cref="IConnectionFactory" /> implementation that will be used.</returns>
+		public static IConnectionFactory CreateConnectionFactory(Uri uriProvider, params object[] constructorParams)
+		{
+			IConnectionFactory connectionFactory = null;
+
+			try
+			{
+				Type factoryType = GetTypeForScheme(uriProvider.Scheme);
+
+				// If an implementation was found, try to instantiate it.
+				if(factoryType != null)
+				{
 #if NETCF
 					// Compact framework does not allow the activator ta pass parameters to a constructor.
 					connectionFactory = (IConnectionFactory) Activator.CreateInstance(factoryType);
 					connectionFactory.BrokerUri = uriProvider;
-#else
-					object[] parameters = MakeParameterArray(uriProvider, constructorParams);
-					connectionFactory = (IConnectionFactory) Activator.CreateInstance(factoryType, parameters);
-#endif
-				}
-
-				if(null == connectionFactory)
-				{
-					throw new NMSConnectionException("No IConnectionFactory implementation found for connection URI: " + uriProvider);
-				}
-			}
-			catch(NMSConnectionException)
-			{
-				throw;
-			}
-			catch(Exception ex)
-			{
-				throw new NMSConnectionException("Could not create the IConnectionFactory implementation: " + ex.Message, ex);
-			}
-
-			return connectionFactory;
-		}
-
-		/// <summary>
-		/// Finds the <see cref="System.Type" /> associated with the given scheme.
-		/// </summary>
-		/// <param name="scheme">The scheme (e.g. <c>tcp</c>, <c>activemq</c> or <c>stomp</c>).</param>
-		/// <returns>The <see cref="System.Type" /> of the ConnectionFactory that will be used
-		/// to create the connection for the specified <paramref name="scheme" />.</returns>
-		private static Type GetTypeForScheme(string scheme)
-		{
-			string[] paths = GetConfigSearchPaths();
-			string assemblyFileName;
-			string factoryClassName;
-			Type factoryType = null;
-
-			Tracer.Debug("Locating provider for scheme: " + scheme);
-
-			if(LookupConnectionFactoryInfo(paths, scheme, out assemblyFileName, out factoryClassName))
-			{
-				Assembly assembly = null;
-
-				Tracer.Debug("Attempting to locate provider assembly: " + assemblyFileName);
-				foreach(string path in paths)
-				{
-					string fullpath = Path.Combine(path, assemblyFileName);
-					Tracer.Debug("\tScanning folder: " + path);
-
-					if(File.Exists(fullpath))
-					{
-						Tracer.Debug("\tAssembly found!");
-						assembly = Assembly.LoadFrom(fullpath);
-						break;
-					}
-				}
-
-				if(null != assembly)
-				{
+#else
+					object[] parameters = MakeParameterArray(uriProvider, constructorParams);
+					connectionFactory = (IConnectionFactory) Activator.CreateInstance(factoryType, parameters);
+#endif
+				}
+
+				if(null == connectionFactory)
+				{
+					throw new NMSConnectionException("No IConnectionFactory implementation found for connection URI: " + uriProvider);
+				}
+			}
+			catch(NMSConnectionException)
+			{
+				throw;
+			}
+			catch(Exception ex)
+			{
+				throw new NMSConnectionException("Could not create the IConnectionFactory implementation: " + ex.Message, ex);
+			}
+
+			return connectionFactory;
+		}
+
+		/// <summary>
+		/// Finds the <see cref="System.Type" /> associated with the given scheme.
+		/// </summary>
+		/// <param name="scheme">The scheme (e.g. <c>tcp</c>, <c>activemq</c> or <c>stomp</c>).</param>
+		/// <returns>The <see cref="System.Type" /> of the ConnectionFactory that will be used
+		/// to create the connection for the specified <paramref name="scheme" />.</returns>
+		private static Type GetTypeForScheme(string scheme)
+		{
+			string[] paths = GetConfigSearchPaths();
+			string assemblyFileName;
+			string factoryClassName;
+			Type factoryType = null;
+
+			Tracer.Debug("Locating provider for scheme: " + scheme);
+
+			if(LookupConnectionFactoryInfo(paths, scheme, out assemblyFileName, out factoryClassName))
+			{
+				Assembly assembly = null;
+
+				Tracer.Debug("Attempting to locate provider assembly: " + assemblyFileName);
+				foreach(string path in paths)
+				{
+					string fullpath = Path.Combine(path, assemblyFileName);
+					Tracer.Debug("\tScanning folder: " + path);
+
+					if(File.Exists(fullpath))
+					{
+						Tracer.Debug("\tAssembly found!");
+						assembly = Assembly.LoadFrom(fullpath);
+						break;
+					}
+				}
+
+				if(null != assembly)
+				{
 #if NETCF
 					factoryType = assembly.GetType(factoryClassName, true);
-#else
-					factoryType = assembly.GetType(factoryClassName, true, true);
-#endif
-				}
-			}
-
-			return factoryType;
-		}
-
-		/// <summary>
-		/// Lookup the connection factory assembly filename and class name.
-		/// Read an external configuration file that maps scheme to provider implementation.
-		/// Load XML config files named: nmsprovider-{scheme}.config
-		/// Following is a sample configuration file named nmsprovider-jms.config.  Replace
-		/// the parenthesis with angle brackets for proper XML formatting.
-		///
-		///     (?xml version="1.0" encoding="utf-8" ?)
-		///     (configuration)
-		///         (provider assembly="MyCompany.NMS.JMSProvider.dll" classFactory="MyCompany.NMS.JMSProvider.ConnectionFactory"/)
-		///     (/configuration)
-		///
-		/// This configuration file would be loaded and parsed when a connection uri with a scheme of 'jms'
-		/// is used for the provider.  In this example the connection string might look like:
-		///     jms://localhost:7222
-		///
-		/// </summary>
-		/// <param name="paths">Folder paths to look in.</param>
-		/// <param name="scheme">The scheme.</param>
-		/// <param name="assemblyFileName">Name of the assembly file.</param>
-		/// <param name="factoryClassName">Name of the factory class.</param>
-		/// <returns><c>true</c> if the configuration file for the specified <paramref name="scheme" /> could
-		/// be found; otherwise, <c>false</c>.</returns>
-		private static bool LookupConnectionFactoryInfo(string[] paths, string scheme, out string assemblyFileName, out string factoryClassName)
-		{
-			string configFileName = String.Format("nmsprovider-{0}.config", scheme.ToLower());
-			bool foundFactory = false;
-
-			assemblyFileName = String.Empty;
-			factoryClassName = String.Empty;
-
-			Tracer.Debug("Attempting to locate provider configuration: " + configFileName);
-			foreach(string path in paths)
-			{
-				string fullpath = Path.Combine(path, configFileName);
-				Tracer.Debug("\tScanning folder: " + path);
-
-				try
-				{
-					if(File.Exists(fullpath))
-					{
-						Tracer.Debug("\tConfiguration file found!");
-						XmlDocument configDoc = new XmlDocument();
-
-						configDoc.Load(fullpath);
-						XmlElement providerNode = (XmlElement) configDoc.SelectSingleNode("/configuration/provider");
-
-						if(null != providerNode)
-						{
-							assemblyFileName = providerNode.GetAttribute("assembly");
-							factoryClassName = providerNode.GetAttribute("classFactory");
-							if(String.Empty != assemblyFileName && String.Empty != factoryClassName)
-							{
-								foundFactory = true;
-								break;
-							}
-						}
-					}
-				}
-				catch
-				{
-				}
-			}
-
-			return foundFactory;
-		}
-
-		/// <summary>
-		/// Get an array of search paths to look for config files.
-		/// </summary>
-		/// <returns>
-		/// A collection of search paths, including the current directory, the current AppDomain's
-		/// BaseDirectory and the current AppDomain's RelativeSearchPath.
-		/// </returns>
-		private static string[] GetConfigSearchPaths()
-		{
-			ArrayList pathList = new ArrayList();
-
-			// Check the current folder first.
-			pathList.Add("");
-#if !NETCF
-			AppDomain currentDomain = AppDomain.CurrentDomain;
-
-			// Check the folder the assembly is located in.
-			pathList.Add(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location));
-			if(null != currentDomain.BaseDirectory)
-			{
-				pathList.Add(currentDomain.BaseDirectory);
-			}
-
-			if(null != currentDomain.RelativeSearchPath)
-			{
-				pathList.Add(currentDomain.RelativeSearchPath);
-			}
-#endif
-
-			return (string[]) pathList.ToArray(typeof(string));
-		}
-
-		/// <summary>
-		/// Converts a <c>params object[]</c> collection into a plain <c>object[]</c>s, to pass to the constructor.
-		/// </summary>
-		/// <param name="firstParam">The first parameter in the collection.</param>
-		/// <param name="varParams">The remaining parameters.</param>
-		/// <returns>An array of <see cref="Object" /> instances.</returns>
-		private static object[] MakeParameterArray(object firstParam, params object[] varParams)
-		{
-			ArrayList paramList = new ArrayList();
-			paramList.Add(firstParam);
-			foreach(object param in varParams)
-			{
-				paramList.Add(param);
-			}
-
-			return paramList.ToArray();
-		}
-
-		/// <summary>
-		/// Creates a new connection.
-		/// </summary>
-		/// <returns>An <see cref="IConnection" /> created by the requested ConnectionFactory.</returns>
-		public IConnection CreateConnection()
-		{
-			return this.factory.CreateConnection();
-		}
-
-		/// <summary>
-		/// Creates a new connection with the given <paramref name="userName" /> and <paramref name="password" /> credentials.
-		/// </summary>
-		/// <param name="userName">The username to use when establishing the connection.</param>
-		/// <param name="password">The password to use when establishing the connection.</param>
-		/// <returns>An <see cref="IConnection" /> created by the requested ConnectionFactory.</returns>
-		public IConnection CreateConnection(string userName, string password)
-		{
-			return this.factory.CreateConnection(userName, password);
-		}
-
-		/// <summary>
-		/// Get/or set the broker Uri.
-		/// </summary>
-		public Uri BrokerUri
-		{
-			get { return ConnectionFactory.BrokerUri; }
-			set { ConnectionFactory.BrokerUri = value; }
-		}
-
-		/// <summary>
-		/// The actual IConnectionFactory implementation that is being used.  This implementation
-		/// depends on the scheme of the URI used when constructed.
-		/// </summary>
-		public IConnectionFactory ConnectionFactory
-		{
-			get { return factory; }
-		}
-	}
-}
+#else
+					factoryType = assembly.GetType(factoryClassName, true, true);
+#endif
+				}
+			}
+
+			return factoryType;
+		}
+
+		/// <summary>
+		/// Lookup the connection factory assembly filename and class name.
+		/// Read an external configuration file that maps scheme to provider implementation.
+		/// Load XML config files named: nmsprovider-{scheme}.config
+		/// Following is a sample configuration file named nmsprovider-jms.config.  Replace
+		/// the parenthesis with angle brackets for proper XML formatting.
+		///
+		///     (?xml version="1.0" encoding="utf-8" ?)
+		///     (configuration)
+		///         (provider assembly="MyCompany.NMS.JMSProvider.dll" classFactory="MyCompany.NMS.JMSProvider.ConnectionFactory"/)
+		///     (/configuration)
+		///
+		/// This configuration file would be loaded and parsed when a connection uri with a scheme of 'jms'
+		/// is used for the provider.  In this example the connection string might look like:
+		///     jms://localhost:7222
+		///
+		/// </summary>
+		/// <param name="paths">Folder paths to look in.</param>
+		/// <param name="scheme">The scheme.</param>
+		/// <param name="assemblyFileName">Name of the assembly file.</param>
+		/// <param name="factoryClassName">Name of the factory class.</param>
+		/// <returns><c>true</c> if the configuration file for the specified <paramref name="scheme" /> could
+		/// be found; otherwise, <c>false</c>.</returns>
+		private static bool LookupConnectionFactoryInfo(string[] paths, string scheme, out string assemblyFileName, out string factoryClassName)
+		{
+			bool foundFactory = false;
+			string schemeLower = scheme.ToLower();
+			ProviderFactoryInfo pfi;
+
+			// Check for standard provider implementations.
+			if(schemaProviderFactoryMap.TryGetValue(schemeLower, out pfi))
+			{
+				assemblyFileName = pfi.assemblyFileName;
+				factoryClassName = pfi.factoryClassName;
+				foundFactory = true;
+				Tracer.DebugFormat("Selected standard provider for {0}: {1}, {2}", schemeLower, assemblyFileName, factoryClassName);
+			}
+			else
+			{
+				// Look for a custom configuration to handle this scheme.
+				string configFileName = String.Format("nmsprovider-{0}.config", schemeLower);
+
+				assemblyFileName = String.Empty;
+				factoryClassName = String.Empty;
+
+				Tracer.DebugFormat("Attempting to locate provider configuration: {0}", configFileName);
+				foreach(string path in paths)
+				{
+					string fullpath = Path.Combine(path, configFileName);
+					Tracer.DebugFormat("\tScanning folder: {0}", path);
+
+					try
+					{
+						if(File.Exists(fullpath))
+						{
+							Tracer.DebugFormat("\tConfiguration file found in {0}", fullpath);
+							XmlDocument configDoc = new XmlDocument();
+
+							configDoc.Load(fullpath);
+							XmlElement providerNode = (XmlElement) configDoc.SelectSingleNode("/configuration/provider");
+
+							if(null != providerNode)
+							{
+								assemblyFileName = providerNode.GetAttribute("assembly");
+								factoryClassName = providerNode.GetAttribute("classFactory");
+								if(String.Empty != assemblyFileName && String.Empty != factoryClassName)
+								{
+									foundFactory = true;
+									Tracer.DebugFormat("Selected custom provider for {0}: {1}, {2}", schemeLower, assemblyFileName, factoryClassName);
+									break;
+								}
+							}
+						}
+					}
+					catch(Exception ex)
+					{
+						Tracer.DebugFormat("Exception while scanning {0}: {1}", fullpath, ex.Message);
+					}
+				}
+			}
+
+			return foundFactory;
+		}
+
+		/// <summary>
+		/// Get an array of search paths to look for config files.
+		/// </summary>
+		/// <returns>
+		/// A collection of search paths, including the current directory, the current AppDomain's
+		/// BaseDirectory and the current AppDomain's RelativeSearchPath.
+		/// </returns>
+		private static string[] GetConfigSearchPaths()
+		{
+			ArrayList pathList = new ArrayList();
+
+			// Check the current folder first.
+			pathList.Add("");
+#if !NETCF
+			AppDomain currentDomain = AppDomain.CurrentDomain;
+
+			// Check the folder the assembly is located in.
+			pathList.Add(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location));
+			if(null != currentDomain.BaseDirectory)
+			{
+				pathList.Add(currentDomain.BaseDirectory);
+			}
+
+			if(null != currentDomain.RelativeSearchPath)
+			{
+				pathList.Add(currentDomain.RelativeSearchPath);
+			}
+#endif
+
+			return (string[]) pathList.ToArray(typeof(string));
+		}
+
+		/// <summary>
+		/// Converts a <c>params object[]</c> collection into a plain <c>object[]</c>s, to pass to the constructor.
+		/// </summary>
+		/// <param name="firstParam">The first parameter in the collection.</param>
+		/// <param name="varParams">The remaining parameters.</param>
+		/// <returns>An array of <see cref="Object" /> instances.</returns>
+		private static object[] MakeParameterArray(object firstParam, params object[] varParams)
+		{
+			ArrayList paramList = new ArrayList();
+			paramList.Add(firstParam);
+			foreach(object param in varParams)
+			{
+				paramList.Add(param);
+			}
+
+			return paramList.ToArray();
+		}
+
+		/// <summary>
+		/// Creates a new connection.
+		/// </summary>
+		/// <returns>An <see cref="IConnection" /> created by the requested ConnectionFactory.</returns>
+		public IConnection CreateConnection()
+		{
+			return this.factory.CreateConnection();
+		}
+
+		/// <summary>
+		/// Creates a new connection with the given <paramref name="userName" /> and <paramref name="password" /> credentials.
+		/// </summary>
+		/// <param name="userName">The username to use when establishing the connection.</param>
+		/// <param name="password">The password to use when establishing the connection.</param>
+		/// <returns>An <see cref="IConnection" /> created by the requested ConnectionFactory.</returns>
+		public IConnection CreateConnection(string userName, string password)
+		{
+			return this.factory.CreateConnection(userName, password);
+		}
+
+		/// <summary>
+		/// Get/or set the broker Uri.
+		/// </summary>
+		public Uri BrokerUri
+		{
+			get { return ConnectionFactory.BrokerUri; }
+			set { ConnectionFactory.BrokerUri = value; }
+		}
+
+		/// <summary>
+		/// The actual IConnectionFactory implementation that is being used.  This implementation
+		/// depends on the scheme of the URI used when constructed.
+		/// </summary>
+		public IConnectionFactory ConnectionFactory
+		{
+			get { return factory; }
+		}
+	}
+}