Преглед на файлове

In System.Data.Common:
2005-03-01 Sureshkumar T <[email protected]>

* ConnectionStringsSectionHandler.cs: Added. configuration section
handler for section "connectionStrings". This handler is a ad hoc
solution till the new configuration API is available in mono.

In .:
2005-03-01 Sureshkumar T <[email protected]>

* System.Data.dll.sources: Added System.Data.Common/
ConnectionStringsSectionHandler.cs.
* app_test_2.0.config: Changed the configuration handler for
seciton "connectionStrings".

In Test/System.Data.Common:

* ConnectionStringsSectionTest.cs : removed console.writeline-s.

svn path=/trunk/mcs/; revision=41307

Sureshkumar T преди 21 години
родител
ревизия
f6b6dc76a5

+ 7 - 0
mcs/class/System.Data/ChangeLog

@@ -1,3 +1,10 @@
+2005-03-01  Sureshkumar T  <[email protected]>
+
+	* System.Data.dll.sources: Added System.Data.Common/
+	ConnectionStringsSectionHandler.cs.
+	* app_test_2.0.config: Changed the configuration handler for
+	seciton "connectionStrings".
+
 2005-02-22  Sureshkumar T  <[email protected]>
         
 	* System.Data_test.dll.sources: Added

+ 6 - 0
mcs/class/System.Data/System.Data.Common/ChangeLog

@@ -1,3 +1,9 @@
+2005-03-01  Sureshkumar T  <[email protected]>
+
+	* ConnectionStringsSectionHandler.cs: Added. configuration section
+	handler for section "connectionStrings". This handler is a ad hoc
+	solution till the new configuration API is available in mono.
+
 2005-02-04  Sureshkumar T  <[email protected]>
 
 	* DbDataAdapter.cs (Update ()) :

+ 97 - 0
mcs/class/System.Data/System.Data.Common/ConnectionStringsSectionHandler.cs

@@ -0,0 +1,97 @@
+//
+// System.Data.Common.ConnectionStringsSectionHandler.cs
+//
+// Author:
+//   Sureshkumar T ([email protected])
+//
+// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_2_0
+
+using System.IO;
+using System.Xml;
+using System.Xml.Serialization;
+using System.Globalization;
+using System.Configuration;
+
+namespace System.Data.Common {
+
+        /// <summary>
+        /// This is a handler class for the configuration section <b>connectionStrings</b>.
+        /// This handler is a temporary solution till the new 2.0 configuration API is supported
+        /// in mono.
+        /// </summary>
+	public class ConnectionStringsSectionHandler : IConfigurationSectionHandler
+	{
+		#region Constructors
+
+		public ConnectionStringsSectionHandler ()
+		{
+		}
+
+		#endregion // Constructors
+
+		#region Methods
+
+		public virtual object Create (object parent, object configContext, XmlNode section)
+		{
+                        ConnectionStringsSection csSection  = new ConnectionStringsSection ();
+                        ConnectionStringSettingsCollection csList = csSection.ConnectionStrings;
+                        foreach (XmlNode addNode in section.SelectNodes (".//add")) {
+                                if (addNode.NodeType != XmlNodeType.Element)
+                                        continue;
+                                string name;
+                                string providerName;
+                                string connectionString;
+                                
+                                name = GetAttributeValue (addNode, "name");
+                                providerName = GetAttributeValue (addNode, "providerName");
+                                connectionString = GetAttributeValue (addNode, "connectionString");
+                                
+                                ConnectionStringSettings cs = new ConnectionStringSettings (name, connectionString, providerName);
+                                csList.Add (cs);
+                        }
+
+                        return csSection;
+                        
+		}
+
+                internal string GetAttributeValue (XmlNode node, string name)
+                {
+                        XmlAttribute attr = node.Attributes[name];
+                        if (attr == null)
+                                throw new ConfigurationException ("Required Attribute '" + name +
+                                                                  "' is  missing!", node);
+                        string value = attr.Value;
+                        if (value == "")
+                                throw new ConfigurationException ("Attribute '" + name + "' cannot be empty!",
+                                                                  node);
+                        return value;
+                }
+
+
+		#endregion // Methods
+	}
+}
+
+#endif // NET_2_0

+ 1 - 0
mcs/class/System.Data/System.Data.dll.sources

@@ -159,6 +159,7 @@ System.Data.Common/DbParameterCollection.cs
 System.Data.Common/DbParameter.cs
 System.Data.Common/DbProviderConfigurationHandler.cs
 System.Data.Common/DbProviderFactoriesConfigurationHandler.cs
+System.Data.Common/ConnectionStringsSectionHandler.cs
 System.Data.Common/DbProviderFactories.cs
 System.Data.Common/DbProviderFactory.cs
 System.Data.Common/DbProviderSupportedClasses.cs

+ 0 - 4
mcs/class/System.Data/Test/System.Data.Common/ConnectionStringsSectionTest.cs

@@ -48,13 +48,9 @@ namespace MonoTests.System.Configuration
         {
     
             object o = ConfigurationSettings.GetConfig ("connectionStrings_test");
-            Console.WriteLine ("done");
             Assert.IsNotNull (o, "getconfig returns null");
 
             ConnectionStringsSection css = (ConnectionStringsSection) o;
-            foreach (ConnectionStringSettings m in css.ConnectionStrings) {
-                Console.WriteLine (m.Name);
-            }
             ConnectionStringSettings cs= css.ConnectionStrings ["Publications"];
             Assert.IsNotNull (cs, "connectionstringsettings is null");
             

+ 1 - 3
mcs/class/System.Data/app_test_2.0.config

@@ -5,7 +5,7 @@
              type="System.Data.Common.DbProviderFactoriesConfigurationHandler, System.Data, Version=2.0, Culture=neutral"/>
            
         <section name="connectionStrings_test"
-            type="System.Configuration.ConnectionStringsSection, System, Version=2.0, Culture=neutral"/>
+            type="System.Data.Common.ConnectionStringsSectionHandler, System.Data, Version=2.0, Culture=neutral"/>
             
     </configSections>
      <system.data_test>
@@ -20,7 +20,5 @@
     <connectionStrings_test>
         <add name="Publications" providerName="System.Data.SqlClient" 
          connectionString="Data Source=MyServer;Initial Catalog=pubs;integrated security=SSPI" />
-        <add name="Publications" providerName="System.Data.SqlClient1" 
-         connectionString="Data Source=MyServer;Initial Catalog=pubs;integrated security=SSPI" />
     </connectionStrings_test>
 </configuration>