springnet-commits Mailing List for Spring Framework .NET (Page 57)
Brought to you by:
aseovic,
markpollack
You can subscribe to this list here.
2004 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(33) |
Aug
(163) |
Sep
(491) |
Oct
(289) |
Nov
(336) |
Dec
(84) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
(227) |
Feb
(413) |
Mar
(128) |
Apr
(232) |
May
(92) |
Jun
(299) |
Jul
(386) |
Aug
(228) |
Sep
(237) |
Oct
(426) |
Nov
(325) |
Dec
(405) |
2006 |
Jan
(315) |
Feb
(311) |
Mar
(152) |
Apr
(177) |
May
(443) |
Jun
(92) |
Jul
(88) |
Aug
(80) |
Sep
(288) |
Oct
(515) |
Nov
(1049) |
Dec
(440) |
2007 |
Jan
(179) |
Feb
(406) |
Mar
(294) |
Apr
(80) |
May
(432) |
Jun
(242) |
Jul
(452) |
Aug
(710) |
Sep
(206) |
Oct
(240) |
Nov
(65) |
Dec
(227) |
2008 |
Jan
(80) |
Feb
(90) |
Mar
(98) |
Apr
(136) |
May
(101) |
Jun
(12) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Mark P. <mar...@us...> - 2007-08-21 19:39:05
|
Update of /cvsroot/springnet/Spring.Net/doc/reference/src In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv24066 Modified Files: threading.xml web.xml Log Message: SPRNET-664 - Add descripton and show usage of Spring's WebSupportModule to documentation. also improved docs regarding WebSupportModule in threading chapter. Index: threading.xml =================================================================== RCS file: /cvsroot/springnet/Spring.Net/doc/reference/src/threading.xml,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** threading.xml 29 Jun 2007 15:07:50 -0000 1.10 --- threading.xml 21 Aug 2007 19:38:56 -0000 1.11 *************** *** 39,43 **** selected from depending on your runtime requirements. Configuring the implementation of IThreadStorage makes it easier to have more portability ! across runtime environments. </para> <para>The API is quite simple and shown below<programlisting>public interface IThreadStorage --- 39,43 ---- selected from depending on your runtime requirements. Configuring the implementation of IThreadStorage makes it easier to have more portability ! across runtime environments.</para> <para>The API is quite simple and shown below<programlisting>public interface IThreadStorage *************** *** 64,68 **** <classname>CallContextStorage</classname> but can be configured via the static method <methodname>SetStorage(IThreadStorage)</methodname>. The ! methods on CallContextStorage and LogicalThreadContext are static. </para> <para>In <literal>Spring.Web</literal> is the implementation --- 64,68 ---- <classname>CallContextStorage</classname> but can be configured via the static method <methodname>SetStorage(IThreadStorage)</methodname>. The ! methods on CallContextStorage and LogicalThreadContext are static.</para> <para>In <literal>Spring.Web</literal> is the implementation *************** *** 73,76 **** --- 73,83 ---- <literal>HttpContext.Current != null</literal>, and <classname>CallContext</classname> otherwise.</para> + + <para>Spring internally uses <classname>LogicalThreadContext</classname> + as this doesn't require a coupling to the <package>System.Web</package> + namespace. In the case of Spring based web applications, Spring's + <classname>WebSupportModule</classname> sets the storage strategy of + <classname>LogicalThreadContext</classname> to be + <classname>HybridContextStorage</classname>.</para> </sect1> Index: web.xml =================================================================== RCS file: /cvsroot/springnet/Spring.Net/doc/reference/src/web.xml,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** web.xml 21 Aug 2007 16:08:56 -0000 1.23 --- web.xml 21 Aug 2007 19:38:56 -0000 1.24 *************** *** 129,133 **** to load and configure a Spring.NET IoC container, which is in turn used to locate an appropriate <classname>Page</classname> to handle a HTTP ! request.</para> <para>The instantiation and configuration of the Spring.NET IoC --- 129,137 ---- to load and configure a Spring.NET IoC container, which is in turn used to locate an appropriate <classname>Page</classname> to handle a HTTP ! request. The <classname>WebSupportModule</classname> configures ! miscellaneous Spring infrastructure class for use in a web environment, ! for example setting the storage strategy of ! <classname>LogicalThreadContext</classname> to be ! <classname>HybridContextStorage</classname>.</para> <para>The instantiation and configuration of the Spring.NET IoC *************** *** 147,150 **** --- 151,157 ---- <add verb="*" path="*.aspx" type="Spring.Web.Support.PageHandlerFactory, Spring.Web"/> </httpHandlers> + <httpModules> + <add name="Spring" type="Spring.Context.Support.WebSupportModule, Spring.Web"/> + </httpModules> ... </system.web> |
From: Mark P. <mar...@us...> - 2007-08-21 19:28:43
|
Update of /cvsroot/springnet/Spring.Net/test/Spring/Spring.Core.Tests/Objects/Factory/Config In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv19825 Modified Files: PropertyPlaceholderConfigurerTests.cs Log Message: SPRNET-454 - PropertyPlaceholderConfigurer should be able to modify the values within expression elements updated docs to mention PPC use for type, ref and expressions. Index: PropertyPlaceholderConfigurerTests.cs =================================================================== RCS file: /cvsroot/springnet/Spring.Net/test/Spring/Spring.Core.Tests/Objects/Factory/Config/PropertyPlaceholderConfigurerTests.cs,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** PropertyPlaceholderConfigurerTests.cs 8 Aug 2007 17:49:04 -0000 1.9 --- PropertyPlaceholderConfigurerTests.cs 21 Aug 2007 19:28:39 -0000 1.10 *************** *** 259,262 **** --- 259,283 ---- } + [Test] + public void WithExpressionProperty() + { + StaticApplicationContext ac = new StaticApplicationContext(); + MutablePropertyValues pvs = new MutablePropertyValues(); + pvs.Add("age", new ExpressionHolder("${age}")); + ac.RegisterSingleton("to1", typeof(TestObject), pvs); + + pvs = new MutablePropertyValues(); + NameValueCollection nvc = new NameValueCollection(); + nvc.Add("age", "'0x7FFFFFFF'"); + pvs.Add("properties", nvc); + ac.RegisterSingleton("configurer", typeof(PropertyPlaceholderConfigurer), pvs); + ac.Refresh(); + + + TestObject to1 = (TestObject)ac.GetObject("to1");; + Assert.AreEqual(2147483647, to1.Age); + + } + [Test] public void SunnyDay() |
From: Mark P. <mar...@us...> - 2007-08-21 19:28:36
|
Update of /cvsroot/springnet/Spring.Net/src/Spring/Spring.Core/Objects/Factory/Config In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv19804 Modified Files: ExpressionHolder.cs ObjectDefinitionVisitor.cs Log Message: SPRNET-454 - PropertyPlaceholderConfigurer should be able to modify the values within expression elements updated docs to mention PPC use for type, ref and expressions. Index: ObjectDefinitionVisitor.cs =================================================================== RCS file: /cvsroot/springnet/Spring.Net/src/Spring/Spring.Core/Objects/Factory/Config/ObjectDefinitionVisitor.cs,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** ObjectDefinitionVisitor.cs 3 Aug 2007 17:40:14 -0000 1.5 --- ObjectDefinitionVisitor.cs 21 Aug 2007 19:28:33 -0000 1.6 *************** *** 219,225 **** return ResolveStringValue((string)value); } ! ! ! return value; } --- 219,228 ---- return ResolveStringValue((string)value); } ! else if (value is ExpressionHolder) ! { ! ExpressionHolder holder = (ExpressionHolder) value; ! string newExpressionString = ResolveStringValue(holder.ExpressionString).ToString(); ! return new ExpressionHolder(newExpressionString); ! } return value; } Index: ExpressionHolder.cs =================================================================== RCS file: /cvsroot/springnet/Spring.Net/src/Spring/Spring.Core/Objects/Factory/Config/ExpressionHolder.cs,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** ExpressionHolder.cs 31 Jul 2007 08:18:38 -0000 1.4 --- ExpressionHolder.cs 21 Aug 2007 19:28:33 -0000 1.5 *************** *** 65,69 **** #region Properties ! /// <summary> /// Return the expression. /// </summary> --- 65,79 ---- #region Properties ! /// <summary> ! /// Gets or sets the expression string. Setting the expression string will cause ! /// the expression to be parsed. ! /// </summary> ! /// <value>The expression string.</value> ! public string ExpressionString ! { ! get { return expressionString; } ! } ! ! /// <summary> /// Return the expression. /// </summary> |
From: Mark P. <mar...@us...> - 2007-08-21 19:28:32
|
Update of /cvsroot/springnet/Spring.Net/doc/reference/src In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv19784 Modified Files: objects.xml Log Message: SPRNET-454 - PropertyPlaceholderConfigurer should be able to modify the values within expression elements updated docs to mention PPC use for type, ref and expressions. Index: objects.xml =================================================================== RCS file: /cvsroot/springnet/Spring.Net/doc/reference/src/objects.xml,v retrieving revision 1.105 retrieving revision 1.106 diff -C2 -d -r1.105 -r1.106 *** objects.xml 21 Aug 2007 03:08:52 -0000 1.105 --- objects.xml 21 Aug 2007 19:28:27 -0000 1.106 *************** *** 3359,3363 **** defined in another container will not be post-processed by <classname>IObjectPostProcessors</classname> in another container, ! even if both containers are part of the same hierarchy. </para> </note> --- 3359,3363 ---- defined in another container will not be post-processed by <classname>IObjectPostProcessors</classname> in another container, ! even if both containers are part of the same hierarchy.</para> </note> *************** *** 3449,3453 **** message: âObject 'foo' is not eligible for getting processed by all <classname>IObjectPostProcessors</classname> (for example: not ! eligible for auto-proxying)â. </para> </note> --- 3449,3453 ---- message: âObject 'foo' is not eligible for getting processed by all <classname>IObjectPostProcessors</classname> (for example: not ! eligible for auto-proxying)â.</para> </note> *************** *** 3586,3591 **** Object definitions in another container will not be post-processed by <classname>IObjectFactoryPostProcessors</classname> in another ! container, even if both containers are part of the same hierarchy. ! </para> </note> --- 3586,3591 ---- Object definitions in another container will not be post-processed by <classname>IObjectFactoryPostProcessors</classname> in another ! container, even if both containers are part of the same ! hierarchy.</para> </note> *************** *** 3599,3603 **** and ObjectNameAutoProxyCreator, which is very useful for wrapping other objects transactionally or with any other kind of proxy, as described ! later in this manual. </para> <para>In an <classname>IObjectFactory</classname>, the process of --- 3599,3603 ---- and ObjectNameAutoProxyCreator, which is very useful for wrapping other objects transactionally or with any other kind of proxy, as described ! later in this manual.</para> <para>In an <classname>IObjectFactory</classname>, the process of *************** *** 3639,3643 **** <objects/> element, be sure to mark your various <classname>IObjectFactoryPostProcessor</classname> object definitions ! with 'lazy-init="false"'. </para> </note> --- 3639,3643 ---- <objects/> element, be sure to mark your various <classname>IObjectFactoryPostProcessor</classname> object definitions ! with 'lazy-init="false"'.</para> </note> *************** *** 3768,3773 **** Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/></programlisting> ! <note> ! <para>Type name substitution</para> <para>The PropertyPlaceholderConfigurer can be used to substitute --- 3768,3775 ---- Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/></programlisting> ! <para>Type name substitution</para> ! ! <sect4> ! <title>Type, Ref, and Expression substitution</title> <para>The PropertyPlaceholderConfigurer can be used to substitute *************** *** 3780,3785 **** type, resolution of the object will fail once it is about to be created (which is during the PreInstantiateSingletons() phase of an ! ApplicationContext for a non-lazy-init object.) </para> ! </note> <sect4 id="objects-factory-placeholderconfigurer-envvars"> --- 3782,3795 ---- type, resolution of the object will fail once it is about to be created (which is during the PreInstantiateSingletons() phase of an ! ApplicationContext for a non-lazy-init object.)</para> ! ! <para>Similarly you can replace 'ref' and 'expression' metadata, as ! shown below</para> ! ! <programlisting><object id="TestObject" type="Simple.TestObject, MyAssembly"> ! <property name="age" expression="${ageExpression}"/> ! <property name="spouse" ref="${spouse-ref}"/> ! </object></programlisting> ! </sect4> <sect4 id="objects-factory-placeholderconfigurer-envvars"> |
From: Mark P. <mar...@us...> - 2007-08-21 19:27:22
|
Update of /cvsroot/springnet/Spring.Net/src/Spring/Spring.Web/Web/UI/Controls In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv19329 Modified Files: DataBindingPanel.cs Log Message: minor changes to compile with mono. Index: DataBindingPanel.cs =================================================================== RCS file: /cvsroot/springnet/Spring.Net/src/Spring/Spring.Web/Web/UI/Controls/DataBindingPanel.cs,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** DataBindingPanel.cs 2 Aug 2007 19:49:22 -0000 1.8 --- DataBindingPanel.cs 21 Aug 2007 19:27:19 -0000 1.9 *************** *** 195,199 **** relativeControlName = string.Format("FindControl('{0}')", controlName); } ! else if ( dataBound != this.NamingContainer) { relativeControlName = (controlName.StartsWith(containerName)) ? controlName.Substring(containerName.Length + 1) : controlName; --- 195,199 ---- relativeControlName = string.Format("FindControl('{0}')", controlName); } ! else if ( (Control)dataBound != this.NamingContainer) { relativeControlName = (controlName.StartsWith(containerName)) ? controlName.Substring(containerName.Length + 1) : controlName; |
From: Mark P. <mar...@us...> - 2007-08-21 19:27:17
|
Update of /cvsroot/springnet/Spring.Net/src/Spring/Spring.Web/Context/Support In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv19311 Modified Files: WebApplicationContext.cs Log Message: minor changes to compile with mono. Index: WebApplicationContext.cs =================================================================== RCS file: /cvsroot/springnet/Spring.Net/src/Spring/Spring.Web/Context/Support/WebApplicationContext.cs,v retrieving revision 1.47 retrieving revision 1.48 diff -C2 -d -r1.47 -r1.48 *** WebApplicationContext.cs 7 Aug 2007 23:22:04 -0000 1.47 --- WebApplicationContext.cs 21 Aug 2007 19:27:14 -0000 1.48 *************** *** 134,138 **** ContextRegistry.Cleared += new EventHandler(OnContextRegistryCleared); ! #if NET_2_0 if (HttpRuntime.AppDomainAppVirtualPath != null) // check if we're within an ASP.NET AppDomain! { --- 134,138 ---- ContextRegistry.Cleared += new EventHandler(OnContextRegistryCleared); ! #if NET_2_0 && !MONO if (HttpRuntime.AppDomainAppVirtualPath != null) // check if we're within an ASP.NET AppDomain! { |
From: Mark P. <mar...@us...> - 2007-08-21 19:27:11
|
Update of /cvsroot/springnet/Spring.Net/src/Spring/Spring.Core/Expressions In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv19225 Modified Files: OpLike.cs Log Message: minor changes to compile with mono. Index: OpLike.cs =================================================================== RCS file: /cvsroot/springnet/Spring.Net/src/Spring/Spring.Core/Expressions/OpLike.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** OpLike.cs 16 May 2007 15:09:41 -0000 1.3 --- OpLike.cs 21 Aug 2007 19:27:07 -0000 1.4 *************** *** 21,25 **** using System; using System.Runtime.Serialization; ! #if NET_2_0 using Microsoft.VisualBasic; using Microsoft.VisualBasic.CompilerServices; --- 21,25 ---- using System; using System.Runtime.Serialization; ! #if NET_2_0 && !MONO using Microsoft.VisualBasic; using Microsoft.VisualBasic.CompilerServices; *************** *** 61,65 **** protected override object Get(object context, EvaluationContext evalContext) { ! #if NET_2_0 string text = Left.GetValueInternal( context, evalContext ) as string; string pattern = Right.GetValueInternal( context, evalContext ) as string; --- 61,65 ---- protected override object Get(object context, EvaluationContext evalContext) { ! #if NET_2_0 && !MONO string text = Left.GetValueInternal( context, evalContext ) as string; string pattern = Right.GetValueInternal( context, evalContext ) as string; |
From: Mark P. <mar...@us...> - 2007-08-21 19:26:19
|
Update of /cvsroot/springnet/Spring.Net/test/Spring/Spring.Testing.NUnit.Tests/Testing/NUnit In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv18838 Modified Files: CachedAppContextTests.cs Log Message: SPRNET-692 - Incorrect metadata in dbproviders.xml for parameterDbTypeProperty for OracleODP-2.0 Index: CachedAppContextTests.cs =================================================================== RCS file: /cvsroot/springnet/Spring.Net/test/Spring/Spring.Testing.NUnit.Tests/Testing/NUnit/CachedAppContextTests.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** CachedAppContextTests.cs 20 Aug 2007 18:38:11 -0000 1.1 --- CachedAppContextTests.cs 21 Aug 2007 19:26:14 -0000 1.2 *************** *** 1,2 **** --- 1,3 ---- + #if !NET_1_0 #region License *************** *** 51,53 **** } ! } \ No newline at end of file --- 52,55 ---- } ! } ! #endif \ No newline at end of file |
From: Mark P. <mar...@us...> - 2007-08-21 19:26:19
|
Update of /cvsroot/springnet/Spring.Net/test/Spring/Spring.Testing.NUnit.Tests/Testing/NUnit/AnotherTest In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv18838/AnotherTest Modified Files: LoadAppContextTests.cs Log Message: SPRNET-692 - Incorrect metadata in dbproviders.xml for parameterDbTypeProperty for OracleODP-2.0 Index: LoadAppContextTests.cs =================================================================== RCS file: /cvsroot/springnet/Spring.Net/test/Spring/Spring.Testing.NUnit.Tests/Testing/NUnit/AnotherTest/LoadAppContextTests.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** LoadAppContextTests.cs 20 Aug 2007 18:38:11 -0000 1.1 --- LoadAppContextTests.cs 21 Aug 2007 19:26:14 -0000 1.2 *************** *** 1,2 **** --- 1,3 ---- + #if !NET_1_0 #region License *************** *** 53,55 **** } ! } \ No newline at end of file --- 54,57 ---- } ! } ! #endif \ No newline at end of file |
From: Mark P. <mar...@us...> - 2007-08-21 19:26:09
|
Update of /cvsroot/springnet/Spring.Net/test/Spring/Spring.Data.Tests/Data/Common In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv18477/Data/Common Modified Files: DbProviderFactoryTests.cs Log Message: SPRNET-692 - Incorrect metadata in dbproviders.xml for parameterDbTypeProperty for OracleODP-2.0 Index: DbProviderFactoryTests.cs =================================================================== RCS file: /cvsroot/springnet/Spring.Net/test/Spring/Spring.Data.Tests/Data/Common/DbProviderFactoryTests.cs,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** DbProviderFactoryTests.cs 3 Aug 2007 19:51:33 -0000 1.6 --- DbProviderFactoryTests.cs 21 Aug 2007 19:26:04 -0000 1.7 *************** *** 20,26 **** using System; using NUnit.Framework; using Spring.Context; - using Spring.Data.Support; using Spring.Util; --- 20,26 ---- using System; + using System.Reflection; using NUnit.Framework; using Spring.Context; using Spring.Util; *************** *** 58,78 **** } ! #endif ! ! [Test] ! public void DefaultInstanceWithSqlServer2000() ! { ! IDbProvider provider = DbProviderFactory.GetDbProvider("SqlServer-1.1"); ! AssertIsSqlServer2000(provider); ! Assert.IsNull(provider.ConnectionString); ! Assert.IsNotNull(provider.CreateCommand()); ! Assert.IsNotNull(provider.CreateCommandBuilder()); ! Assert.IsNotNull(provider.CreateConnection()); ! Assert.IsNotNull(provider.CreateDataAdapter()); ! Assert.IsNotNull(provider.CreateParameter()); ! Assert.AreEqual("@Foo", provider.CreateParameterName("Foo")); ! } ! ! #if NET_2_0 [Test] public void DefaultInstanceWithOleDb20() --- 58,62 ---- } ! [Test] public void DefaultInstanceWithOleDb20() *************** *** 87,93 **** Assert.AreEqual("?", provider.CreateParameterName("Foo")); } - #endif - #if NET_2_0 [Test] public void DefaultInstanceWithMicrsoftOracleClient20() --- 71,75 ---- *************** *** 134,137 **** --- 116,123 ---- } + + + #if NET_1_1 + [Test] public void DefaultInstanceWithOleDb11() *************** *** 147,150 **** --- 133,150 ---- } + [Test] + public void DefaultInstanceWithSqlServer2000() + { + IDbProvider provider = DbProviderFactory.GetDbProvider("SqlServer-1.1"); + AssertIsSqlServer2000(provider); + Assert.IsNull(provider.ConnectionString); + Assert.IsNotNull(provider.CreateCommand()); + Assert.IsNotNull(provider.CreateCommandBuilder()); + Assert.IsNotNull(provider.CreateConnection()); + Assert.IsNotNull(provider.CreateDataAdapter()); + Assert.IsNotNull(provider.CreateParameter()); + Assert.AreEqual("@Foo", provider.CreateParameterName("Foo")); + } + private void AssertIsSqlServer2000(IDbProvider provider) { *************** *** 153,157 **** AssertCommonSqlServerErrorCodes(provider); } ! private void AssertIsSqlServer2005(IDbProvider provider) { --- 153,157 ---- AssertCommonSqlServerErrorCodes(provider); } ! #endif private void AssertIsSqlServer2005(IDbProvider provider) { |
From: Mark P. <mar...@us...> - 2007-08-21 19:26:08
|
Update of /cvsroot/springnet/Spring.Net/test/Spring/Spring.Data.Tests/Support In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv18477/Support Modified Files: ErrorCodeExceptionTranslatorTests.cs Log Message: SPRNET-692 - Incorrect metadata in dbproviders.xml for parameterDbTypeProperty for OracleODP-2.0 Index: ErrorCodeExceptionTranslatorTests.cs =================================================================== RCS file: /cvsroot/springnet/Spring.Net/test/Spring/Spring.Data.Tests/Support/ErrorCodeExceptionTranslatorTests.cs,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** ErrorCodeExceptionTranslatorTests.cs 3 Dec 2006 08:25:47 -0000 1.6 --- ErrorCodeExceptionTranslatorTests.cs 21 Aug 2007 19:26:04 -0000 1.7 *************** *** 1,2 **** --- 1,3 ---- + #if !NET_1_0 #region Licence *************** *** 108,109 **** --- 109,111 ---- } } + #endif \ No newline at end of file |
From: Mark P. <mar...@us...> - 2007-08-21 19:26:08
|
Update of /cvsroot/springnet/Spring.Net/test/Spring/Spring.Data.Tests In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv18477 Modified Files: Spring.Data.Tests.2003.csproj Log Message: SPRNET-692 - Incorrect metadata in dbproviders.xml for parameterDbTypeProperty for OracleODP-2.0 Index: Spring.Data.Tests.2003.csproj =================================================================== RCS file: /cvsroot/springnet/Spring.Net/test/Spring/Spring.Data.Tests/Spring.Data.Tests.2003.csproj,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** Spring.Data.Tests.2003.csproj 3 Aug 2007 08:31:26 -0000 1.7 --- Spring.Data.Tests.2003.csproj 21 Aug 2007 19:26:04 -0000 1.8 *************** *** 49,53 **** CheckForOverflowUnderflow = "false" ConfigurationOverrideFile = "" ! DefineConstants = "TRACE" DocumentationFile = "" DebugSymbols = "false" --- 49,53 ---- CheckForOverflowUnderflow = "false" ConfigurationOverrideFile = "" ! DefineConstants = "TRACE,NET_1_1" DocumentationFile = "" DebugSymbols = "false" |
From: Mark P. <mar...@us...> - 2007-08-21 19:26:08
|
Update of /cvsroot/springnet/Spring.Net/test/Spring/Spring.Data.Tests/Data In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv18477/Data Modified Files: AutoDeclarativeTxTests.cs Log Message: SPRNET-692 - Incorrect metadata in dbproviders.xml for parameterDbTypeProperty for OracleODP-2.0 Index: AutoDeclarativeTxTests.cs =================================================================== RCS file: /cvsroot/springnet/Spring.Net/test/Spring/Spring.Data.Tests/Data/AutoDeclarativeTxTests.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** AutoDeclarativeTxTests.cs 1 Aug 2007 17:52:02 -0000 1.3 --- AutoDeclarativeTxTests.cs 21 Aug 2007 19:26:04 -0000 1.4 *************** *** 51,55 **** public void SetUp() { ! LogManager.Adapter = new ConsoleOutLoggerFactoryAdapter(); ctx = new XmlApplicationContext("assembly://Spring.Data.Tests/Spring.Data/AutoDeclarativeTxTests.xml"); --- 51,55 ---- public void SetUp() { ! //LogManager.Adapter = new ConsoleOutLoggerFactoryAdapter(); ctx = new XmlApplicationContext("assembly://Spring.Data.Tests/Spring.Data/AutoDeclarativeTxTests.xml"); |
From: Mark P. <mar...@us...> - 2007-08-21 19:26:03
|
Update of /cvsroot/springnet/Spring.Net/test/Spring/Spring.Data.Integration.Tests In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv18445 Modified Files: Spring.Data.Integration.Tests.2005.csproj Spring.Data.Integration.Tests.dll.config Log Message: SPRNET-692 - Incorrect metadata in dbproviders.xml for parameterDbTypeProperty for OracleODP-2.0 Index: Spring.Data.Integration.Tests.dll.config =================================================================== RCS file: /cvsroot/springnet/Spring.Net/test/Spring/Spring.Data.Integration.Tests/Spring.Data.Integration.Tests.dll.config,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Spring.Data.Integration.Tests.dll.config 8 Aug 2007 01:54:03 -0000 1.4 --- Spring.Data.Integration.Tests.dll.config 21 Aug 2007 19:25:55 -0000 1.5 *************** *** 24,30 **** <spring> <parsers> ! <parser namespace="http://www.springframework.net/database" ! type="Spring.Data.DatabaseConfigParser, Spring.Data" ! schemaLocation="assembly://Spring.Data/Spring.Data/spring-database.xsd" /> </parsers> </spring> --- 24,28 ---- <spring> <parsers> ! <parser type="Spring.Data.Config.DatabaseNamespaceParser, Spring.Data" /> </parsers> </spring> Index: Spring.Data.Integration.Tests.2005.csproj =================================================================== RCS file: /cvsroot/springnet/Spring.Net/test/Spring/Spring.Data.Integration.Tests/Spring.Data.Integration.Tests.2005.csproj,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** Spring.Data.Integration.Tests.2005.csproj 25 Jul 2007 08:25:27 -0000 1.18 --- Spring.Data.Integration.Tests.2005.csproj 21 Aug 2007 19:25:54 -0000 1.19 *************** *** 86,89 **** --- 86,93 ---- <HintPath>..\..\..\lib\Net\2.0\nunit.framework.dll</HintPath> </Reference> + <Reference Include="Oracle.DataAccess, Version=2.102.2.20, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=x86"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\..\lib\oracle\2.0\Oracle.DataAccess.dll</HintPath> + </Reference> <Reference Include="System"> <Name>System</Name> |
From: Mark P. <mar...@us...> - 2007-08-21 19:26:02
|
Update of /cvsroot/springnet/Spring.Net/test/Spring/Spring.Data.Integration.Tests/Data In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv18445/Data Modified Files: oracleAdoTemplateTests.xml Log Message: SPRNET-692 - Incorrect metadata in dbproviders.xml for parameterDbTypeProperty for OracleODP-2.0 Index: oracleAdoTemplateTests.xml =================================================================== RCS file: /cvsroot/springnet/Spring.Net/test/Spring/Spring.Data.Integration.Tests/Data/oracleAdoTemplateTests.xml,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** oracleAdoTemplateTests.xml 7 Aug 2007 19:50:44 -0000 1.3 --- oracleAdoTemplateTests.xml 21 Aug 2007 19:25:54 -0000 1.4 *************** *** 4,8 **** <db:provider id="DbProvider" ! provider="Oracle.DataAccess.Client" connectionString="Data Source=AGORA; User Id=agora_user; Password=welcome"/> --- 4,8 ---- <db:provider id="DbProvider" ! provider="OracleODP-2.0" connectionString="Data Source=AGORA; User Id=agora_user; Password=welcome"/> *************** *** 16,20 **** --> <object id="adoTemplate" ! type="Spring.Data.AdoTemplate, Spring.Data"> <property name="DbProvider" ref="DbProvider"/> --- 16,20 ---- --> <object id="adoTemplate" ! type="Spring.Data.Core.AdoTemplate, Spring.Data"> <property name="DbProvider" ref="DbProvider"/> |
From: Mark P. <mar...@us...> - 2007-08-21 19:25:52
|
Update of /cvsroot/springnet/Spring.Net/src/Spring/Spring.Data/Data/Common In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv18425 Modified Files: DbMetadata.cs dbproviders.xml Log Message: SPRNET-692 - Incorrect metadata in dbproviders.xml for parameterDbTypeProperty for OracleODP-2.0 Index: DbMetadata.cs =================================================================== RCS file: /cvsroot/springnet/Spring.Net/src/Spring/Spring.Data/Data/Common/DbMetadata.cs,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** DbMetadata.cs 21 Aug 2007 01:11:33 -0000 1.10 --- DbMetadata.cs 21 Aug 2007 19:25:49 -0000 1.11 *************** *** 114,118 **** //TODO consider support for derive parameters via a stored procedure. this.commandBuilderDeriveParametersMethod = ! ReflectionUtils.GetMethod(commandBuilderType.GetType(), commandBuilderDeriveParametersMethod, new Type[] { this.commandType } ); --- 114,118 ---- //TODO consider support for derive parameters via a stored procedure. this.commandBuilderDeriveParametersMethod = ! ReflectionUtils.GetMethod(this.commandBuilderType, commandBuilderDeriveParametersMethod, new Type[] { this.commandType } ); Index: dbproviders.xml =================================================================== RCS file: /cvsroot/springnet/Spring.Net/src/Spring/Spring.Data/Data/Common/dbproviders.xml,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** dbproviders.xml 21 Aug 2007 01:11:33 -0000 1.19 --- dbproviders.xml 21 Aug 2007 19:25:49 -0000 1.20 *************** *** 281,285 **** <constructor-arg name="commandBuilderDeriveParametersMethod" value="DeriveParameters"/> <constructor-arg name="parameterDbType" value="Oracle.DataAccess.Client.OracleDbType, Oracle.DataAccess, Version=2.102.2.20, Culture=neutral, PublicKeyToken=89b483f429c47342"/> ! <constructor-arg name="parameterDbTypeProperty" value="OracleDbType"/> <constructor-arg name="parameterIsNullableProperty" value="IsNullable"/> <constructor-arg name="parameterNamePrefix" value=":"/> --- 281,285 ---- <constructor-arg name="commandBuilderDeriveParametersMethod" value="DeriveParameters"/> <constructor-arg name="parameterDbType" value="Oracle.DataAccess.Client.OracleDbType, Oracle.DataAccess, Version=2.102.2.20, Culture=neutral, PublicKeyToken=89b483f429c47342"/> ! <constructor-arg name="parameterDbTypeProperty" value="OracleDbType, Oracle.DataAccess, Version=2.102.2.20, Culture=neutral, PublicKeyToken=89b483f429c47342"/> <constructor-arg name="parameterIsNullableProperty" value="IsNullable"/> <constructor-arg name="parameterNamePrefix" value=":"/> |
From: Mark P. <mar...@us...> - 2007-08-21 18:32:56
|
Update of /cvsroot/springnet/Spring.Net In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv26668 Added Files: solutions.build.nant Removed Files: solutions.build Log Message: rename solutions.build to not have .build extension so existing nant spring.build targets are easy to call... --- solutions.build DELETED --- --- NEW FILE: solutions.build.nant --- <?xml version="1.0" ?> <!-- Rebuilding Solutions using Nant and "solutions.build": 1) Move Spring.Calculator.snk -> $root/Spring.Calculator.snk 2) Create virtual directories in IIS /Spring.Calculator.2003 -> $root\examples\Spring\Spring.Calculator\src\Spring.Calculator.Web.2003 /SpringAir.2003 -> $root\examples\Spring\SpringAir\src\SpringAir.Web.2003 3) Place solutions.build into $root/Solutions.build 4) execute "nant -f:solutions.build" 5) SpringAir.2003 unfort. doesn't work with this script :-(( - You need to check it manually (I'm working on it...) --> <project name="Spring.NET Examples" default="RebuildAllSolutions"> <property name="vs2003.install.dir.key" value="SOFTWARE\Microsoft\VisualStudio\7.1\InstallDir"/> <readregistry property="vs2003.install.dir" key="${vs2003.install.dir.key}" hive="LocalMachine" failonerror="false"/> <property name="devenv11.exe" value="${vs2003.install.dir}devenv.exe" /> <property name="msbuild.exe" value="C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\msbuild.exe"/> <property name="buildconfiguration" value="Debug" /> <target name="RebuildAllSolutions" description="Rebuild all Solutions"> <call target="RebuildAllSolutions-1.1" /> <call target="RebuildAllSolutions-2.0" /> </target> <target name="Clean"> <delete> <fileset basedir="examples"> <include name="**/bin/**/*.*" /> <include name="**/obj/**/*.*" /> <exclude name="**/bin/*.refresh" /> </fileset> </delete> </target> <target name="RebuildAllSolutions-1.1" depends="Clean"> <!-- build examples --> <foreach item="File" property="filename"> <in> <items basedir="examples"> <include name="**/*.2003.sln" /> <exclude name="**/SpringAir.2003.sln" /> <!-- unfort. doesn't work --> </items> </in> <do> <property name="solutionfile" value="${filename}" /> <property name="solutionconfiguration" value="${buildconfiguration}" /> <call target="RebuildSolution-1.1" /> </do> </foreach> <!-- build "main" solution (extra call because of configuration 'debug-1.1') --> <property name="solutionfile" value="Spring.NET.1.1.2003.sln" /> <property name="solutionconfiguration" value="${buildconfiguration}-1.1" /> <call target="RebuildSolution-1.1" /> </target> <target name="RebuildAllSolutions-2.0" dependes="Clean"> <foreach item="File" property="filename"> <in> <items basedir="examples"> <include name="**/*.2005.sln" /> </items> </in> <do> <property name="solutionfile" value="${filename}" /> <property name="solutionconfiguration" value="${buildconfiguration}" /> <call target="RebuildSolution-2.0" /> </do> </foreach> <!-- build "main" solution (extra call because of configuration 'debug-1.1') --> <property name="solutionfile" value="Spring.NET.1.1.2005.sln" /> <property name="solutionconfiguration" value="${buildconfiguration}" /> <call target="RebuildSolution-2.0" /> </target> <target name="RebuildSolution-1.1" description="rebuilds a given VS2003 solution file"> <echo message="Rebuilding VS2003 Solution ${solutionfile}" /> <exec program="${devenv11.exe}" basedir="${devenv11.exe}"> <arg value="${solutionfile}" /> <arg line="/rebuild ${solutionconfiguration}" /> <arg line="/out solutions.build-1.1.log" /> </exec> <!-- <solution configuration="${solutionconfiguration}" solutionfile="${solutionfile}"> <webmap> <map url="http://localhost/Spring.Calculator.2003" path="examples\Spring\Spring.Calculator\src\Spring.Calculator.Web.2003" /> <map url="http://localhost/SpringAir.2003" path="examples\Spring\SpringAir\src\SpringAir.Web.2003" /> </webmap> </solution> --> </target> <target name="RebuildSolution-2.0" description="rebuilds a given VS2005 solution file"> <echo message="Rebuilding VS2005 Solution ${solutionfile}" /> <exec program="${msbuild.exe}"> <!-- <arg value="/property:OutDir=${output.dir}/"/> --> <arg value="${solutionfile}"/> <arg line="/nologo" /> <arg line="/property:Configuration=${solutionconfiguration}"/> </exec> </target> </project> |
From: Mark P. <mar...@us...> - 2007-08-21 16:09:01
|
Update of /cvsroot/springnet/Spring.Net/doc/reference/src In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv25667 Modified Files: web.xml Log Message: SPRNET-495 - Add information on how to configure Spring under IIS7 to reference documentation Index: web.xml =================================================================== RCS file: /cvsroot/springnet/Spring.Net/doc/reference/src/web.xml,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** web.xml 21 Aug 2007 16:08:25 -0000 1.22 --- web.xml 21 Aug 2007 16:08:56 -0000 1.23 *************** *** 271,278 **** <add name="SpringPageHandler" verb="*" path="*.aspx" type="Spring.Web.Support.PageHandlerFactory, Spring.Web"/> <add name="SpringContextMonitor" verb="*" path="ContextMonitor.ashx" type="Spring.Web.Support.ContextMonitor, Spring.Web"/> - - <!-- If using Spring web service support add in the following line --> - <!--<add name="SpringWebServiceSupport" verb="*" path="*.asmx" type="Spring.Web.Services.WebServiceHandlerFactory, Spring.Web"/>--> - </handlers> </system.webServer></programlisting> --- 271,274 ---- |
From: Mark P. <mar...@us...> - 2007-08-21 16:08:31
|
Update of /cvsroot/springnet/Spring.Net/doc/reference/src In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv25586 Modified Files: web.xml webservices.xml Log Message: SPRNET-495 - Add information on how to configure Spring under IIS7 to reference documentation Index: webservices.xml =================================================================== RCS file: /cvsroot/springnet/Spring.Net/doc/reference/src/webservices.xml,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** webservices.xml 7 Aug 2007 14:53:35 -0000 1.8 --- webservices.xml 21 Aug 2007 16:08:26 -0000 1.9 *************** *** 85,89 **** exactly the same as a standard handler factory if said handler factory cannot find the object definition for the specified service name. In ! that case the handler factory will simply look for an .asmx file.</para> <para><emphasis>2. Create an object definition for one's web --- 85,99 ---- exactly the same as a standard handler factory if said handler factory cannot find the object definition for the specified service name. In ! that case the handler factory will simply look for an .asmx file. ! </para> ! ! <para>If you are using IIS7 the following configuration is needed</para> ! ! <programlisting><system.webServer> ! <validation validateIntegratedModeConfiguration="false"/> ! <handlers> ! <add name="SpringWebServiceSupport" verb="*" path="*.asmx" type="Spring.Web.Services.WebServiceHandlerFactory, Spring.Web"/> ! </handlers> ! </system.webServer></programlisting> <para><emphasis>2. Create an object definition for one's web *************** *** 437,441 **** This is done by specifying the ProductTemplate property. This is particularly useful for securing the web service. An example is shown ! below. </para> <programlisting><object id="PublicarAltasWebService" type="Spring.Web.Services.WebServiceProxyFactory, Spring.Services"> --- 447,451 ---- This is done by specifying the ProductTemplate property. This is particularly useful for securing the web service. An example is shown ! below.</para> <programlisting><object id="PublicarAltasWebService" type="Spring.Web.Services.WebServiceProxyFactory, Spring.Services"> Index: web.xml =================================================================== RCS file: /cvsroot/springnet/Spring.Net/doc/reference/src/web.xml,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** web.xml 9 Aug 2007 18:51:40 -0000 1.21 --- web.xml 21 Aug 2007 16:08:25 -0000 1.22 *************** *** 257,260 **** --- 257,281 ---- </listitem> </orderedlist> + + <sect3> + <title>Configuration for IIS7</title> + + <para>The configuration for IIS7 is shown below</para> + + <programlisting><system.webServer> + <validation validateIntegratedModeConfiguration="false"/> + <modules> + <add name="Spring" type="Spring.Context.Support.WebSupportModule, Spring.Web"/> + </modules> + <handlers> + <add name="SpringPageHandler" verb="*" path="*.aspx" type="Spring.Web.Support.PageHandlerFactory, Spring.Web"/> + <add name="SpringContextMonitor" verb="*" path="ContextMonitor.ashx" type="Spring.Web.Support.ContextMonitor, Spring.Web"/> + + <!-- If using Spring web service support add in the following line --> + <!--<add name="SpringWebServiceSupport" verb="*" path="*.asmx" type="Spring.Web.Services.WebServiceHandlerFactory, Spring.Web"/>--> + + </handlers> + </system.webServer></programlisting> + </sect3> </sect2> *************** *** 509,513 **** a module of the type <classname>HtmlCommentAppenderModule</classname>, taken from the Web Quickstart, appends additional comments into the http ! response. It is registered as shown below </para> <programlisting><httpModules> --- 530,534 ---- a module of the type <classname>HtmlCommentAppenderModule</classname>, taken from the Web Quickstart, appends additional comments into the http ! response. It is registered as shown below</para> <programlisting><httpModules> *************** *** 582,586 **** providers found in ASP.NET so that you can use the full functionality of spring to configure these standard provider implementations, for example ! using property place holders, etc. These are </para> <itemizedlist> --- 603,607 ---- providers found in ASP.NET so that you can use the full functionality of spring to configure these standard provider implementations, for example ! using property place holders, etc. These are</para> <itemizedlist> |
From: Mark P. <mar...@us...> - 2007-08-21 03:08:55
|
Update of /cvsroot/springnet/Spring.Net/doc/reference/src In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv4773 Modified Files: index.xml objects.xml Log Message: update documentation for IObjectFactoryPostProcessors. Index: index.xml =================================================================== RCS file: /cvsroot/springnet/Spring.Net/doc/reference/src/index.xml,v retrieving revision 1.72 retrieving revision 1.73 diff -C2 -d -r1.72 -r1.73 *** index.xml 16 Aug 2007 21:06:18 -0000 1.72 --- index.xml 21 Aug 2007 03:08:52 -0000 1.73 *************** *** 58,62 **** <releaseinfo>Version 1.1 RC1</releaseinfo> --> ! <pubdate>Last Updated August 16, 2007</pubdate> <authorgroup> <author> --- 58,62 ---- <releaseinfo>Version 1.1 RC1</releaseinfo> --> ! <pubdate>Last Updated August 20, 2007</pubdate> <authorgroup> <author> Index: objects.xml =================================================================== RCS file: /cvsroot/springnet/Spring.Net/doc/reference/src/objects.xml,v retrieving revision 1.104 retrieving revision 1.105 diff -C2 -d -r1.104 -r1.105 *** objects.xml 17 Aug 2007 14:42:03 -0000 1.104 --- objects.xml 21 Aug 2007 03:08:52 -0000 1.105 *************** *** 3301,3336 **** </sect1> ! <sect1 id="objects-factory-customizing"> ! <title>Customizing objects with ! <literal>IObjectPostProcessors</literal></title> ! <para>An object post-processor is a class that implements the ! <classname>Spring.Objects.Factory.Config.IObjectPostProcessor</classname> ! interface, which consists of two callback methods shown below. ! <programlisting>object PostProcessBeforeInitialization(object instance, string name); ! object PostProcessAfterInitialization(object instance, string name);</programlisting> ! When such a class is registered as a post-processor with the container, ! for each object instance that is created by the container, the ! post-processor method ! <methodname>PostProcessBeforeInitialization</methodname> will be called by ! the container before any initialization methods such as the ! <methodname>AfterPropertiesSet</methodname> method of the ! <classname>IInitializingObject</classname> interface and any declared init ! method) are called. The post-processor method ! <methodname>PostProcessAfterInitialization</methodname> is called ! subsequent to any init methods.</para> ! <para>The post-processor is free to do what it wishes with the object, ! including ignoring the callback completely. An object post-processor will ! typically check for marker interfaces, or do something such as wrap an ! object with a proxy. Some Spring.NET helper classes are implemented as ! object post-processors.</para> ! <para>Other extensions to the the <literal>IObjectPostProcessors</literal> ! interface are ! <classname>IInstantiationAwareObjectPostProcessor</classname> and ! <classname>IDestructionAwareObjectPostProcessor</classname> defined below ! <programlisting>public interface IInstantiationAwareObjectPostProcessor : IObjectPostProcessor { object PostProcessBeforeInstantiation(Type objectType, string objectName); --- 3301,3390 ---- </sect1> ! <sect1> ! <title>Container extension points</title> ! <para>The IoC component of the Spring Framework has been designed for ! extension. There is typically no need for an application developer to ! subclass any of the various <classname>IObjectFactory</classname> or ! <classname>IApplicationContext</classname> implementation classes. The ! Spring IoC container can be infinitely extended by plugging in ! implementations of special integration interfaces. The next few sections ! are devoted to detailing all of these various integration ! interfaces.</para> ! <sect2 id="objects-factory-customizing"> ! <title>Customizing objects with ! <literal>IObjectPostProcessors</literal></title> ! <para>The first extension point that we will look at is the ! <classname>Spring.Objects.Factory.Config.IObjectPostProcessor</classname> ! interface. This interface defines a number of callback methods that you ! as an application developer can implement in order to provide your own ! (or override the containers default) instantiation logic, ! dependency-resolution logic, and so forth. If you want to do some custom ! logic after the Spring container has finished instantiating, configuring ! and otherwise initializing a bean, you can plug in one or more ! <classname>IObjectPostProcessor</classname> implementations.</para> ! <para>You can configure multiple ! <classname>IObjectPostProcessors</classname> if you wish. You can ! control the order in which these ! <classname>IObjectPostProcessor</classname> execute by setting the ! 'Order' property (you can only set this property if the ! <classname>IObjectPostProcessor</classname> implements the ! <classname>IOrdered</classname> interface; if you write your own ! <classname>IObjectPostProcessor</classname> you should consider ! implementing the <classname>IOrdered</classname> interface too); consult ! the SDK docs for the <classname>IObjectPostProcessor</classname> and ! <classname>IOrdered</classname> interfaces for more details.</para> ! ! <note> ! <para><classname>IObjectPostProcessor</classname> operate on object ! instances; that is to say, the Spring IoC container will have ! instantiated a object instance for you, and then ! <classname>IObjectPostProcessors</classname> get a chance to do their ! stuff. If you want to change the actual object definition (that is the ! recipe that defines the object), then you rather need to use a ! <classname>IObjectFactoryPostProcessor</classname> (described below in ! the section entitled <link ! linkend="objects-factory-customizing-factory-postprocessors">Customizing ! configuration metadatta with ! IObjectFactoryPostProcessors.</link></para> ! ! <para>Also, <classname>IObjectPostProcessors</classname> are scoped ! per-container. This is only relevant if you are using container ! hierarchies. If you define a ! <classname>IObjectPostProcessor</classname> in one container, it will ! only do its stuff on the objects in that container. Objects that are ! defined in another container will not be post-processed by ! <classname>IObjectPostProcessors</classname> in another container, ! even if both containers are part of the same hierarchy. </para> ! </note> ! ! <para>The ! <classname>Spring.Objects.Factory.Config.IObjectPostProcessor</classname> ! interface, which consists of two callback methods shown below. ! <programlisting>object PostProcessBeforeInitialization(object instance, string name); ! ! object PostProcessAfterInitialization(object instance, string name);</programlisting>When ! such a class is registered as a post-processor with the container, for ! each object instance that is created by the container,(see below for how ! this registration is effected), for each object instance that is created ! by the container, the post-processor will get a callback from the ! container both before any initialization methods (such as the ! <methodname>AfterPropertiesSet</methodname> method of the ! <classname>IInitializingObject</classname> interface and any declared ! init method) are called, and also afterwards. The post-processor is free ! to do what it wishes with the object, including ignoring the callback ! completely. An object post-processor will typically check for marker ! interfaces, or do something such as wrap an object with a proxy. Some ! Spring.NET AOP infrastructure classes are implemented as object ! post-processors as they do this proxy-wrapping logic.</para> ! ! <para>Other extensions to the the ! <literal>IObjectPostProcessors</literal> interface are ! <classname>IInstantiationAwareObjectPostProcessor</classname> and ! <classname>IDestructionAwareObjectPostProcessor</classname> defined ! below <programlisting>public interface IInstantiationAwareObjectPostProcessor : IObjectPostProcessor { object PostProcessBeforeInstantiation(Type objectType, string objectName); *************** *** 3341,3365 **** void PostProcessBeforeDestruction (object instance, string name); }</programlisting> The "BeforeInstantiation" callback method is called right ! before the container creates the object. If the object returned by this ! method is not null then the default instantiation behavor of the container ! is short circuited. The returned object is the one registered with the ! container and no other <literal>IObjectPostProcessor</literal> callbacks ! will be invoked on it. This mechanism is useful if you would like to ! expose a proxy to the object instead of the actual target object. The ! "BeforeDestruction" callack is called before a singletons destroy method ! is invoked.</para> ! <para>It is important to know that the ! <classname>IObjectFactory</classname> treats object post-processors ! slightly differently than the <classname>IApplicationContext</classname>. ! An <classname>IApplicationContext</classname> will automatically detect ! any objects which are deployed into it that implement the ! <classname>IObjectPostProcessor</classname> interface, and register them ! as post-processors, to be then called appropriately by the factory on ! object creation. Nothing else needs to be done other than deploying the ! post-processor in a similar fashion to any other object. On the other ! hand, when using plain <literal>IObjectFactories</literal>, object ! post-processors have to manually be explicitly registered, with a code ! sequence such as... <programlisting>ConfigurableObjectFactory factory = new .....; // create an IObjectFactory ... // now register some objects // now register any needed IObjectPostProcessors --- 3395,3420 ---- void PostProcessBeforeDestruction (object instance, string name); }</programlisting> The "BeforeInstantiation" callback method is called right ! before the container creates the object. If the object returned by this ! method is not null then the default instantiation behavor of the ! container is short circuited. The returned object is the one registered ! with the container and no other <literal>IObjectPostProcessor</literal> ! callbacks will be invoked on it. This mechanism is useful if you would ! like to expose a proxy to the object instead of the actual target ! object. The "BeforeDestruction" callack is called before a singletons ! destroy method is invoked.</para> ! <para>It is important to know that the ! <classname>IObjectFactory</classname> treats object post-processors ! slightly differently than the ! <classname>IApplicationContext</classname>. An ! <classname>IApplicationContext</classname> will automatically detect any ! objects which are deployed into it that implement the ! <classname>IObjectPostProcessor</classname> interface, and register them ! as post-processors, to be then called appropriately by the factory on ! object creation. Nothing else needs to be done other than deploying the ! post-processor in a similar fashion to any other object. On the other ! hand, when using plain <literal>IObjectFactories</literal>, object ! post-processors have to manually be explicitly registered, with a code ! sequence such as... <programlisting>ConfigurableObjectFactory factory = new .....; // create an IObjectFactory ... // now register some objects // now register any needed IObjectPostProcessors *************** *** 3369,3396 **** ...</programlisting></para> ! <para>Since this manual registration step is not convenient, and ! <literal>IApplicationContexts</literal> are functionally supersets of ! <literal>IObjectFactories</literal>, it is generally recommended that ! <classname>IApplicationContext</classname> variants are used when object ! post-processors are needed.</para> ! </sect1> ! <sect1 id="objects-factory-customizing-factory-postprocessors"> ! <title>Customizing object factories with ! ObjectFactoryPostProcessors</title> ! <para>An object factory post-processor is a class that implements the ! <classname>Spring.Objects.Factory.Config.IObjectFactoryPostProcessor</classname> ! interface. It is executed manually (in the case of the ! <classname>IObjectFactory</classname>) or automatically (in the case of ! the <classname>IApplicationContext</classname>) to apply changes of some ! sort to an entire ObjectFactory, after it has been constructed. By ! implementing this interface, you will receive a callback after the all the ! object definitions have been loaded into the IoC container but before they ! have been instantiated. This gives you the opportunity to modify the ! configuration of any object in the IoC container or perform initialization ! before objects are constructed. The signature of the interface is shown ! below <programlisting> ! public interface IObjectFactoryPostProcessor { void PostProcessObjectFactory (IConfigurableListableObjectFactory factory); --- 3424,3557 ---- ...</programlisting></para> ! <para>This explicit registration step is not convenient, and this is one ! of the reasons why the various ! <classname>IApplicationContext</classname> implementations are preferred ! above plain <classname>IObjectFactory</classname> implementations in the ! vast majority of Spring-backed applications, especially when using ! IObjectPostProcessors.</para> ! <note> ! <para>IObjectPostProcessors and AOP auto-proxying</para> ! <para>Classes that implement the ! <classname>IObjectPostProcessor</classname> interface are special, and ! so they are treated differently by the container. All ! <classname>IObjectPostProcessors</classname> and their directly ! referenced object will be instantiated on startup, as part of the ! special startup phase of the IApplicationContext, then all those ! <classname>IObjectPostProcessors</classname> will be registered in a ! sorted fashion - and applied to all further beans. Since AOP ! auto-proxying is implemented as a ! <classname>IObjectPostProcessor</classname> itself, no ! <classname>IObjectPostProcessors</classname> or directly referenced ! objects are eligible for auto-proxying (and thus will not have aspects ! 'woven' into them). For any such object, you should see an info log ! message: âObject 'foo' is not eligible for getting processed by all ! <classname>IObjectPostProcessors</classname> (for example: not ! eligible for auto-proxying)â. </para> ! </note> ! ! <para></para> ! ! <sect3> ! <title>Example: Hello World, IObjectPostProcessor-style</title> ! ! <para>This first example is hardly compelling, but serves to ! illustrate basic usage. All we are going to do is code a custom ! IObjectPostProcessor implementation that simply invokes the ToString() ! method of each object as it is created by the container and prints the ! resulting string to the system console. Yes, it is not hugely useful, ! but serves to get the basic concepts across before we move into the ! second example which is actually useful. The basis of the example is ! the MovieFinder quickstart that is included with the Spring.NET ! distribution.</para> ! ! <para>Find below the custom IObjectPostProcessor implementation class ! definition</para> ! ! <para><programlisting>using System; ! using Spring.Objects.Factory.Config; ! ! namespace Spring.IocQuickStart.MovieFinder ! { ! public class TracingObjectPostProcessor : IObjectPostProcessor ! { ! public object PostProcessBeforeInitialization(object instance, string name) ! { ! return instance; ! } ! ! public object PostProcessAfterInitialization(object instance, string name) ! { ! Console.WriteLine("Object '" + name + "' created : " + instance.ToString()); ! return instance; ! } ! } ! }</programlisting>And the following configuration</para> ! ! <programlisting><?xml version="1.0" encoding="utf-8" ?> ! <objects xmlns="http://www.springframework.net" > ! <description>An example that demonstrates simple IoC features.</description> ! ! <object id="MyMovieLister" ! type="Spring.IocQuickStart.MovieFinder.MovieLister, Spring.IocQuickStart.MovieFinder"> ! <property name="movieFinder" ref="MyMovieFinder"/> ! </object> ! ! <object id="MyMovieFinder" ! type="Spring.IocQuickStart.MovieFinder.SimpleMovieFinder, Spring.IocQuickStart.MovieFinder"/> ! ! <!-- when the above objects are instantiated, this custom IObjectPostProcessor implementation ! will output the fact to the system console --> ! <emphasis role="bold"><object type="Spring.IocQuickStart.MovieFinder.TracingObjectPostProcessor, Spring.IocQuickStart.MovieFinder"/></emphasis> ! </objects></programlisting> ! ! <para>Notice how the TracingObjectPostProcessor is simply defined; it ! doesn't even have a name, and because it is a object it can be ! dependency injected just like any other object.</para> ! ! <para>Find below a small driver script to exercise the above code and ! configuration;</para> ! ! <para><programlisting>IApplicationContext ctx = ! new XmlApplicationContext( ! "assembly://Spring.IocQuickStart.MovieFinder/Spring.IocQuickStart.MovieFinder/AppContext.xml"); ! ! MovieLister lister = (MovieLister) ctx.GetObject("MyMovieLister"); ! Movie[] movies = lister.MoviesDirectedBy("Roberto Benigni"); ! LOG.Debug("Searching for movie..."); ! foreach (Movie movie in movies) ! { ! LOG.Debug(string.Format("Movie Title = '{0}', Director = '{1}'.", movie.Title, movie.Director)); ! } ! LOG.Debug("MovieApp Done.");</programlisting>The output of executing the above ! program will be:</para> ! ! <programlisting>INFO - Object 'Spring.IocQuickStart.MovieFinder.TracingObjectPostProcessor' is not eligible for being processed by all IObjectPostProcessors (for example: not eligible for auto-proxying). ! Object 'MyMovieFinder' created : Spring.IocQuickStart.MovieFinder.SimpleMovieFinder ! Object 'MyMovieLister' created : Spring.IocQuickStart.MovieFinder.MovieLister ! DEBUG - Searching for movie... ! DEBUG - Movie Title = 'La vita e bella', Director = 'Roberto Benigni'. ! DEBUG - MovieApp Done.</programlisting> ! </sect3> ! </sect2> ! ! <sect2 id="objects-factory-customizing-factory-postprocessors"> ! <title>Customizing configuration metadata with ! ObjectFactoryPostProcessors</title> ! ! <para>The next extension point that we will look at is the ! <classname>Spring.Objects.Factory.Config.IObjectFactoryPostProcessor</classname>. ! The semantics of this interface are similar to the ! <classname>IObjectPostProcessor</classname>, with one major difference. ! <classname>IObjectFactoryPostProcessors</classname> operate on; that is ! to stay, the Spring IoC container will allow ! <classname>IObjectFactoryPostProcessors</classname> to read the ! configuration metadata and potentially change it before the container ! has actually instantiated any other objects. By implementing this ! interface, you will receive a callback after the all the object ! definitions have been loaded into the IoC container but before they have ! been instantiated. The signature of the interface is shown below ! <programlisting>public interface IObjectFactoryPostProcessor { void PostProcessObjectFactory (IConfigurableListableObjectFactory factory); *************** *** 3398,3479 **** </programlisting></para> ! <para>Generally speaking, if you are looking to interact with the ! lifecycle of the objects created in the IoC container, consult the ! functionality provided by the ! <literal>Spring.Objects.Factory.Config</literal> namespace, which should ! provide you all the things you need. Using the types defined in the ! <literal>Spring.Objects.Factory.Config</literal> namespace you can for ! instance define a properties file of which the property-entries are used ! as replacements values in the <classname>IObjectFactory</classname>. You ! are free to define you own implementations of the ! <classname>IObjectFactoryPostProcessor</classname> interface. Spring.NET ! includes a number of pre-existing object factory post-processors, such as ! <literal>PropertyResourceConfigurer</literal> and ! <literal>PropertyPlaceHolderConfigurer</literal>, both described ! below.</para> ! <para>In the case of an <classname>IObjectFactory</classname>, the process ! of applying an <classname>IObjectFactoryPostProcessor</classname> is ! manual, and will be similar to this:</para> ! <para><programlisting>XmlObjectFactory factory = new XmlObjectFactory(new FileSystemResource("objects.xml")); ! // create placeholderconfigurer to bring in some property ! // values from a Properties file PropertyPlaceholderConfigurer cfg = new PropertyPlaceholderConfigurer(); cfg.setLocation(new FileSystemResource("ado.properties")); ! // now actually do the replacement cfg.PostProcessObjectFactory(factory);</programlisting></para> ! <para><anchor ! id="objects-factory-autodetect-objectfactorypostprocessors" />An ! <classname>IApplicationContext</classname> will detect any objects which ! are deployed into it which implement the ! <literal>ObjectFactoryPostProcessor</literal> interface, and automatically ! use them as object factory post-processors, at the appropriate time. ! Nothing else needs to be done other than deploying these post-processor in ! a similar fashion to any other object.</para> ! <para>Since this manual step is not convenient, and ! <classname>IApplicationContext</classname>s are functionally supersets of ! ObjectFactories, it is generally recommended that ! <classname>IApplicationContext</classname> variants are used when object ! factory post-processors are needed.</para> ! <sect2 id="objects-factory-placeholderconfigurer"> ! <title>The <classname>PropertyPlaceholderConfigurer</classname></title> ! <para>The <classname>PropertyPlaceholderConfigurer</classname> is an ! excellent solution when you want to externalize a few properties from a ! file containing object definitions. Say you want to let the person ! responsible for deploying applications just fill in database URLs, ! usernames and passwords. You could of course let him or her change the ! XML file containing object definitions, but that would be risky. ! Instead, use the <classname>PropertyPlaceHolderConfigurer</classname> to ! - at runtime - replace those properties by values from a configuration ! file.</para> ! <para>Variable substitution is performed on simple property values, ! lists, dictionaries, sets, constructor values, object type name, and ! object names in runtime object references. Furthermore, placeholder ! values can also cross-reference other placeholders.</para> ! <para>Note that <literal>IApplicationContexts</literal> are able to ! automatically recognize and apply objects deployed in them that ! implement the <classname>IObjectFactoryPostProcessor</classname> ! interface. This means that as described here, applying a ! <classname>PropertyPlaceholderConfigurer</classname> is much more ! convenient when using an <classname>IApplicationContext</classname>. For ! this reason, it is recommended that users wishing to use this or other ! object factory postprocessors use an ! <classname>IApplicationContext</classname> instead of an ! <classname>IObjectFactory</classname>.</para> ! <para>In the example below a data access object needs to be configured ! with a database connection and also a value for the maximum number of ! results to return in a query. Instead of hard coding the values into the ! main Spring.NET configuration file we use place holders, in the NAnt ! style of ${variableName}, and obtain their values from NameValueSections ! in the standard .NET application configuration file. The Spring.NET ! configuration file looks like: <programlisting><configuration> <configSections> --- 3559,3680 ---- </programlisting></para> ! <para>You can configure multiple ! <classname>IObjectFactoryPostProcessors</classname> if you wish. Wyou ! can control the order in which these ! <classname>IObjectFactoryPostProcessors</classname> execute by setting ! the 'Order' property (you can only set this property if the ! <classname>IObjectFactoryPostProcessors</classname> implements the ! <classname>IOrdered</classname> interface; if you write your own ! <classname>IObjectFactoryPostProcessors</classname> you should consider ! implementing the <classname>IOrdered</classname> interface too); consult ! the SDK docs for the <classname>IObjectFactoryPostProcessors</classname> ! and <classname>IOrdered</classname> interfaces for more details.</para> ! <note> ! <para>If you want to change the actual object instances (the objects ! that are created from the configuration metadata), then you rather ! need to use a <classname>IObjectObjectPostProcessor</classname> ! (described above in the section entitled <link ! linkend="objects-factory-customizing">Customizing objects with ! <literal>IObjectPostProcessors</literal></link>.</para> ! <para>Also, <classname>IObjectFactoryPostProcessors</classname> are ! scoped per-container. This is only relevant if you are using container ! hierarchies. If you define a ! <classname>IObjectFactoryPostProcessors</classname> in one container, ! it will only do its stuff on the object definitions in that container. ! Object definitions in another container will not be post-processed by ! <classname>IObjectFactoryPostProcessors</classname> in another ! container, even if both containers are part of the same hierarchy. ! </para> ! </note> ! ! <para>An object factory post-processor is executed manually (in the case ! of a IObjectFactory) or automatically (in the case of an ! IApplicationContext) to apply changes of some sort to the configuration ! metadata that defines a container. Spring.NET includes a number of ! pre-existing object factory post-processors, such as ! <literal>PropertyResourceConfigurer</literal> and ! <literal>PropertyPlaceHolderConfigurer</literal>, both described below ! and ObjectNameAutoProxyCreator, which is very useful for wrapping other ! objects transactionally or with any other kind of proxy, as described ! later in this manual. </para> ! ! <para>In an <classname>IObjectFactory</classname>, the process of ! applying an <classname>IObjectFactoryPostProcessor</classname> is ! manual, and will be similar to this:</para> ! ! <para><programlisting>XmlObjectFactory factory = new XmlObjectFactory(new FileSystemResource("objects.xml")); ! <lineannotation>// create placeholderconfigurer to bring in some property ! // values from a Properties file</lineannotation> PropertyPlaceholderConfigurer cfg = new PropertyPlaceholderConfigurer(); cfg.setLocation(new FileSystemResource("ado.properties")); ! <lineannotation>// now actually do the replacement</lineannotation> cfg.PostProcessObjectFactory(factory);</programlisting></para> ! <para><anchor ! id="objects-factory-autodetect-objectfactorypostprocessors" />This ! explicit registration step is not convenient, and this is one of the ! reasons why the various <classname>IApplicationContext</classname> ! implementations are preferred above plain ! <classname>IObjectFactory</classname> implementations in the vast ! majority of Spring-backed applications, especially when using ! <classname>IObjectFactoryPostProcessors</classname>.</para> ! <para>An <classname>IApplicationContext</classname> will detect any ! objects which are deployed into it which implement the ! <literal>ObjectFactoryPostProcessor</literal> interface, and ! automatically use them as object factory post-processors, at the ! appropriate time. Nothing else needs to be done other than deploying ! these post-processor in a similar fashion to any other object.</para> ! <note> ! <para>Just as in the case of ! <classname>IObjectPostProcessors</classname>, you typically don't want ! to have <classname>IObjectFactoryPostProcessors</classname> marked as ! being lazily-initialized. If they are marked as such, then the Spring ! container will never instantiate them, and thus they won't get a ! chance to apply their custom logic. If you are using the ! 'default-lazy-init' attribute on the declaration of your ! <objects/> element, be sure to mark your various ! <classname>IObjectFactoryPostProcessor</classname> object definitions ! with 'lazy-init="false"'. </para> ! </note> ! <sect3 id="objects-factory-placeholderconfigurer"> ! <title>The ! <classname>PropertyPlaceholderConfigurer</classname></title> ! <para>The <classname>PropertyPlaceholderConfigurer</classname> is an ! excellent solution when you want to externalize a few properties from ! a file containing object definitions. This is useful t allow the ! person deploying an application to customize environment specific ! properties (for example database configuration strings, usernames, and ! passwords), without the complexity or risk of modifying the main XML ! definition file or files for the container.</para> ! <para>Variable substitution is performed on simple property values, ! lists, dictionaries, sets, constructor values, object type name, and ! object names in runtime object references. Furthermore, placeholder ! values can also cross-reference other placeholders.</para> ! <para>Note that <literal>IApplicationContexts</literal> are able to ! automatically recognize and apply objects deployed in them that ! implement the <classname>IObjectFactoryPostProcessor</classname> ! interface. This means that as described here, applying a ! <classname>PropertyPlaceholderConfigurer</classname> is much more ! convenient when using an <classname>IApplicationContext</classname>. ! For this reason, it is recommended that users wishing to use this or ! other object factory postprocessors use an ! <classname>IApplicationContext</classname> instead of an ! <classname>IObjectFactory</classname>.</para> ! ! <para>In the example below a data access object needs to be configured ! with a database connection and also a value for the maximum number of ! results to return in a query. Instead of hard coding the values into ! the main Spring.NET configuration file we use place holders, in the ! NAnt style of ${variableName}, and obtain their values from ! NameValueSections in the standard .NET application configuration file. ! The Spring.NET configuration file looks like: <programlisting><configuration> <configSections> *************** *** 3501,3523 **** </configuration></programlisting></para> ! <para>Notice the presence of two NameValueSections in the configuration ! file. These name value pairs will be referred to in the Spring.NET ! configuration file. In this example we are using an embedded assembly ! resource for the location of the Spring.NET configuration file so as to ! reduce the chance of accidental tampering in deployment. This Spring.NET ! configuration file is shown below.</para> ! <programlisting><objects xmlns="http://www.springframework.net" ! xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ! xsi:schemaLocation="http://www.springframework.net ! http://www.springframework.net/xsd/spring-objects.xsd" > <object name="productDao" type="DaoApp.SimpleProductDao, DaoApp "> ! <property name="maxResults" value="${maxResults}"/> <property name="dbConnection" ref="myConnection"/> </object> <object name="myConnection" type="System.Data.Odbc.OdbcConnection, System.Data"> ! <property name="connectionstring" value="${connection.string}"/> </object> --- 3702,3725 ---- </configuration></programlisting></para> ! <para>Notice the presence of two NameValueSections in the ! configuration file. These name value pairs will be referred to in the ! Spring.NET configuration file. In this example we are using an ! embedded assembly resource for the location of the Spring.NET ! configuration file so as to reduce the chance of accidental tampering ! in deployment. This Spring.NET configuration file is shown ! below.</para> ! <programlisting><objects xmlns="http://www.springframework.net" ! xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ! xsi:schemaLocation="http://www.springframework.net ! http://www.springframework.net/xsd/spring-objects.xsd" > <object name="productDao" type="DaoApp.SimpleProductDao, DaoApp "> ! <property name="maxResults" value="<emphasis role="bold">${maxResults}</emphasis>"/> <property name="dbConnection" ref="myConnection"/> </object> <object name="myConnection" type="System.Data.Odbc.OdbcConnection, System.Data"> ! <property name="connectionstring" value="<emphasis role="bold">${connection.string}</emphasis>"/> </object> *************** *** 3532,3586 **** </objects></programlisting> ! <para>The values of <literal>${maxResults}</literal> and ! <literal>${connection.string}</literal> match the key names used in the ! two NameValueSectionHandlers <literal>DaoConfiguration</literal> and ! <literal>DatabaseConfiguration</literal>. The ! <classname>PropertyPlaceholderConfigurer</classname> refers to these two ! sections via a comma delimited list of section names in the ! <literal>configSections</literal> property.</para> ! <para>The <classname>PropertyPlaceholderConfigurer</classname> class ! also supports retrieving name value pairs from other ! <classname>IResource</classname> locations. These can be specified using ! the <literal>Location</literal> and <literal>Locations</literal> ! properties of the <classname>PropertyPlaceHolderConfigurer</classname> ! class.</para> ! <para>If there are properties with the same name in different resource ! locations the default behavior is that the last property processed ! overrides the previous values. This is behavior is controlled by the ! <literal>LastLocationOverrides</literal> property. True enables ! overriding while false will append the values as one would normally ! expect using <literal>NameValueCollection.Add</literal>.</para> ! <note> ! In an ASP.NET environment you must specify the full, four-part name of the assembly when using a ! <classname>NameValueFileSectionHandler</classname> ! ; to wit... ! </note> ! <programlisting><section name="hibernateConfiguration" type="System.Configuration.NameValueFileSectionHandler, System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/></programlisting> ! <sect3 id="objects-factory-placeholderconfigurer-envvars"> ! <title>Replacement with Environment Variables</title> ! <para>You may also use the value environment variables to replace ! property placeholders. The use of environment variables is controlled ! via the property <literal>EnvironmentVariableMode</literal>. This ! property is an enumeration of the type ! <classname>EnvironmentVariablesMode</classname> and has three values, ! Never, Fallback, and Override. <literal>Fallback</literal> is the ! default value and will resolve a property placeholder if it was not ! already done so via a value from a resource location. ! <literal>Override</literal> will apply environment variables before ! applying values defined from a resource location. ! <literal>Never</literal> will, quite appropriately, disable ! environment variable substitution. An example of how the ! <classname>PropertyPlaceholderConfigurer</classname>XML is modified to ! enable override usage is shown below <programlisting><object name="appConfigPropertyHolder" type="Spring.Objects.Factory.Config.PropertyPlaceholderConfigurer, Spring.Core"> <property name="configSections" value="DaoConfiguration,DatabaseConfiguration"/> --- 3734,3804 ---- </objects></programlisting> ! <para>The values of <literal>${maxResults}</literal> and ! <literal>${connection.string}</literal> match the key names used in ! the two NameValueSectionHandlers <literal>DaoConfiguration</literal> ! and <literal>DatabaseConfiguration</literal>. The ! <classname>PropertyPlaceholderConfigurer</classname> refers to these ! two sections via a comma delimited list of section names in the ! <literal>configSections</literal> property.</para> ! <para>The <classname>PropertyPlaceholderConfigurer</classname> class ! also supports retrieving name value pairs from other ! <classname>IResource</classname> locations. These can be specified ! using the <literal>Location</literal> and <literal>Locations</literal> ! properties of the <classname>PropertyPlaceHolderConfigurer</classname> ! class.</para> ! <para>If there are properties with the same name in different resource ! locations the default behavior is that the last property processed ! overrides the previous values. This is behavior is controlled by the ! <literal>LastLocationOverrides</literal> property. True enables ! overriding while false will append the values as one would normally ! expect using <literal>NameValueCollection.Add</literal>.</para> ! <note> ! In an ASP.NET environment you must specify the full, four-part name of the assembly when using a ! <classname>NameValueFileSectionHandler</classname> ! ; to wit... ! </note> ! <programlisting><section name="hibernateConfiguration" type="System.Configuration.NameValueFileSectionHandler, System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/></programlisting> ! <note> ! <para>Type name substitution</para> ! <para>The PropertyPlaceholderConfigurer can be used to substitute ! type names, which is sometimes useful when you have to pick a ! particular implementation class at runtime. For example:</para> ! ! <programlisting> <object id="MyMovieFinder" type="${custom.moviefinder.type}"/></programlisting> ! ! <para>If the class is unable to be resolved at runtime to a valid ! type, resolution of the object will fail once it is about to be ! created (which is during the PreInstantiateSingletons() phase of an ! ApplicationContext for a non-lazy-init object.) </para> ! </note> ! ! <sect4 id="objects-factory-placeholderconfigurer-envvars"> ! <title>Replacement with Environment Variables</title> ! ! <para>You may also use the value environment variables to replace ! property placeholders. The use of environment variables is ! controlled via the property ! <literal>EnvironmentVariableMode</literal>. This property is an ! enumeration of the type ! <classname>EnvironmentVariablesMode</classname> and has three ! values, Never, Fallback, and Override. <literal>Fallback</literal> ! is the default value and will resolve a property placeholder if it ! was not already done so via a value from a resource location. ! <literal>Override</literal> will apply environment variables before ! applying values defined from a resource location. ! <literal>Never</literal> will, quite appropriately, disable ! environment variable substitution. An example of how the ! <classname>PropertyPlaceholderConfigurer</classname>XML is modified ! to enable override usage is shown below <programlisting><object name="appConfigPropertyHolder" type="Spring.Objects.Factory.Config.PropertyPlaceholderConfigurer, Spring.Core"> <property name="configSections" value="DaoConfiguration,DatabaseConfiguration"/> *************** *** 3588,3619 **** </object> </objects></programlisting></para> </sect3> - </sect2> ! <sect2 id="objects-factory-overrideconfigurer"> ! <title>The <classname>PropertyOverrideConfigurer</classname></title> ! <para>The <classname>PropertyOverrideConfigurer</classname>, another ! object factory post-processor, is similar to the ! <classname>PropertyPlaceholderConfigurer</classname>, but in contrast to ! the latter, the original definitions can have default values or no ! values at all for object properties. If an overriding configuration file ! file does not have an entry for a certain object property, the default ! context definition is used.</para> ! <para>Note that the object factory definition is ! <emphasis>not</emphasis> aware of being overridden, so it is not ! immediately obvious when looking at the XML definition file that the ! override configurer is being used. In case that there are multiple ! <classname>PropertyOverrideConfigurer</classname> instances that define ! different values for the same object property, the last one will win ! (due to the overriding mechanism).</para> ! <para>The example usage is similar to when using ! <classname>PropertyPlaceHolderConfigurer</classname> except that the key ! name refers to the name given to the object in the Spring.NET ! configuration file and is suffixed via 'dot' notation with the name of ! the property For example, if the application configuration file is ! <programlisting><configuration> <configSections> <sectionGroup name="spring"> --- 3806,3837 ---- </object> </objects></programlisting></para> + </sect4> </sect3> ! <sect3 id="objects-factory-overrideconfigurer"> ! <title>The <classname>PropertyOverrideConfigurer</classname></title> ! <para>The <classname>PropertyOverrideConfigurer</classname>, another ! object factory post-processor, is similar to the ! <classname>PropertyPlaceholderConfigurer</classname>, but in contrast ! to the latter, the original definitions can have default values or no ! values at all for object properties. If an overriding configuration ! file file does not have an entry for a certain object property, the ! default context definition is used.</para> ! <para>Note that the object factory definition is ! <emphasis>not</emphasis> aware of being overridden, so it is not ! immediately obvious when looking at the XML definition file that the ! override configurer is being used. In case that there are multiple ! <classname>PropertyOverrideConfigurer</classname> instances that ! define different values for the same object property, the last one ! will win (due to the overriding mechanism).</para> ! <para>The example usage is similar to when using ! <classname>PropertyPlaceHolderConfigurer</classname> except that the ! key name refers to the name given to the object in the Spring.NET ! configuration file and is suffixed via 'dot' notation with the name of ! the property For example, if the application configuration file is ! <programlisting><configuration> <configSections> <sectionGroup name="spring"> *************** *** 3634,3639 **** </configuration></programlisting> Then the value of 1000 will be used to ! overlay the value of 2000 set in the Spring.NET configuration file shown ! below <programlisting><objects xmlns="http://www.springframework.net" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.net http://www.springframework.net/xsd/spring-objects.xsd" > --- 3852,3857 ---- </configuration></programlisting> Then the value of 1000 will be used to ! overlay the value of 2000 set in the Spring.NET configuration file ! shown below <programlisting><objects xmlns="http://www.springframework.net" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.net http://www.springframework.net/xsd/spring-objects.xsd" > *************** *** 3662,3719 **** </objects></programlisting></para> ! </sect2> ! <sect2> ! <title>IVariableSource</title> ! <para>The IVariableSource is the base interface for providing the ! ability to get the value of property placeholders (name-value) pairs ! from a variety of sources. Out of the box, Spring.NET supports a number ! of variable sources that allow users to obtain variable values from .NET ! config files, java-style property files, environment variables, command ! line arguments and the registry and the new connection strings ! configuraiton section in .NET 2.0. The list of implementing classes is ! listed below. Please refer to the SDK documentation for more ! information.</para> ! <itemizedlist> ! <listitem> ! <para><classname>ConfigSectionVariableSource</classname></para> ! </listitem> ! <listitem> ! <para><classname>PropertyFileVariableSource</classname></para> ! </listitem> ! <listitem> ! <para><classname>EnvironmentVariableSource</classname></para> ! </listitem> ! <listitem> ! <para><classname>CommandLineArgsVariableSource</classname></para> ! </listitem> ! <listitem> ! <para><classname>RegistryVariableSource</classname></para> ! </listitem> ! <listitem> ! <para><classname>SpecialFolderVariableSource</classname></para> ! </listitem> ! <listitem> ! <para><classname>ConnectionStringsVariableSource</classname></para> ! </listitem> ! </itemizedlist> ! <para>You use this by defining an instance of ! <classname>Spring.Objects.Factory.Config.VariablePlaceholderConfigurer</classname> ! in your configuraiton and set the property ! <literal>VariableSource</literal> to a single ! <classname>IVariableSource</classname> instance or the list property ! VariableSources to a list of <classname>IVariableSource</classname> ! instances. In the case of the same property defined in multiple ! <classname>IVariableSource</classname> implementations, the first one in ! the list that contains the property value will be used.</para> </sect2> </sect1> --- 3880,3938 ---- </objects></programlisting></para> ! </sect3> ! <sect3> ! <title>IVariableSource</title> ! <para>The IVariableSource is the base interface for providing the ! ability to get the value of property placeholders (name-value) pairs ! from a variety of sources. Out of the box, Spring.NET supports a ! number of variable sources that allow users to obtain variable values ! from .NET config files, java-style property files, environment ! variables, command line arguments and the registry and the new ! connection strings configuraiton section in .NET 2.0. The list of ! implementing classes is listed below. Please refer to the SDK ! documentation for more information.</para> ! <itemizedlist> ! <listitem> ! <para><classname>ConfigSectionVariableSource</classname></para> ! </listitem> ! <listitem> ! <para><classname>PropertyFileVariableSource</classname></para> ! </listitem> ! <listitem> ! <para><classname>EnvironmentVariableSource</classname></para> ! </listitem> ! <listitem> ! <para><classname>CommandLineArgsVariableSource</classname></para> ! </listitem> ! <listitem> ! <para><classname>RegistryVariableSource</classname></para> ! </listitem> ! <listitem> ! <para><classname>SpecialFolderVariableSource</classname></para> ! </listitem> ! <listitem> ! <para><classname>ConnectionStringsVariableSource</classname></para> ! </listitem> ! </itemizedlist> ! <para>You use this by defining an instance of ! <classname>Spring.Objects.Factory.Config.VariablePlaceholderConfigurer</classname> ! in your configuraiton and set the property ! <literal>VariableSource</literal> to a single ! <classname>IVariableSource</classname> instance or the list property ! VariableSources to a list of <classname>IVariableSource</classname> ! instances. In the case of the same property defined in multiple ! <classname>IVariableSource</classname> implementations, the first one ! in the list that contains the property value will be used.</para> ! </sect3> </sect2> </sect1> |
From: Mark P. <mar...@us...> - 2007-08-21 01:11:38
|
Update of /cvsroot/springnet/Spring.Net/src/Spring/Spring.Data/Data/Common In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv23838 Modified Files: DbMetadata.cs dbproviders.xml Log Message: SPRNET-692 - Incorrect metadata in dbproviders.xml for parameterDbTypeProperty for OracleODP-2.0 Index: DbMetadata.cs =================================================================== RCS file: /cvsroot/springnet/Spring.Net/src/Spring/Spring.Data/Data/Common/DbMetadata.cs,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** DbMetadata.cs 22 Nov 2006 03:05:25 -0000 1.9 --- DbMetadata.cs 21 Aug 2007 01:11:33 -0000 1.10 *************** *** 116,119 **** --- 116,124 ---- ReflectionUtils.GetMethod(commandBuilderType.GetType(), commandBuilderDeriveParametersMethod, new Type[] { this.commandType } ); + + AssertUtils.ArgumentNotNull(this.commandBuilderDeriveParametersMethod, "commandBuilderDeriveParametersMethod", GetErrorMessage() + + ", could not resolve commandBuilderDeriveParametersMethod " + + commandBuilderDeriveParametersMethod + + " to MethodInfo. Please check dbproviders.xml entry for correct metadata listing."); this.commandType = commandType; *************** *** 123,129 **** --- 128,143 ---- this.parameterDbTypeProperty = this.parameterType.GetProperty(parameterDbTypeProperty, BindingFlags.Instance | BindingFlags.Public); + AssertUtils.ArgumentNotNull(this.parameterDbTypeProperty, "parameterDbTypeProperty", GetErrorMessage() + + ", could not resolve parameterDbTypeProperty " + + parameterDbTypeProperty + + " to PropertyInfo. Please check dbproviders.xml entry for correct metadata listing."); this.parameterIsNullableProperty = this.parameterType.GetProperty(parameterIsNullableProperty, BindingFlags.Instance | BindingFlags.Public); + + AssertUtils.ArgumentNotNull(this.parameterIsNullableProperty, "parameterIsNullableProperty", GetErrorMessage() + + ", could not resolve parameterIsNullableProperty " + + parameterIsNullableProperty + + " to PropertyInfo. Please check dbproviders.xml entry for correct metadata listing."); this.parameterNamePrefix = parameterNamePrefix; Index: dbproviders.xml =================================================================== RCS file: /cvsroot/springnet/Spring.Net/src/Spring/Spring.Data/Data/Common/dbproviders.xml,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** dbproviders.xml 3 Aug 2007 17:40:21 -0000 1.18 --- dbproviders.xml 21 Aug 2007 01:11:33 -0000 1.19 *************** *** 281,285 **** <constructor-arg name="commandBuilderDeriveParametersMethod" value="DeriveParameters"/> <constructor-arg name="parameterDbType" value="Oracle.DataAccess.Client.OracleDbType, Oracle.DataAccess, Version=2.102.2.20, Culture=neutral, PublicKeyToken=89b483f429c47342"/> ! <constructor-arg name="parameterDbTypeProperty" value="OracleDbType, Oracle.DataAccess, Version=2.102.2.20, Culture=neutral, PublicKeyToken=89b483f429c47342"/> <constructor-arg name="parameterIsNullableProperty" value="IsNullable"/> <constructor-arg name="parameterNamePrefix" value=":"/> --- 281,285 ---- <constructor-arg name="commandBuilderDeriveParametersMethod" value="DeriveParameters"/> <constructor-arg name="parameterDbType" value="Oracle.DataAccess.Client.OracleDbType, Oracle.DataAccess, Version=2.102.2.20, Culture=neutral, PublicKeyToken=89b483f429c47342"/> ! <constructor-arg name="parameterDbTypeProperty" value="OracleDbType"/> <constructor-arg name="parameterIsNullableProperty" value="IsNullable"/> <constructor-arg name="parameterNamePrefix" value=":"/> |
From: Mark P. <mar...@us...> - 2007-08-20 18:38:15
|
Update of /cvsroot/springnet/Spring.Net In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv2437 Modified Files: Spring.Net.1.1.2003.sln Spring.Net.1.1.2005.sln Spring.build Log Message: SPRNET-690 - AbstractSpringContextTests is not caching ApplicationContexts Added unit tests. Index: Spring.build =================================================================== RCS file: /cvsroot/springnet/Spring.Net/Spring.build,v retrieving revision 1.187 retrieving revision 1.188 diff -C2 -d -r1.187 -r1.188 *** Spring.build 17 Aug 2007 02:43:29 -0000 1.187 --- Spring.build 20 Aug 2007 18:38:10 -0000 1.188 *************** *** 330,333 **** --- 330,334 ---- <nant buildfile="test/Spring/Spring.Services.Tests/Spring.Services.Tests.build" target="test" if="${build-services}"/> <nant buildfile="test/Spring/Spring.Web.Tests/Spring.Web.Tests.build" target="test" if="${build-web}"/> + <nant buildfile="test/Spring/Spring.Testing.NUnit.Tests/Spring.Testing.NUnit.Tests.build" target="test"/> <!-- <nant buildfile="test/Spring/Spring.Services.Tests/Spring.Services.WindowsService.Tests.build" target="test" if="${build-services}"/> *************** *** 545,548 **** --- 546,552 ---- <delete dir="test/Spring/Spring.Web.Tests/obj" failonerror="false"/> <delete dir="test/Spring/Spring.Web.Tests/bin" failonerror="false"/> + <delete dir="test/Spring/Spring.Testing.NUnit.Tests/obj" failonerror="false"/> + <delete dir="test/Spring/Spring.Testing.NUnit.Tests/bin" failonerror="false"/> + <delete dir="examples/Spring/Spring.Calculator/src/Spring.Aspects/obj" failonerror="false"/> *************** *** 1200,1203 **** --- 1204,1208 ---- <include name="test/Spring/Spring.Data.NHibernate.Tests/**"/> <include name="test/Spring/Spring.Data.NHibernate.Integration.Tests/**"/> + <include name="test/Spring/Spring.Testing.NUnit.Tests/**"/> <include name="test/Spring/CommonAssemblyInfo.cs"/> Index: Spring.Net.1.1.2003.sln =================================================================== RCS file: /cvsroot/springnet/Spring.Net/Spring.Net.1.1.2003.sln,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** Spring.Net.1.1.2003.sln 9 Aug 2007 14:23:39 -0000 1.9 --- Spring.Net.1.1.2003.sln 20 Aug 2007 18:38:10 -0000 1.10 *************** *** 60,66 **** --- 60,72 ---- EndProjectSection EndProject + Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spring.Testing.NUnit.Tests.2003", "test\Spring\Spring.Testing.NUnit.Tests\Spring.Testing.NUnit.Tests.2003.csproj", "{E2689B4A-A951-420E-A274-BE5EBCD5F8D8}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection + EndProject Global GlobalSection(SolutionConfiguration) = preSolution + Debug = Debug Debug-1.1 = Debug-1.1 + Release = Release Release-1.1 = Release-1.1 EndGlobalSection *************** *** 68,131 **** EndGlobalSection GlobalSection(ProjectConfiguration) = postSolution {710961A3-0DF4-49E4-A26E-F5B9C044AC84}.Debug-1.1.ActiveCfg = Debug-1.1|.NET {710961A3-0DF4-49E4-A26E-F5B9C044AC84}.Debug-1.1.Build.0 = Debug-1.1|.NET {710961A3-0DF4-49E4-A26E-F5B9C044AC84}.Release-1.1.ActiveCfg = Release-1.1|.NET {710961A3-0DF4-49E4-A26E-F5B9C044AC84}.Release-1.1.Build.0 = Release-1.1|.NET {44B16BAA-6DF8-447C-9D7F-3AD3D854D904}.Debug-1.1.ActiveCfg = Debug-1.1|.NET {44B16BAA-6DF8-447C-9D7F-3AD3D854D904}.Debug-1.1.Build.0 = Debug-1.1|.NET {44B16BAA-6DF8-447C-9D7F-3AD3D854D904}.Release-1.1.ActiveCfg = Release-1.1|.NET {44B16BAA-6DF8-447C-9D7F-3AD3D854D904}.Release-1.1.Build.0 = Release-1.1|.NET {3A3A4E65-45A6-4B20-B460-0BEDC302C02C}.Debug-1.1.ActiveCfg = Debug-1.1|.NET {3A3A4E65-45A6-4B20-B460-0BEDC302C02C}.Debug-1.1.Build.0 = Debug-1.1|.NET {3A3A4E65-45A6-4B20-B460-0BEDC302C02C}.Release-1.1.ActiveCfg = Release-1.1|.NET {3A3A4E65-45A6-4B20-B460-0BEDC302C02C}.Release-1.1.Build.0 = Release-1.1|.NET {2111596A-0327-4C9D-8919-294FBD988A23}.Debug-1.1.ActiveCfg = Debug-1.1|.NET {2111596A-0327-4C9D-8919-294FBD988A23}.Debug-1.1.Build.0 = Debug-1.1|.NET {2111596A-0327-4C9D-8919-294FBD988A23}.Release-1.1.ActiveCfg = Release-1.1|.NET {2111596A-0327-4C9D-8919-294FBD988A23}.Release-1.1.Build.0 = Release-1.1|.NET {BA4789EB-281A-48EA-8763-28B9F0596A18}.Debug-1.1.ActiveCfg = Debug-1.1|.NET {BA4789EB-281A-48EA-8763-28B9F0596A18}.Debug-1.1.Build.0 = Debug-1.1|.NET {BA4789EB-281A-48EA-8763-28B9F0596A18}.Release-1.1.ActiveCfg = Release-1.1|.NET {BA4789EB-281A-48EA-8763-28B9F0596A18}.Release-1.1.Build.0 = Release-1.1|.NET ! {EB2687B7-8B26-4FBC-852A-4128D5CACAFC}.Debug-1.1.ActiveCfg = Release-1.1|.NET ! {EB2687B7-8B26-4FBC-852A-4128D5CACAFC}.Debug-1.1.Build.0 = Release-1.1|.NET ! {EB2687B7-8B26-4FBC-852A-4128D5CACAFC}.Release-1.1.ActiveCfg = Release-1.1|.NET ! {EB2687B7-8B26-4FBC-852A-4128D5CACAFC}.Release-1.1.Build.0 = Release-1.1|.NET {B58E34CF-6E70-481D-AC87-1BC2D13C21FB}.Debug-1.1.ActiveCfg = Debug-1.1|.NET {B58E34CF-6E70-481D-AC87-1BC2D13C21FB}.Debug-1.1.Build.0 = Debug-1.1|.NET {B58E34CF-6E70-481D-AC87-1BC2D13C21FB}.Release-1.1.ActiveCfg = Release-1.1|.NET {B58E34CF-6E70-481D-AC87-1BC2D13C21FB}.Release-1.1.Build.0 = Release-1.1|.NET ! {EB2687B7-8B26-4FBC-852A-4128D5CACAFC}.Debug-1.1.ActiveCfg = Debug-1.1|.NET ! {EB2687B7-8B26-4FBC-852A-4128D5CACAFC}.Debug-1.1.Build.0 = Debug-1.1|.NET {EB2687B7-8B26-4FBC-852A-4128D5CACAFC}.Release-1.1.ActiveCfg = Release-1.1|.NET {EB2687B7-8B26-4FBC-852A-4128D5CACAFC}.Release-1.1.Build.0 = Release-1.1|.NET {E10A3BED-795F-41CB-A4A8-8C4B342ACDDF}.Debug-1.1.ActiveCfg = Debug-1.1|.NET {E10A3BED-795F-41CB-A4A8-8C4B342ACDDF}.Debug-1.1.Build.0 = Debug-1.1|.NET {E10A3BED-795F-41CB-A4A8-8C4B342ACDDF}.Release-1.1.ActiveCfg = Release-1.1|.NET {E10A3BED-795F-41CB-A4A8-8C4B342ACDDF}.Release-1.1.Build.0 = Release-1.1|.NET {C5585365-561C-4EC4-8956-87FFBD9AB1CD}.Debug-1.1.ActiveCfg = Debug-1.1|.NET {C5585365-561C-4EC4-8956-87FFBD9AB1CD}.Debug-1.1.Build.0 = Debug-1.1|.NET {C5585365-561C-4EC4-8956-87FFBD9AB1CD}.Release-1.1.ActiveCfg = Release-1.1|.NET {C5585365-561C-4EC4-8956-87FFBD9AB1CD}.Release-1.1.Build.0 = Release-1.1|.NET {A9D3732A-D40B-4C35-80CE-9C4A53D2DEAD}.Debug-1.1.ActiveCfg = Debug-1.1|.NET {A9D3732A-D40B-4C35-80CE-9C4A53D2DEAD}.Debug-1.1.Build.0 = Debug-1.1|.NET {A9D3732A-D40B-4C35-80CE-9C4A53D2DEAD}.Release-1.1.ActiveCfg = Release-1.1|.NET {A9D3732A-D40B-4C35-80CE-9C4A53D2DEAD}.Release-1.1.Build.0 = Release-1.1|.NET {6B8639E3-88BB-4F7B-9F23-699E84C30D58}.Debug-1.1.ActiveCfg = Debug-1.1|.NET {6B8639E3-88BB-4F7B-9F23-699E84C30D58}.Debug-1.1.Build.0 = Debug-1.1|.NET {6B8639E3-88BB-4F7B-9F23-699E84C30D58}.Release-1.1.ActiveCfg = Release-1.1|.NET {6B8639E3-88BB-4F7B-9F23-699E84C30D58}.Release-1.1.Build.0 = Release-1.1|.NET {E8467024-8AE3-44A4-BAAD-1D78747EC7BD}.Debug-1.1.ActiveCfg = Debug-1.1|.NET {E8467024-8AE3-44A4-BAAD-1D78747EC7BD}.Debug-1.1.Build.0 = Debug-1.1|.NET {E8467024-8AE3-44A4-BAAD-1D78747EC7BD}.Release-1.1.ActiveCfg = Release-1.1|.NET {E8467024-8AE3-44A4-BAAD-1D78747EC7BD}.Release-1.1.Build.0 = Release-1.1|.NET {8DA67FF2-C473-4329-8FF6-3747182196D7}.Debug-1.1.ActiveCfg = Debug-1.1|.NET {8DA67FF2-C473-4329-8FF6-3747182196D7}.Debug-1.1.Build.0 = Debug-1.1|.NET {8DA67FF2-C473-4329-8FF6-3747182196D7}.Release-1.1.ActiveCfg = Release-1.1|.NET {8DA67FF2-C473-4329-8FF6-3747182196D7}.Release-1.1.Build.0 = Release-1.1|.NET {8755D942-7828-4971-835B-37A5992C06C9}.Debug-1.1.ActiveCfg = Debug-1.1|.NET {8755D942-7828-4971-835B-37A5992C06C9}.Debug-1.1.Build.0 = Debug-1.1|.NET {8755D942-7828-4971-835B-37A5992C06C9}.Release-1.1.ActiveCfg = Release-1.1|.NET {8755D942-7828-4971-835B-37A5992C06C9}.Release-1.1.Build.0 = Release-1.1|.NET EndGlobalSection GlobalSection(SolutionItems) = postSolution --- 74,203 ---- EndGlobalSection GlobalSection(ProjectConfiguration) = postSolution + {710961A3-0DF4-49E4-A26E-F5B9C044AC84}.Debug.ActiveCfg = Debug-1.1|.NET + {710961A3-0DF4-49E4-A26E-F5B9C044AC84}.Debug.Build.0 = Debug-1.1|.NET {710961A3-0DF4-49E4-A26E-F5B9C044AC84}.Debug-1.1.ActiveCfg = Debug-1.1|.NET {710961A3-0DF4-49E4-A26E-F5B9C044AC84}.Debug-1.1.Build.0 = Debug-1.1|.NET + {710961A3-0DF4-49E4-A26E-F5B9C044AC84}.Release.ActiveCfg = Release-1.1|.NET + {710961A3-0DF4-49E4-A26E-F5B9C044AC84}.Release.Build.0 = Release-1.1|.NET {710961A3-0DF4-49E4-A26E-F5B9C044AC84}.Release-1.1.ActiveCfg = Release-1.1|.NET {710961A3-0DF4-49E4-A26E-F5B9C044AC84}.Release-1.1.Build.0 = Release-1.1|.NET + {44B16BAA-6DF8-447C-9D7F-3AD3D854D904}.Debug.ActiveCfg = Debug-1.1|.NET + {44B16BAA-6DF8-447C-9D7F-3AD3D854D904}.Debug.Build.0 = Debug-1.1|.NET {44B16BAA-6DF8-447C-9D7F-3AD3D854D904}.Debug-1.1.ActiveCfg = Debug-1.1|.NET {44B16BAA-6DF8-447C-9D7F-3AD3D854D904}.Debug-1.1.Build.0 = Debug-1.1|.NET + {44B16BAA-6DF8-447C-9D7F-3AD3D854D904}.Release.ActiveCfg = Release-1.1|.NET + {44B16BAA-6DF8-447C-9D7F-3AD3D854D904}.Release.Build.0 = Release-1.1|.NET {44B16BAA-6DF8-447C-9D7F-3AD3D854D904}.Release-1.1.ActiveCfg = Release-1.1|.NET {44B16BAA-6DF8-447C-9D7F-3AD3D854D904}.Release-1.1.Build.0 = Release-1.1|.NET + {3A3A4E65-45A6-4B20-B460-0BEDC302C02C}.Debug.ActiveCfg = Debug-1.1|.NET + {3A3A4E65-45A6-4B20-B460-0BEDC302C02C}.Debug.Build.0 = Debug-1.1|.NET {3A3A4E65-45A6-4B20-B460-0BEDC302C02C}.Debug-1.1.ActiveCfg = Debug-1.1|.NET {3A3A4E65-45A6-4B20-B460-0BEDC302C02C}.Debug-1.1.Build.0 = Debug-1.1|.NET + {3A3A4E65-45A6-4B20-B460-0BEDC302C02C}.Release.ActiveCfg = Release-1.1|.NET + {3A3A4E65-45A6-4B20-B460-0BEDC302C02C}.Release.Build.0 = Release-1.1|.NET {3A3A4E65-45A6-4B20-B460-0BEDC302C02C}.Release-1.1.ActiveCfg = Release-1.1|.NET {3A3A4E65-45A6-4B20-B460-0BEDC302C02C}.Release-1.1.Build.0 = Release-1.1|.NET + {2111596A-0327-4C9D-8919-294FBD988A23}.Debug.ActiveCfg = Debug-1.1|.NET + {2111596A-0327-4C9D-8919-294FBD988A23}.Debug.Build.0 = Debug-1.1|.NET {2111596A-0327-4C9D-8919-294FBD988A23}.Debug-1.1.ActiveCfg = Debug-1.1|.NET {2111596A-0327-4C9D-8919-294FBD988A23}.Debug-1.1.Build.0 = Debug-1.1|.NET + {2111596A-0327-4C9D-8919-294FBD988A23}.Release.ActiveCfg = Release-1.1|.NET + {2111596A-0327-4C9D-8919-294FBD988A23}.Release.Build.0 = Release-1.1|.NET {2111596A-0327-4C9D-8919-294FBD988A23}.Release-1.1.ActiveCfg = Release-1.1|.NET {2111596A-0327-4C9D-8919-294FBD988A23}.Release-1.1.Build.0 = Release-1.1|.NET + {BA4789EB-281A-48EA-8763-28B9F0596A18}.Debug.ActiveCfg = Debug-1.1|.NET + {BA4789EB-281A-48EA-8763-28B9F0596A18}.Debug.Build.0 = Debug-1.1|.NET {BA4789EB-281A-48EA-8763-28B9F0596A18}.Debug-1.1.ActiveCfg = Debug-1.1|.NET {BA4789EB-281A-48EA-8763-28B9F0596A18}.Debug-1.1.Build.0 = Debug-1.1|.NET + {BA4789EB-281A-48EA-8763-28B9F0596A18}.Release.ActiveCfg = Release-1.1|.NET + {BA4789EB-281A-48EA-8763-28B9F0596A18}.Release.Build.0 = Release-1.1|.NET {BA4789EB-281A-48EA-8763-28B9F0596A18}.Release-1.1.ActiveCfg = Release-1.1|.NET {BA4789EB-281A-48EA-8763-28B9F0596A18}.Release-1.1.Build.0 = Release-1.1|.NET ! {EB2587B7-8B26-4FBC-852A-4128D5CACAFC}.Debug.ActiveCfg = Debug-1.1|.NET ! {EB2587B7-8B26-4FBC-852A-4128D5CACAFC}.Debug.Build.0 = Debug-1.1|.NET ! {EB2587B7-8B26-4FBC-852A-4128D5CACAFC}.Debug-1.1.ActiveCfg = Debug-1.1|.NET ! {EB2587B7-8B26-4FBC-852A-4128D5CACAFC}.Release.ActiveCfg = Release-1.1|.NET ! {EB2587B7-8B26-4FBC-852A-4128D5CACAFC}.Release.Build.0 = Release-1.1|.NET ! {EB2587B7-8B26-4FBC-852A-4128D5CACAFC}.Release-1.1.ActiveCfg = Release-1.1|.NET ! {B58E34CF-6E70-481D-AC87-1BC2D13C21FB}.Debug.ActiveCfg = Debug-1.1|.NET ! {B58E34CF-6E70-481D-AC87-1BC2D13C21FB}.Debug.Build.0 = Debug-1.1|.NET {B58E34CF-6E70-481D-AC87-1BC2D13C21FB}.Debug-1.1.ActiveCfg = Debug-1.1|.NET {B58E34CF-6E70-481D-AC87-1BC2D13C21FB}.Debug-1.1.Build.0 = Debug-1.1|.NET + {B58E34CF-6E70-481D-AC87-1BC2D13C21FB}.Release.ActiveCfg = Release-1.1|.NET + {B58E34CF-6E70-481D-AC87-1BC2D13C21FB}.Release.Build.0 = Release-1.1|.NET {B58E34CF-6E70-481D-AC87-1BC2D13C21FB}.Release-1.1.ActiveCfg = Release-1.1|.NET {B58E34CF-6E70-481D-AC87-1BC2D13C21FB}.Release-1.1.Build.0 = Release-1.1|.NET ! {EB2687B7-8B26-4FBC-852A-4128D5CACAFC}.Debug.ActiveCfg = Debug-1.1|.NET ! {EB2687B7-8B26-4FBC-852A-4128D5CACAFC}.Debug.Build.0 = Debug-1.1|.NET ! {EB2687B7-8B26-4FBC-852A-4128D5CACAFC}.Debug-1.1.ActiveCfg = Release-1.1|.NET ! {EB2687B7-8B26-4FBC-852A-4128D5CACAFC}.Debug-1.1.Build.0 = Release-1.1|.NET ! {EB2687B7-8B26-4FBC-852A-4128D5CACAFC}.Release.ActiveCfg = Release-1.1|.NET ! {EB2687B7-8B26-4FBC-852A-4128D5CACAFC}.Release.Build.0 = Release-1.1|.NET {EB2687B7-8B26-4FBC-852A-4128D5CACAFC}.Release-1.1.ActiveCfg = Release-1.1|.NET {EB2687B7-8B26-4FBC-852A-4128D5CACAFC}.Release-1.1.Build.0 = Release-1.1|.NET + {E10A3BED-795F-41CB-A4A8-8C4B342ACDDF}.Debug.ActiveCfg = Debug-1.1|.NET + {E10A3BED-795F-41CB-A4A8-8C4B342ACDDF}.Debug.Build.0 = Debug-1.1|.NET {E10A3BED-795F-41CB-A4A8-8C4B342ACDDF}.Debug-1.1.ActiveCfg = Debug-1.1|.NET {E10A3BED-795F-41CB-A4A8-8C4B342ACDDF}.Debug-1.1.Build.0 = Debug-1.1|.NET + {E10A3BED-795F-41CB-A4A8-8C4B342ACDDF}.Release.ActiveCfg = Release-1.1|.NET + {E10A3BED-795F-41CB-A4A8-8C4B342ACDDF}.Release.Build.0 = Release-1.1|.NET {E10A3BED-795F-41CB-A4A8-8C4B342ACDDF}.Release-1.1.ActiveCfg = Release-1.1|.NET {E10A3BED-795F-41CB-A4A8-8C4B342ACDDF}.Release-1.1.Build.0 = Release-1.1|.NET + {C5585365-561C-4EC4-8956-87FFBD9AB1CD}.Debug.ActiveCfg = Debug-1.1|.NET + {C5585365-561C-4EC4-8956-87FFBD9AB1CD}.Debug.Build.0 = Debug-1.1|.NET {C5585365-561C-4EC4-8956-87FFBD9AB1CD}.Debug-1.1.ActiveCfg = Debug-1.1|.NET {C5585365-561C-4EC4-8956-87FFBD9AB1CD}.Debug-1.1.Build.0 = Debug-1.1|.NET + {C5585365-561C-4EC4-8956-87FFBD9AB1CD}.Release.ActiveCfg = Release-1.1|.NET + {C5585365-561C-4EC4-8956-87FFBD9AB1CD}.Release.Build.0 = Release-1.1|.NET {C5585365-561C-4EC4-8956-87FFBD9AB1CD}.Release-1.1.ActiveCfg = Release-1.1|.NET {C5585365-561C-4EC4-8956-87FFBD9AB1CD}.Release-1.1.Build.0 = Release-1.1|.NET + {A9D3732A-D40B-4C35-80CE-9C4A53D2DEAD}.Debug.ActiveCfg = Debug-1.1|.NET + {A9D3732A-D40B-4C35-80CE-9C4A53D2DEAD}.Debug.Build.0 = Debug-1.1|.NET {A9D3732A-D40B-4C35-80CE-9C4A53D2DEAD}.Debug-1.1.ActiveCfg = Debug-1.1|.NET {A9D3732A-D40B-4C35-80CE-9C4A53D2DEAD}.Debug-1.1.Build.0 = Debug-1.1|.NET + {A9D3732A-D40B-4C35-80CE-9C4A53D2DEAD}.Release.ActiveCfg = Release-1.1|.NET + {A9D3732A-D40B-4C35-80CE-9C4A53D2DEAD}.Release.Build.0 = Release-1.1|.NET {A9D3732A-D40B-4C35-80CE-9C4A53D2DEAD}.Release-1.1.ActiveCfg = Release-1.1|.NET {A9D3732A-D40B-4C35-80CE-9C4A53D2DEAD}.Release-1.1.Build.0 = Release-1.1|.NET + {6B8639E3-88BB-4F7B-9F23-699E84C30D58}.Debug.ActiveCfg = Debug-1.1|.NET + {6B8639E3-88BB-4F7B-9F23-699E84C30D58}.Debug.Build.0 = Debug-1.1|.NET {6B8639E3-88BB-4F7B-9F23-699E84C30D58}.Debug-1.1.ActiveCfg = Debug-1.1|.NET {6B8639E3-88BB-4F7B-9F23-699E84C30D58}.Debug-1.1.Build.0 = Debug-1.1|.NET + {6B8639E3-88BB-4F7B-9F23-699E84C30D58}.Release.ActiveCfg = Release-1.1|.NET + {6B8639E3-88BB-4F7B-9F23-699E84C30D58}.Release.Build.0 = Release-1.1|.NET {6B8639E3-88BB-4F7B-9F23-699E84C30D58}.Release-1.1.ActiveCfg = Release-1.1|.NET {6B8639E3-88BB-4F7B-9F23-699E84C30D58}.Release-1.1.Build.0 = Release-1.1|.NET + {E8467024-8AE3-44A4-BAAD-1D78747EC7BD}.Debug.ActiveCfg = Debug-1.1|.NET + {E8467024-8AE3-44A4-BAAD-1D78747EC7BD}.Debug.Build.0 = Debug-1.1|.NET {E8467024-8AE3-44A4-BAAD-1D78747EC7BD}.Debug-1.1.ActiveCfg = Debug-1.1|.NET {E8467024-8AE3-44A4-BAAD-1D78747EC7BD}.Debug-1.1.Build.0 = Debug-1.1|.NET + {E8467024-8AE3-44A4-BAAD-1D78747EC7BD}.Release.ActiveCfg = Release-1.1|.NET + {E8467024-8AE3-44A4-BAAD-1D78747EC7BD}.Release.Build.0 = Release-1.1|.NET {E8467024-8AE3-44A4-BAAD-1D78747EC7BD}.Release-1.1.ActiveCfg = Release-1.1|.NET {E8467024-8AE3-44A4-BAAD-1D78747EC7BD}.Release-1.1.Build.0 = Release-1.1|.NET + {8DA67FF2-C473-4329-8FF6-3747182196D7}.Debug.ActiveCfg = Debug-1.1|.NET + {8DA67FF2-C473-4329-8FF6-3747182196D7}.Debug.Build.0 = Debug-1.1|.NET {8DA67FF2-C473-4329-8FF6-3747182196D7}.Debug-1.1.ActiveCfg = Debug-1.1|.NET {8DA67FF2-C473-4329-8FF6-3747182196D7}.Debug-1.1.Build.0 = Debug-1.1|.NET + {8DA67FF2-C473-4329-8FF6-3747182196D7}.Release.ActiveCfg = Release-1.1|.NET + {8DA67FF2-C473-4329-8FF6-3747182196D7}.Release.Build.0 = Release-1.1|.NET {8DA67FF2-C473-4329-8FF6-3747182196D7}.Release-1.1.ActiveCfg = Release-1.1|.NET {8DA67FF2-C473-4329-8FF6-3747182196D7}.Release-1.1.Build.0 = Release-1.1|.NET + {8755D942-7828-4971-835B-37A5992C06C9}.Debug.ActiveCfg = Debug-1.1|.NET + {8755D942-7828-4971-835B-37A5992C06C9}.Debug.Build.0 = Debug-1.1|.NET {8755D942-7828-4971-835B-37A5992C06C9}.Debug-1.1.ActiveCfg = Debug-1.1|.NET {8755D942-7828-4971-835B-37A5992C06C9}.Debug-1.1.Build.0 = Debug-1.1|.NET + {8755D942-7828-4971-835B-37A5992C06C9}.Release.ActiveCfg = Release-1.1|.NET + {8755D942-7828-4971-835B-37A5992C06C9}.Release.Build.0 = Release-1.1|.NET {8755D942-7828-4971-835B-37A5992C06C9}.Release-1.1.ActiveCfg = Release-1.1|.NET {8755D942-7828-4971-835B-37A5992C06C9}.Release-1.1.Build.0 = Release-1.1|.NET + {E2689B4A-A951-420E-A274-BE5EBCD5F8D8}.Debug.ActiveCfg = Debug|.NET + {E2689B4A-A951-420E-A274-BE5EBCD5F8D8}.Debug.Build.0 = Debug|.NET + {E2689B4A-A951-420E-A274-BE5EBCD5F8D8}.Debug-1.1.ActiveCfg = Debug|.NET + {E2689B4A-A951-420E-A274-BE5EBCD5F8D8}.Debug-1.1.Build.0 = Debug|.NET + {E2689B4A-A951-420E-A274-BE5EBCD5F8D8}.Release.ActiveCfg = Release|.NET + {E2689B4A-A951-420E-A274-BE5EBCD5F8D8}.Release.Build.0 = Release|.NET + {E2689B4A-A951-420E-A274-BE5EBCD5F8D8}.Release-1.1.ActiveCfg = Release|.NET + {E2689B4A-A951-420E-A274-BE5EBCD5F8D8}.Release-1.1.Build.0 = Release|.NET EndGlobalSection GlobalSection(SolutionItems) = postSolution Index: Spring.Net.1.1.2005.sln =================================================================== RCS file: /cvsroot/springnet/Spring.Net/Spring.Net.1.1.2005.sln,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** Spring.Net.1.1.2005.sln 18 Jul 2007 18:44:56 -0000 1.11 --- Spring.Net.1.1.2005.sln 20 Aug 2007 18:38:10 -0000 1.12 *************** *** 109,112 **** --- 109,118 ---- EndProjectSection EndProject + Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spring.Testing.NUnit.Tests.2005", "test\Spring\Spring.Testing.NUnit.Tests\Spring.Testing.NUnit.Tests.2005.csproj", "{4D6D616B-7643-4D6B-8E5E-14ECFDB9AF82}" + ProjectSection(WebsiteProperties) = preProject + Debug.AspNetCompiler.Debug = "True" + Release.AspNetCompiler.Debug = "False" + EndProjectSection + EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution *************** *** 289,292 **** --- 295,308 ---- {94E4E1B4-D424-4EB9-BF34-2EE8CC3D7048}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {94E4E1B4-D424-4EB9-BF34-2EE8CC3D7048}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {4D6D616B-7643-4D6B-8E5E-14ECFDB9AF82}.Debug|.NET.ActiveCfg = Debug|Any CPU + {4D6D616B-7643-4D6B-8E5E-14ECFDB9AF82}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4D6D616B-7643-4D6B-8E5E-14ECFDB9AF82}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4D6D616B-7643-4D6B-8E5E-14ECFDB9AF82}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {4D6D616B-7643-4D6B-8E5E-14ECFDB9AF82}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {4D6D616B-7643-4D6B-8E5E-14ECFDB9AF82}.Release|.NET.ActiveCfg = Release|Any CPU + {4D6D616B-7643-4D6B-8E5E-14ECFDB9AF82}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4D6D616B-7643-4D6B-8E5E-14ECFDB9AF82}.Release|Any CPU.Build.0 = Release|Any CPU + {4D6D616B-7643-4D6B-8E5E-14ECFDB9AF82}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {4D6D616B-7643-4D6B-8E5E-14ECFDB9AF82}.Release|Mixed Platforms.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution |
From: Mark P. <mar...@us...> - 2007-08-20 18:38:15
|
Update of /cvsroot/springnet/Spring.Net/test/Spring/Spring.Testing.NUnit.Tests/Testing/NUnit In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv2437/test/Spring/Spring.Testing.NUnit.Tests/Testing/NUnit Added Files: BaseTestAppContextTests.cs CachedAppContextTests.cs TestApplicationContext.xml Log Message: SPRNET-690 - AbstractSpringContextTests is not caching ApplicationContexts Added unit tests. --- NEW FILE: BaseTestAppContextTests.cs --- #region License /* * Copyright 2002-2007 the original author or authors. * * Licensed 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. */ #endregion using System; namespace Spring.Testing.NUnit { /// <summary> /// This is /// </summary> /// <remarks> /// /// </remarks> /// <author>Mark Pollack</author> /// <version>$Id: BaseTestAppContextTests.cs,v 1.1 2007/08/20 18:38:11 markpollack Exp $</version> public class BaseTestAppContextTests : AbstractTransactionalDbProviderSpringContextTests { protected override string[] ConfigLocations { get { return new string[] {"assembly://Spring.Testing.NUnit.Tests/Spring.Testing.NUnit/TestApplicationContext.xml"}; } } } } --- NEW FILE: TestApplicationContext.xml --- (This appears to be a binary file; contents omitted.) --- NEW FILE: CachedAppContextTests.cs --- (This appears to be a binary file; contents omitted.) |
From: Mark P. <mar...@us...> - 2007-08-20 18:38:15
|
Update of /cvsroot/springnet/Spring.Net/test/Spring/Spring.Testing.NUnit.Tests In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv2437/test/Spring/Spring.Testing.NUnit.Tests Added Files: .cvsignore AssemblyInfo.cs Spring.Testing.NUnit.Tests.2003.csproj Spring.Testing.NUnit.Tests.2005.csproj Spring.Testing.NUnit.Tests.build Spring.Testing.NUnit.Tests.dll.config Log Message: SPRNET-690 - AbstractSpringContextTests is not caching ApplicationContexts Added unit tests. --- NEW FILE: Spring.Testing.NUnit.Tests.build --- <?xml version="1.0" ?> <project name="Spring.Testing.NUnit.Tests" default="test" xmlns="http://nant.sf.net/schemas/nant.xsd"> <!-- Required properties: * current.bin.dir - (path) root level to build to * current.build.debug - (true|false) debug build? * current.build.defines.csc - framework-specific build defines for C# compiler --> <target name="build"> <!-- build Spring.Data.Tests --> <csc target="library" define="${current.build.defines.csc}" warnaserror="true" debug="${current.build.debug}" output="${current.bin.dir}/${project::get-name()}.dll" doc="${current.bin.dir}/${project::get-name()}.xml"> <nowarn> <warning number="${nowarn.numbers.test}" /> </nowarn> <sources failonempty="true"> <include name="**/*.cs" /> <include name="../CommonAssemblyInfo.cs" /> </sources> <resources prefix="Spring" dynamicprefix="true" failonempty="true"> <include name="**/*.xml" /> </resources> <references basedir="${current.bin.dir}"> <include name="*.dll" /> <exclude name="${project::get-name()}.dll" /> <exclude name="CloverRuntime.dll" /> </references> </csc> <copy file="${project::get-base-directory()}/${project::get-name()}.dll.config" tofile="${current.bin.dir}/${project::get-name()}.dll.config"/> </target> <target name="test" depends="build"> <nunit2outproc> <formatter type="Plain" /> <formatter type="Xml" usefile="true" extension=".xml" outputdir="${current.bin.dir}/results" /> <test assemblyname="${current.bin.dir}/${project::get-name()}.dll" /> </nunit2outproc> </target> </project> --- NEW FILE: .cvsignore --- obj *.csproj.user *.xml --- NEW FILE: Spring.Testing.NUnit.Tests.dll.config --- <?xml version="1.0" encoding="utf-8" ?> <!-- Copyright 2002-2005 the original author or authors. Licensed 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. --> <configuration> <configSections> <sectionGroup name="common"> <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" /> </sectionGroup> <sectionGroup name='spring'> <section name="parsers" type="Spring.Context.Support.NamespaceParsersSectionHandler, Spring.Core"/> </sectionGroup> </configSections> <common> <logging> <factoryAdapter type="Common.Logging.Simple.NoOpLoggerFactoryAdapter, Common.Logging"/> </logging> </common> <spring> <parsers> <parser type="Spring.Data.Config.DatabaseNamespaceParser, Spring.Data" /> </parsers> </spring> </configuration> --- NEW FILE: AssemblyInfo.cs --- using System.Reflection; using System.Runtime.CompilerServices; // // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. // [assembly: AssemblyTitle("Spring.Testing.NUnit Tests")] [assembly: AssemblyDescription("Unit tests for Spring.Testing.NUnit assembly")] --- NEW FILE: Spring.Testing.NUnit.Tests.2003.csproj --- <VisualStudioProject> <CSHARP ProjectType = "Local" ProductVersion = "7.10.6030" SchemaVersion = "2.0" ProjectGuid = "{E2689B4A-A951-420E-A274-BE5EBCD5F8D8}" > <Build> <Settings ApplicationIcon = "" AssemblyKeyContainerName = "" AssemblyName = "Spring.Testing.NUnit.Tests" AssemblyOriginatorKeyFile = "" DefaultClientScript = "JScript" DefaultHTMLPageLayout = "Grid" DefaultTargetSchema = "IE50" DelaySign = "false" OutputType = "Library" PreBuildEvent = "" PostBuildEvent = "" RootNamespace = "Spring.Testing.NUnit.Tests" RunPostBuildEvent = "OnBuildSuccess" StartupObject = "" > <Config Name = "Debug" AllowUnsafeBlocks = "false" BaseAddress = "285212672" CheckForOverflowUnderflow = "false" ConfigurationOverrideFile = "" DefineConstants = "DEBUG;TRACE" DocumentationFile = "" DebugSymbols = "true" FileAlignment = "4096" IncrementalBuild = "false" NoStdLib = "false" NoWarn = "" Optimize = "false" OutputPath = "..\..\..\build\VS.Net\Spring.Testing.NUnit.Tests\Debug\" RegisterForComInterop = "false" RemoveIntegerChecks = "false" TreatWarningsAsErrors = "false" WarningLevel = "4" /> <Config Name = "Release" AllowUnsafeBlocks = "false" BaseAddress = "285212672" CheckForOverflowUnderflow = "false" ConfigurationOverrideFile = "" DefineConstants = "TRACE" DocumentationFile = "" DebugSymbols = "false" FileAlignment = "4096" IncrementalBuild = "false" NoStdLib = "false" NoWarn = "" Optimize = "true" OutputPath = "..\..\..\build\VS.Net\Spring.Data.Tests\Release\" RegisterForComInterop = "false" RemoveIntegerChecks = "false" TreatWarningsAsErrors = "false" WarningLevel = "4" /> </Settings> <References> <Reference Name = "System" AssemblyName = "System" HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.dll" /> <Reference Name = "System.Data" AssemblyName = "System.Data" HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.Data.dll" /> <Reference Name = "System.XML" AssemblyName = "System.Xml" HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.XML.dll" /> </References> </Build> <Files> <Include> <File RelPath = "AssemblyInfo.cs" SubType = "Code" BuildAction = "Compile" /> <File RelPath = "Spring.Testing.NUnit.Tests.dll.config" BuildAction = "None" /> <File RelPath = "Testing\NUnit\BaseTestAppContextTests.cs" SubType = "Code" BuildAction = "Compile" /> <File RelPath = "Testing\NUnit\CachedAppContextTests.cs" SubType = "Code" BuildAction = "Compile" /> <File RelPath = "Testing\NUnit\TestApplicationContext.xml" BuildAction = "EmbeddedResource" /> <File RelPath = "Testing\NUnit\AnotherTest\LoadAppContextTests.cs" SubType = "Code" BuildAction = "Compile" /> </Include> </Files> </CSHARP> </VisualStudioProject> --- NEW FILE: Spring.Testing.NUnit.Tests.2005.csproj --- (This appears to be a binary file; contents omitted.) |
From: Mark P. <mar...@us...> - 2007-08-20 18:38:14
|
Update of /cvsroot/springnet/Spring.Net/src/Spring/Spring.Testing.NUnit/Testing/NUnit In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv2437/src/Spring/Spring.Testing.NUnit/Testing/NUnit Modified Files: AbstractSpringContextTests.cs Log Message: SPRNET-690 - AbstractSpringContextTests is not caching ApplicationContexts Added unit tests. Index: AbstractSpringContextTests.cs =================================================================== RCS file: /cvsroot/springnet/Spring.Net/src/Spring/Spring.Testing.NUnit/Testing/NUnit/AbstractSpringContextTests.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** AbstractSpringContextTests.cs 31 May 2007 19:06:20 -0000 1.1 --- AbstractSpringContextTests.cs 20 Aug 2007 18:38:11 -0000 1.2 *************** *** 45,49 **** /// Spring contexts. /// </summary> ! private IDictionary contextKeyToContextMap = new Hashtable(); /// <summary> --- 45,49 ---- /// Spring contexts. /// </summary> ! private static IDictionary contextKeyToContextMap = new Hashtable(); /// <summary> *************** *** 106,113 **** /// <param name="contextKey">Context key to convert.</param> /// <returns> ! /// String representation of the specified <paramref name="contextKey"/>. /// </returns> protected virtual string ContextKeyString(object contextKey) { if (contextKey is string[]) { --- 106,118 ---- /// <param name="contextKey">Context key to convert.</param> /// <returns> ! /// String representation of the specified <paramref name="contextKey"/>. Null if ! /// contextKey is null. /// </returns> protected virtual string ContextKeyString(object contextKey) { + if (contextKey == null) + { + return null; + } if (contextKey is string[]) { *************** *** 127,130 **** --- 132,136 ---- public void AddContext(object key, IConfigurableApplicationContext context) { + AssertUtils.ArgumentNotNull(context, "context", "ApplicationContext must not be null"); contextKeyToContextMap[ContextKeyString(key)] = context; } |