Author: jgomes
Date: Tue Aug 10 20:36:53 2010
New Revision: 984203

URL: http://svn.apache.org/viewvc?rev=984203&view=rev
Log:
Modify load search order to look for config file first before using default 
provider assembly information.  This allows better run-time configuration 
flexibility.
Fixes [AMQNET-262]. (See https://issues.apache.org/activemq/browse/AMQNET-262)

Modified:
    
activemq/activemq-dotnet/Apache.NMS/trunk/src/main/csharp/NMSConnectionFactory.cs

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=984203&r1=984202&r2=984203&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
 Tue Aug 10 20:36:53 2010
@@ -243,55 +243,56 @@ namespace Apache.NMS
                        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);
+                       // Look for a custom configuration to handle this 
scheme.
+                       string configFileName = 
String.Format("nmsprovider-{0}.config", schemeLower);
 
-                               assemblyFileName = String.Empty;
-                               factoryClassName = String.Empty;
+                       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("Looking for: {0}", 
fullpath);
+                       Tracer.DebugFormat("Attempting to locate provider 
configuration: {0}", configFileName);
+                       foreach(string path in paths)
+                       {
+                               string fullpath = Path.Combine(path, 
configFileName);
+                               Tracer.DebugFormat("Looking for: {0}", 
fullpath);
 
-                                       try
+                               try
+                               {
+                                       if(File.Exists(fullpath))
                                        {
-                                               if(File.Exists(fullpath))
-                                               {
-                                                       
Tracer.DebugFormat("\tConfiguration file found in {0}", fullpath);
-                                                       XmlDocument configDoc = 
new XmlDocument();
+                                               
Tracer.DebugFormat("\tConfiguration file found in {0}", fullpath);
+                                               XmlDocument configDoc = new 
XmlDocument();
 
-                                                       
configDoc.Load(fullpath);
-                                                       XmlElement providerNode 
= (XmlElement) configDoc.SelectSingleNode("/configuration/provider");
+                                               configDoc.Load(fullpath);
+                                               XmlElement providerNode = 
(XmlElement) configDoc.SelectSingleNode("/configuration/provider");
 
-                                                       if(null != providerNode)
+                                               if(null != providerNode)
+                                               {
+                                                       assemblyFileName = 
providerNode.GetAttribute("assembly");
+                                                       factoryClassName = 
providerNode.GetAttribute("classFactory");
+                                                       
if(!String.IsNullOrEmpty(assemblyFileName) && 
!String.IsNullOrEmpty(factoryClassName))
                                                        {
-                                                               
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;
-                                                               }
+                                                               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);
-                                       }
+                               }
+                               catch(Exception ex)
+                               {
+                                       Tracer.DebugFormat("Exception while 
scanning {0}: {1}", fullpath, ex.Message);
+                               }
+                       }
+
+                       if(!foundFactory)
+                       {
+                               // 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);
                                }
                        }
 


Reply via email to