Author: gbayon
Date: Sat Jul 23 03:48:24 2005
New Revision: 224454

URL: http://svn.apache.org/viewcvs?rev=224454&view=rev
Log:
- Verify IBATISNET-94 +  fixed incorrect initialisation of SessionHandler on 
the DaoManager

Removed:
    
ibatis/trunk/cs/mapper/IBatisNet.DataAccess/DaoSessionHandlers/DaoSessionHandlerFactory.cs
Modified:
    
ibatis/trunk/cs/mapper/IBatisNet.DataAccess/Configuration/DaoSessionHandler.cs
    
ibatis/trunk/cs/mapper/IBatisNet.DataAccess/Configuration/DomDaoManagerBuilder.cs
    ibatis/trunk/cs/mapper/IBatisNet.DataAccess/IBatisNet.DataAccess.csproj
    ibatis/trunk/cs/mapper/IBatisNet.DataAccess/Scope/ConfigurationScope.cs

Modified: 
ibatis/trunk/cs/mapper/IBatisNet.DataAccess/Configuration/DaoSessionHandler.cs
URL: 
http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataAccess/Configuration/DaoSessionHandler.cs?rev=224454&r1=224453&r2=224454&view=diff
==============================================================================
--- 
ibatis/trunk/cs/mapper/IBatisNet.DataAccess/Configuration/DaoSessionHandler.cs 
(original)
+++ 
ibatis/trunk/cs/mapper/IBatisNet.DataAccess/Configuration/DaoSessionHandler.cs 
Sat Jul 23 03:48:24 2005
@@ -25,16 +25,11 @@
 #endregion
 
 #region Imports
+
 using System;
 using System.Xml.Serialization;
-using System.Reflection;
-
-using IBatisNet.Common;
-using IBatisNet.Common.Exceptions;    
 using IBatisNet.Common.Utilities;
 
-using IBatisNet.DataAccess.Interfaces;
-using IBatisNet.DataAccess.Exceptions;
 #endregion
 
 namespace IBatisNet.DataAccess.Configuration
@@ -46,13 +41,6 @@
        [XmlRoot("handler", Namespace="http://ibatis.apache.org/dataAccess";)]
        public class DaoSessionHandler
        {
-               #region Constants
-               /// <summary>
-               /// An empty object array.
-               /// </summary>
-               public static readonly object [] EmptyObjects = new object [] 
{};
-               #endregion
-
                #region Fields
                [NonSerialized]
                private string _name = string.Empty;
@@ -92,6 +80,13 @@
                        }
                }
 
+               /// <summary>
+               /// The impelmenattion type
+               /// </summary>
+               public Type TypeInstance
+               {
+                       get { return Resources.TypeForName(_implementation); }
+               }
 
                /// <summary>
                /// 
@@ -134,31 +129,6 @@
                        _name = name;
                }
                #endregion
-
-               #region Methods
-               /// <summary>
-               /// Build an implementation of the IDaoSessionHandler
-               /// </summary>
-               /// <returns>An implementation</returns>
-               public IDaoSessionHandler GetIDaoSessionHandler()
-               {
-                       Type type = null;
-                       
-                       try
-                       {
-                               type = Resources.TypeForName(_implementation);
-
-                               return 
(IDaoSessionHandler)Activator.CreateInstance(type, EmptyObjects);
-                       }
-                       catch(Exception e)
-                       {
-                               throw new ConfigurationException(
-                                       string.Format("DaoManager could not 
configure DaoSessionHandler. DaoSessionHandler named \"{0}\", failed. Cause: 
{1}", _name, e.Message),e
-                                       );
-                       }
-               }
-               #endregion
-
 
        }
 }

Modified: 
ibatis/trunk/cs/mapper/IBatisNet.DataAccess/Configuration/DomDaoManagerBuilder.cs
URL: 
http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataAccess/Configuration/DomDaoManagerBuilder.cs?rev=224454&r1=224453&r2=224454&view=diff
==============================================================================
--- 
ibatis/trunk/cs/mapper/IBatisNet.DataAccess/Configuration/DomDaoManagerBuilder.cs
 (original)
+++ 
ibatis/trunk/cs/mapper/IBatisNet.DataAccess/Configuration/DomDaoManagerBuilder.cs
 Sat Jul 23 03:48:24 2005
@@ -58,8 +58,11 @@
                private const string PROVIDER_XML_NAMESPACE = 
"http://ibatis.apache.org/providers";;
                private const string DAO_XML_NAMESPACE = 
"http://ibatis.apache.org/dataAccess";;
 
-               private const string PROPERTY_ELEMENT_KEY_ATTRIB = "key";
-               private const string PROPERTY_ELEMENT_VALUE_ATTRIB = "value";
+               private const string KEY_ATTRIBUTE = "key";
+               private const string VALUE_ATTRIBUTE = "value";
+               private const string ID_ATTRIBUTE = "id";
+
+               private readonly object [] EmptyObjects = new object [] {};
 
                /// <summary>
                /// Key for default config name
@@ -445,13 +448,13 @@
                                        
configurationScope.ErrorContext.ObjectId = daoSessionHandler.Name;
                                        
configurationScope.ErrorContext.MoreInfo = "build daoSession handler";
 
-                                       IDaoSessionHandler sessionHandler = 
daoSessionHandler.GetIDaoSessionHandler();
+                                       //IDaoSessionHandler sessionHandler = 
daoSessionHandler.GetIDaoSessionHandler();
 
-                                       
configurationScope.DaoSectionHandlers[daoSessionHandler.Name] = sessionHandler;
+                                       
configurationScope.DaoSectionHandlers[daoSessionHandler.Name] = 
daoSessionHandler.TypeInstance;
 
                                        if (daoSessionHandler.IsDefault == true)
                                        {
-                                               
configurationScope.DaoSectionHandlers[DEFAULT_DAOSESSIONHANDLER_NAME] = 
sessionHandler;
+                                               
configurationScope.DaoSectionHandlers[DEFAULT_DAOSESSIONHANDLER_NAME] = 
daoSessionHandler.TypeInstance;
                                        }
                                }
                        }
@@ -538,12 +541,13 @@
                                resources.Add( "UseConfigFileWatcher", 
configurationScope.UseConfigFileWatcher);
 
                                IDaoSessionHandler sessionHandler = null;
+                               Type typeSessionHandler = null;
 
                                if (nodeSessionHandler!= null)
                                {
                                        
configurationScope.ErrorContext.Resource = 
nodeSessionHandler.InnerXml.ToString();
                                        
-                                       sessionHandler = 
(IDaoSessionHandler)configurationScope.DaoSectionHandlers[nodeSessionHandler.Attributes["id"].Value];
+                                       typeSessionHandler = 
configurationScope.DaoSectionHandlers[nodeSessionHandler.Attributes[ID_ATTRIBUTE].Value]
 as Type;
 
                                        // Parse property node
                                        foreach(XmlNode nodeProperty in 
nodeSessionHandler.SelectNodes( ApplyNamespacePrefix(XML_PROPERTY), 
configurationScope.XmlNamespaceManager ))
@@ -554,12 +558,23 @@
                                }
                                else
                                {
-                                       sessionHandler = 
(IDaoSessionHandler)configurationScope.DaoSectionHandlers[DEFAULT_DAOSESSIONHANDLER_NAME];
+                                       typeSessionHandler = 
configurationScope.DaoSectionHandlers[DEFAULT_DAOSESSIONHANDLER_NAME] as Type;
                                }
 
                                // Configure the sessionHandler
                                configurationScope.ErrorContext.ObjectId = 
sessionHandler.GetType().FullName;
 
+                               try
+                               {
+                                       sessionHandler 
=(IDaoSessionHandler)Activator.CreateInstance(typeSessionHandler, EmptyObjects);
+                               }
+                               catch(Exception e)
+                               {
+                                       throw new ConfigurationException(
+                                               string.Format("DaoManager could 
not configure DaoSessionHandler. DaoSessionHandler of type \"{0}\", failed. 
Cause: {1}", typeSessionHandler.Name, e.Message),e
+                                               );
+                               }
+
                                
sessionHandler.Configure(configurationScope.Properties,  resources );
 
                                daoManager.DaoSessionHandler = sessionHandler;
@@ -605,8 +620,8 @@
                                {
                                        foreach (XmlNode propertyNode in 
nodeProperties.SelectNodes(ApplyNamespacePrefix(XML_PROPERTY), 
configurationScope.XmlNamespaceManager))
                                        {
-                                               XmlAttribute keyAttrib = 
propertyNode.Attributes[PROPERTY_ELEMENT_KEY_ATTRIB];
-                                               XmlAttribute valueAttrib = 
propertyNode.Attributes[PROPERTY_ELEMENT_VALUE_ATTRIB];
+                                               XmlAttribute keyAttrib = 
propertyNode.Attributes[KEY_ATTRIBUTE];
+                                               XmlAttribute valueAttrib = 
propertyNode.Attributes[VALUE_ATTRIBUTE];
 
                                                if ( keyAttrib != null && 
valueAttrib!=null)
                                                {
@@ -620,8 +635,8 @@
                                                        
                                                        foreach (XmlNode node 
in propertiesConfig.SelectNodes(XML_SETTINGS_ADD))
                                                        {
-                                                               
configurationScope.Properties[node.Attributes[PROPERTY_ELEMENT_KEY_ATTRIB].Value]
 = node.Attributes[PROPERTY_ELEMENT_VALUE_ATTRIB].Value;
-                                                               _logger.Info( 
string.Format("Add property \"{0}\" value 
\"{1}\"",node.Attributes[PROPERTY_ELEMENT_KEY_ATTRIB].Value,node.Attributes[PROPERTY_ELEMENT_VALUE_ATTRIB].Value)
 );
+                                                               
configurationScope.Properties[node.Attributes[KEY_ATTRIBUTE].Value] = 
node.Attributes[VALUE_ATTRIBUTE].Value;
+                                                               _logger.Info( 
string.Format("Add property \"{0}\" value 
\"{1}\"",node.Attributes[KEY_ATTRIBUTE].Value,node.Attributes[VALUE_ATTRIBUTE].Value)
 );
                                                        }
                                                }
                                        }
@@ -639,8 +654,8 @@
 
                                        foreach (XmlNode node in 
propertiesConfig.SelectNodes(XML_SETTINGS_ADD))
                                        {
-                                               
configurationScope.Properties[node.Attributes[PROPERTY_ELEMENT_KEY_ATTRIB].Value]
 = node.Attributes[PROPERTY_ELEMENT_VALUE_ATTRIB].Value;
-                                               _logger.Info( 
string.Format("Add property \"{0}\" value 
\"{1}\"",node.Attributes[PROPERTY_ELEMENT_KEY_ATTRIB].Value,node.Attributes[PROPERTY_ELEMENT_VALUE_ATTRIB].Value)
 );
+                                               
configurationScope.Properties[node.Attributes[KEY_ATTRIBUTE].Value] = 
node.Attributes[VALUE_ATTRIBUTE].Value;
+                                               _logger.Info( 
string.Format("Add property \"{0}\" value 
\"{1}\"",node.Attributes[KEY_ATTRIBUTE].Value,node.Attributes[VALUE_ATTRIBUTE].Value)
 );
                                        }                                       
                                }
 //                             // Load the file defined by the resource 
attribut

Modified: 
ibatis/trunk/cs/mapper/IBatisNet.DataAccess/IBatisNet.DataAccess.csproj
URL: 
http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataAccess/IBatisNet.DataAccess.csproj?rev=224454&r1=224453&r2=224454&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataAccess/IBatisNet.DataAccess.csproj 
(original)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataAccess/IBatisNet.DataAccess.csproj Sat 
Jul 23 03:48:24 2005
@@ -173,11 +173,6 @@
                     BuildAction = "Compile"
                 />
                 <File
-                    RelPath = "DaoSessionHandlers\DaoSessionHandlerFactory.cs"
-                    SubType = "Code"
-                    BuildAction = "Compile"
-                />
-                <File
                     RelPath = "DaoSessionHandlers\SimpleDaoSession.cs"
                     SubType = "Code"
                     BuildAction = "Compile"

Modified: 
ibatis/trunk/cs/mapper/IBatisNet.DataAccess/Scope/ConfigurationScope.cs
URL: 
http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataAccess/Scope/ConfigurationScope.cs?rev=224454&r1=224453&r2=224454&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataAccess/Scope/ConfigurationScope.cs 
(original)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataAccess/Scope/ConfigurationScope.cs Sat 
Jul 23 03:48:24 2005
@@ -25,14 +25,12 @@
 #endregion
 
 #region Using
-using System;
-using System.Data;
-using System.Collections;
+
 using System.Collections.Specialized;
 using System.Xml;
-
-using IBatisNet.DataAccess.DaoSessionHandlers;
 using IBatisNet.DataAccess.Configuration;
+using IBatisNet.DataAccess.DaoSessionHandlers;
+
 #endregion
 
 namespace IBatisNet.DataAccess.Scope
@@ -67,9 +65,9 @@
                        _providers.Clear();
                        _daoSectionHandlers.Clear();
 
-                       
_daoSectionHandlers.Add(DomDaoManagerBuilder.DEFAULT_DAOSESSIONHANDLER_NAME, 
DaoSessionHandlerFactory.GetDaoSessionHandler("ADONET"));
-                       _daoSectionHandlers.Add("ADONET", 
DaoSessionHandlerFactory.GetDaoSessionHandler("ADONET"));
-                       _daoSectionHandlers.Add("SqlMap", 
DaoSessionHandlerFactory.GetDaoSessionHandler("SqlMap"));
+                       
_daoSectionHandlers.Add(DomDaoManagerBuilder.DEFAULT_DAOSESSIONHANDLER_NAME, 
typeof(SimpleDaoSessionHandler));
+                       _daoSectionHandlers.Add("ADONET", 
typeof(SimpleDaoSessionHandler));
+                       _daoSectionHandlers.Add("SqlMap", 
typeof(SqlMapDaoSessionHandler));
 
                }
                #endregion 


Reply via email to