You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ibatis.apache.org by gb...@apache.org on 2005/05/27 22:51:54 UTC
svn commit: r178821 -
/incubator/ibatis/trunk/cs/mapper/IBatisNet.Common/Utilities
/incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper
/incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test
/incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests
Author: gbayon
Date: Fri May 27 13:51:53 2005
New Revision: 178821
URL: http://svn.apache.org/viewcvs?rev=178821&view=rev
Log:
- Fixed JIRA-71
Support
Relative Paths
-----------------------
SqlMapper.Configure("sqlMap.Config")
SqlMapper.ConfigureAndWatch("sqlMap.Config")
Absolute Paths
------------------------
SqlMapper.Configure("file://c:\MyDirectory\sqlMap.Config")
SqlMapper.Configure(FileInfo absolutePath)
SqlMapper.Configure(Uri location) [should be absolute!]
SqlMapper.ConfigureAndWatch("file://c:\MyDirectory\sqlMap.Config")
SqlMapper.ConfigureAndWatch(FileInfo absolutePath)
Stream
------------
SqlMapper.Configure(Stream resource)
See ConfigureTest
Added:
incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/ConfigureTest.cs
Modified:
incubator/ibatis/trunk/cs/mapper/IBatisNet.Common/Utilities/Resources.cs
incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/IBatisNet.DataMapper.Test.csproj
incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/BaseTest.cs
incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/CacheTest.cs
incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapper.cs
Modified: incubator/ibatis/trunk/cs/mapper/IBatisNet.Common/Utilities/Resources.cs
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/cs/mapper/IBatisNet.Common/Utilities/Resources.cs?rev=178821&r1=178820&r2=178821&view=diff
==============================================================================
--- incubator/ibatis/trunk/cs/mapper/IBatisNet.Common/Utilities/Resources.cs (original)
+++ incubator/ibatis/trunk/cs/mapper/IBatisNet.Common/Utilities/Resources.cs Fri May 27 13:51:53 2005
@@ -278,26 +278,62 @@
public static XmlDocument GetStreamAsXmlDocument(Stream resource)
{
XmlDocument config = new XmlDocument();
- XmlTextReader reader = null;
try
{
- reader = new XmlTextReader( resource );
- config.Load(reader);
+ config.Load(resource);
}
catch(Exception e)
{
throw new ConfigurationException(
string.Format("Unable to load XmlDocument via stream. Cause : {1}",
e.Message ) ,e);
+ }
+
+ return config;
+ }
+
+ /// <summary>
+ /// Get XmlDocument from a FileInfo resource
+ /// </summary>
+ /// <param name="resource"></param>
+ /// <returns></returns>
+ public static XmlDocument GetFileInfoAsXmlDocument(FileInfo resource)
+ {
+ XmlDocument config = new XmlDocument();
+ try
+ {
+ config.Load( resource.FullName );
}
- finally
+ catch(Exception e)
{
- if (reader != null)
- {
- reader.Close();
- }
+ throw new ConfigurationException(
+ string.Format("Unable to load XmlDocument via FileInfo. Cause : {1}",
+ e.Message ) ,e);
+ }
+
+ return config;
+ }
+
+ /// <summary>
+ /// Get XmlDocument from a Uri resource
+ /// </summary>
+ /// <param name="resource"></param>
+ /// <returns></returns>
+ public static XmlDocument GetUriAsXmlDocument(Uri resource)
+ {
+ XmlDocument config = new XmlDocument();
+
+ try
+ {
+ config.Load( resource.AbsoluteUri );
+ }
+ catch(Exception e)
+ {
+ throw new ConfigurationException(
+ string.Format("Unable to load XmlDocument via Uri. Cause : {1}",
+ e.Message ) ,e);
}
return config;
@@ -311,12 +347,10 @@
public static XmlDocument GetResourceAsXmlDocument(string resource)
{
XmlDocument config = new XmlDocument();
- XmlTextReader reader = null;
try
{
- reader = new XmlTextReader(Path.Combine(_applicationBase, resource));
- config.Load(reader);
+ config.Load( Path.Combine(_applicationBase, resource) );
}
catch(Exception e)
{
@@ -324,14 +358,6 @@
string.Format("Unable to load file via resource \"{0}\" as resource. Cause : {1}",
resource,
e.Message ) ,e);
-
- }
- finally
- {
- if (reader != null)
- {
- reader.Close();
- }
}
return config;
@@ -346,12 +372,10 @@
public static XmlDocument GetUrlAsXmlDocument(string url)
{
XmlDocument config = new XmlDocument();
- XmlTextReader reader = null;
try
{
- reader = new XmlTextReader(url);
- config.Load(reader);
+ config.Load(url);
}
catch(Exception e)
{
@@ -360,13 +384,6 @@
url,
e.Message ) ,e);
}
- finally
- {
- if (reader != null)
- {
- reader.Close();
- }
- }
return config;
}
@@ -375,15 +392,14 @@
/// <summary>
///
/// </summary>
- /// <param name="fileResource"></param>
+ /// <param name="resource"></param>
/// <returns></returns>
- public static XmlDocument GetEmbeddedResourceAsXmlDocument(string fileResource)
+ public static XmlDocument GetEmbeddedResourceAsXmlDocument(string resource)
{
XmlDocument config = new XmlDocument();
bool isLoad = false;
- XmlTextReader reader = null;
- FileAssemblyInfo fileInfo = new FileAssemblyInfo (fileResource);
+ FileAssemblyInfo fileInfo = new FileAssemblyInfo (resource);
if (fileInfo.IsAssemblyQualified)
{
Assembly assembly = Assembly.LoadWithPartialName (fileInfo.AssemblyName);
@@ -392,29 +408,21 @@
// Console.WriteLine(fileName);
// }
- Stream resource = assembly.GetManifestResourceStream(fileInfo.ResourceFileName);
- if (resource != null)
+ Stream stream = assembly.GetManifestResourceStream(fileInfo.ResourceFileName);
+ if (stream != null)
{
try
{
- reader = new XmlTextReader(resource);
- config.Load(reader);
+ config.Load(stream);
isLoad = true;
}
catch(Exception e)
{
throw new ConfigurationException(
string.Format("Unable to load file \"{0}\" in embedded resource. Cause : {1}",
- fileResource,
+ resource,
e.Message ) ,e);
}
- finally
- {
- if (reader != null)
- {
- reader.Close();
- }
- }
}
}
else
@@ -423,28 +431,20 @@
Assembly [] assemblies = AppDomain.CurrentDomain.GetAssemblies ();
foreach (Assembly assembly in assemblies)
{
- Stream resource = assembly.GetManifestResourceStream(fileInfo.FileName);
- if (resource != null)
+ Stream stream = assembly.GetManifestResourceStream(fileInfo.FileName);
+ if (stream != null)
{
try
{
- reader = new XmlTextReader(resource);
- config.Load(reader);
+ config.Load(stream);
isLoad = true;
}
catch(Exception e)
{
throw new ConfigurationException(
string.Format("Unable to load file \"{0}\" in embedded resource. Cause : ",
- fileResource,
+ resource,
e.Message ) ,e);
- }
- finally
- {
- if (reader != null)
- {
- reader.Close();
- }
}
break;
}
Modified: incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/IBatisNet.DataMapper.Test.csproj
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/IBatisNet.DataMapper.Test.csproj?rev=178821&r1=178820&r2=178821&view=diff
==============================================================================
--- incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/IBatisNet.DataMapper.Test.csproj (original)
+++ incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/IBatisNet.DataMapper.Test.csproj Fri May 27 13:51:53 2005
@@ -155,7 +155,7 @@
/>
<File
RelPath = "bin\Debug\SqlMap_MSSQL_SqlClient.config"
- BuildAction = "None"
+ BuildAction = "EmbeddedResource"
/>
<File
RelPath = "bin\Debug\SqlMap_MySql_ByteFx.config"
@@ -667,6 +667,11 @@
/>
<File
RelPath = "NUnit\SqlMapTests\ComplexTypeTest.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "NUnit\SqlMapTests\ConfigureTest.cs"
SubType = "Code"
BuildAction = "Compile"
/>
Modified: incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/BaseTest.cs
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/BaseTest.cs?rev=178821&r1=178820&r2=178821&view=diff
==============================================================================
--- incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/BaseTest.cs (original)
+++ incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/BaseTest.cs Fri May 27 13:51:53 2005
@@ -30,7 +30,7 @@
/// <summary>
/// The sqlMap
/// </summary>
- protected static SqlMapper sqlMap;
+ protected static SqlMapper sqlMap = null;
private static readonly ILog _logger = LogManager.GetLogger( System.Reflection.MethodBase.GetCurrentMethod().DeclaringType );
protected static string ScriptDirectory = null;
Modified: incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/CacheTest.cs
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/CacheTest.cs?rev=178821&r1=178820&r2=178821&view=diff
==============================================================================
--- incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/CacheTest.cs (original)
+++ incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/CacheTest.cs Fri May 27 13:51:53 2005
@@ -22,7 +22,7 @@
[TestFixture]
public class CacheTest : BaseTest
{
- #region SetUp & TearDown
+ #region SetUp & TearDown
/// <summary>
/// SetUp
Added: incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/ConfigureTest.cs
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/ConfigureTest.cs?rev=178821&view=auto
==============================================================================
--- incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/ConfigureTest.cs (added)
+++ incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/ConfigureTest.cs Fri May 27 13:51:53 2005
@@ -0,0 +1,166 @@
+using System;
+using System.Configuration;
+using System.IO;
+using System.Reflection;
+using IBatisNet.Common.Utilities;
+using IBatisNet.DataMapper; // SqlMap API
+using NUnit.Framework;
+
+namespace IBatisNet.DataMapper.Test.NUnit.SqlMapTests
+{
+ /// <summary>
+ /// Description résumée de ConfigureTest.
+ /// </summary>
+ [TestFixture]
+ public class ConfigureTest : BaseTest
+ {
+ private string _fileName = string.Empty;
+
+ #region SetUp
+
+ /// <summary>
+ /// SetUp
+ /// </summary>
+ [SetUp]
+ public void Init()
+ {
+ _fileName = "sqlmap" + "_" + ConfigurationSettings.AppSettings["database"] + "_" + ConfigurationSettings.AppSettings["providerType"] + ".config";
+ }
+ #endregion
+
+ #region Relatives Path tests
+
+ /// <summary>
+ /// Test Configure via relative path
+ /// </summary>
+ [Test]
+ public void TestConfigureRelativePath()
+ {
+ SqlMapper sqlMap = SqlMapper.Configure( _fileName );
+ Assert.IsNotNull(sqlMap);
+
+ }
+
+ /// <summary>
+ /// Test ConfigureAndWatch via relative path
+ /// </summary>
+ [Test]
+ public void TestConfigureAndWatchRelativePath()
+ {
+ ConfigureHandler handler = new ConfigureHandler(Configure);
+ sqlMap = SqlMapper.ConfigureAndWatch( _fileName , handler);
+ Assert.IsNotNull(sqlMap);
+
+ }
+ #endregion
+
+ #region Absolute Paths
+
+ /// <summary>
+ /// Test Configure via absolute path
+ /// </summary>
+ [Test]
+ public void TestConfigureAbsolutePath()
+ {
+ _fileName = Resources.BaseDirectory+Path.DirectorySeparatorChar+_fileName;
+ SqlMapper sqlMap = SqlMapper.Configure( _fileName );
+ Assert.IsNotNull(sqlMap);
+ }
+
+ /// <summary>
+ /// Test Configure via absolute path with file suffix
+ /// </summary>
+ [Test]
+ public void TestConfigureAbsolutePathWithFileSuffix()
+ {
+ _fileName = "file://"+Resources.BaseDirectory+Path.DirectorySeparatorChar+_fileName;
+ SqlMapper sqlMap = SqlMapper.Configure( _fileName );
+ Assert.IsNotNull(sqlMap);
+ }
+
+ /// <summary>
+ /// Test Configure via absolute path via FileIfno
+ /// </summary>
+ [Test]
+ public void TestConfigureAbsolutePathViaFileInfo()
+ {
+ _fileName = Resources.BaseDirectory+Path.DirectorySeparatorChar+_fileName;
+ FileInfo fileInfo = new FileInfo(_fileName);
+ SqlMapper sqlMap = SqlMapper.Configure( fileInfo );
+ Assert.IsNotNull(sqlMap);
+ }
+
+ /// <summary>
+ /// Test Configure via absolute path via Uri
+ /// </summary>
+ [Test]
+ public void TestConfigureAbsolutePathViaUri()
+ {
+ _fileName = Resources.BaseDirectory+Path.DirectorySeparatorChar+_fileName;
+ Uri uri = new Uri(_fileName);
+ SqlMapper sqlMap = SqlMapper.Configure( uri );
+ Assert.IsNotNull(sqlMap);
+ }
+
+ /// <summary>
+ /// Test Configure via absolute path
+ /// </summary>
+ [Test]
+ public void TestConfigureAndWatchAbsolutePath()
+ {
+ _fileName = Resources.BaseDirectory+Path.DirectorySeparatorChar+_fileName;
+ ConfigureHandler handler = new ConfigureHandler(Configure);
+ sqlMap = SqlMapper.ConfigureAndWatch( _fileName , handler);
+
+ Assert.IsNotNull(sqlMap);
+ }
+
+ /// <summary>
+ /// Test Configure via absolute path
+ /// </summary>
+ [Test]
+ public void TestConfigureAndWatchAbsolutePathWithFileSuffix()
+ {
+ _fileName = "file://"+Resources.BaseDirectory+Path.DirectorySeparatorChar+_fileName;
+ ConfigureHandler handler = new ConfigureHandler(Configure);
+ sqlMap = SqlMapper.ConfigureAndWatch( _fileName , handler);
+
+ Assert.IsNotNull(sqlMap);
+ }
+
+ /// <summary>
+ /// Test Configure via absolute path via FileInfo
+ /// </summary>
+ [Test]
+ public void TestConfigureAndWatchAbsolutePathViaFileInfo()
+ {
+ _fileName = Resources.BaseDirectory+Path.DirectorySeparatorChar+_fileName;
+ FileInfo fileInfo = new FileInfo(_fileName);
+ ConfigureHandler handler = new ConfigureHandler(Configure);
+ sqlMap = SqlMapper.ConfigureAndWatch( fileInfo , handler);
+
+ Assert.IsNotNull(sqlMap);
+ }
+ #endregion
+
+ #region Stream / Embedded
+
+ /// <summary>
+ /// Test Configure via Stream/embedded
+ /// </summary>
+ [Test]
+ public void TestConfigureViaStream()
+ {
+ // embeddedResource = "bin.Debug.SqlMap_MSSQL_SqlClient.config, IBatisNet.DataMapper.Test";
+
+ Assembly assembly = Assembly.LoadWithPartialName ("IBatisNet.DataMapper.Test");
+ Stream stream = assembly.GetManifestResourceStream("IBatisNet.DataMapper.Test.bin.Debug.SqlMap_MSSQL_SqlClient.config");
+
+ SqlMapper sqlMap = SqlMapper.Configure( stream );
+ Assert.IsNotNull(sqlMap);
+ }
+ #endregion
+
+
+ }
+}
Modified: incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapper.cs
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapper.cs?rev=178821&r1=178820&r2=178821&view=diff
==============================================================================
--- incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapper.cs (original)
+++ incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapper.cs Fri May 27 13:51:53 2005
@@ -201,7 +201,15 @@
/// <returns>An SqlMap</returns>
public static SqlMapper Configure(string resource)
{
- XmlDocument document = Resources.GetResourceAsXmlDocument( resource );
+ XmlDocument document = null;
+ if (resource.StartsWith("file://"))
+ {
+ document = Resources.GetUrlAsXmlDocument( resource.Remove(0, 7) );
+ }
+ else
+ {
+ document = Resources.GetResourceAsXmlDocument( resource );
+ }
return new DomSqlMapBuilder().Build( document, false);
}
@@ -209,7 +217,7 @@
/// Configure an SqlMap from via a stream.
/// </summary>
/// <param name="resource">A stream resource</param>
- /// <returns></returns>
+ /// <returns>An SqlMap</returns>
public static SqlMapper Configure(Stream resource)
{
XmlDocument document = Resources.GetStreamAsXmlDocument( resource );
@@ -220,19 +228,22 @@
/// Configure an SqlMap from via a FileInfo.
/// </summary>
/// <param name="resource">A FileInfo resource</param>
- /// <returns></returns>
+ /// <returns>An SqlMap</returns>
public static SqlMapper Configure(FileInfo resource)
{
- XmlDocument document = new XmlDocument();
- try
- {
- document.Load(resource.FullName);
- }
- catch(Exception e)
- {
- throw new ConfigurationException(string.Format("Unable to load configuration file from FileInfo. Cause : \"{0}\"",e.Message),e);
- }
+ XmlDocument document = Resources.GetFileInfoAsXmlDocument( resource );
+ return new DomSqlMapBuilder().Build( document, false);
+ }
+
+ /// <summary>
+ /// Configure an SqlMap from via an Uri.
+ /// </summary>
+ /// <param name="resource">A Uri resource</param>
+ /// <returns></returns>
+ public static SqlMapper Configure(Uri resource)
+ {
+ XmlDocument document = Resources.GetUriAsXmlDocument( resource );
return new DomSqlMapBuilder().Build( document, false);
}
@@ -260,7 +271,15 @@
/// <returns>An SqlMap</returns>
public static SqlMapper ConfigureAndWatch( string resource, ConfigureHandler configureDelegate )
{
- XmlDocument document = Resources.GetResourceAsXmlDocument( resource );
+ XmlDocument document = null;
+ if (resource.StartsWith("file://"))
+ {
+ document = Resources.GetUrlAsXmlDocument( resource.Remove(0, 7) );
+ }
+ else
+ {
+ document = Resources.GetResourceAsXmlDocument( resource );
+ }
ConfigWatcherHandler.ClearFilesMonitored();
ConfigWatcherHandler.AddFileToWatch( Resources.GetFileInfo( resource ) );
@@ -289,15 +308,7 @@
/// <returns>An SqlMap</returns>
public static SqlMapper ConfigureAndWatch( FileInfo resource, ConfigureHandler configureDelegate )
{
- XmlDocument document = new XmlDocument();
- try
- {
- document.Load(resource.FullName);
- }
- catch(Exception e)
- {
- throw new ConfigurationException(string.Format("Unable to load configuration file from FileInfo. Cause : \"{0}\"",e.Message),e);
- }
+ XmlDocument document = Resources.GetFileInfoAsXmlDocument(resource);
ConfigWatcherHandler.ClearFilesMonitored();
ConfigWatcherHandler.AddFileToWatch( resource );